diff mbox series

[scarthgap,5/5] update-alternatives.bbclass: Add a 'DISTRO_FEATURE' to create only relative symlinks

Message ID 20260602142132.976138-5-rl@karo-electronics.de
State New
Headers show
Series [scarthgap,1/5] sign_ipk.bbclass: add missing 'd' parameter to raise_sanity_error() | expand

Commit Message

Robin Lintermann June 2, 2026, 2:21 p.m. UTC
Currently update-alternatives will create absolute symlinks to the
target files.
This leads to confusion when looking at the resulting rootfs directory
from the host machine and makes it impossible to do a diff between two
rootfs directories staged on the host.

Add a way to let it install relative symlinks only by adding
'alternatives-symlinks-relative' to DISTRO_FEATURES.

Signed-off-by: Robin Lintermann <rl@karo-electronics.de>
---
 meta/classes-recipe/update-alternatives.bbclass | 2 ++
 1 file changed, 2 insertions(+)
diff mbox series

Patch

diff --git a/meta/classes-recipe/update-alternatives.bbclass b/meta/classes-recipe/update-alternatives.bbclass
index b153e1b297..6cfb190c31 100644
--- a/meta/classes-recipe/update-alternatives.bbclass
+++ b/meta/classes-recipe/update-alternatives.bbclass
@@ -261,6 +261,8 @@  def update_alternatives_alt_targets(d, pkg):
             continue
 
         alt_target = os.path.normpath(alt_target)
+        if bb.utils.contains('DISTRO_FEATURES','alternatives-symlinks-relative',True,False,d):
+            alt_target = os.path.relpath(alt_target, os.path.dirname(alt_link))
         updates.append( (alt_name, alt_link, alt_target, alt_priority) )
 
     return updates