From: Michael Tremer Date: Sun, 24 Jul 2011 16:18:19 +0000 (+0200) Subject: Add support for prerequires. X-Git-Tag: 0.9.4~6^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=71d3b468329c9a08d68df8317c1724075cc28e28;p=pakfire.git Add support for prerequires. --- diff --git a/pakfire/constants.py b/pakfire/constants.py index bb2982e25..e61acfe13 100644 --- a/pakfire/constants.py +++ b/pakfire/constants.py @@ -38,7 +38,7 @@ MAKEFILE_EXTENSION = "nm" PACKAGE_FILENAME_FMT = "%(name)s-%(version)s-%(release)s.%(arch)s.%(ext)s" -BUILD_PACKAGES = ["build-essentials=1:3.0-alpha2-19.ip3",] +BUILD_PACKAGES = ["build-essentials=2:1.0-1.ip3",] SHELL_PACKAGES = ["elinks", "less", "pakfire", "vim",] BUILD_ROOT = "/var/lib/pakfire/build" @@ -93,8 +93,10 @@ PKG_SUMMARY="%(summary)s" PKG_DESCRIPTION="%(description)s" # Dependency info +PKG_PREREQUIRES="%(prerequires)s" PKG_REQUIRES="%(requires)s" PKG_PROVIDES="%(provides)s" +PKG_CONFLICTS="%(conflicts)s" PKG_OBSOLETES="%(obsoletes)s" PKG_PAYLOAD_COMP="%(payload_comp)s" diff --git a/pakfire/packages/base.py b/pakfire/packages/base.py index 8f6f467e4..ecf7f99cf 100644 --- a/pakfire/packages/base.py +++ b/pakfire/packages/base.py @@ -313,8 +313,10 @@ class Package(object): return self.metadata.get("PKG_VENDOR", "") @property - def pre_requires(self): - return set() # XXX to be done + def prerequires(self): + requires = self.metadata.get("PKG_PREREQUIRES", "") + + return requires.split() @property def requires(self): @@ -332,25 +334,19 @@ class Package(object): if ret: break - return set(ret.split()) + return ret.split() @property def provides(self): - provides = self.metadata.get("PKG_PROVIDES", "").split() - - return set(provides) + return self.metadata.get("PKG_PROVIDES", "").split() @property def conflicts(self): - conflicts = self.metadata.get("PKG_CONFLICTS", "").split() - - return set(conflicts) + return self.metadata.get("PKG_CONFLICTS", "").split() @property def obsoletes(self): - obsoletes = self.metadata.get("PKG_OBSOLETES", "").split() - - return set(obsoletes) + return self.metadata.get("PKG_OBSOLETES", "").split() def extract(self, path, prefix=None): raise NotImplementedError, "%s" % repr(self) diff --git a/pakfire/packages/binary.py b/pakfire/packages/binary.py index 150056624..d963f5e38 100644 --- a/pakfire/packages/binary.py +++ b/pakfire/packages/binary.py @@ -6,16 +6,3 @@ class BinaryPackage(FilePackage): @property def arch(self): return self.metadata.get("PKG_ARCH") - - @property - def conflicts(self): - conflicts = self.metadata.get("PKG_CONFLICTS", "").split() - - return set(conflicts) - - @property - def obsoletes(self): - obsoletes = self.metadata.get("PKG_OBSOLETES", "").split() - - return set(obsoletes) - diff --git a/pakfire/packages/packager.py b/pakfire/packages/packager.py index b098bfa73..f268e87ff 100644 --- a/pakfire/packages/packager.py +++ b/pakfire/packages/packager.py @@ -42,8 +42,10 @@ class Packager(object): "package_uuid" : uuid.uuid4(), "payload_comp" : "", + "prerequires" : "", "requires" : "", "provides" : "", + "conflicts" : "", "obsoletes": "", } self.info.update(self.pkg.info) @@ -82,7 +84,7 @@ class Packager(object): key, val = m.groups() - if not key in ("requires", "provides", "obsoletes",): + if not key in ("prerequires", "requires", "provides", "conflicts", "obsoletes",): continue val = val.strip("\"") diff --git a/pakfire/packages/solv.py b/pakfire/packages/solv.py index 2742a865c..3020fc6c0 100644 --- a/pakfire/packages/solv.py +++ b/pakfire/packages/solv.py @@ -122,9 +122,28 @@ class SolvPackage(base.Package): def provides(self): return self.solvable.get_provides() + @property + def _requires(self): + requires = self.solvable.get_requires() + + try: + i = requires.index("solvable:prereqmarker") + + return (requires[:i], requires[i:],) + except ValueError: + return ([], requires,) + + @property + def prerequires(self): + prereqs, reqs = self._requires + + return prereqs + @property def requires(self): - return self.solvable.get_requires() + prereqs, reqs = self._requires + + return reqs @property def obsoletes(self): diff --git a/pakfire/packages/source.py b/pakfire/packages/source.py index 3947610a5..fcb402b92 100644 --- a/pakfire/packages/source.py +++ b/pakfire/packages/source.py @@ -6,14 +6,3 @@ class SourcePackage(FilePackage): @property def arch(self): return "src" - - @property - def requires(self): - """ - Return the requirements for the build. - """ - return self.metadata.get("PKG_REQUIRES", "").split() - - @property - def conflicts(self): - return self.metadata.get("PKG_CONFLICTS", "").split() diff --git a/pakfire/repository/index.py b/pakfire/repository/index.py index 9df713bd8..cf6d6676c 100644 --- a/pakfire/repository/index.py +++ b/pakfire/repository/index.py @@ -124,6 +124,12 @@ class Index(object): solvable.set_installsize(pkg.inst_size) # Import all requires. + requires = pkg.requires + prerequires = pkg.prerequires + if prerequires: + requires.append("solvable:prereqmarker") + requires += prerequires + for req in pkg.requires: rel = self.create_relation(req) solvable.add_requires(rel) diff --git a/po/pakfire.pot b/po/pakfire.pot index 958dee78d..62532a917 100644 --- a/po/pakfire.pot +++ b/po/pakfire.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-07-22 17:04+0200\n" +"POT-Creation-Date: 2011-07-24 18:12+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -247,14 +247,18 @@ msgstr "" msgid "Pakfire server command line interface." msgstr "" -#: ../pakfire/cli.py:528 +#: ../pakfire/cli.py:530 msgid "Request a build job from the server." msgstr "" -#: ../pakfire/cli.py:534 +#: ../pakfire/cli.py:536 msgid "Send a keepalive to the server." msgstr "" +#: ../pakfire/cli.py:543 +msgid "Update all repositories." +msgstr "" + #: ../pakfire/packages/base.py:69 msgid "Name" msgstr "" @@ -323,19 +327,19 @@ msgstr "" msgid "Requires" msgstr "" -#: ../pakfire/repository/index.py:221 +#: ../pakfire/repository/index.py:227 #, python-format msgid "%s: package database" msgstr "" #. Create progress bar. -#: ../pakfire/repository/index.py:295 +#: ../pakfire/repository/index.py:311 #, python-format msgid "Loading from %s" msgstr "" #. Add all packages from the database to the index. -#: ../pakfire/repository/index.py:345 +#: ../pakfire/repository/index.py:364 msgid "Loading installed packages" msgstr ""