]> git.ipfire.org Git - pakfire.git/commitdiff
builder: Create Pakfire instance before entering context
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 21 Mar 2021 16:35:10 +0000 (16:35 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 21 Mar 2021 16:35:10 +0000 (16:35 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/builder.py

index 711c57561fdebd5a2ed42d724cfb57ad148b30e2..a3ccce4fb4bd9c00bb3c93b0948872c2de3374e5 100644 (file)
@@ -106,10 +106,21 @@ class Builder(object):
        def __enter__(self):
                self.log.debug("Entering %s" % self)
 
+               # Initialise Pakfire instance
+               pakfire = base.Pakfire(
+                       arch=self.arch,
+                       config=self.config,
+                       distro=self.config.distro,
+               )
+
+               # Mount ccache
+               if self.settings.get("enable_ccache"):
+                       pakfire.bind(CCACHE_CACHE_DIR, "/var/cache/ccache")
+
                # Setup domain name resolution in chroot
                #self.setup_dns()
 
-               return BuilderContext(self)
+               return BuilderContext(pakfire, self)
 
        def __exit__(self, type, value, traceback):
                self.log.debug("Leaving %s" % self)
@@ -219,22 +230,13 @@ class Builder(object):
 
 
 class BuilderContext(object):
-       def __init__(self, builder):
+       def __init__(self, pakfire, builder):
+               self.pakfire = pakfire
                self.builder = builder
 
                # Get a reference to the logger
                self.log = self.builder.log
 
-               # Initialise Pakfire instance
-               self.pakfire = base.Pakfire(
-                       config=self.builder.config,
-                       distro=self.builder.config.distro,
-                       arch=self.builder.arch,
-               )
-
-               # Mount ccache
-               self.pakfire.bind(CCACHE_CACHE_DIR, "/var/cache/ccache")
-
        @property
        def environ(self):
                # Build a minimal environment for executing, but try to inherit TERM and LANG