From: Michael Tremer Date: Sat, 9 Jan 2021 17:24:00 +0000 (+0000) Subject: builder: Initialise Pakfire() when entering context X-Git-Tag: 0.9.28~1285^2~916 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=698705fcc0d39335cc028fca64bb84a8e09b503a;p=pakfire.git builder: Initialise Pakfire() when entering context Signed-off-by: Michael Tremer --- diff --git a/src/pakfire/builder.py b/src/pakfire/builder.py index 563539c56..9ad87a193 100644 --- a/src/pakfire/builder.py +++ b/src/pakfire/builder.py @@ -121,25 +121,6 @@ class Builder(object): if self.settings.get("private_network", None): _pakfire.unshare(_pakfire.SCHED_CLONE_NEWNET) - # Create Pakfire instance - self.pakfire = base.Pakfire(path=self.path, config=self.config, distro=self.config.distro, arch=arch) - - def __del__(self): - """ - Releases build environment and clean up - """ - # Umount the build environment - self._umountall() - - # Destroy the pakfire instance - del self.pakfire - - # Unlock build environment - self.unlock() - - # Delete everything - self._destroy() - def __enter__(self): self.log.debug("Entering %s" % self.path) @@ -148,7 +129,7 @@ class Builder(object): self._mountall() except OSError as e: if e.errno == 30: # Read-only FS - raise BuildError("Buildroot is read-only: %s" % self.pakfire.path) + raise BuildError("Buildroot is read-only: %s" % self.path) # Raise all other errors raise @@ -189,6 +170,15 @@ class Builder(object): else: util.orphans_kill(self.path) + # Umount the build environment + self._umountall() + + # Unlock build environment + self.unlock() + + # Delete everything + self._destroy() + def setup_logging(self, logfile): if logfile: self.log = log.getChild(self.build_id) @@ -450,12 +440,19 @@ class BuilderContext(object): def __init__(self, builder): self.builder = builder - # Get a reference to Pakfire - self.pakfire = self.builder.pakfire - # Get a reference to the logger self.log = self.builder.log + # Initialise Pakfire instance + self.pakfire = base.Pakfire( + path=self.builder.path, + config=self.builder.config, + distro=self.builder.config.distro, + arch=self.builder.arch, + ) + + self.setup() + @property def arch(self): return self.pakfire.arch