]> code.ossystems Code Review - openembedded-core.git/commitdiff
license.bbclass: hardlink requires write permission
authorRobert Yang <liezhi.yang@windriver.com>
Thu, 13 Nov 2014 07:55:58 +0000 (23:55 -0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 24 Dec 2014 17:48:57 +0000 (17:48 +0000)
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@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/license.bbclass

index f85d4f9bcf437778326133bcc307bc6cf6f8377b..d659b767c586fc4065c96cbd51a741fa37249831 100644 (file)
@@ -150,12 +150,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):
     """