Compare commits

..
Author SHA1 Message Date
sisungo d05fce73dc feat: add python packaging lib
Signed-off-by: sisungo <[email protected]>
2026-08-15 20:49:02 +08:00
sisungo ed596468e4 Merge pull request 'fix: autostrip breaks hard links' (#157) from sisungo/semios-packages:fix-inode into master
Reviewed-on: semios/semios-packages#157
2026-08-15 12:49:38 +08:00
sisungo a405253451 fix: autostrip breaks hard links
Signed-off-by: sisungo <[email protected]>
2026-08-15 12:47:13 +08:00
sisungo e2094c34d7 Merge pull request 'feat: change llvm triple to unknown- vendor' (#154) from sisungo/semios-packages:llvm-fix into master
Reviewed-on: semios/semios-packages#154
2026-08-14 10:09:12 +08:00
sisungo b09d172ff9 feat: change llvm triple to unknown- vendor
Signed-off-by: sisungo <[email protected]>
2026-08-14 10:08:12 +08:00
sisungo 89744adb38 Merge pull request 'feat: add package htop' (#143) from sisungo/semios-packages:htop into master
Reviewed-on: semios/semios-packages#143
2026-08-10 11:38:10 +08:00
sisungo fc753703c4 feat: add package htop
Signed-off-by: sisungo <[email protected]>
2026-08-10 11:18:38 +08:00
sisungo 132ed2d8b3 Merge pull request 'feat: add package maintainers' (#142) from sisungo/semios-packages:maintainers into master
Reviewed-on: semios/semios-packages#142
2026-08-10 09:54:41 +08:00
sisungo 41d0b79083 feat: add package maintainers
Signed-off-by: sisungo <[email protected]>
2026-08-10 09:53:45 +08:00
sisungo 232aa0b690 Merge pull request 'feat: add package packie' (#54) from sisungo/semios-packages:packie into master
Reviewed-on: semios/semios-packages#54
2026-08-09 22:32:19 +08:00
sisungo 65dd900ea4 feat: add package packie
Signed-off-by: sisungo <[email protected]>
2026-08-09 21:23:01 +08:00
sisungo ea440a2465 Merge pull request 'fix: llvm build configuration has invalid fields' (#141) from sisungo/semios-packages:llvmfix into master
Reviewed-on: semios/semios-packages#141
2026-08-09 14:22:52 +08:00
sisungo e7d77b63b3 fix: llvm build configuration has invalid fields
Signed-off-by: sisungo <[email protected]>
2026-08-09 13:01:40 +08:00
sisungo 2f7053488b Merge pull request 'feat: add package bash' (#135) from sisungo/semios-packages:bash into master
Reviewed-on: semios/semios-packages#135
2026-08-08 10:26:41 +08:00
sisungo cb9842b371 Merge pull request 'feat: add description to packages' (#140) from sisungo/semios-packages:description into master
Reviewed-on: semios/semios-packages#140
2026-08-08 10:20:03 +08:00
sisungo 25525068bd Merge pull request 'fix: atombuild delayed copying resolv.conf' (#139) from sisungo/semios-packages:atomfix into master
Reviewed-on: semios/semios-packages#139
2026-08-08 10:19:48 +08:00
sisungo 2a7def094d feat: add package bash
Signed-off-by: sisungo <[email protected]>
2026-08-08 01:45:44 +08:00
sisungo fb5f90e0bb fix: atombuild delayed copying resolv.conf
Signed-off-by: sisungo <[email protected]>
2026-08-04 21:26:10 +08:00
76 changed files with 359 additions and 56 deletions
+37 -4
View File
@@ -1,6 +1,8 @@
import os
import stat
import subprocess
import tempfile
import shutil
from lib import common
@@ -13,6 +15,8 @@ def _is_elf(filepath):
def autostrip(composer):
processed_inodes = {}
for ent in common.treedir(composer.workdir):
if not ent.is_file(follow_symlinks=False):
continue
@@ -20,7 +24,36 @@ def autostrip(composer):
continue
if not _is_elf(ent.path):
continue
oldperm = stat.S_IMODE(os.stat(ent.path).st_mode)
os.chmod(ent.path, 0o777)
subprocess.run([strip, ent.path], check=True)
os.chmod(ent.path, oldperm)
stat_info = os.stat(ent.path)
inode_key = (stat_info.st_dev, stat_info.st_ino)
if inode_key in processed_inodes:
continue
processed_inodes[inode_key] = True
oldperm = stat.S_IMODE(stat_info.st_mode)
try:
with tempfile.NamedTemporaryFile(mode='wb', delete=False) as tmp_file:
tmp_path = tmp_file.name
shutil.copy2(ent.path, tmp_path)
os.chmod(tmp_path, 0o777)
subprocess.run([strip, tmp_path], check=True)
with open(tmp_path, 'rb') as tmp_file:
stripped_data = tmp_file.read()
with open(ent.path, 'r+b') as original_file:
original_file.truncate(0)
original_file.write(stripped_data)
original_file.flush()
os.fsync(original_file.fileno())
os.chmod(ent.path, oldperm)
os.unlink(tmp_path)
except Exception as e:
if 'tmp_path' in locals() and os.path.exists(tmp_path):
os.unlink(tmp_path)
raise RuntimeError(f"Failed to strip {ent.path}: {e}") from e
+6 -6
View File
@@ -4,16 +4,16 @@ from . import packie
all: dict[str, dict[str, str]] = {
"aarch64-semios-linux": {
"CC": "clang -target aarch64-semios-linux-musl",
"CXX": "clang++ -target aarch64-semios-linux-musl",
"CC": "clang -target aarch64-unknown-linux-musl",
"CXX": "clang++ -target aarch64-unknown-linux-musl",
},
"x86_64-semios-linux": {
"CC": "clang -target x86_64-semios-linux-musl",
"CXX": "clang++ -target x86_64-semios-linux-musl",
"CC": "clang -target x86_64-unknown-linux-musl",
"CXX": "clang++ -target x86_64-unknown-linux-musl",
},
"riscv64-semios-linux": {
"CC": "clang -target riscv64-semios-linux-musl",
"CXX": "clang++ -target riscv64-semios-linux-musl",
"CC": "clang -target riscv64-unknown-linux-musl",
"CXX": "clang++ -target riscv64-unknown-linux-musl",
},
}
_target: str = packie.host_arch()
+28 -28
View File
@@ -13,8 +13,11 @@ BASE_REQUIREMENTS = [
# Packages for running `semios-packages` scripts
"python",
"packie",
"patch",
"zstd",
"libarchive-tools",
# Packages for building packages that require patching
"patch",
# Packages for downloading various formats of tarballs
"libz-ng",
"liblzma",
"libbzip2",
@@ -32,19 +35,32 @@ BASE_REQUIREMENTS = [
def _prepare_build_env_base_files(root: str):
# Create root directory
os.makedirs(root, exist_ok=True)
# Create var, run and tmp
os.mkdir(f"{root}/var")
os.mkdir(f"{root}/var/tmp")
os.mkdir(f"{root}/var/run")
os.mkdir(f"{root}/tmp")
os.mkdir(f"{root}/run")
# Copy repository config files
os.makedirs(f"{root}/var/db/packie")
shutil.copytree("/var/config/packie/repos.d", f"{root}/var/config/packie/repos.d")
# Create directories for kernel pseudo filesystems
os.mkdir(f"{root}/dev")
os.mkdir(f"{root}/sys")
os.mkdir(f"{root}/proc")
# Create home directory of root (some scripts may require it)
os.makedirs(f"{root}/home/root")
# Copy DNS config
os.makedirs(f"{root}/etc", exist_ok=True)
shutil.copy2("/etc/resolv.conf", f"{root}/etc/resolv.conf")
def prepare_build_env(root: str, extreq: list[str] = []):
# Skip if the environment is already initialized
@@ -65,10 +81,6 @@ def prepare_build_env(root: str, extreq: list[str] = []):
# Refresh certificates
enter_build_env(root, ["certutil", "refresh"])
# Copy DNS config
os.makedirs(f"{root}/etc", exist_ok=True)
shutil.copy2("/etc/resolv.conf", f"{root}/etc/resolv.conf")
# Create initialized tag
with open(f"{root}/.INIT", "wt+") as file:
file.write("OK")
@@ -83,32 +95,20 @@ def enter_build_env(root: str, cmd: list[str], chdir: str = "/"):
subprocess.run(
[
"bwrap",
"--bind",
root,
"/",
"--bind", root, "/",
"--unshare-pid",
"--unshare-user",
"--uid",
"0",
"--gid",
"0",
"--dev",
"/dev",
"--bind",
"/sys",
"/sys",
"--proc",
"/proc",
"--uid", "0",
"--gid", "0",
"--dev", "/dev",
"--bind", "/sys", "/sys",
"--proc", "/proc",
"--clearenv",
"--setenv",
"HOME",
"/home/root",
"--setenv",
"PATH",
"/bin",
"--setenv",
"SEMIOS_PKGBUILD_IN_ATOMIC",
"1",
"--setenv", "HOME", "/home/root",
"--setenv", "PATH", "/bin",
"--setenv", "SEMIOS_PKGBUILD_IN_ATOMIC", "1",
"--setenv", "USER", "root",
"--setenv", "LOGNAME", "root",
"--chdir",
chdir,
]
+6
View File
@@ -7,6 +7,7 @@ from . import pkgcomposer, sources
_key_global = "@global"
_key_version = "version"
_key_description = "description"
_key_maintainers = "maintainers"
_key_on_pack = "on_pack"
_key_arch_any = "arch_any"
_key_links = "links"
@@ -19,6 +20,7 @@ _pkginfo: dict[str, dict[str, typing.Any]] = {
_key_global: {
_key_links: [],
_key_dependencies: [],
_key_maintainers: [],
_key_provides: [],
_key_recommendations: [],
},
@@ -69,6 +71,10 @@ def description(s: str):
_pkginfo[_current_pkgname][_key_description] = s
def maintainer(s: str):
_pkginfo[_current_pkgname][_key_maintainers] += [s]
def arch_any():
_pkginfo[_current_pkgname][_key_arch_any] = True
+11 -10
View File
@@ -4,17 +4,10 @@ import shutil
import subprocess
import sys
if sys.version_info >= (3, 14):
_archive_format = "zstdtar"
_archive_suffix = ".tar.zst"
else:
_archive_format = "gztar"
_archive_suffix = ".tar.gz"
class PkgComposer:
def __init__(self, pkgfile: str):
self.pkgfile = pkgfile
self.pkgfile = os.path.abspath(pkgfile)
def setworkdir(self, workdir: str):
self.workdir = workdir
@@ -33,8 +26,16 @@ class PkgComposer:
f.write("\n")
def compose(self):
shutil.make_archive(self.pkgfile, _archive_format, self.workdir)
shutil.move(self.pkgfile + _archive_suffix, self.pkgfile)
subprocess.run(
[
"tar", "cpf", f"{self.pkgfile}.tar",
"-C", self.workdir,
"--numeric-owner",
".",
],
check=True,
)
subprocess.run(["zstd", "--rm", "-f", f"{self.pkgfile}.tar", "-o", self.pkgfile], check=True)
def makedir(self, name: str):
os.mkdir(f"{self.workdir}/bundle/{name}")
+62
View File
@@ -0,0 +1,62 @@
import os
import shutil
import subprocess
from . import make, arch
PY3_VERSION = "3.14"
def build():
subprocess.run(["python3", "-m", "build", "."], check=True)
def install():
if os.path.exists("../pyinstall"):
shutil.rmtree("../pyinstall")
for i in os.listdir("dist"):
if not i.endswith(".whl"):
continue
subprocess.run(["python3", "-m", "installer", f"--destdir=../pyinstall", f"dist/{i}"], check=True)
os.chdir("../pyinstall")
while len(os.listdir(".")) == 1:
os.chdir(os.listdir(".")[0])
def version(s: str):
make.version(f"{s}+python{PY3_VERSION}")
def _depcommon(s: str):
if s == "python":
return f"python (~{PY3_VERSION}.0) @{arch.get_target()}"
elif ".py" in s:
if ")" in s:
return s.replace(")", f", +python{PY3_VERSION})")
else:
return s.replace(".py", f" (+python{PY3_VERSION})")
else:
return None
def builddep(s: str):
if s == "$shortcut":
builddep("python")
builddep("build.py")
builddep("installer.py")
elif _depcommon(s):
make.builddep(_depcommon(s))
else:
raise RuntimeError("unrecognized python dep")
def dep(s: str):
if _depcommon(s):
make.dep(_depcommon(s))
else:
raise RuntimeError("unrecognized python dep")
def _auto_pack(composer):
base = f"lib/python{PY3_VERSION}/site-packages"
composer.makedirs(base)
for i in os.listdir("."):
composer.add_dir(i, f"{base}/{i}")
def use_auto_pack():
make.on_pack(_auto_pack)
+1
View File
@@ -6,6 +6,7 @@ from lib.make import *
version("0.10.9")
description("Modern, portable and fast implementation of service supervisor and the init daemon.")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/sisungo/airup/archive/refs/tags/v0.10.9.tar.gz")
builddep("shortcut/rust")
+1
View File
@@ -5,6 +5,7 @@ upstream_version = "1.2.16.1"
version(upstream_version)
description("audio and MIDI functionality for the Linux operating system")
maintainer("sisungo <[email protected]>")
source_url("https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.16.1.tar.bz2")
builddep("shortcut/c")
+1
View File
@@ -3,6 +3,7 @@ from lib import cpp
version("1.2.16")
description("audio and MIDI functionality for the Linux operating system")
maintainer("sisungo <[email protected]>")
source_url("https://www.alsa-project.org/files/pub/utils/alsa-utils-1.2.16.tar.bz2")
builddep("shortcut/c")
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("2026.4.26")
description("The One True Awk programming language")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/onetrueawk/awk/archive/refs/tags/20260426.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("5.1.0")
description("a general-purpose cryptographic library maintained by the AWS Cryptography team")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/aws/aws-lc/archive/refs/tags/v5.1.0.tar.gz")
builddep("shortcut/c")
+85
View File
@@ -0,0 +1,85 @@
import os
from lib.make import *
from lib import cpp
version("5.3")
description("the Bourne Again SHell")
maintainer("sisungo <[email protected]>")
source_url("https://ftp.gnu.org/gnu/bash/bash-5.3.tar.gz")
builddep("shortcut/c")
builddep("shortcut/autotools")
builddep(f"libncurses-dev @{arch.get_target()}")
def build():
cpp.configure([
f"--prefix={get_prefix('bash')}",
f"--datarootdir={get_prefix('bash-doc')}/share",
f"--localedir={get_prefix('bash')}/share/locale",
"--enable-alias",
"--enable-alt-array-implementation",
"--enable-arith-for-command",
"--enable-array-variables",
"--enable-bang-history",
"--enable-brace-expansion",
"--enable-casemod-attributes",
"--enable-casemod-expansions",
"--enable-command-timing",
"--enable-cond-command",
"--enable-cond-regexp",
"--enable-coprocesses",
"--enable-directory-stack",
"--enable-dparen-arithmetic",
"--enable-extended-glob",
"--enable-function-import",
"--enable-glob-asciiranges-default",
"--enable-help-builtin",
"--enable-history",
"--enable-job-control",
"--enable-multibyte",
"--enable-net-redirections",
"--enable-process-substitution",
"--enable-progcomp",
"--enable-prompt-string-decoding",
"--enable-readline",
"--enable-restricted",
"--enable-select",
"--enable-separate-helpfiles",
"--enable-single-help-strings",
"--enable-translatable-strings",
"--without-bash-malloc",
])
cpp.make()
cpp.make_install()
on_build(build)
def pack_bash(composer):
composer.add_dir("bin", "bin")
composer.makedir("lib")
composer.add_dir("lib/bash", "lib/bash")
os.remove(f"{composer.workdir}/bundle/lib/bash/loadables.h")
os.remove(f"{composer.workdir}/bundle/lib/bash/Makefile.inc")
os.remove(f"{composer.workdir}/bundle/lib/bash/Makefile.sample")
composer.makedir("share")
composer.add_dir("share/locale", "share/locale")
def pack_doc(composer):
composer.makedir("share")
composer.add_dir("share/bash", "share/bash")
composer.add_dir("share/doc", "share/doc")
composer.add_dir("share/info", "share/info")
composer.add_dir("share/man", "share/man")
package("bash")
dep("semi-libc @same-arch")
dep("libncurses @same-arch")
on_pack(pack_bash)
package("bash-dev")
dep("bash (same)")
cpp.use_auto_pack(["dev"])
package("bash-doc")
on_pack(pack_doc)
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("7.0.3")
description("An implementation of the POSIX bc calculator with GNU extensions and dc")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/gavinhoward/bc/releases/download/7.0.3/bc-7.0.3.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("3.7.91")
description("a general-purpose parser generator that converts an annotated context-free grammar into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables")
maintainer("sisungo <[email protected]>")
source_url("https://alpha.gnu.org/gnu/bison/bison-3.7.91.tar.xz")
builddep("shortcut/c")
+1
View File
@@ -7,6 +7,7 @@ VERSION = "2026.6.19"
version(VERSION)
description("The BSD make utility ported to non-BSD systems")
maintainer("sisungo <[email protected]>")
source_url("https://www.crufty.net/ftp/pub/sjg/bmake-20260619.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("1.2.0")
description("Brotli compression format")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/google/brotli/archive/refs/tags/v1.2.0.tar.gz")
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("2.0")
description("Berkeley yacc")
maintainer("sisungo <[email protected]>")
source_url("https://www.invisible-island.net/archives/byacc/byacc-2.0.tgz")
builddep("shortcut/c")
+1
View File
@@ -11,6 +11,7 @@ builddep("shortcut/autotools")
version(f"{upstream_version}")
description("a freely available, patent free, high-quality data compressor")
maintainer("sisungo <[email protected]>")
source_url(f"https://sourceware.org/pub/bzip2/bzip2-{upstream_version}.tar.gz")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("1.34.6")
description("A C library for asynchronous DNS requests")
maintainer("sisungo <[email protected]>")
source_url(
"https://github.com/c-ares/c-ares/releases/download/v1.34.6/c-ares-1.34.6.tar.gz"
)
+1
View File
@@ -4,6 +4,7 @@ from lib.make import *
version("2026.7.4")
description("SemiOS system-level trusted CA database")
maintainer("sisungo <[email protected]>")
source_url(
"https://gitea.semilabs.org/semios/ca-certificates/releases/download/v2026.07.04/ca-certificates-2026.07.04.tar"
)
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("0.1.0")
description("SemiOS certification utility")
maintainer("sisungo <[email protected]>")
source_url("https://gitea.semilabs.org/semios/certutil/archive/v0.1.0.tar.gz")
builddep("shortcut/rust")
+1
View File
@@ -9,6 +9,7 @@ upstream_version = "4.3.4"
version(upstream_version)
description("a cross-platform, open-source build system generator")
maintainer("sisungo <[email protected]>")
source_url(
"https://github.com/Kitware/CMake/releases/download/v4.3.4/cmake-4.3.4.tar.gz"
)
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("0.10.0")
description("system core utilities")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/uutils/coreutils/archive/refs/tags/0.10.0.tar.gz")
block_hook("autolink")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("8.21.0")
description("command line tool and library for transferring data with URLs")
maintainer("sisungo <[email protected]>")
source_url("https://curl.se/download/curl-8.21.0.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -5,6 +5,7 @@ from lib import cpp
version("1.16.2")
description("a message bus system, a simple way for applications to talk to one another")
maintainer("sisungo <[email protected]>")
source_url("https://dbus.freedesktop.org/releases/dbus/dbus-1.16.2.tar.xz")
builddep("shortcut/c")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("0.5.0")
description("utility to compute difference between text files")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/uutils/diffutils/archive/refs/tags/v0.5.0.tar.gz")
builddep("shortcut/rust")
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("2.8.1")
description("Fast streaming XML parser written in C99")
maintainer("sisungo <[email protected]>")
source_url(
"https://github.com/libexpat/libexpat/releases/download/R_2_8_1/expat-2.8.1.tar.gz"
)
+1
View File
@@ -7,6 +7,7 @@ VERSION = "5.48"
version(VERSION)
description("utility to infer file type and information")
maintainer("sisungo <[email protected]>")
source_git("https://github.com/file/file.git", "FILE5_48")
builddep("shortcut/c")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("0.10.0")
description("implementation of the UNIX findutils")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/uutils/findutils/archive/refs/tags/0.10.0.tar.gz")
builddep("shortcut/rust")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("2.6.4")
description("The Fast Lexical Analyzer - scanner generator for lexing in C and C++")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("0.3.3")
description("small implementation of gettext and libintl")
maintainer("sisungo <[email protected]>")
source_url(
"https://github.com/sabotage-linux/gettext-tiny/releases/download/v0.3.3/gettext-tiny-0.3.3.tar.xz"
)
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("2.55.0")
description("a free and open source distributed version control system")
maintainer("sisungo <[email protected]>")
source_url("https://www.kernel.org/pub/software/scm/git/git-2.55.0.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -8,6 +8,7 @@ upstream_version = "2.89.2"
version(upstream_version)
description("a general-purpose, portable utility library")
maintainer("sisungo <[email protected]>")
source_url("https://download.gnome.org/sources/glib/2.89/glib-2.89.2.tar.xz")
builddep("shortcut/c++")
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("1.4.21")
description("an implementation of the traditional Unix macro processor")
maintainer("sisungo <[email protected]>")
source_url("https://ftp.gnu.org/gnu/m4/m4-1.4.21.tar.xz")
builddep("shortcut/c")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("4.4.1")
description("a tool which controls the generation of executables and other non-source files of a program from the program's source files")
maintainer("sisungo <[email protected]>")
source_url("https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("4.10")
description("a non-interactive command-line text editor")
maintainer("sisungo <[email protected]>")
source_url("https://ftp.gnu.org/gnu/sed/sed-4.10.tar.gz")
block_hook("autolink")
+1
View File
@@ -4,6 +4,7 @@ from lib.make import *
version("15.1.2")
description("SemiOS file pattern searcher")
maintainer("sisungo <[email protected]>")
source_url("https://gitea.semilabs.org/semios/grep/archive/v15.1.2.tar.gz")
builddep("shortcut/c")
+30
View File
@@ -0,0 +1,30 @@
from lib.make import *
from lib import cpp
version("3.5.2")
description("an interactive process viewer")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/htop-dev/htop/releases/download/3.5.2/htop-3.5.2.tar.xz")
builddep("shortcut/autotools")
builddep("shortcut/c")
builddep(f"libncurses-dev @{arch.get_target()}")
builddep(f"linux-dev @{arch.get_target()}")
def build():
cpp.configure([
f"--prefix={get_prefix('htop')}",
"--enable-unicode",
])
cpp.make()
cpp.make_install()
on_build(build)
package("htop")
dep("libncurses @same-arch")
dep("semi-libc @same-arch")
cpp.use_auto_pack(["bin"])
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("2026.4.22")
description("code and data that represent the history of local time for many representative locations worldwide")
maintainer("sisungo <[email protected]>")
source_url("https://data.iana.org/time-zones/releases/tzdb-2026b.tar.lz")
builddep("shortcut/c")
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("78.3")
description("a mature, widely used set of C/C++ libraries providing Unicode and Globalization support for software applications")
maintainer("sisungo <[email protected]>")
source_url(
"https://github.com/unicode-org/icu/releases/download/release-78.3/icu4c-78.3-sources.tgz"
)
+1
View File
@@ -6,6 +6,7 @@ from lib.make import *
version("7.1.0")
description("a collection of userspace utilities for controlling and monitoring various aspects of networking in the Linux kernel")
maintainer("sisungo <[email protected]>")
source_git("https://git.kernel.org/pub/scm/network/iproute2/iproute2.git", "v7.1.0")
builddep("shortcut/c")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("1.34")
description("a set of tools to handle common tasks with Linux kernel modules like insert, remove, list, check properties, resolve dependencies and aliases")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/kmod-project/kmod/archive/refs/tags/v34.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -7,6 +7,7 @@ builddep(f"libncurses-dev @{arch.get_target()}")
version("704")
description("a free, open-source file pager")
maintainer("sisungo <[email protected]>")
source_url("https://www.greenwoodsoftware.com/less/less-704.tar.gz")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("3.8.9")
description("Multi-format archive and compression library")
maintainer("sisungo <[email protected]>")
source_url(
"https://github.com/libarchive/libarchive/releases/download/v3.8.9/libarchive-3.8.9.tar.gz"
)
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("3.7.1")
description("A portable foreign-function interface library")
maintainer("sisungo <[email protected]>")
source_url(
"https://github.com/libffi/libffi/releases/download/v3.7.1/libffi-3.7.1.tar.gz"
)
+1
View File
@@ -6,6 +6,7 @@ from lib.make import *
version("0.2.0")
description("provides compatibility objects to gcc runtime libraries")
maintainer("sisungo <[email protected]>")
source_url("https://gitea.semilabs.org/semios/libgcc-compat/archive/v0.2.0.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("1.6.1")
description("a totally open, royalty-free, highly versatile audio codec")
maintainer("sisungo <[email protected]>")
source_url("https://downloads.xiph.org/releases/opus/opus-1.6.1.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("0.23.1")
description("C library for the Public Suffix List")
maintainer("sisungo <[email protected]>")
source_url(
"https://github.com/rockdaboot/libpsl/releases/download/0.23.1/libpsl-0.23.1.tar.gz"
)
+1
View File
@@ -2,6 +2,7 @@ from lib.make import *
version("2.0")
description("A small self-contained alternative to readline and libedit")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/antirez/linenoise/archive/refs/tags/2.0.tar.gz")
on_build(lambda: None)
+1
View File
@@ -9,6 +9,7 @@ upstream_version = "6.18.43"
version(f"{upstream_version}")
description("the Linux operating system kernel")
maintainer("sisungo <[email protected]>")
source_url(
f"https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-{upstream_version}.tar.xz"
)
+9 -4
View File
@@ -12,6 +12,7 @@ pkgver = "22.1.8"
version(pkgver)
description("a collection of modular and reusable compiler and toolchain technologies")
maintainer("sisungo <[email protected]>")
source_url(f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{pkgver}/llvm-project-{pkgver}.src.tar.xz")
builddep("shortcut/c++")
@@ -27,7 +28,7 @@ srcdir = None
packname = None
def llvm_host_triple():
return arch.get_target().replace("-semios-linux", "-semios-linux-musl")
return arch.get_target().replace("-semios-linux", "-unknown-linux-musl")
def cmake(sourcedir, args):
builddir = os.getcwd() + f"/../_build_{sourcedir}"
@@ -75,7 +76,7 @@ def auto_pack_dev(composer, name, devbins=[], extdirs=["lib/cmake"]):
composer.makedir("lib")
for i in os.listdir("lib"):
prefix = None
if os.path.isdir(i) and f"lib/{i}" in extdirs:
if os.path.isdir(f"lib/{i}") and f"lib/{i}" in extdirs:
composer.add_dir(f"lib/{i}", f"lib/{i}")
elif ".so" in i:
prefix = get_prefix(f"lib{name}")
@@ -131,6 +132,7 @@ def build_clang():
"-DCLANG_DEFAULT_CXX_STDLIB=libc++",
"-DCLANG_DEFAULT_RTLIB=compiler-rt",
"-DLLVM_INCLUDE_TESTS=OFF",
f"-DC_INCLUDE_DIRS=/lib/{arch.get_target()}/include:{get_prefix('clang')}/lib/clang/{pkgver_major}/include",
]
cmake("clang", import_llvm() + options)
@@ -144,7 +146,7 @@ def build_polly():
cmake("polly", import_llvm())
def build_runtimes():
cflags = f"-isystem /lib/{arch.get_target()}/include -L/lib/{arch.get_target()} -B/lib/{arch.get_target()} -rtlib=compiler-rt"
os.makedirs("../_build_runtimes", exist_ok=True)
shutil.rmtree("../_build_runtimes")
options = [
# Configure runtimes
@@ -188,6 +190,7 @@ dep("semi-libc @same-arch")
dep("libunwind @same-arch")
dep("libcxx @same-arch")
dep("libcxxabi @same-arch")
dep("libffi @same-arch")
on_pack(lambda composer: auto_pack_glob(composer, ["lib/*.so*"]))
package("libllvm-dev")
@@ -250,7 +253,7 @@ def pack_clang(composer):
lrtlib = rtlib.replace(f"-{larch}", "")
composer.addfile(f"{linuxrtdir}/{rtlib}", f"{localrtdir}/{lrtlib}")
# Add symlink to system directories
# Add symlink to system directories, which is required for finding libc++
os.symlink(f"/lib/{arch.get_target()}/include", f"{composer.workdir}/bundle/include")
# Add configuration
@@ -264,6 +267,8 @@ def pack_clang(composer):
package("clang")
dep("libclang (same)")
on_pack(pack_clang)
link("bin/clang", "/bin/cc")
link("bin/clang++", "/bin/c++")
enter_install("lld")
+1
View File
@@ -6,6 +6,7 @@ from lib.make import *
version("1.14.6")
description("a suite of tools compiling mdoc, the roff macro language, and man")
maintainer("sisungo <[email protected]>")
source_url("https://mandoc.bsd.lv/snapshots/mandoc-1.14.6.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -4,6 +4,7 @@ from lib.make import *
version("1.11.2")
description("The Meson Build System")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/mesonbuild/meson/releases/download/1.11.2/meson-1.11.2.tar.gz")
builddep("python")
+1
View File
@@ -4,6 +4,7 @@ from lib.make import *
version("1.59.2")
description("the MirBSD Korn Shell, a minimal and useful implementation of the POSIX shell with extensions")
maintainer("sisungo <[email protected]>")
source_url(
"https://github.com/mirabilos/mksh-cvs2git/archive/refs/tags/mksh-R59c.tar.gz"
)
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("6.6")
description("the ncurses terminal library")
maintainer("sisungo <[email protected]>")
source_url("https://invisible-island.net/archives/ncurses/ncurses-6.6.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("19")
description("A vi/ex editor for editing UTF-8 text")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/aligrudi/neatvi/archive/refs/tags/19.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -6,6 +6,7 @@ from lib.make import *
version("5.3")
description("A small vi/ex terminal text editor (neatvi rewrite)")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/kyx0r/nextvi/archive/refs/tags/5.3.tar.gz")
builddep("shortcut/c")
+1 -2
View File
@@ -1,10 +1,9 @@
import os
from lib import cpp
from lib.make import *
version("1.70.0")
description("nghttp2 - HTTP/2 C Library and tools")
maintainer("sisungo <[email protected]>")
source_url(
"https://github.com/nghttp2/nghttp2/releases/download/v1.70.0/nghttp2-1.70.0.tar.gz"
)
+1
View File
@@ -4,6 +4,7 @@ from lib.make import *
version("1.13.2")
description("a small build system with a focus on speed")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/ninja-build/ninja/archive/refs/tags/v1.13.2.tar.gz")
builddep("shortcut/c++")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("10.3.1")
description("the premier connectivity tool for remote login with the SSH protocol")
maintainer("sisungo <[email protected]>")
source_url("https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.3p1.tar.gz")
builddep("shortcut/c")
+18
View File
@@ -0,0 +1,18 @@
from lib import rust
from lib.make import *
version("0.0.1-alpha.1")
description("SemiOS package manager")
maintainer("sisungo <[email protected]>")
source_url("https://gitea.semilabs.org/semios/packie/archive/0.1.0.alpha-1.tar.gz")
def build():
rust.build(["--package", "packie-cli"])
on_build(build)
package("packie")
dep("semi-libc @same-arch")
rust.use_auto_pack(["bin"])
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("15.1.1")
description("the SemiOS fork of the UNIX patch utility")
maintainer("sisungo <[email protected]>")
source_url("https://gitea.semilabs.org/semios/patch/archive/v15.1.1.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("10.47")
description("a set of C functions that implement regular expression pattern matching")
maintainer("sisungo <[email protected]>")
source_url(
"https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.47/pcre2-10.47.tar.gz"
)
+1
View File
@@ -8,6 +8,7 @@ upstream_version = "5.42.2"
version(upstream_version)
description("Perl is a highly capable, feature-rich programming language with over 37 years of development")
maintainer("sisungo <[email protected]>")
source_url("https://www.cpan.org/src/5.0/perl-5.42.2.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -11,6 +11,7 @@ VERSION_FULL = f"{VERSION_BASE}.{VERSION_APPEND}"
version(VERSION_FULL)
description("the Python programming language")
maintainer("sisungo <[email protected]>")
source_url(
f"https://www.python.org/ftp/python/{VERSION_FULL}/Python-{VERSION_FULL}.tar.xz"
)
+1
View File
@@ -7,6 +7,7 @@ upstream_version = "1.4.6"
version(upstream_version)
description("Great utility for computing hash sums")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/rhash/RHash/archive/refs/tags/v1.4.6.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("15.2.0")
description("ripgrep recursively searches directories for a regex pattern while respecting your gitignore")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/BurntSushi/ripgrep/archive/refs/tags/15.2.0.tar.gz")
builddep("shortcut/rust")
+1
View File
@@ -4,6 +4,7 @@ from lib.make import *
version("15.1.1")
description("SemiOS fork of the UNIX sed utility")
maintainer("sisungo <[email protected]>")
source_url("https://gitea.semilabs.org/semios/sed/archive/v15.1.1.tar.gz")
builddep("shortcut/c")
+1
View File
@@ -3,6 +3,7 @@ from lib.make import *
version("1.2.6+1")
description("the SemiOS fork of musl-libc, providing POSIX C standard library and system runtime")
maintainer("sisungo <[email protected]>")
source_url("https://gitea.semilabs.org/semios/semi-libc/archive/v1.2.6-1.tar.gz")
+1
View File
@@ -8,6 +8,7 @@ def deplinux(s):
dep(s)
version("1.0.0")
maintainer("sisungo <[email protected]>")
source_url(f"file://{os.getcwd()}/empty.tar")
on_build(lambda: print("Building virtual package `semios-assembly`..."))
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("3.53.4")
description("a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine")
maintainer("sisungo <[email protected]>")
source_url("https://sqlite.org/2026/sqlite-autoconf-3530400.tar.gz")
builddep("shortcut/autotools")
+1
View File
@@ -14,6 +14,7 @@ builddep(f"libncurses-dev @{arch.get_target()}")
version("2.42.2")
description("a random collection of Linux utilities")
maintainer("sisungo <[email protected]>")
source_url("https://www.kernel.org/pub/linux/utils/util-linux/v2.42/util-linux-2.42.2.tar.xz")
def build():
+2
View File
@@ -5,6 +5,7 @@ upstream_version = "9.2.782"
version(upstream_version)
description("vim, a greatly improved version of the good old UNIX editor Vi")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/vim/vim/archive/refs/tags/v9.2.0782.tar.gz")
builddep("shortcut/c")
@@ -46,3 +47,4 @@ dep("semi-libc @same-arch")
dep("libncurses @same-arch")
dep(f"vim-data (={upstream_version}) @any")
cpp.use_auto_pack(["bin"])
link("bin/vim", "/bin/vi")
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("5.8.3")
description("a general-purpose LZMA data-compression library plus command-line tools")
maintainer("sisungo <[email protected]>")
source_url(
"https://github.com/tukaani-project/xz/releases/download/v5.8.3/xz-5.8.3.tar.gz"
)
+1
View File
@@ -5,6 +5,7 @@ from lib.make import *
version("2.3.3")
description("zlib replacement with optimizations for next generation systems")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/zlib-ng/zlib-ng/archive/refs/tags/2.3.3.tar.gz")
builddep("shortcut/c++")
+1 -2
View File
@@ -1,10 +1,9 @@
import os
import lib.cpp as cpp
from lib.make import *
version("1.5.7")
description("Zstandard - Fast real-time compression algorithm")
maintainer("sisungo <[email protected]>")
source_url(
"https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz"
)