Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/buildbot/buildbot/steps/package/rpm/rpmbuild.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildbot/buildbot/steps/package/rpm/rpmbuild.py')
-rw-r--r--buildbot/buildbot/steps/package/rpm/rpmbuild.py144
1 files changed, 0 insertions, 144 deletions
diff --git a/buildbot/buildbot/steps/package/rpm/rpmbuild.py b/buildbot/buildbot/steps/package/rpm/rpmbuild.py
deleted file mode 100644
index 38bce85..0000000
--- a/buildbot/buildbot/steps/package/rpm/rpmbuild.py
+++ /dev/null
@@ -1,144 +0,0 @@
-# Dan Radez <dradez+buildbot@redhat.com>
-# Steve 'Ashcrow' Milner <smilner+buildbot@redhat.com>
-#
-# This software may be freely redistributed under the terms of the GNU
-# general public license.
-#
-# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-"""
-RPM Building steps.
-"""
-
-from buildbot.steps.shell import ShellCommand
-from buildbot.process.buildstep import RemoteShellCommand
-
-
-class RpmBuild(ShellCommand):
- """
- Build and RPM based on pased spec filename
- """
-
- import os.path
-
- name = "rpmbuilder"
- haltOnFailure = 1
- flunkOnFailure = 1
- description = ["RPMBUILD"]
- descriptionDone = ["RPMBUILD"]
-
- def __init__(self,
- specfile=None,
- topdir='`pwd`',
- builddir='`pwd`',
- rpmdir='`pwd`',
- sourcedir='`pwd`',
- specdir='`pwd`',
- srcrpmdir='`pwd`',
- dist='.el5',
- autoRelease=False,
- vcsRevision=False,
- **kwargs):
- """
- Creates the RpmBuild object.
-
- @type specfile: str
- @param specfile: the name of the spec file for the rpmbuild
- @type topdir: str
- @param topdir: the top directory for rpm building.
- @type builddir: str
- @param builddir: the directory to use for building
- @type rpmdir: str
- @param rpmdir: the directory to dump the rpms into
- @type sourcedir: str
- @param sourcedir: the directory that houses source code
- @type srcrpmdir: str
- @param srcrpmdir: the directory to dump source rpms into
- @type dist: str
- @param dist: the distribution to build for
- @type autoRelease: boolean
- @param autoRelease: if the auto release mechanics should be used
- @type vcsRevision: boolean
- @param vcsRevision: if the vcs revision mechanics should be used
- @type kwargs: dict
- @param kwargs: All further keyword arguments.
- """
- ShellCommand.__init__(self, **kwargs)
- self.addFactoryArguments(topdir=topdir,
- builddir=builddir,
- rpmdir=rpmdir,
- sourcedir=sourcedir,
- specdir=specdir,
- srcrpmdir=srcrpmdir,
- specfile=specfile,
- dist=dist,
- autoRelease=autoRelease,
- vcsRevision=vcsRevision)
- self.rpmbuild = (
- 'rpmbuild --define "_topdir %s" --define "_builddir %s"'
- ' --define "_rpmdir %s" --define "_sourcedir %s"'
- ' --define "_specdir %s" --define "_srcrpmdir %s"'
- ' --define "dist %s"' % (topdir, builddir, rpmdir, sourcedir,
- specdir, srcrpmdir, dist))
- self.specfile = specfile
- self.autoRelease = autoRelease
- self.vcsRevision = vcsRevision
-
- def start(self):
- """
- Buildbot Calls Me when it's time to start
- """
- if self.autoRelease:
- relfile = '%s.release' % (
- self.os.path.basename(self.specfile).split('.')[0])
- try:
- rfile = open(relfile, 'r')
- rel = int(rfile.readline().strip())
- rfile.close()
- except:
- rel = 0
- self.rpmbuild = self.rpmbuild + ' --define "_release %s"' % rel
- rfile = open(relfile, 'w')
- rfile.write(str(rel+1))
- rfile.close()
-
- if self.vcsRevision:
- self.rpmbuild = self.rpmbuild + ' --define "_revision %s"' % \
- self.getProperty('got_revision')
-
- self.rpmbuild = self.rpmbuild + ' -ba %s' % self.specfile
-
- self.command = ['bash', '-c', self.rpmbuild]
-
- # create the actual RemoteShellCommand instance now
- kwargs = self.remote_kwargs
- kwargs['command'] = self.command
- cmd = RemoteShellCommand(**kwargs)
- self.setupEnvironment(cmd)
- self.checkForOldSlaveAndLogfiles()
- self.startCommand(cmd)
-
- def createSummary(self, log):
- """
- Create nice summary logs.
-
- @param log: The log to create summary off of.
- """
- rpm_prefixes = ['Provides:', 'Requires(rpmlib):', 'Requires:',
- 'Checking for unpackaged', 'Wrote:',
- 'Executing(%', '+ ']
- rpm_err_pfx = [' ', 'RPM build errors:', 'error: ']
-
- rpmcmdlog = []
- rpmerrors = []
-
- for line in log.readlines():
- for pfx in rpm_prefixes:
- if pfx in line:
- rpmcmdlog.append(line)
- for err in rpm_err_pfx:
- if err in line:
- rpmerrors.append(line)
- self.addCompleteLog('RPM Command Log', "".join(rpmcmdlog))
- self.addCompleteLog('RPM Errors', "".join(rpmerrors))