From 0c26fc60d1ee9f758a6607ed767cf3c78c4bb92a Mon Sep 17 00:00:00 2001 From: sisungo Date: Tue, 14 Jul 2026 00:51:30 +0800 Subject: [PATCH] feat: add package libnl Signed-off-by: sisungo --- packages/libnl/pkgbuild.py | 123 +++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 packages/libnl/pkgbuild.py diff --git a/packages/libnl/pkgbuild.py b/packages/libnl/pkgbuild.py new file mode 100644 index 0000000..9e3956f --- /dev/null +++ b/packages/libnl/pkgbuild.py @@ -0,0 +1,123 @@ +import os + +from lib import cpp, arch +from lib.make import * + +upstream_version = "3.2.25" + +version(upstream_version) +source_url("https://www.infradead.org/~tgr/libnl/files/libnl-3.2.25.tar.gz") + +builddep("shortcut/c") +builddep("shortcut/autotools") +builddep("flex") +builddep("bison") +builddep(f"linux-dev @{arch.get_target()}") + +def build(): + cpp.configure([ + "--prefix=/", + "--sysconfdir=/var/config", + f"--includedir={get_prefix('libnl-dev')}/include", + ]) + cpp.make() + cpp.make_install() + + +on_build(build) + +SO_SUFFIX = ["", ".200", ".200.20.0"] + + +def pack_core(composer): + composer.makedir("lib") + for i in SO_SUFFIX: + composer.addfile(f"lib/libnl-3.so{i}", f"lib/libnl-3.so{i}") + +package("libnl-core") +dep("semi-libc @same-arch") +on_pack(pack_core) + +def pack_genl(composer): + composer.makedir("lib") + for i in SO_SUFFIX: + composer.addfile(f"lib/libnl-genl-3.so{i}", f"lib/libnl-genl-3.so{i}") + +package("libnl-genl") +dep("libnl-core (same)") +on_pack(pack_genl) + +def pack_idiag(composer): + composer.makedir("lib") + for i in SO_SUFFIX: + composer.addfile(f"lib/libnl-idiag-3.so{i}", f"lib/libnl-idiag-3.so{i}") + +package("libnl-idiag") +dep("libnl-core (same)") +on_pack(pack_idiag) + +def pack_route(composer): + composer.makedir("lib") + for i in SO_SUFFIX: + composer.addfile(f"lib/libnl-route-3.so{i}", f"lib/libnl-route-3.so{i}") + +package("libnl-route") +dep("libnl-core (same)") +on_pack(pack_route) + +def pack_nf(composer): + composer.makedir("lib") + for i in SO_SUFFIX: + composer.addfile(f"lib/libnl-nf-3.so{i}", f"lib/libnl-nf-3.so{i}") + +package("libnl-nf") +dep("libnl-core (same)") +dep("libnl-route (same)") +on_pack(pack_nf) + +def pack_cli(composer): + composer.makedir("lib") + for i in SO_SUFFIX: + composer.addfile(f"lib/libnl-cli-3.so{i}", f"lib/libnl-cli-3.so{i}") + +package("libnl-cli") +dep("libnl-core (same)") +dep("libnl-nf (same)") +dep("libnl-route (same)") +on_pack(pack_cli) + +def pack_libnl(composer): + composer.makedir("lib") + for soname in ["-3", "-nf-3", "-route-3", "-idiag-3", "-genl-3"]: + if soname == "-3": + pkgname = "libnl-core" + elif "nf" in soname: + pkgname = "libnl-nf" + elif "route" in soname: + pkgname = "libnl-route" + elif "idiag" in soname: + pkgname = "libnl-idiag" + elif "genl" in soname: + pkgname = "libnl-genl" + for suffix in SO_SUFFIX: + fullname = f"libnl{soname}.so{suffix}" + os.symlink( + f"/pkg/{pkgname}={upstream_version}@{arch.get_target()}/lib/{fullname}", + f"{composer.workdir}/bundle/lib/{fullname}", + ) + +package("libnl") +dep("libnl-core (same)") +dep("libnl-nf (same)") +dep("libnl-route (same)") +dep("libnl-idiag (same)") +dep("libnl-genl (same)") +on_pack(pack_libnl) + +package("libnl-tools") +dep("libnl (same)") +cpp.use_auto_pack(["bin"]) + +package("libnl-dev") +dep("libnl (same)") +cpp.use_auto_pack(["dev"])