| Index: third_party/buildbot_7_12/buildbot/steps/package/rpm/rpmbuild.py
|
| diff --git a/third_party/buildbot_7_12/buildbot/steps/package/rpm/rpmbuild.py b/third_party/buildbot_7_12/buildbot/steps/package/rpm/rpmbuild.py
|
| deleted file mode 100644
|
| index 38bce85b8e3fe7efb50595efc00fdf3c1446a967..0000000000000000000000000000000000000000
|
| --- a/third_party/buildbot_7_12/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))
|
|
|