[projects/pld-builder.new] Make builddir as short as possible.
arekm
arekm at pld-linux.org
Wed Jan 27 20:54:36 CET 2016
commit 839f8b9ff1983da413f67587a62c48322fcb747d
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Wed Jan 27 20:51:52 2016 +0100
Make builddir as short as possible.
We want /tmp/B.XYZ to be as short as possible. It ends up in various
process building paths which can lead to:
make[2]: execvp: /bin/sh: Argument list too long
PLD_Builder/install.py | 4 ++--
PLD_Builder/request.py | 12 +++++++++---
PLD_Builder/rpm_builder.py | 12 ++++++------
3 files changed, 17 insertions(+), 11 deletions(-)
---
diff --git a/PLD_Builder/install.py b/PLD_Builder/install.py
index b3a3dc7..0131e19 100644
--- a/PLD_Builder/install.py
+++ b/PLD_Builder/install.py
@@ -105,7 +105,7 @@ def uninstall_self_conflict(b):
"rpmbuild -bp --nobuild --short-circuit --define 'prep exit 0' %(rpmdefs)s %(topdir)s/%(spec)s 2>&1" % {
'tmpdir': b.tmpdir(),
'rpmdefs' : b.rpmbuild_opts(),
- 'topdir' : b._topdir,
+ 'topdir' : b.get_topdir(),
'spec': b.spec,
})
# java-sun >= 1.5 conflicts with soprano-2.1.67-1.src
@@ -131,7 +131,7 @@ def install_br(r, b):
tmpdir = b.tmpdir()
cmd = "set -e; TMPDIR=%(tmpdir)s rpmbuild --nobuild %(rpmdefs)s %(topdir)s/%(spec)s 2>&1" % {
'tmpdir': tmpdir,
- 'topdir' : b._topdir,
+ 'topdir' : b.get_topdir(),
'rpmdefs' : b.rpmbuild_opts(),
'spec': b.spec,
}
diff --git a/PLD_Builder/request.py b/PLD_Builder/request.py
index 9cdc055..3633fca 100644
--- a/PLD_Builder/request.py
+++ b/PLD_Builder/request.py
@@ -10,6 +10,7 @@ import os
import urllib
import cgi
import pytz
+import tempfile
import util
import log
@@ -183,7 +184,12 @@ class Batch:
self.parse_xml(e)
- self._topdir = '/tmp/B.%s' % self.b_id
+ self.__topdir = None
+
+ def get_topdir(self):
+ if not self.__topdir:
+ self.__topdir = tempfile.mkdtemp(prefix='B.', dir='/tmp')
+ return self.__topdir
def parse_xml(self, e):
for c in e.childNodes:
@@ -239,7 +245,7 @@ class Batch:
# it's better to have TMPDIR and BUILD dir on same partition:
# + /usr/bin/bzip2 -dc /home/services/builder/rpm/packages/kernel/patch-2.6.27.61.bz2
# patch: **** Can't rename file /tmp/B.a1b1d3/poKWwRlp to drivers/scsi/hosts.c : No such file or directory
- path = os.path.join(self._topdir, 'BUILD', 'tmp')
+ path = os.path.join(self.get_topdir(), 'BUILD', 'tmp')
return path
def is_done(self):
@@ -343,7 +349,7 @@ class Batch:
"""
rpmopts = self.bconds_string() + self.kernel_string() + self.target_string() + self.defines_string()
rpmdefs = \
- "--define '_topdir %s' " % self._topdir + \
+ "--define '_topdir %s' " % self.get_topdir() + \
"--define '_specdir %{_topdir}' " \
"--define '_sourcedir %{_specdir}' " \
"--define '_rpmdir %{_topdir}/RPMS' " \
diff --git a/PLD_Builder/rpm_builder.py b/PLD_Builder/rpm_builder.py
index 3c94a0b..00ef336 100644
--- a/PLD_Builder/rpm_builder.py
+++ b/PLD_Builder/rpm_builder.py
@@ -189,7 +189,7 @@ def build_rpm(r, b):
rpm -Uhv --nodeps %(rpmdefs)s %(src_rpm)s;
rm -f %(src_rpm)s;
""" % {
- 'topdir' : b._topdir,
+ 'topdir' : b.get_topdir(),
'rpmdefs' : b.rpmbuild_opts(),
'src_rpm' : b.src_rpm
}, logfile = b.logfile)
@@ -208,7 +208,7 @@ def build_rpm(r, b):
"rpmbuild -bp --short-circuit --nodeps %(rpmdefs)s --define 'prep exit 0' %(topdir)s/%(spec)s" % {
'tmpdir': tmpdir,
'nice' : config.nice,
- 'topdir' : b._topdir,
+ 'topdir' : b.get_topdir(),
'rpmdefs' : b.rpmbuild_opts(),
'spec': b.spec,
}
@@ -232,7 +232,7 @@ def build_rpm(r, b):
'tmpdir': tmpdir,
'nice' : config.nice,
'rpmdefs' : b.rpmbuild_opts(),
- 'topdir' : b._topdir,
+ 'topdir' : b.get_topdir(),
'max_jobs' : max_jobs,
'spec': b.spec,
}
@@ -243,7 +243,7 @@ def build_rpm(r, b):
b.log_line("ended at: %s, done in %s" % (time.asctime(), datetime.timedelta(0, end_time - begin_time)))
if res:
res = "FAIL"
- files = util.collect_files(b.logfile, basedir = b._topdir)
+ files = util.collect_files(b.logfile, basedir = b.get_topdir())
if len(files) > 0:
r.chroot_files.extend(files)
else:
@@ -261,7 +261,7 @@ def build_rpm(r, b):
chmod -R u+rwX %(topdir)s/BUILD;
rm -rf %(topdir)s/{tmp,BUILD}
""" % {
- 'topdir' : b._topdir,
+ 'topdir' : b.get_topdir(),
}, logfile = b.logfile)
def ll(l):
@@ -296,7 +296,7 @@ def build_rpm(r, b):
set -ex;
rm -rf %(topdir)s;
""" % {
- 'topdir' : b._topdir,
+ 'topdir' : b.get_topdir(),
}, logfile = b.logfile)
def uploadinfo(b):
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/projects/pld-builder.new.git/commitdiff/839f8b9ff1983da413f67587a62c48322fcb747d
More information about the pld-cvs-commit
mailing list