From patchwork Fri May 18 14:18:19 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [CONSOLIDATED, PULL, 9/9] sstate.bbclass: Make sure we don't have an empty fixmepath file Date: Fri, 18 May 2012 14:18:19 -0000 From: Saul Wold X-Patchwork-Id: 27983 Message-Id: <7a053c2c3b648c2492250b1f92d4363a37f9a886.1337350637.git.sgw@linux.intel.com> To: openembedded-core@lists.openembedded.org From: Mark Hatle Jason Wessel noticed that a package without any fixmepath entries would generate a sed warning about no input files. This patch resolves that by ensuring that an empty fixmepath file never gets written into the sstate archive. Also we avoid a second message by only doing xargs if we got input. Signed-off-by: Mark Hatle Signed-off-by: Jason Wessel --- meta/classes/sstate.bbclass | 17 ++++++++++++----- 1 files changed, 12 insertions(+), 5 deletions(-) diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index ccef4a9..ae01937 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -330,20 +330,27 @@ def sstate_hardcode_path(d): sstate_grep_cmd = "grep -l -e '%s'" % (staging_host) sstate_sed_cmd = "sed -i -e 's:%s:FIXMESTAGINGDIRHOST:g'" % (staging_host) + fixmefn = sstate_builddir + "fixmepath" + sstate_scan_cmd = d.getVar('SSTATE_SCAN_CMD', True) - sstate_filelist_cmd = "tee %sfixmepath" % (sstate_builddir) + sstate_filelist_cmd = "tee %s" % (fixmefn) # fixmepath file needs relative paths, drop sstate_builddir prefix - sstate_filelist_relative_cmd = "sed -i -e 's:^%s::g' %sfixmepath" % (sstate_builddir, sstate_builddir) + sstate_filelist_relative_cmd = "sed -i -e 's:^%s::g' %s" % (sstate_builddir, fixmefn) # Limit the fixpaths and sed operations based on the initial grep search # This has the side effect of making sure the vfs cache is hot - sstate_hardcode_cmd = "%s | xargs %s | %s | xargs %s" % (sstate_scan_cmd, sstate_grep_cmd, sstate_filelist_cmd, sstate_sed_cmd) + sstate_hardcode_cmd = "%s | xargs %s | %s | xargs --no-run-if-empty %s" % (sstate_scan_cmd, sstate_grep_cmd, sstate_filelist_cmd, sstate_sed_cmd) print "Removing hardcoded paths from sstate package: '%s'" % (sstate_hardcode_cmd) os.system(sstate_hardcode_cmd) - print "Replacing absolute paths in fixmepath file: '%s'" % (sstate_filelist_relative_cmd) - os.system(sstate_filelist_relative_cmd) + + # If the fixmefn is empty, remove it.. + if os.stat(fixmefn).st_size == 0: + os.remove(fixmefn) + else: + print "Replacing absolute paths in fixmepath file: '%s'" % (sstate_filelist_relative_cmd) + os.system(sstate_filelist_relative_cmd) def sstate_package(ss, d): import oe.path