diff options
| author | André Draszik <andre.draszik@jci.com> | 2019-01-16 12:51:15 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-02-02 11:05:59 +0000 |
| commit | 0b782c39b9bb54fc3c15942a1b7fa3f6e179f9b6 (patch) | |
| tree | d6d9848f6de9fc2471c7dccbcc00f4e7bd887904 /meta/classes/update-alternatives.bbclass | |
| parent | 763593e597a071ee4871e22323f53c5f8b558797 (diff) | |
| download | poky-0b782c39b9bb54fc3c15942a1b7fa3f6e179f9b6.tar.gz | |
update-alternatives: convert file renames to PACKAGE_PREPROCESS_FUNCS
At the moment, the update-alternatives file renaming is
happening right after copying into PKGD during packaging
time using an _append OVERRIDE to the copy function
perform_packagecopy().
This is not really readable and hard to maintain.
Additionally, this makes it impossible to e.g. populate
PACKAGES dynamically using do_split_packages() and still
do update-alternatives - update-alternatives file renaming
requires the PACKAGES variable to have been fully populated
to work correctly. On the other hand, do_split_packages()
can only execute after perform_packagecopy(), as it needs
PKGD populated; so it's impossible to insert
do_split_packages() early enough in a deterministic way in
this use-case.
As there doesn't seem to be a reason not to, convert
this to a proper function and use PACKAGE_PREPROCESS_FUNCS
instead - after all, that's what this is meant for.
No other classes or recipes in oe-core or meta-openembededd
seem to have a hard requirement on update-alterantives
executing before any other PACKAGE_PREPROCESS_FUNCS, so
this should be perfectly fine.
The only implication is that if compress_doc is inherited,
compressed man-page file names will end up being, e.g.
eject.1.util-linux.gz
or
eject.1.gz.util-linux
based on the include of compress_doc.bbclass vs.
update-alternatives.bbclass order, but the symlink created
(alternative name) will always be correct.
This solves both problems:
* the code is easier to read / follow
* the above described use-case can be accomodated easily
[YOCTO #13058]
(From OE-Core rev: 8c3db2fa735e5933f842f80321bb3ed38753812d)
Signed-off-by: André Draszik <andre.draszik@jci.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/update-alternatives.bbclass')
| -rw-r--r-- | meta/classes/update-alternatives.bbclass | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/meta/classes/update-alternatives.bbclass b/meta/classes/update-alternatives.bbclass index f1250f877b..f3c014a5fc 100644 --- a/meta/classes/update-alternatives.bbclass +++ b/meta/classes/update-alternatives.bbclass | |||
| @@ -131,14 +131,13 @@ def gen_updatealternativesvars(d): | |||
| 131 | populate_packages[vardeps] += "${UPDALTVARS} ${@gen_updatealternativesvars(d)}" | 131 | populate_packages[vardeps] += "${UPDALTVARS} ${@gen_updatealternativesvars(d)}" |
| 132 | 132 | ||
| 133 | # We need to do the rename after the image creation step, but before | 133 | # We need to do the rename after the image creation step, but before |
| 134 | # the split and strip steps.. packagecopy seems to be the earliest reasonable | 134 | # the split and strip steps.. PACKAGE_PREPROCESS_FUNCS is the right |
| 135 | # place. | 135 | # place for that. |
| 136 | python perform_packagecopy_append () { | 136 | PACKAGE_PREPROCESS_FUNCS += "apply_update_alternative_renames" |
| 137 | if update_alternatives_enabled(d): | 137 | python apply_update_alternative_renames () { |
| 138 | apply_update_alternative_renames(d) | 138 | if not update_alternatives_enabled(d): |
| 139 | } | 139 | return |
| 140 | 140 | ||
| 141 | def apply_update_alternative_renames(d): | ||
| 142 | # Check for deprecated usage... | 141 | # Check for deprecated usage... |
| 143 | pn = d.getVar('BPN') | 142 | pn = d.getVar('BPN') |
| 144 | if d.getVar('ALTERNATIVE_LINKS') != None: | 143 | if d.getVar('ALTERNATIVE_LINKS') != None: |
| @@ -204,6 +203,7 @@ def apply_update_alternative_renames(d): | |||
| 204 | os.unlink(src) | 203 | os.unlink(src) |
| 205 | else: | 204 | else: |
| 206 | bb.warn('%s: Unable to resolve dangling symlink: %s' % (pn, alt_target)) | 205 | bb.warn('%s: Unable to resolve dangling symlink: %s' % (pn, alt_target)) |
| 206 | } | ||
| 207 | 207 | ||
| 208 | PACKAGESPLITFUNCS_prepend = "populate_packages_updatealternatives " | 208 | PACKAGESPLITFUNCS_prepend = "populate_packages_updatealternatives " |
| 209 | 209 | ||
