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 <koen.kooi@oss.qualcomm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Koen Kooi
2025-09-02 11:09:25 +02:00
committed by Richard Purdie
parent 918a0003e5
commit 9352450dfa

View File

@@ -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
}