import os from lib import cpp 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("gnu-m4") builddep("linux-dev @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"])