From 0c26fc60d1ee9f758a6607ed767cf3c78c4bb92a Mon Sep 17 00:00:00 2001 From: sisungo Date: Tue, 14 Jul 2026 00:51:30 +0800 Subject: [PATCH 01/14] 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"]) -- 2.55.0 From 9810303b7130330d5b135dc2fd82294521dc7540 Mon Sep 17 00:00:00 2001 From: sisungo Date: Sat, 15 Aug 2026 17:41:38 +0800 Subject: [PATCH 02/14] feat: add package SPIRV-LLVM-Translator Signed-off-by: sisungo --- packages/SPIRV-LLVM-Translator/pkgbuild.py | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 packages/SPIRV-LLVM-Translator/pkgbuild.py diff --git a/packages/SPIRV-LLVM-Translator/pkgbuild.py b/packages/SPIRV-LLVM-Translator/pkgbuild.py new file mode 100644 index 0000000..8fd6dd8 --- /dev/null +++ b/packages/SPIRV-LLVM-Translator/pkgbuild.py @@ -0,0 +1,37 @@ +from lib.make import * +from lib import cpp, arch + + +version("22.1.5") +description("A tool and a library for bi-directional translation between SPIR-V and LLVM IR") +maintainer("sisungo ") +source_url("https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v22.1.5.tar.gz") + +builddep("shortcut/cmake") +builddep("shortcut/c++") +builddep(f"libllvm-dev (~22.1.0) @{arch.get_target()}") +builddep(f"libllvm-static (~22.1.0) @{arch.get_target()}") +builddep("pkgconf") +builddep("spirv-headers") + + +def build(): + cpp.cmake([ + "-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=ON", + f"-DLLVM_DIR=/lib/{arch.get_target()}/cmake/llvm", + f"-DSPIRV-Headers_SOURCE_DIR=/lib/{arch.get_target()}", + f"-DCMAKE_INSTALL_PREFIX={get_prefix('libllvmspirv-dev')}", + ]) + cpp.ninja() + cpp.ninja_install() + +on_build(build) + + +package("libllvmspirv-dev") +cpp.use_auto_pack(["dev"]) + +package("llvm-spirv") +dep("libllvm (~22.1.0) @same-arch") +dep("libcxx @same-arch") +cpp.use_auto_pack(["bin"]) -- 2.55.0 From 9711728da69f6f6fd7132169ab6d1c087b5aac03 Mon Sep 17 00:00:00 2001 From: sisungo Date: Sun, 16 Aug 2026 09:38:46 +0800 Subject: [PATCH 03/14] feat: add package PyYAML Signed-off-by: sisungo --- packages/PyYAML/pkgbuild.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 packages/PyYAML/pkgbuild.py diff --git a/packages/PyYAML/pkgbuild.py b/packages/PyYAML/pkgbuild.py new file mode 100644 index 0000000..185d1bc --- /dev/null +++ b/packages/PyYAML/pkgbuild.py @@ -0,0 +1,22 @@ +from lib.make import * +from lib import python + + +python.version("6.0.3") +description("YAML parser and emitter for Python") +maintainer("sisungo ") +source_url("https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz") + +python.builddep("$shortcut") + + +def build(): + python.build() + python.install() + +on_build(build) + + +package("PyYAML.py") +python.dep("python") +python.use_auto_pack() -- 2.55.0 From a14d1e6ea09598b815bae7439e75993ed19eab3c Mon Sep 17 00:00:00 2001 From: sisungo Date: Sun, 16 Aug 2026 10:19:55 +0800 Subject: [PATCH 04/14] feat: add package MarkupSafe-py Signed-off-by: sisungo --- packages/MarkupSafe-py/pkgbuild.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 packages/MarkupSafe-py/pkgbuild.py diff --git a/packages/MarkupSafe-py/pkgbuild.py b/packages/MarkupSafe-py/pkgbuild.py new file mode 100644 index 0000000..699a4bd --- /dev/null +++ b/packages/MarkupSafe-py/pkgbuild.py @@ -0,0 +1,22 @@ +from lib.make import * +from lib import python + + +python.version("3.0.3") +description("Safely add untrusted strings to HTML/XML markup.") +maintainer("sisungo ") +source_url("https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz") + +python.builddep("$shortcut") + + +def build(): + python.build() + python.install() + +on_build(build) + + +package("MarkupSafe.py") +python.dep("python") +python.use_auto_pack() -- 2.55.0 From 02dede782332155377e685c8baeb07717a617fad Mon Sep 17 00:00:00 2001 From: sisungo Date: Sun, 16 Aug 2026 10:43:10 +0800 Subject: [PATCH 05/14] feat: add package Mako-py Signed-off-by: sisungo --- lib/python.py | 2 +- packages/Mako-py/pkgbuild.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 packages/Mako-py/pkgbuild.py diff --git a/lib/python.py b/lib/python.py index 2939330..4d897fe 100644 --- a/lib/python.py +++ b/lib/python.py @@ -32,7 +32,7 @@ def _depcommon(s: str): if ")" in s: return s.replace(")", f", +python{PY3_VERSION})") else: - return s.replace(".py", f" (+python{PY3_VERSION})") + return s.replace(".py", f".py (+python{PY3_VERSION})") else: return None diff --git a/packages/Mako-py/pkgbuild.py b/packages/Mako-py/pkgbuild.py new file mode 100644 index 0000000..b3aec6a --- /dev/null +++ b/packages/Mako-py/pkgbuild.py @@ -0,0 +1,29 @@ +import os + +from lib.make import * +from lib import python + + +python.version("1.4.1") +description("A super-fast templating language that borrows the best ideas from the existing templating languages.") +maintainer("sisungo ") +source_url("https://files.pythonhosted.org/packages/2a/12/b5fa2353e2754cd67fb9f83793fa48ff42c213a5da7e719869d2301f6ab8/mako-1.4.1.tar.gz") + +python.builddep("$shortcut") +python.builddep("MarkupSafe.py") + + +def build(): + python.build() + python.install() + os.chdir("lib") + while len(os.listdir(".")) == 1: + os.chdir(os.listdir(".")[0]) + +on_build(build) + + +package("Mako.py") +python.dep("python") +python.dep("MarkupSafe.py") +python.use_auto_pack() -- 2.55.0 From 452e767da4a37165f5a3ad4c2156ea9fc8aabc53 Mon Sep 17 00:00:00 2001 From: sisungo Date: Tue, 11 Aug 2026 20:32:18 +0800 Subject: [PATCH 06/14] feat: add package spirv-tools Signed-off-by: sisungo --- packages/spirv-tools/pkgbuild.py | 43 ++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 packages/spirv-tools/pkgbuild.py diff --git a/packages/spirv-tools/pkgbuild.py b/packages/spirv-tools/pkgbuild.py new file mode 100644 index 0000000..188663d --- /dev/null +++ b/packages/spirv-tools/pkgbuild.py @@ -0,0 +1,43 @@ +import os +import shutil + +from lib.make import * +from lib import cpp, arch + + +sdk_version = "1.4.357.0" + +version(sdk_version) +description("an API and commands for processing SPIR-V modules") +maintainer("sisungo ") +source_url("https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz") + +builddep("shortcut/cmake") +builddep("shortcut/c++") +builddep(f"spirv-headers (={sdk_version}) @{arch.get_target()}") + + +def build(): + cpp.cmake([ + f"-DSPIRV-Headers_SOURCE_DIR=/lib/{arch.get_target()}", + "-DCMAKE_CXX_FLAGS=-Wno-error=switch", + f"-DCMAKE_INSTALL_PREFIX={get_prefix('spirv-tools-dev')}", + ]) + cpp.ninja() + cpp.ninja_install() + try: + os.rename("lib64", "lib") + os.rename("lib32", "lib") + except: + pass + +on_build(build) + + +package("spirv-tools") +dep("libcxx @same-arch") +cpp.use_auto_pack(["bin"]) + +package("spirv-tools-dev") +dep("spirv-tools (same)") +cpp.use_auto_pack(["lib", "dev"]) -- 2.55.0 From 3a1f472de29c1bbd4a397c7e595d504571ef0c1e Mon Sep 17 00:00:00 2001 From: sisungo Date: Sun, 16 Aug 2026 23:36:00 +0800 Subject: [PATCH 07/14] fix: lib/cpp auto pack ignores hpp files Signed-off-by: sisungo --- lib/cpp.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/cpp.py b/lib/cpp.py index fd9ad4b..2a8ab73 100644 --- a/lib/cpp.py +++ b/lib/cpp.py @@ -117,6 +117,7 @@ def _is_dev_file(ent) -> bool: or ent.name.endswith(".la") or ent.name.endswith(".pc") or ent.name.endswith(".h") + or ent.name.endswith(".hpp") or ent.name.endswith(".cmake") or ent.name.endswith(".inc") or ("Makefile" in ent.name) -- 2.55.0 From 7bae4acc421469f266525f0b9e0eafb265cc91d6 Mon Sep 17 00:00:00 2001 From: sisungo Date: Mon, 17 Aug 2026 00:20:05 +0800 Subject: [PATCH 08/14] feat: add package pycparser Signed-off-by: sisungo --- packages/pycparser/pkgbuild.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 packages/pycparser/pkgbuild.py diff --git a/packages/pycparser/pkgbuild.py b/packages/pycparser/pkgbuild.py new file mode 100644 index 0000000..d6b166c --- /dev/null +++ b/packages/pycparser/pkgbuild.py @@ -0,0 +1,22 @@ +from lib.make import * +from lib import python + + +python.version("3.0") +description("C parser in Python") +maintainer("sisungo ") +source_url("https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz") + +python.builddep("$shortcut") + + +def build(): + python.build() + python.install() + +on_build(build) + + +package("pycparser.py") +python.dep("python") +python.use_auto_pack() -- 2.55.0 From 0ada9d32fb4f83cd73400148590c7282ad304d56 Mon Sep 17 00:00:00 2001 From: sisungo Date: Mon, 17 Aug 2026 17:43:54 +0800 Subject: [PATCH 09/14] feat: add support of zip source archives Signed-off-by: sisungo --- lib/sources.py | 52 ++++++++++++++++++++++++++++++++++++++++---------- x.py | 1 + 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/lib/sources.py b/lib/sources.py index c643024..3748bdc 100644 --- a/lib/sources.py +++ b/lib/sources.py @@ -4,6 +4,7 @@ import sys import tarfile import urllib.parse import urllib.request +import zipfile def filename(url): @@ -128,6 +129,25 @@ def tar_common_root(tar: tarfile.TarFile) -> str | None: return root +def zip_common_root(zip_file: zipfile.ZipFile) -> str | None: + members = zip_file.infolist() + if not members: + return None + root = None + for member in members: + path = member.filename.replace('\\', '/').lstrip('./').lstrip('/') + if not path: + continue + this_root = path.split('/')[0] + if this_root in ('', '.', '..'): + continue + if root is None: + root = this_root + elif this_root != root: + return None + return root + + def sources_dir_name() -> str: with open("./target/sources.tag") as file: return file.read() @@ -139,16 +159,28 @@ def source_url(url: str): download_path = f"./target/{filename(url)}" download(url, download_path) - with tarfile.open(download_path, "r") as tar: - common_root = tar_common_root(tar) - extract_dir = "./target" - sources_dir = f"./target/{common_root}" - if common_root in ["", ".", "None"]: - extract_dir = "./target/sources" - sources_dir = "./target/sources" - tar.extractall(extract_dir) - with open("./target/sources.tag", "wt+") as file: - file.write(sources_dir) + if download_path.endswith(".zip"): + with zipfile.ZipFile(download_path, "r") as zip: + common_root = zip_common_root(zip) + else: + with tarfile.open(download_path, "r") as tar: + common_root = tar_common_root(tar) + + extract_dir = "./target" + sources_dir = f"./target/{common_root}" + if common_root in ["", ".", None]: + extract_dir = "./target/sources" + sources_dir = "./target/sources" + + if download_path.endswith(".zip"): + with zipfile.ZipFile(download_path, "r") as zip: + zip.extractall(extract_dir) + else: + with tarfile.open(download_path, "r") as tar: + tar.extractall(extract_dir) + + with open("./target/sources.tag", "wt+") as file: + file.write(sources_dir) def _git_repo_name(url: str) -> str: diff --git a/x.py b/x.py index f178d2f..2dd8a99 100644 --- a/x.py +++ b/x.py @@ -119,6 +119,7 @@ def cmd_build_package(package: str): "version": pkgver, "arch": pkgarch, "description": pkginfo[lib.make._key_description], + "maintainers": pkginfo[lib.make._key_maintainers], "dependencies": pkginfo[lib.make._key_dependencies], "provides": pkginfo[lib.make._key_provides], "recommendations": pkginfo[lib.make._key_recommendations], -- 2.55.0 From 75f756bd09f89e67d4a91ef672b557ad35ac7aa0 Mon Sep 17 00:00:00 2001 From: sisungo Date: Tue, 18 Aug 2026 14:00:25 +0800 Subject: [PATCH 10/14] feat: add general documents Signed-off-by: sisungo --- LICENSE | 24 ++++++++++++++++++++++++ README.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 LICENSE create mode 100644 README.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..efb9808 --- /dev/null +++ b/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/README.md b/README.md new file mode 100644 index 0000000..92ee4c7 --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +# SemiOS Packages + +This is the SemiOS source package collection. + +## Usage + +To build a package for your native target, run: + +```shell +./x build +``` + +To cross-build a package for another target, run: + +```shell +./x --target build +``` + +After a package is successfully built, you can find the build artifacts +at `./packages//target/*.pkg`. + +To clean building files for a package, run: + +```shell +./x clean # Clean a package +./x clean --all # Clean all packages +``` + +## Targets + +This repository is for SemiOS targets only. Other targets are not guaranteed to work. +Currently, we support: + +- aarch64-semios-linux +- riscv64-semios-linux +- x86_64-semios-linux + +## Atom Builds + +*Atom Build* is a technology to make reproducible building environments. To build a +package in its atom environment, run: + +```shell +./x --atombuild build +``` + +You can use the `--atombuild` flag with other flags described above. -- 2.55.0 From 4f6837b076c3300b7426964fe686741cb235d6b6 Mon Sep 17 00:00:00 2001 From: sisungo Date: Tue, 18 Aug 2026 21:12:39 +0800 Subject: [PATCH 11/14] feat: add package gperf Signed-off-by: sisungo --- packages/gperf/pkgbuild.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 packages/gperf/pkgbuild.py diff --git a/packages/gperf/pkgbuild.py b/packages/gperf/pkgbuild.py new file mode 100644 index 0000000..f8a85ee --- /dev/null +++ b/packages/gperf/pkgbuild.py @@ -0,0 +1,24 @@ +from lib import arch, cpp +from lib.make import * + + +version("3.3") +description("GNU perfect hash function generator") +maintainer("sisungo ") +source_url("https://ftp.gnu.org/pub/gnu/gperf/gperf-3.3.tar.gz") + +builddep("shortcut/c++") +builddep("shortcut/autotools") + + +def build(): + cpp.configure() + cpp.make() + cpp.make_install() + +on_build(build) + + +package("gperf") +dep("libcxx @same-arch") +cpp.use_auto_pack(["bin"]) -- 2.55.0 From 9ffea2323453762391e2de8b265569299c588f2f Mon Sep 17 00:00:00 2001 From: sisungo Date: Wed, 19 Aug 2026 15:06:52 +0800 Subject: [PATCH 12/14] feat: add package setuptools-py Signed-off-by: sisungo --- packages/setuptools-py/pkgbuild.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 packages/setuptools-py/pkgbuild.py diff --git a/packages/setuptools-py/pkgbuild.py b/packages/setuptools-py/pkgbuild.py new file mode 100644 index 0000000..b7b5df1 --- /dev/null +++ b/packages/setuptools-py/pkgbuild.py @@ -0,0 +1,22 @@ +from lib.make import * +from lib import python + + +python.version("84.0.0") +description("Most extensible Python build backend with support for C/C++ extension modules") +maintainer("sisungo ") +source_url("https://files.pythonhosted.org/packages/6d/44/f5da03a8ef95d369145c5bb53050e7877c9f3d312e128605fd9504829143/setuptools-84.0.0.tar.gz") + +python.builddep("$shortcut") + + +def build(): + python.build() + python.install() + +on_build(build) + + +package("setuptools.py") +python.dep("python") +python.use_auto_pack() -- 2.55.0 From aee73b0820524a13c4f783cbe92e1432aa0bad47 Mon Sep 17 00:00:00 2001 From: sisungo Date: Wed, 19 Aug 2026 19:58:58 +0800 Subject: [PATCH 13/14] feat: add package graphite Signed-off-by: sisungo --- packages/graphite/pkgbuild.py | 48 +++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 packages/graphite/pkgbuild.py diff --git a/packages/graphite/pkgbuild.py b/packages/graphite/pkgbuild.py new file mode 100644 index 0000000..493102d --- /dev/null +++ b/packages/graphite/pkgbuild.py @@ -0,0 +1,48 @@ +import os + +import lib.cpp as cpp +from lib.make import * + + +version("1.3.15") +description("Graphite is a \"smart font\" system developed specifically to handle the complexities of lesser-known languages of the world.") +maintainer("sisungo ") +source_url("https://github.com/silnrsi/graphite/releases/download/1.3.15/graphite2-1.3.15.tgz") + +builddep("shortcut/c++") +builddep("shortcut/cmake") + + +def build(): + cpp.cmake([ + f"-DCMAKE_INSTALL_PREFIX={get_prefix('libgraphite-dev')}", + ]) + cpp.ninja() + cpp.ninja_install() + +on_build(build) + + +def pack_dev(composer): + composer.add_dir("bin", "bin") + composer.add_dir("include", "include") + composer.add_dir("share", "share") + composer.makedir("lib") + composer.add_dir("lib/pkgconfig", "lib/pkgconfig") + for i in os.listdir("lib"): + if not os.path.isfile(f"lib/{i}"): + continue + if ".so" in i: + os.symlink(f"{get_prefix('libgraphite')}/lib/{i}", f"{composer.workdir}/bundle/lib/{i}") + else: + composer.addfile(f"lib/{i}", f"lib/{i}") + + +package("libgraphite") +dep("semi-libc @same-arch") +cpp.use_auto_pack(["lib"]) + +package("libgraphite-dev") +dep("libgraphite (same)") +dep("semi-libc-dev @same-arch") +on_pack(pack_dev) -- 2.55.0 From 0f0ed19c8a0b6c8645016b992447ac8785e19bc3 Mon Sep 17 00:00:00 2001 From: sisungo Date: Thu, 20 Aug 2026 11:36:43 +0800 Subject: [PATCH 14/14] feat: fix glib include path Signed-off-by: sisungo --- packages/glib/pkgbuild.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/glib/pkgbuild.py b/packages/glib/pkgbuild.py index fea900b..7cda67a 100644 --- a/packages/glib/pkgbuild.py +++ b/packages/glib/pkgbuild.py @@ -31,7 +31,7 @@ def build(): f"-Dgio_module_dir=/lib/{arch.get_target()}/gio/modules", "--prefix=/", f"--bindir={get_prefix('glib-tools')}/bin", - f"--libdir={get_prefix('glib')}/lib", + f"--libdir={get_prefix('glib-dev')}/lib", f"--includedir={get_prefix('glib-dev')}/include", f"--libexecdir={get_prefix('libglib')}/libexec", f"--datadir={get_prefix('glib')}/share", -- 2.55.0