From 0db30904bda28827878bce7c4b271aeb0630839c Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 8 Oct 2011 21:36:00 +0200 Subject: [PATCH] pakfire-builder now creates a source pkg when a makefile is passed. --- python/pakfire/builder.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/python/pakfire/builder.py b/python/pakfire/builder.py index 4ee298b2e..d14b6dea6 100644 --- a/python/pakfire/builder.py +++ b/python/pakfire/builder.py @@ -60,7 +60,7 @@ class BuildEnviron(object): # The version of the kernel this machine is running. kernel_version = os.uname()[2] - def __init__(self, pkg=None, distro_config=None, build_id=None, logfile=None, + def __init__(self, filename, distro_config=None, build_id=None, logfile=None, builder_mode="release", **pakfire_args): # Set mode. assert builder_mode in ("development", "release",) @@ -117,12 +117,21 @@ class BuildEnviron(object): self.distro = self.pakfire.distro self.path = self.pakfire.path + # Where do we put the result? + self.resultdir = os.path.join(self.path, "result") + # Open package. - if pkg.endswith(MAKEFILE_EXTENSION): - self.pkg = packages.Makefile(self.pakfire, pkg) - elif pkg.endswith(PACKAGE_EXTENSION): - self.pkg = packages.SourcePackage(self.pakfire, None, pkg) - assert self.pkg, pkg + # If we have a plain makefile, we first build a source package and go with that. + if filename.endswith(".%s" % MAKEFILE_EXTENSION): + pkg = packages.Makefile(self.pakfire, filename) + pkg.dist([self.resultdir,]) + + filename = os.path.join(self.resultdir, "src", pkg.package_filename) + assert os.path.exists(filename), filename + + # Open source package. + self.pkg = packages.SourcePackage(self.pakfire, None, filename) + assert self.pkg, filename # Log the package information. self.log.info(_("Package information:")) @@ -133,12 +142,6 @@ class BuildEnviron(object): # Path where we extract the package and put all the source files. self.build_dir = os.path.join(self.path, "usr/src", self.pkg.friendly_name) - # Download all package files. - # In case of a SourcePackage, we don't need to do that because - # it includes everyting we need. - if isinstance(self.pkg, packages.Makefile): - self.pkg.download() - # XXX need to make this configureable self.settings = { "enable_loop_devices" : True, -- 2.39.5