]> git.ipfire.org Git - pakfire.git/commitdiff
Add an automatic install test to see if we could install the built packages.
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 18 Mar 2011 11:58:17 +0000 (12:58 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 18 Mar 2011 11:59:07 +0000 (12:59 +0100)
pakfire/__init__.py
pakfire/builder.py

index 90cfdaac5f7ed44a57e70e43958172eaa148c24a..ccca46159947cf8c2d00240f0facd06928f8c96d 100644 (file)
@@ -118,6 +118,7 @@ class Pakfire(object):
                        b.prepare()
                        b.extract()
                        b.build()
+                       b.install_test()
 
                        # Copy-out all resultfiles
                        for resultdir in resultdirs:
index 8eee69711d01508e2fe68690eedf3bb6f0d7c070..1beeca011651f62d7c3c87437c1b3be2977fb4ed 100644 (file)
@@ -182,15 +182,40 @@ class Builder(object):
                """
                        Install everything that is required in requires.
                """
+               # If we got nothing to do, we quit immediately.
+               if not requires:
+                       return
+
                ds = depsolve.DependencySet(self.pakfire)
                for r in requires:
-                       ds.add_requires(r)
+                       if isinstance(r, packages.BinaryPackage):
+                               ds.add_package(r)
+                       else:
+                               ds.add_requires(r)
                ds.resolve()
                ds.dump()
 
                ts = transaction.Transaction(self.pakfire, ds)
                ts.run()
 
+       def install_test(self):
+               pkgs = []
+
+               # Connect packages to the FS repository.
+               r = repository.FileSystemRepository(self.pakfire)
+
+               for dir, subdirs, files in os.walk(self.chrootPath("result")):
+                       for file in files:
+                               file = os.path.join(dir, file)
+
+                               if not file.endswith(PACKAGE_EXTENSION):
+                                       continue
+
+                               p = packages.BinaryPackage(self.pakfire, r, file)
+                               pkgs.append(p)
+
+               self.install(pkgs)
+
        @property
        def log(self):
                # XXX for now, return the root logger