mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
package.bbclass: fixup_perms - change symlink processing
We switch to using os.lchown in order to avoid following a symlink. We also now check if an item is a symlink, if so we avoid the os.chmod as a symlink inherits the mode of it's target. (From OE-Core rev: c64d075b3d367e6c76aafa17782585d026b1f31e) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
19715dafa5
commit
30ddd02277
@@ -472,7 +472,7 @@ python fixup_perms () {
|
||||
else:
|
||||
return int(mode,8)
|
||||
|
||||
# Note uid/gid -1 has special significance in os.chown
|
||||
# Note uid/gid -1 has special significance in os.lchown
|
||||
def _procuid(self, uid):
|
||||
if uid is None or uid == "-":
|
||||
return -1
|
||||
@@ -514,14 +514,14 @@ python fixup_perms () {
|
||||
|
||||
# Fix the permission, owner and group of path
|
||||
def fix_perms(path, mode, uid, gid, dir):
|
||||
if mode:
|
||||
if mode and not os.path.islink(path):
|
||||
#bb.note("Fixup Perms: chmod 0%o %s" % (mode, dir))
|
||||
os.chmod(path, mode)
|
||||
# -1 is a special value that means don't change the uid/gid
|
||||
# if they are BOTH -1, don't bother to chown
|
||||
# if they are BOTH -1, don't bother to lchown
|
||||
if not (uid == -1 and gid == -1):
|
||||
#bb.note("Fixup Perms: chown %d:%d %s" % (uid, gid, dir))
|
||||
os.chown(path, uid, gid)
|
||||
#bb.note("Fixup Perms: lchown %d:%d %s" % (uid, gid, dir))
|
||||
os.lchown(path, uid, gid)
|
||||
|
||||
# Return a list of configuration files based on either the default
|
||||
# files/fs-perms.txt or the contents of FILESYSTEM_PERMS_TABLES
|
||||
|
||||
Reference in New Issue
Block a user