mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00
rootfs-postcommands: Try and improve ordering constraints
The current code is in race to see who can set things last. This isn't scalable or sustainable and problemtic in the face of inherit ordering changes. Move the ordering issue into the actual code execution, which isn't ideal but the best of several bad options and at least lets us drop the anonymous python. (From OE-Core rev: 0ffff2c1f80a9b79b133d787764bab164d9abd70) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
12619deabd
commit
bc883e4991
|
@ -55,19 +55,14 @@ inherit image-artifact-names
|
||||||
# deterministic. Package installs are not deterministic, causing the ordering
|
# deterministic. Package installs are not deterministic, causing the ordering
|
||||||
# of entries to change between builds. In case that this isn't desired,
|
# of entries to change between builds. In case that this isn't desired,
|
||||||
# the command can be overridden.
|
# the command can be overridden.
|
||||||
|
SORT_PASSWD_POSTPROCESS_COMMAND ??= "tidy_shadowutils_files"
|
||||||
|
ROOTFS_POSTPROCESS_COMMAND += '${SORT_PASSWD_POSTPROCESS_COMMAND}'
|
||||||
|
|
||||||
#
|
#
|
||||||
# Note that useradd-staticids.bbclass has to be used to ensure that
|
# Note that useradd-staticids.bbclass has to be used to ensure that
|
||||||
# the numeric IDs of dynamically created entries remain stable.
|
# the numeric IDs of dynamically created entries remain stable.
|
||||||
#
|
#
|
||||||
# We want this to run as late as possible, in particular after
|
ROOTFS_POSTPROCESS_COMMAND += 'rootfs_reproducible'
|
||||||
# systemd_sysusers_create and set_user_group. Using :append is not
|
|
||||||
# enough for that, set_user_group is added that way and would end
|
|
||||||
# up running after us.
|
|
||||||
SORT_PASSWD_POSTPROCESS_COMMAND ??= "tidy_shadowutils_files"
|
|
||||||
python () {
|
|
||||||
d.appendVar('ROOTFS_POSTPROCESS_COMMAND', ' ${SORT_PASSWD_POSTPROCESS_COMMAND}')
|
|
||||||
d.appendVar('ROOTFS_POSTPROCESS_COMMAND', ' rootfs_reproducible')
|
|
||||||
}
|
|
||||||
|
|
||||||
# Resolve the ID as described in the sysusers.d(5) manual: ID can be a numeric
|
# Resolve the ID as described in the sysusers.d(5) manual: ID can be a numeric
|
||||||
# uid, a couple uid:gid or uid:groupname or it is '-' meaning leaving it
|
# uid, a couple uid:gid or uid:groupname or it is '-' meaning leaving it
|
||||||
|
|
|
@ -194,6 +194,18 @@ class Rootfs(object, metaclass=ABCMeta):
|
||||||
post_process_cmds = self.d.getVar("ROOTFS_POSTPROCESS_COMMAND")
|
post_process_cmds = self.d.getVar("ROOTFS_POSTPROCESS_COMMAND")
|
||||||
rootfs_post_install_cmds = self.d.getVar('ROOTFS_POSTINSTALL_COMMAND')
|
rootfs_post_install_cmds = self.d.getVar('ROOTFS_POSTINSTALL_COMMAND')
|
||||||
|
|
||||||
|
def make_last(command, commands):
|
||||||
|
commands = commands.split()
|
||||||
|
if command in commands:
|
||||||
|
commands.remove(command)
|
||||||
|
commands.append(command)
|
||||||
|
return "".join(commands)
|
||||||
|
|
||||||
|
# We want this to run as late as possible, in particular after
|
||||||
|
# systemd_sysusers_create and set_user_group. Using :append is not enough
|
||||||
|
make_last("tidy_shadowutils_files", post_process_cmds)
|
||||||
|
make_last("rootfs_reproducible", post_process_cmds)
|
||||||
|
|
||||||
execute_pre_post_process(self.d, pre_process_cmds)
|
execute_pre_post_process(self.d, pre_process_cmds)
|
||||||
|
|
||||||
if self.progress_reporter:
|
if self.progress_reporter:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user