from .system import system
from .constants import *
from .i18n import _
-from .errors import BuildError, BuildRootLocked, Error
+from .errors import BuildError, Error
BUILD_LOG_HEADER = """
# Path
self.path = os.path.join(BUILD_ROOT, self.build_id)
- self._lock = None
# Architecture to build for
self.arch = arch or _pakfire.native_arch()
# Raise all other errors
raise
- # Lock the build environment
- self.lock()
-
# Setup domain name resolution in chroot
self.setup_dns()
# Umount the build environment
self._umountall()
- # Unlock build environment
- self.unlock()
-
# Delete everything
self._destroy()
return cgroup
- def lock(self):
- filename = os.path.join(self.path, ".lock")
-
- try:
- self._lock = open(filename, "a+")
- except IOError as e:
- return 0
-
- try:
- fcntl.lockf(self._lock.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)
- except IOError as e:
- raise BuildRootLocked("Buildroot is locked")
-
- return 1
-
- def unlock(self):
- if self._lock:
- self._lock.close()
- self._lock = None
-
def _destroy(self):
self.log.debug("Destroying environment %s" % self.path)