[OE-core] [PATCH 1/1] license.bbclass: hardlink requires write permission

Robert Yang liezhi.yang at windriver.com
Thu Nov 13 07:55:58 UTC 2014


Fixed:
* The os.link() reqiures write permission on the src file (suppose the
  src file belongs to another user, then you need write permission to harlink to
  it since the link count would change)

* Print more info when failed to copy
  The warning was like:
  WARNING: Could not copy license file COPYING: [Errno 1] Operation not permitted

  We couldn't know which recipe print the warning from this message.

Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
---
 meta/classes/license.bbclass |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
index 14d3107..1f42fd3 100644
--- a/meta/classes/license.bbclass
+++ b/meta/classes/license.bbclass
@@ -149,12 +149,12 @@ def copy_license_files(lic_files_paths, destdir):
             dst = os.path.join(destdir, basename)
             if os.path.exists(dst):
                 os.remove(dst)
-            if (os.stat(src).st_dev == os.stat(destdir).st_dev):
+            if os.access(src, os.W_OK) and (os.stat(src).st_dev == os.stat(destdir).st_dev):
                 os.link(src, dst)
             else:
                 shutil.copyfile(src, dst)
         except Exception as e:
-            bb.warn("Could not copy license file %s: %s" % (basename, e))
+            bb.warn("Could not copy license file %s to %s: %s" % (src, dst, e))
 
 def find_license_files(d):
     """
-- 
1.7.9.5




More information about the Openembedded-core mailing list