pld-builder.new: PLD_Builder/install.py, PLD_Builder/request.py, PLD_Builde...
glen
glen at pld-linux.org
Wed Mar 21 02:25:57 CET 2012
Author: glen Date: Wed Mar 21 01:25:57 2012 GMT
Module: pld-builder.new Tag: HEAD
---- Log message:
- own build dir for each package
---- Files affected:
pld-builder.new/PLD_Builder:
install.py (1.26 -> 1.27) , request.py (1.94 -> 1.95) , rpm_builder.py (1.128 -> 1.129)
---- Diffs:
================================================================
Index: pld-builder.new/PLD_Builder/install.py
diff -u pld-builder.new/PLD_Builder/install.py:1.26 pld-builder.new/PLD_Builder/install.py:1.27
--- pld-builder.new/PLD_Builder/install.py:1.26 Tue Feb 14 18:56:13 2012
+++ pld-builder.new/PLD_Builder/install.py Wed Mar 21 02:25:52 2012
@@ -100,10 +100,14 @@
def uninstall_self_conflict(b):
b.log_line("checking BuildConflict-ing packages")
- rpmbuild_opt = "%s %s %s" % (b.target_string(), b.kernel_string(), b.bconds_string())
tmpdir = "/tmp/BR." + b.b_id[0:6]
- f = chroot.popen("cd rpm/SPECS; TMPDIR=%s rpmbuild -bp --nobuild --short-circuit --define 'prep exit 0' %s %s 2>&1" \
- % (tmpdir, rpmbuild_opt, b.spec))
+ packagename = b.spec[:-5]
+ f = chroot.popen("set -ex; TMPDIR=%(tmpdir)s rpmbuild -bp --nobuild --short-circuit --define 'prep exit 0' %(rpmdefs)s rpm/packages/%(package)s/%(spec)s 2>&1" % {
+ 'tmpdir': tmpdir,
+ 'rpmdefs' : b.rpmbuild_opts(),
+ 'package' : packagename,
+ 'spec': b.spec,
+ })
# java-sun >= 1.5 conflicts with soprano-2.1.67-1.src
# java-sun conflicts with soprano-2.1.67-1.src
rx = re.compile(r"\s+(?P<name>[\w-]+)\s+.*conflicts with [^\s]+-[^-]+-[^-]+\.src($| .*)")
@@ -125,9 +129,14 @@
ignore_br = re.compile(r'^\s*(rpmlib|cpuinfo|getconf|uname|soname|user|group|mounted|diskspace|digest|gnupg|macro|envvar|running|sanitycheck|vcheck|signature|verify|exists|executable|readable|writable)\(.*')
tmpdir = "/tmp/BR." + b.b_id[0:6]
+ packagename = b.spec[:-5]
chroot.run("install -m 700 -d %s" % tmpdir)
- cmd = "cd rpm/SPECS; TMPDIR=%s rpmbuild --nobuild %s %s %s %s 2>&1" \
- % (tmpdir, b.target_string(), b.kernel_string(), b.bconds_string(), b.spec)
+ cmd = "set -ex; TMPDIR=%(tmpdir)s rpmbuild --nobuild %(rpmdefs)s rpm/packages/%(package)s/%(spec)s 2>&1" % {
+ 'tmpdir': tmpdir,
+ 'rpmdefs' : b.rpmbuild_opts(),
+ 'package' : packagename,
+ 'spec': b.spec,
+ }
f = chroot.popen(cmd)
rx = re.compile(r"^\s*(?P<name>[^\s]+) .*is needed by")
needed = {}
================================================================
Index: pld-builder.new/PLD_Builder/request.py
diff -u pld-builder.new/PLD_Builder/request.py:1.94 pld-builder.new/PLD_Builder/request.py:1.95
--- pld-builder.new/PLD_Builder/request.py:1.94 Mon Oct 3 16:09:22 2011
+++ pld-builder.new/PLD_Builder/request.py Wed Mar 21 02:25:52 2012
@@ -235,7 +235,7 @@
if self.is_command():
desc = "SH: <pre>%s</pre> flags: [%s]" % (self.command, ' '.join(self.command_flags))
else:
- package_url = "http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/%(package)s/%(spec)s?only_with_tag=%(branch)s" % {
+ package_url = "http://cvs.pld-linux.org/packages/%(package)s/%(spec)s?only_with_tag=%(branch)s" % {
'spec': self.spec,
'branch': self.branch,
'package': self.spec[:-5],
@@ -301,6 +301,18 @@
+ link_post)
f.write("%s]</small></li>\n" % string.join(builders))
+ def rpmbuild_opts(self):
+ """
+ return all rpmbuild options related to this build
+ """
+ bconds = self.bconds_string() + self.kernel_string() + self.target_string()
+ rpmdefs = \
+ "--define '_topdir %(echo $HOME/rpm)' " \
+ "--define '_specdir %{_topdir}/packages/%%{name}' " \
+ "--define '_sourcedir %{_specdir}' " \
+ "--define '_builddir %{_topdir}/BUILD/%%{name}' "
+ return rpmdefs + bconds
+
def kernel_string(self):
r = ""
if self.kernel != "":
@@ -313,9 +325,6 @@
else:
return ""
- def default_target(self, arch):
- self.target.append("%s-pld-linux" % arch)
-
def bconds_string(self):
r = ""
for b in self.bconds_with:
@@ -323,6 +332,9 @@
for b in self.bconds_without:
r = r + " --without " + b
return r
+
+ def default_target(self, arch):
+ self.target.append("%s-pld-linux" % arch)
def write_to(self, f):
f.write("""
================================================================
Index: pld-builder.new/PLD_Builder/rpm_builder.py
diff -u pld-builder.new/PLD_Builder/rpm_builder.py:1.128 pld-builder.new/PLD_Builder/rpm_builder.py:1.129
--- pld-builder.new/PLD_Builder/rpm_builder.py:1.128 Sat Oct 1 20:54:51 2011
+++ pld-builder.new/PLD_Builder/rpm_builder.py Wed Mar 21 02:25:52 2012
@@ -144,7 +144,14 @@
""", 'root')
def build_rpm(r, b):
- status.push("building %s" % b.spec)
+ if len(b.spec) <= 5:
+ # should not really get here
+ b.log_line("error: No .spec not given of malformed: '%s'" % b.spec)
+ res = "FAIL_INTERNAL"
+ return res
+
+ packagename = b.spec[:-5]
+ status.push("building %s (%s)" % (b.spec, packagename))
b.log_line("request from: %s" % r.requester)
if check_skip_build(r, b):
@@ -156,10 +163,17 @@
fetch_src(r, b)
b.log_line("installing srpm: %s" % b.src_rpm)
res = chroot.run("""
- install -d rpm/SPECS rpm/SOURCES
- rpm -Uhv %s
- """ % b.src_rpm, logfile = b.logfile)
- chroot.run("rm -f %s" % b.src_rpm, logfile = b.logfile)
+ # b.id %(bid)s
+ set -ex;
+ install -d rpm/packages/%(package)s rpm/BUILD/%(package)s;
+ rpm -Uhv %(rpmdefs)s %(src_rpm)s;
+ rm -f %(src_rpm)s;
+ """ % {
+ 'bid' : b.b_id,
+ 'package' : packagename,
+ 'rpmdefs' : b.rpmbuild_opts(),
+ 'src_rpm' : b.src_rpm
+ }, logfile = b.logfile)
b.files = []
tmpdir = "/tmp/B." + b.b_id[0:6]
if res:
@@ -170,10 +184,15 @@
chroot.run("install -m 700 -d %s" % tmpdir)
b.default_target(config.arch)
- rpmbuild_opt = "%s %s %s" % (b.target_string(), b.kernel_string(), b.bconds_string())
# check for build arch before filling BR
- cmd = "cd rpm/SPECS; TMPDIR=%s exec nice -n %s rpmbuild -bp --short-circuit --nodeps --define 'prep exit 0' %s %s" % \
- (tmpdir, config.nice, rpmbuild_opt, b.spec)
+ cmd = "set -ex; TMPDIR=%(tmpdir)s exec nice -n %(nice)s " \
+ "rpmbuild -bp --short-circuit --nodeps %(rpmdefs)s --define 'prep exit 0' rpm/packages/%(package)s/%(spec)s" % {
+ 'tmpdir': tmpdir,
+ 'nice' : config.nice,
+ 'rpmdefs' : b.rpmbuild_opts(),
+ 'package' : packagename,
+ 'spec': b.spec,
+ }
res = chroot.run(cmd, logfile = b.logfile)
if res:
res = "UNSUPP"
@@ -188,8 +207,16 @@
max_jobs = max(min(int(os.sysconf('SC_NPROCESSORS_ONLN') + 1), config.max_jobs), 1)
if r.max_jobs > 0:
max_jobs = max(min(config.max_jobs, r.max_jobs), 1)
- cmd = "echo build-id: %s; cd rpm/SPECS; TMPDIR=%s exec nice -n %s rpmbuild -bb --define '_smp_mflags -j%d' %s %s" % \
- (r.id, tmpdir, config.nice, max_jobs, rpmbuild_opt, b.spec)
+ cmd = "set -ex; : build-id: %(r_id)s; TMPDIR=%(tmpdir)s exec nice -n %(nice)s " \
+ "rpmbuild -bb --define '_smp_mflags -j%(max_jobs)d' %(rpmdefs)s rpm/packages/%(package)s/%(spec)s" % {
+ 'r_id' : r.id,
+ 'tmpdir': tmpdir,
+ 'nice' : config.nice,
+ 'rpmdefs' : b.rpmbuild_opts(),
+ 'package' : packagename,
+ 'max_jobs' : max_jobs,
+ 'spec': b.spec,
+ }
b.log_line("building RPM using: %s" % cmd)
begin_time = time.time()
res = chroot.run(cmd, logfile = b.logfile)
@@ -209,10 +236,14 @@
res = "FAIL_%s" % last_section.upper()
b.files = files
- chroot.run("rm -rf %s; cd rpm/SPECS; rpmbuild --nodeps --nobuild " \
- "--clean --rmspec --rmsource %s" % \
- (tmpdir, b.spec), logfile = b.logfile)
- chroot.run("chmod -R u+rwX rpm/BUILD/*; rm -rf rpm/BUILD/*", logfile = b.logfile)
+ chroot.run("""
+ set -ex;
+ rpmbuild %(rpmdefs)s --nodeps --nobuild --clean --rmspec --rmsource rpm/packages/%(package)s/%(spec)s
+ rm -rf %(tmpdir)s;
+ chmod -R u+rwX rpm/BUILD/%(package)s;
+ rm -rf rpm/BUILD/%(package)s;
+ """ %
+ {'tmpdir' : tmpdir, 'spec': b.spec, 'package' : packagename, 'rpmdefs' : b.rpmbuild_opts()}, logfile = b.logfile)
def ll(l):
util.append_to(b.logfile, l)
================================================================
---- CVS-web:
http://cvs.pld-linux.org//pld-builder.new/PLD_Builder/install.py?r1=1.26&r2=1.27&f=u
http://cvs.pld-linux.org//pld-builder.new/PLD_Builder/request.py?r1=1.94&r2=1.95&f=u
http://cvs.pld-linux.org//pld-builder.new/PLD_Builder/rpm_builder.py?r1=1.128&r2=1.129&f=u
More information about the pld-cvs-commit
mailing list