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