[OE-core] [PATCH 1/7] classes/license: fix handling of symlinks pointed to in LIC_FILES_CHKSUM
Paul Eggleton
paul.eggleton at linux.intel.com
Mon Oct 31 19:41:46 UTC 2016
Hi Khem,
Why wouldn't it be?
Cheers,
Paul
On Mon, 31 Oct 2016 12:23:04 Khem Raj wrote:
> Is this sstate safe?
>
> On Oct 30, 2016 9:11 PM, "Paul Eggleton" <paul.eggleton at linux.intel.com>
>
> wrote:
> > 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 at linux.intel.com>
> > ---
> >
> > meta/classes/license.bbclass | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
> > index da4fc3e..660b85f 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:
> > --
> > 2.5.5
> >
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core
--
Paul Eggleton
Intel Open Source Technology Centre
More information about the Openembedded-core
mailing list