]> code.ossystems Code Review - openembedded-core.git/commitdiff
sstate.bbclass: Make sure we don't have an empty fixmepath file
authorMark Hatle <mark.hatle@windriver.com>
Fri, 18 May 2012 14:18:19 +0000 (17:18 +0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 18 May 2012 14:24:45 +0000 (15:24 +0100)
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 <mark.hatle@windriver.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/sstate.bbclass

index ccef4a9e396838f826160d6768f6266385f86e80..ae019379bd8140300e6ec6c0f365586084fc5488 100644 (file)
@@ -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