From: Koen Kooi Date: Tue, 2 Sep 2025 09:09:25 +0000 (+0200) Subject: systemd: stop enabling non-standard MAC policy when using the 'pni-names' DISTRO_FEATURE X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9b34a810496f4b769394aa6ba7c0f6013d18ccc8;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git 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 } Signed-off-by: Koen Kooi Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-core/systemd/systemd_257.8.bb b/meta/recipes-core/systemd/systemd_257.8.bb index 174372be03c..6399c576409 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 }