1 Commits
Author SHA256 Message Date
sisungo f2c2fa93c9 feat: add support for configure scripts
Signed-off-by: sisungo <[email protected]>
2026-09-11 07:24:46 +00:00
9 changed files with 28 additions and 176 deletions
+8
View File
@@ -16,6 +16,7 @@ _key_links = "links"
_key_dependencies = "dependencies"
_key_recommendations = "recommendations"
_key_provides = "provides"
_key_configure = "configure"
_current_pkgname: str = _key_global
_pkginfo: dict[str, dict[str, typing.Any]] = {
@@ -25,6 +26,7 @@ _pkginfo: dict[str, dict[str, typing.Any]] = {
_key_maintainers: [],
_key_provides: [],
_key_recommendations: [],
_key_configure: [],
},
}
_supported_arch: typing.Callable[[str], bool] = lambda x: True
@@ -87,6 +89,12 @@ def provide(s: str):
]
def configure_script(s: str):
_pkginfo[_current_pkgname][_key_configure] += [
os.path.realpath(s)
]
def _translate_dep_spec(s: str) -> str:
return (
s.replace("(same)", "(same-version) @same-arch")
+9
View File
@@ -25,6 +25,15 @@ class PkgComposer:
json.dump(link, f)
f.write("\n")
def add_configure(self, path: str, name: str = None):
if name is None:
name = os.path.basename(path)
configuredir = self.workdir + "/configure/"
dstpath = configuredir + name
os.makedirs(configuredir, exist_ok=True)
shutil.copy2(path, dstpath)
os.chmod(dstpath, 0o755)
def compose(self):
subprocess.run(
[
@@ -0,0 +1,6 @@
#!/bin/sh
[ "${ACTION}" = "remove" ] && exit 0
command -v certutil >/dev/null 2>&1 || exit 0
certutil refresh
+2
View File
@@ -27,4 +27,6 @@ def pack(composer):
package("ca-certificates")
arch_any()
configure_script("configure/refresh")
recommend("certutil")
on_pack(pack)
-38
View File
@@ -1,38 +0,0 @@
from lib import cpp
from lib.make import *
version("1.13.7")
description("Wrapper library for evdev devices")
maintainer("sisungo <[email protected]>")
source_url("https://gitlab.freedesktop.org/libevdev/libevdev/-/archive/libevdev-1.13.7/libevdev-libevdev-1.13.7.tar.gz?ref_type=tags")
builddep("shortcut/c")
builddep("shortcut/meson")
builddep("linux-dev @target")
def build():
cpp.meson_setup([
"--prefix=/",
f"--libdir={get_prefix('libevdev')}/lib",
f"--includedir={get_prefix('libevdev-dev')}/include",
"-Dtests=disabled",
"-Ddocumentation=disabled",
])
cpp.meson_compile()
cpp.meson_install()
on_build(build)
package("libevdev")
dep("semi-libc @same-arch")
cpp.use_auto_pack(["lib"])
package("libevdev-tools")
dep("libevdev (same)")
cpp.use_auto_pack(["bin"])
package("libevdev-dev")
dep("libevdev (same)")
cpp.use_auto_pack(["dev"])
-58
View File
@@ -1,58 +0,0 @@
import glob
from lib import cpp
from lib.make import *
version("1.30.4")
description("Input device management and event handling library")
maintainer("sisungo <[email protected]>")
source_url("https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.30.4/libinput-1.30.4.tar.gz")
builddep("shortcut/c")
builddep("shortcut/meson")
builddep("lxdeviced-libudev-dev @target")
builddep("libevdev-dev @target")
builddep("libmtdev-dev @target")
builddep("libwacom-dev @target")
builddep("linux-dev @target")
def build():
cpp.meson_setup([
"--prefix=/",
f"--libdir={get_prefix('libinput')}/lib",
f"--libexecdir={get_prefix('libinput-tools')}/libexec",
f"--includedir={get_prefix('libinput-dev')}/include",
"--sysconfdir=/var/config",
f"--datadir={get_prefix('libinput')}/share",
"-Ddebug-gui=false",
"-Dtests=false",
])
cpp.meson_compile()
cpp.meson_install()
on_build(build)
def pack(composer):
composer.makedir("lib")
for i in glob.glob("lib/*so*"):
composer.add(i)
composer.makedir("share")
composer.add("share/libinput")
def pack_tools(composer):
composer.add("bin")
composer.add("libexec")
package("libinput")
dep("semi-libc @same-arch")
on_pack(pack)
package("libinput-tools")
dep("libinput (same)")
on_pack(pack_tools)
package("libinput-dev")
dep("libinput (same)")
cpp.use_auto_pack(["dev"])
-32
View File
@@ -1,32 +0,0 @@
from lib import cpp
from lib.make import *
version("1.1.7")
description("a stand-alone library which transforms all variants of kernel MT events to the slotted type B protocol")
maintainer("sisungo <[email protected]>")
source_url("https://bitmath.se/org/code/mtdev/mtdev-1.1.7.tar.gz")
builddep("shortcut/c")
builddep("shortcut/autotools")
builddep("linux-dev @target")
def build():
cpp.configure([
"--prefix=/",
f"--libdir={get_prefix('libmtdev')}/lib",
f"--includedir={get_prefix('libmtdev-dev')}/include",
])
cpp.make()
cpp.make_install()
on_build(build)
package("libmtdev")
dep("semi-libc @same-arch")
cpp.use_auto_pack(["lib"])
package("libmtdev-dev")
dep("libmtdev (same)")
cpp.use_auto_pack(["dev"])
-48
View File
@@ -1,48 +0,0 @@
from lib import cpp
from lib.make import *
version("2.19.1")
description("libwacom is a tablet description library")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/linuxwacom/libwacom/releases/download/libwacom-2.19.1/libwacom-2.19.1.tar.xz")
builddep("shortcut/c")
builddep("shortcut/meson")
builddep("linux-dev @target")
builddep("libgudev-dev @target")
builddep("libevdev-dev @target")
def build():
cpp.meson_setup([
"--prefix=/",
f"--libdir={get_prefix('libwacom')}/lib",
f"--bindir={get_prefix('libwacom-tools')}/bin",
f"--includedir={get_prefix('libwacom-dev')}/include",
f"--datadir={get_prefix('libwacom')}/share",
"-Dtests=disabled",
])
cpp.meson_compile()
cpp.meson_install()
on_build(build)
package("libwacom")
dep("semi-libc @same-arch")
dep("libgudev @same-arch")
dep("libgobject @same-arch")
dep("libglib @same-arch")
dep("libevdev @same-arch")
cpp.use_auto_pack(["lib"])
package("libwacom-tools")
dep("libwacom (same)")
cpp.use_auto_pack(["bin"])
package("libwacom-dev")
dep("libwacom (same)")
dep("libgudev-dev @same-arch")
dep("glib-dev @same-arch")
dep("libevdev-dev @same-arch")
cpp.use_auto_pack(["dev"])
+3
View File
@@ -123,6 +123,9 @@ def cmd_build_package(package: str):
}
composer.write_manifest(manifest)
composer.write_links(pkginfo[lib.make._key_links])
for i in pkginfo[lib.make._key_configure]:
composer.add_configure(i)
composer.compose()
# Build success