[oe-commits] [openembedded-core] 02/12: update-alternatives: try to update FILES_${PN} when renaming a file

git at git.openembedded.org git at git.openembedded.org
Fri Feb 1 07:34:53 UTC 2019

This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit 5c23fe378732038643a450cbf916334d24764b70
Author: André Draszik <andre.draszik at jci.com>
AuthorDate: Wed Jan 16 12:51:16 2019 +0000

    update-alternatives: try to update FILES_${PN} when renaming a file
    When using update-alternatives, FILES_${PN} must be
    referencing the new name after update-alternatives has
    renamed files.
    This is more or less OK when having static lists of files to
    be packaged into a package, but makes it quite hard to
    dynamically generate FILES_${PN}, e.g. using do_split_packages(),
    as in that case we can not easily modify what goes into
    FILES_${PN}, because that list is based on filenames as seen
    at the time do_split_packages() is executing.
    Of couse one could explicitly specify the (renamed) file(s)
    in the recipe, but that contradicts the intended usage of
    Instead, if FILES_${PN} contains the file name as it was pre
    renaming, we here modify this to reflect the new name.
    This will allow usage of do_split_packages() to populate
    [YOCTO #13058]
    Signed-off-by: André Draszik <andre.draszik at jci.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
 meta/classes/update-alternatives.bbclass | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/meta/classes/update-alternatives.bbclass b/meta/classes/update-alternatives.bbclass
index f3c014a..e252651 100644
--- a/meta/classes/update-alternatives.bbclass
+++ b/meta/classes/update-alternatives.bbclass
@@ -138,6 +138,14 @@ python apply_update_alternative_renames () {
     if not update_alternatives_enabled(d):
+    from re import sub
+    def update_files(alt_target, alt_target_rename, pkg, d):
+        f = d.getVar('FILES_' + pkg)
+        if f:
+            f = sub(r'(^|\s)%s(\s|$)' % alt_target, r'\1%s\2' % alt_target_rename, f)
+            d.setVar('FILES_' + pkg, f)
     # Check for deprecated usage...
     pn = d.getVar('BPN')
     if d.getVar('ALTERNATIVE_LINKS') != None:
@@ -177,6 +185,7 @@ python apply_update_alternative_renames () {
                         bb.note('%s: Rename %s -> %s' % (pn, alt_target, alt_target_rename))
                         os.rename(src, dest)
+                        update_files(alt_target, alt_target_rename, pkg, d)
                     bb.warn("%s: alternative target (%s or %s) does not exist, skipping..." % (pn, alt_target, alt_target_rename))
@@ -203,6 +212,8 @@ python apply_update_alternative_renames () {
                     bb.warn('%s: Unable to resolve dangling symlink: %s' % (pn, alt_target))
+                    continue
+            update_files(alt_target, alt_target_rename, pkg, d)
 PACKAGESPLITFUNCS_prepend = "populate_packages_updatealternatives "

To stop receiving notification emails like this one, please contact
the administrator of this repository.

More information about the Openembedded-commits mailing list