Skip to content
This repository has been archived by the owner on Nov 21, 2022. It is now read-only.

Commit

Permalink
Merge pull request #1 from mer-packages/ver_support
Browse files Browse the repository at this point in the history
Ver support
  • Loading branch information
iamer committed Sep 19, 2013
2 parents 22d9590 + 6769e77 commit fadff9c
Show file tree
Hide file tree
Showing 5 changed files with 167 additions and 7 deletions.
17 changes: 16 additions & 1 deletion repomd-pattern-builder.py
Expand Up @@ -103,7 +103,22 @@ def process_yaml(stream, version, release, xmlroot, nsmap_name, newobsapi):
print "ERROR: Found dict and expected string value. '%s'" % (p)
sys.exit(1)
entry = etree.SubElement(req, "{%s}entry" %rpm_ns)
entry.set("name", p)

name = p
ver = None
op_in = [">=", "<=", ">", "<", "="]
op_out = ["GE", "LE", "GT", "LT", "EQ"]
opc = 0
for op in op_in:
if op in p:
name, ver = p.split(op)
break
opc = opc + 1

entry.set("name", name.strip())
if ver:
entry.set("flags", "%s" % (op_out[opc]))
entry.set("ver", "%s" % (ver.strip()))

def create_patterns(patterns_dir, version, release, outputdir, newobsapi):
dirlist = os.listdir(patterns_dir)
Expand Down
18 changes: 18 additions & 0 deletions rpm/repomd-pattern-builder.changes
@@ -0,0 +1,18 @@
* Mon Dec 03 2012 Marko Saukko <marko.saukko@jollamobile.com> - 0.3
- Added diffutils dependency to tests package.

* Wed Nov 28 2012 Marko Saukko <marko.saukko@jollamobile.com> - 0.3
- Use lxml buildin prettyprint
- Handle multiple documents in a yaml file
- Added tests package
- Added support for 'Conflicts', 'Requires', 'Recommends', 'Suggests'
and 'Provides'
- Added support to enter version and release from cmdline
- Renamed --groupxml to --patternsxml
- Make --patternxml the default behaviour

* Tue Jul 31 2012 Marko Saukko <marko.saukko@jollamobile.com> - 0.2.1
- Add epoch and rel to version element to fix compatibility with OBS.

* Mon Jan 02 2012 Marko Saukko <marko.saukko@cybercom.com> - 0.2
- Initial packaging for the repomd-pattern-builder.
75 changes: 75 additions & 0 deletions rpm/repomd-pattern-builder.spec
@@ -0,0 +1,75 @@
#
# Do NOT Edit the Auto-generated Part!
# Generated by: spectacle version 0.25
#

Name: repomd-pattern-builder

# >> macros
# << macros

Summary: Scripts to build patterns for the rpm repository.
Version: 0.3
Release: 1
Group: Software Management/Package Manager
License: GPLv2
URL: https://gitorious.org/meego-developer-edition-for-n900/repomd-pattern-builder
Source0: %{name}-%{version}.tar.xz
Source100: repomd-pattern-builder.yaml
Requires: python
Requires: python-yaml
Requires: python-lxml
Requires: /usr/bin/xmllint

%description
Script that converts .yaml structures to suitable rpm patterns and package groups.


%package tests
Summary: tests for %{name}
Group: QA/Tests
Requires: %{name} = %{version}-%{release}
Requires: diffutils

%description tests
%{summary}.



%prep
%setup -q -n %{name}-%{version}

# >> setup
# << setup

%build
# >> build pre
# << build pre



# >> build post
# << build post

%install
rm -rf %{buildroot}
# >> install pre
%make_install
# << install pre

# >> install post
# << install post


%files
%defattr(-,root,root,-)
# >> files
%{_bindir}/%{name}.py
# << files

