From: Robert Yang Date: Thu, 13 Nov 2014 07:55:58 +0000 (-0800) Subject: license.bbclass: hardlink requires write permission X-Git-Tag: 2015-4~900 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=ebc185186c36fe839008d94dbfb779383df960c7;p=openembedded-core.git license.bbclass: hardlink requires write permission 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 Signed-off-by: Richard Purdie --- diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass index f85d4f9bcf..d659b767c5 100644 --- a/meta/classes/license.bbclass +++ b/meta/classes/license.bbclass @@ -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): """