[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