Files
fempkg_recipes/NetworkManager.recipe.py
2026-01-28 17:53:44 +01:00

60 lines
2.5 KiB
Python

pkgname = "NetworkManager"
pkgver = "1.54.3"
source = f"https://rocketleaguechatp.duckdns.org/NetworkManager-{pkgver}.tar.xz"
builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-{pkgver}"
fembuilddir = f"/tmp/fempkg/build/{pkgname}"
outputdir = "/home/gabry/lfs-repo/binpkg"
manifestdir = "/home/gabry/lfs-repo/manifests"
destdir = f"{fembuilddir}/DESTDIR"
deps = ["libndp", "curl", "dhcpcd", "iptables", "libpsl", "newt", "NSS", "polkit", "elogind", "vala", "wpa_supplicant"]
build = [
# Extract
f"mkdir /tmp/fempkg/build {fembuilddir} || true && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.xz",
# 64-bit build
f"cd {builddir} && grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/' && mkdir build && cd build && meson setup .. --prefix=/usr "
f"--buildtype=release -D libaudit=no -D nmtui=true -D ovs=true -D ppp=false -D nbft=false -D selinux=false -D session_tracking=elogind "
f"-D modem_manager=false -D systemdsystemunitdir=no -D systemd_journal=false -D nm_cloud_setup=false -D qt=false",
f"cd {builddir}/build && ninja",
f"cd {builddir}/build && DESTDIR={destdir} ninja install && mv -v {destdir}/usr/share/doc/NetworkManager{{,-{pkgver}}}",
f"mkdir -p {destdir}/etc/NetworkManager/conf.d /usr/share/polkit-1/rules.d",
f"""cat > {destdir}/etc/NetworkManager/NetworkManager.conf << "EOF"
[main]
plugins=keyfile
EOF""",
f"""cat > {destdir}/etc/NetworkManager/conf.d/polkit.conf << "EOF"
[main]
auth-polkit=true
EOF""",
f"""cat > {destdir}/etc/NetworkManager/conf.d/no-dns-update.conf << "EOF"
[main]
dns=none
EOF""",
f"""mkdir -p {destdir}/usr/share/polkit-1/rules.d && cat > {destdir}/usr/share/polkit-1/rules.d/org.freedesktop.NetworkManager.rules << "EOF"
polkit.addRule(function(action, subject) {{
if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("netdev")) {{
return polkit.Result.YES;
}}
}});
EOF""",
f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/",
f"cp -pv {builddir}/COPYING* {destdir}/usr/share/licenses/{pkgname}/",
# Make tarball + manifests
f"mkdir -p {outputdir} && cd {destdir} && tar --transform 's|^\\.||' -I zstd -cf {outputdir}/{pkgname}-{pkgver}.tar.zst .",
f"mkdir -p {manifestdir} && tar -tf {outputdir}/{pkgname}-{pkgver}.tar.zst | grep -v '/$' > {manifestdir}/{pkgname}.txt",
# Cleanup
f"rm -rf {builddir} {fembuilddir}"
]
triggers = [
f"cd /tmp && groupadd -fg 86 netdev || true",
f"/usr/sbin/usermod -a -G netdev $(cat /var/lib/fempkg/username) || true",
]