diff options
Diffstat (limited to 'lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/package/deb/pbuilder.py')
-rw-r--r-- | lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/package/deb/pbuilder.py | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/package/deb/pbuilder.py b/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/package/deb/pbuilder.py deleted file mode 100644 index 1ed64c37..00000000 --- a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/package/deb/pbuilder.py +++ /dev/null @@ -1,213 +0,0 @@ -# This program is free software; you can -# redistribute it and/or modify it under the terms of the GNU General Public -# License as published by the Free Software Foundation, version 2. -# -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -# details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., 51 -# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Portions Copyright Buildbot Team Members -# Portions Copyright Marius Rieder <marius.rieder@durchmesser.ch> -""" -Steps and objects related to pbuilder -""" - -import re -import stat -import time - -from twisted.python import log - -from buildbot.steps.shell import WarningCountingShellCommand -from buildbot.process import buildstep -from buildbot.process.buildstep import FAILURE -from buildbot import config - -class DebPbuilder(WarningCountingShellCommand): - """Build a debian package with pbuilder inside of a chroot.""" - name = "pbuilder" - - haltOnFailure = 1 - flunkOnFailure = 1 - description = ["pdebuilding"] - descriptionDone = ["pdebuild"] - - warningPattern = ".*(warning[: ]|\sW: ).*" - - architecture = None - distribution = 'stable' - basetgz = "/var/cache/pbuilder/%(distribution)s-%(architecture)s-buildbot.tgz" - mirror = "http://cdn.debian.net/debian/" - extrapackages = [] - keyring = None - components = None - - maxAge = 60*60*24*7 - pbuilder = '/usr/sbin/pbuilder' - baseOption = '--basetgz' - - def __init__(self, - architecture=None, - distribution=None, - basetgz=None, - mirror=None, - extrapackages=None, - keyring=None, - components=None, - **kwargs): - """ - Creates the DebPbuilder object. - - @type architecture: str - @param architecture: the name of the architecture to build - @type distribution: str - @param distribution: the man of the distribution to use - @type basetgz: str - @param basetgz: the path or path template of the basetgz - @type mirror: str - @param mirror: the mirror for building basetgz - @type extrapackages: list - @param extrapackages: adds packages specified to buildroot - @type keyring: str - @param keyring: keyring file to use for verification - @type components: str - @param components: components to use for chroot creation - @type kwargs: dict - @param kwargs: All further keyword arguments. - """ - WarningCountingShellCommand.__init__(self, **kwargs) - - if architecture: - self.architecture = architecture - if distribution: - self.distribution = distribution - if mirror: - self.mirror = mirror - if extrapackages: - self.extrapackages = extrapackages - if keyring: - self.keyring = keyring - if components: - self.components = components - - if self.architecture: - kwargs['architecture'] = self.architecture - else: - kwargs['architecture'] = 'local' - kwargs['distribution'] = self.distribution - - if basetgz: - self.basetgz = basetgz % kwargs - else: - self.basetgz = self.basetgz % kwargs - - if not self.distribution: - config.error("You must specify a distribution.") - - self.command = ['pdebuild', '--buildresult', '.', '--pbuilder', self.pbuilder] - if self.architecture: - self.command += ['--architecture', self.architecture] - self.command += ['--', '--buildresult', '.', self.baseOption, self.basetgz] - if self.extrapackages: - self.command += ['--extrapackages', " ".join(self.extrapackages)] - - self.suppressions.append((None, re.compile("\.pbuilderrc does not exist"), None, None)) - - # Check for Basetgz - def start(self): - cmd = buildstep.RemoteCommand('stat', {'file': self.basetgz}) - d = self.runCommand(cmd) - d.addCallback(lambda res: self.checkBasetgz(cmd)) - d.addErrback(self.failed) - return d - - def checkBasetgz(self, cmd): - if cmd.rc != 0: - log.msg("basetgz not found, initializing it.") - - command = ['sudo', self.pbuilder, '--create', self.baseOption, - self.basetgz, '--distribution', self.distribution, - '--mirror', self.mirror] - if self.architecture: - command += ['--architecture', self.architecture] - if self.extrapackages: - command += ['--extrapackages', " ".join(self.extrapackages)] - if self.keyring: - command += ['--debootstrapopts', "--keyring=%s" % self.keyring] - if self.components: - command += ['--components', self.components] - - cmd = buildstep.RemoteShellCommand(self.getWorkdir(), command) - - stdio_log = stdio_log = self.addLog("pbuilder") - cmd.useLog(stdio_log, True, "stdio") - d = self.runCommand(cmd) - self.step_status.setText(["PBuilder create."]) - d.addCallback(lambda res: self.startBuild(cmd)) - return d - s = cmd.updates["stat"][-1] - # basetgz will be a file when running in pbuilder - # and a directory in case of cowbuilder - if stat.S_ISREG(s[stat.ST_MODE]) or stat.S_ISDIR(s[stat.ST_MODE]): - log.msg("%s found." % self.basetgz) - age = time.time() - s[stat.ST_MTIME] - if age >= self.maxAge: - log.msg("basetgz outdated, updating") - command = ['sudo', self.pbuilder, '--update', - self.baseOption, self.basetgz] - - cmd = buildstep.RemoteShellCommand(self.getWorkdir(), command) - stdio_log = stdio_log = self.addLog("pbuilder") - cmd.useLog(stdio_log, True, "stdio") - d = self.runCommand(cmd) - self.step_status.setText(["PBuilder update."]) - d.addCallback(lambda res: self.startBuild(cmd)) - return d - return self.startBuild(cmd) - else: - log.msg("%s is not a file or a directory." % self.basetgz) - self.finished(FAILURE) - - def startBuild(self, cmd): - if cmd.rc != 0: - log.msg("Failure when running %s." % cmd) - self.finished(FAILURE) - else: - return WarningCountingShellCommand.start(self) - - def commandComplete(self, cmd): - out = cmd.logs['stdio'].getText() - m = re.search(r"dpkg-genchanges >\.\./(.+\.changes)", out) - if m: - self.setProperty("deb-changes", m.group(1), "DebPbuilder") - -class DebCowbuilder(DebPbuilder): - """Build a debian package with cowbuilder inside of a chroot.""" - name = "cowbuilder" - - description = ["pdebuilding"] - descriptionDone = ["pdebuild"] - - basetgz = "/var/cache/pbuilder/%(distribution)s-%(architecture)s-buildbot.cow/" - - pbuilder = '/usr/sbin/cowbuilder' - baseOption = '--basepath' - -class UbuPbuilder(DebPbuilder): - """Build a Ubuntu package with pbuilder inside of a chroot.""" - distribution = None - mirror = "http://archive.ubuntu.com/ubuntu/" - - components = "main universe" - -class UbuCowbuilder(DebCowbuilder): - """Build a Ubuntu package with cowbuilder inside of a chroot.""" - distribution = None - mirror = "http://archive.ubuntu.com/ubuntu/" - - components = "main universe" |