]> git.ipfire.org Git - pakfire.git/commitdiff
Add support for prerequires.
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 24 Jul 2011 16:18:19 +0000 (18:18 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 24 Jul 2011 16:18:19 +0000 (18:18 +0200)
pakfire/constants.py
pakfire/packages/base.py
pakfire/packages/binary.py
pakfire/packages/packager.py
pakfire/packages/solv.py
pakfire/packages/source.py
pakfire/repository/index.py
po/pakfire.pot

index bb2982e257216d0a8834f348833c8363e7abcb74..e61acfe1322f331f63233965a73a23338e09b11a 100644 (file)
@@ -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"
index 8f6f467e483cc18784dd1c1aa17af40c58c883ec..ecf7f99cf4410b61f26455cf52a1ab07ea91f45d 100644 (file)
@@ -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)
index 15005662425aff907da900d3b46d40c2e66e7c44..d963f5e38107cadbab452d056e6fc42e37066584 100644 (file)
@@ -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)
-
index b098bfa7367a4595f16622ad8e2edd3cabbbc8cf..f268e87ff40d46dc19bb5a8b83a985d3177df140 100644 (file)
@@ -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("\"")
index 2742a865c3224d2008460585f95d4113f1ac6afd..3020fc6c00854b33082fb5531f9b052ef383aad5 100644 (file)
@@ -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):
index 3947610a5cf32091e2b6ad44ae675989a328c021..fcb402b92802fca89db38255090dd284616aa010 100644 (file)
@@ -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()
index 9df713bd8bf2601c8c63d6f174015432ee03872d..cf6d6676c86d6837017c805d0b46fd851b4d2d5d 100644 (file)
@@ -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)
index 958dee78db179a772848191f1c6cf9671d11b17b..62532a9173c93b0206d2c0640e6a6c3059246c1c 100644 (file)
@@ -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 <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\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 ""