From 9352450dfac4ac05fe4b9da415fedbdc070925c3 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Tue, 2 Sep 2025 11:09:25 +0200 Subject: [PATCH] systemd: stop enabling non-standard MAC policy when using the 'pni-names' DISTRO_FEATURE This recipe enabled an additional, non-standard policy for predictable network names: the MAC policy. This is a deviation from upstream policies and in cases where no MAC address is available, it makes it actively worse by changing the name(s) every boot. Change the logic to disable predictable naming when the DISTRO_FEATURE isn't enabled and only use upstream logic with it *is* enabled. For DISTROs that wish to use non-standard policies, a DISTRO layer is the correct place. E.g. in DISTRO_LAYER/recipes-core/systemd/systemd_%.bbappend: do_install:append:DISTRO() { if ${@bb.utils.contains('PACKAGECONFIG', 'pni-names', 'true', 'false', d)}; then if ! grep -q '^NamePolicy=.*mac' ${D}${nonarch_libdir}/systemd/network/99-default.link; then sed -i '/^NamePolicy=/s/$/ mac/' ${D}${nonarch_libdir}/systemd/network/99-default.link fi if ! grep -q 'AlternativeNamesPolicy=.*mac' ${D}${nonarch_libdir}/systemd/network/99-default.link; then sed -i '/AlternativeNamesPolicy=/s/$/ mac/' ${D}${nonarch_libdir}/systemd/network/99-default.link fi } (From OE-Core rev: 9b34a810496f4b769394aa6ba7c0f6013d18ccc8) Signed-off-by: Koen Kooi Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- meta/recipes-core/systemd/systemd_257.8.bb | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/meta/recipes-core/systemd/systemd_257.8.bb b/meta/recipes-core/systemd/systemd_257.8.bb index 174372be03..6399c57640 100644 --- a/meta/recipes-core/systemd/systemd_257.8.bb +++ b/meta/recipes-core/systemd/systemd_257.8.bb @@ -400,15 +400,8 @@ do_install() { ${D}/${sysconfdir}/systemd/system.conf fi - if ${@bb.utils.contains('PACKAGECONFIG', 'pni-names', 'true', 'false', d)}; then - if ! grep -q '^NamePolicy=.*mac' ${D}${nonarch_libdir}/systemd/network/99-default.link; then - sed -i '/^NamePolicy=/s/$/ mac/' ${D}${nonarch_libdir}/systemd/network/99-default.link - fi - if ! grep -q 'AlternativeNamesPolicy=.*mac' ${D}${nonarch_libdir}/systemd/network/99-default.link; then - sed -i '/AlternativeNamesPolicy=/s/$/ mac/' ${D}${nonarch_libdir}/systemd/network/99-default.link - fi - else - # Actively disable Predictable Network Interface Names + # Actively disable Predictable Network Interface Names + if ${@ 'true' if not bb.utils.contains('PACKAGECONFIG', 'pni-names', 'true', 'false', d) else 'false'}; then sed -i 's/^NamePolicy=.*/NamePolicy=/;s/^AlternativeNamesPolicy=.*/AlternativeNamesPolicy=/' ${D}${nonarch_libdir}/systemd/network/99-default.link fi }