%files tests
%defattr(-,root,root,-)
# >> files tests
/opt/tests/repomd-pattern-builder/tests.xml
/opt/tests/repomd-pattern-builder/data/*
# << files tests
26 changes: 26 additions & 0 deletions rpm/repomd-pattern-builder.yaml
@@ -0,0 +1,26 @@
Name: repomd-pattern-builder
Summary: Scripts to build patterns for the rpm repository.
Description: |
Script that converts .yaml structures to suitable rpm patterns and package groups.
Version: 0.3
Release: 1
Group: Software Management/Package Manager
License: GPLv2
Sources:
- "%{name}-%{version}.tar.xz"
URL: https://gitorious.org/meego-developer-edition-for-n900/repomd-pattern-builder
Configure: none
Builder: none
Requires:
- python
- python-yaml
- python-lxml
- /usr/bin/xmllint
SubPackages:
- Name: tests
Summary: tests for %{name}
Description: |
%{summary}.
Group: QA/Tests
Requires:
- diffutils
38 changes: 32 additions & 6 deletions tests/data/output-patternsxml-valid/patterns.xml
@@ -1,5 +1,5 @@
<patterns count="5">
<pattern xmlns:rpm="http://linux.duke.edu/metadata/rpm" xmlns:patterns="http://novell.com/package/metadata/suse/pattern" xmlns="http://novell.com/package/metadata/suse/pattern">
<patterns count="6">
<pattern xmlns:patterns="http://novell.com/package/metadata/suse/pattern" xmlns:rpm="http://linux.duke.edu/metadata/rpm" xmlns="http://novell.com/package/metadata/suse/pattern">
<name>test1</name>
<version ver="1" epoch="0" rel="2"/>
<summary>Test1</summary>
Expand All @@ -25,14 +25,14 @@
<rpm:entry name="provides-test2"/>
</rpm:provides>
</pattern>
<pattern xmlns:rpm="http://linux.duke.edu/metadata/rpm" xmlns:patterns="http://novell.com/package/metadata/suse/pattern" xmlns="http://novell.com/package/metadata/suse/pattern">
<pattern xmlns:patterns="http://novell.com/package/metadata/suse/pattern" xmlns:rpm="http://linux.duke.edu/metadata/rpm" xmlns="http://novell.com/package/metadata/suse/pattern">
<name>test2</name>
<summary>Test2</summary>
<description>Test decription</description>
<uservisible/>
<category lang="en">Base Group</category>
</pattern>
<pattern xmlns:rpm="http://linux.duke.edu/metadata/rpm" xmlns:patterns="http://novell.com/package/metadata/suse/pattern" xmlns="http://novell.com/package/metadata/suse/pattern">
<pattern xmlns:patterns="http://novell.com/package/metadata/suse/pattern" xmlns:rpm="http://linux.duke.edu/metadata/rpm" xmlns="http://novell.com/package/metadata/suse/pattern">
<name>test4</name>
<version ver="1" epoch="3" rel="2"/>
<arch>i686</arch>
Expand All @@ -45,7 +45,7 @@
<rpm:entry name="bar foo"/>
</rpm:requires>
</pattern>
<pattern xmlns:rpm="http://linux.duke.edu/metadata/rpm" xmlns:patterns="http://novell.com/package/metadata/suse/pattern" xmlns="http://novell.com/package/metadata/suse/pattern">
<pattern xmlns:patterns="http://novell.com/package/metadata/suse/pattern" xmlns:rpm="http://linux.duke.edu/metadata/rpm" xmlns="http://novell.com/package/metadata/suse/pattern">
<name>test5</name>
<version ver="1" epoch="0" rel="2"/>
<summary>Test5</summary>
Expand All @@ -71,11 +71,37 @@
<rpm:entry name="provides-test2"/>
</rpm:provides>
</pattern>
<pattern xmlns:rpm="http://linux.duke.edu/metadata/rpm" xmlns:patterns="http://novell.com/package/metadata/suse/pattern" xmlns="http://novell.com/package/metadata/suse/pattern">
<pattern xmlns:patterns="http://novell.com/package/metadata/suse/pattern" xmlns:rpm="http://linux.duke.edu/metadata/rpm" xmlns="http://novell.com/package/metadata/suse/pattern">
<name>test5.1</name>
<summary>Test5.1</summary>
<description>Test decription</description>
<uservisible/>
<category lang="en">Base Group</category>
</pattern>
<pattern xmlns:patterns="http://novell.com/package/metadata/suse/pattern" xmlns:rpm="http://linux.duke.edu/metadata/rpm" xmlns="http://novell.com/package/metadata/suse/pattern">
<name>test6</name>
<version ver="1" epoch="0" rel="2"/>
<summary>Test6</summary>
<description>Test decription</description>
<uservisible/>
<category lang="en">Base Group</category>
<rpm:conflicts>
<rpm:entry name="conflicts-test1"/>
</rpm:conflicts>
<rpm:requires>
<rpm:entry name="requires-test1" flags="EQ" ver="=1"/>
<rpm:entry name="requires-test2" flags="GT" ver="2"/>
<rpm:entry name="requires-test3" flags="LT" ver="3"/>
</rpm:requires>
<rpm:recommends>
<rpm:entry name="recommends-test1" flags="GE" ver="1"/>
</rpm:recommends>
<rpm:suggests>
<rpm:entry name="suggests-test1"/>
</rpm:suggests>
<rpm:provides>
<rpm:entry name="provides-test1" flags="LT" ver="1"/>
<rpm:entry name="provides-test2"/>
</rpm:provides>
</pattern>
</patterns>

0 comments on commit fadff9c

Please sign in to comment.