diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2016-10-26 11:42:12 +1300 |
---|---|---|
committer | Paul Eggleton <paul.eggleton@linux.intel.com> | 2016-10-31 16:57:35 +1300 |
commit | e1af68e680f3fbf20d7b0a8c55802a9cdd3f404b (patch) | |
tree | edb8798d7c3e6f02cd8ad42e841da348f75a7f16 /meta | |
parent | b18fa5f2f2f46afc6fdc58f4d29679dea9c36c43 (diff) | |
download | openembedded-core-contrib-e1af68e680f3fbf20d7b0a8c55802a9cdd3f404b.tar.gz |
classes/license: fix handling of symlinks pointed to in LIC_FILES_CHKSUM
If you set LIC_FILES_CHKSUM to point to a relative symlink then you'll
get "Could not copy license file" warnings in copy_license_files() since
the symlink won't be valid after it's copied. If the source is a symlink
then we need to dereference it first.
I encountered this when I used recipetool on the sources for capnproto,
where the c++ directory contains a LICENSE.txt symlink to the LICENSE
file in the parent directory, and this symlink ends up being pointed to
in LIC_FILES_CHKSUM.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/license.bbclass | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass index da4fc3e1d4..660b85f619 100644 --- a/meta/classes/license.bbclass +++ b/meta/classes/license.bbclass @@ -351,6 +351,8 @@ def copy_license_files(lic_files_paths, destdir): dst = os.path.join(destdir, basename) if os.path.exists(dst): os.remove(dst) + if os.path.islink(src): + src = os.path.realpath(src) canlink = os.access(src, os.W_OK) and (os.stat(src).st_dev == os.stat(destdir).st_dev) if canlink: try: |