# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
-import re
+import re, os
import string
import StringIO
'poldek',
'rpm-build',
'pdksh',
+ 'mksh',
'coreutils'
]
res = chroot.run("rpm -e %s" % k, logfile = b.logfile, user = "root")
if res != 0:
b.log_line("package removal failed")
+ return False
else:
b.log_line("packages removed sucessfuly")
else:
b.log_line("error: conflicting packages uninstallation failed")
return False
else:
- k = string.join(conflicting.keys())
- b.log_line("removing %s" % k)
- res = chroot.run("poldek --noask --erase %s" % k, logfile = b.logfile, user = "root")
- if res != 0:
- b.log_line("package removal failed")
- return False
+ for k in conflicting.keys():
+ b.log_line("removing %s" % k)
+ res = chroot.run("poldek --noask --erase %s" % k, logfile = b.logfile, user = "root")
+ if res != 0:
+ b.log_line("package %s removal failed" % k)
return True
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))
+ f = chroot.popen("set -e; TMPDIR=%(tmpdir)s " \
+ "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,
+ '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($| .*)")
# ignore internal rpm dependencies, see lib/rpmns.c for list
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]
- chroot.run("install -m 700 -d %s" % tmpdir)
- cmd = "cd rpm/SPECS; TMPDIR=%s rpmbuild --nobuild %s %s 2>&1" \
- % (tmpdir, b.bconds_string(), b.spec)
+ tmpdir = b.tmpdir()
+ cmd = "set -e; TMPDIR=%(tmpdir)s rpmbuild --nobuild %(rpmdefs)s %(topdir)s/%(spec)s 2>&1" % {
+ 'tmpdir': tmpdir,
+ 'topdir' : b._topdir,
+ 'rpmdefs' : b.rpmbuild_opts(),
+ 'spec': b.spec,
+ }
f = chroot.popen(cmd)
rx = re.compile(r"^\s*(?P<name>[^\s]+) .*is needed by")
needed = {}
if m and not ignore_br.match(l):
needed[m.group('name')] = 1
f.close()
- chroot.run("rm -rf %s" % tmpdir)
return needed
needed = get_missing_br(r, b);
if len(needed) == 0:
b.log_line("no BR needed")
return True
-
+
nbr = ""
for bre in needed.keys():
nbr = nbr + " " + re.escape(bre)