diff options
author | Dan McGregor <dan.mcgregor@usask.ca> | 2016-04-13 16:17:56 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-04-14 10:58:28 +0100 |
commit | b7504ece784fad997e72f4cd89cdf73f24901541 (patch) | |
tree | dd95f0f42cbaf0f4641dc304f4ee6a602676cbc8 /meta/classes/package.bbclass | |
parent | 4ac2e5493671b198e562732e5fd8f525247527e4 (diff) | |
download | openembedded-core-b7504ece784fad997e72f4cd89cdf73f24901541.tar.gz openembedded-core-b7504ece784fad997e72f4cd89cdf73f24901541.tar.bz2 openembedded-core-b7504ece784fad997e72f4cd89cdf73f24901541.zip |
package.bbclass: improve permission handling
Change fs_link_table to be keyed by path, just like fs_perms_table.
When a new entry is coming in for either table, remove any previous
entry for that path. This way later permission file entries override
earlier ones.
[YOCTO #9430]
Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/package.bbclass')
-rw-r--r-- | meta/classes/package.bbclass | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 894b7294a2..76b9f86491 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -775,9 +775,13 @@ python fixup_perms () { entry = fs_perms_entry(d.expand(line)) if entry and entry.path: if entry.link: - fs_link_table[entry.link] = entry + fs_link_table[entry.path] = entry + if entry.path in fs_perms_table: + fs_perms_table.pop(entry.path) else: fs_perms_table[entry.path] = entry + if entry.path in fs_link_table: + fs_link_table.pop(entry.path) f.close() # Debug -- list out in-memory table @@ -789,8 +793,9 @@ python fixup_perms () { # We process links first, so we can go back and fixup directory ownership # for any newly created directories # Process in sorted order so /run gets created before /run/lock, etc. - for link in sorted(fs_link_table): - dir = fs_link_table[link].path + for entry in sorted(fs_link_table.values(), key=lambda x: x.link): + link = entry.link + dir = entry.path origin = dvar + dir if not (cpath.exists(origin) and cpath.isdir(origin) and not cpath.islink(origin)): continue |