feat: add package libnl #63

Open
sisungo wants to merge 1 commits from sisungo/semios-packages:libnl into master
Showing only changes of commit 0c26fc60d1 - Show all commits
+123
View File
@@ -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"])