summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-devtools/rpm/rpm_5.4.0.bb31
1 files changed, 20 insertions, 11 deletions
diff --git a/meta/recipes-devtools/rpm/rpm_5.4.0.bb b/meta/recipes-devtools/rpm/rpm_5.4.0.bb
index e158b80cd1..ba1a2a2341 100644
--- a/meta/recipes-devtools/rpm/rpm_5.4.0.bb
+++ b/meta/recipes-devtools/rpm/rpm_5.4.0.bb
@@ -328,12 +328,19 @@ FILE_${PN}-dev = "${includedir}/rpm \
328###%{_rpmhome}/lib/librpmjsm.la 328###%{_rpmhome}/lib/librpmjsm.la
329###%{_rpmhome}/lib/librpmjsm.so 329###%{_rpmhome}/lib/librpmjsm.so
330 330
331def subprocess_setup():
332 import signal
333 # Python installs a SIGPIPE handler by default. This is usually not what
334 # non-Python subprocesses expect.
335 # SIGPIPE errors are known issues with gzip/bash
336 signal.signal(signal.SIGPIPE, signal.SIG_DFL)
337
331# If base_do_unpack is refactored this may have to be adjusted 338# If base_do_unpack is refactored this may have to be adjusted
332python base_do_unpack_append() { 339python base_do_unpack_append() {
333 import subprocess 340 import subprocess
334 341
335 for url in src_uri: 342 for url in bb.data.getVar("SRC_URI", d, True).split():
336 local = bb.fetch2.localpath(url) 343 local = bb.fetch2.localpath(url, d)
337 if local is None: 344 if local is None:
338 continue 345 continue
339 local = os.path.realpath(local) 346 local = os.path.realpath(local)
@@ -344,7 +351,7 @@ python base_do_unpack_append() {
344 cmd = "%s %s | cpio -i" % (cmdname, efile) 351 cmd = "%s %s | cpio -i" % (cmdname, efile)
345 cmd = "PATH=\"%s\" %s" % (bb.data.getVar('PATH', localdata, 1), cmd) 352 cmd = "PATH=\"%s\" %s" % (bb.data.getVar('PATH', localdata, 1), cmd)
346 old_cwd = os.getcwd() 353 old_cwd = os.getcwd()
347 newdir = ("%s/%s" % (old_cwd, 'srpm-unpack')) 354 newdir = os.path.join(d.getVar("WORKDIR", True), 'srpm-unpack')
348 bb.mkdirhier(newdir) 355 bb.mkdirhier(newdir)
349 os.chdir(newdir) 356 os.chdir(newdir)
350 ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True) 357 ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True)
@@ -352,16 +359,18 @@ python base_do_unpack_append() {
352 if ret != 0: 359 if ret != 0:
353 raise bb.build.FuncFailed('Unpack command failed: %s (%s)' % (cmd, ret)) 360 raise bb.build.FuncFailed('Unpack command failed: %s (%s)' % (cmd, ret))
354 361
355 srpm_uri = bb.data.getVar('SRPM_UNPACK', localdata, True) 362 srpm_uri = bb.data.getVar('SRPM_UNPACK', localdata, True).split()
356 if not srpm_uri: 363 if len(srpm_uri) == 0:
357 return 364 return
358 365
359 # Note, not really URI's! Just a list of files 366 rootdir = bb.data.getVar('WORKDIR', localdata, True)
360 for url in srpm_uri.split(): 367 srpm_file_uri = [ "file://" + rootdir + "/srpm-unpack/" + uri for uri in srpm_uri];
361 local = os.path.join(bb.data.getVar('WORKDIR', localdata, 1), "srpm-unpack/" + url) 368
362 ret = oe_unpack_file(local, localdata, 'file://' + url) 369 try:
363 if not ret: 370 fetcher = bb.fetch2.Fetch(srpm_file_uri, localdata, cache=False)
364 raise bb.build.FuncFailed("oe_unpack_file failed with return value %s" % ret) 371 fetcher.unpack(rootdir, srpm_file_uri)
372 except bb.fetch2.BBFetchException, e:
373 raise bb.build.FuncFailed(e)
365} 374}
366 375
367do_configure() { 376do_configure() {