Compare commits

...
Author SHA1 Message Date
sisungo 66626cf702 feat: add package libgcc-compat
Signed-off-by: sisungo <[email protected]>
2026-07-04 19:16:36 +08:00
sisungo f541a95e49 Merge pull request 'fix: autostrip fails on read-only permissions' (#82) from sisungo/semios-packages:autostrip-perm into master
Reviewed-on: semios/semios-packages#82
2026-07-03 22:45:01 +08:00
sisungo 764a7355f0 fix: autostrip fails on read-only permissions
Signed-off-by: sisungo <[email protected]>
2026-07-03 22:44:19 +08:00
sisungo aef0d22091 Merge pull request 'feat: add links to libarchive-tools' (#71) from sisungo/semios-packages:link-bsdtar-bsdcpio into master
Reviewed-on: semios/semios-packages#71
2026-07-03 09:55:46 +08:00
sisungo 424ff5f6e4 feat: add links to libarchive-tools
Signed-off-by: sisungo <[email protected]>
2026-07-03 09:54:29 +08:00
sisungo e0cbdf7a1b Merge pull request 'feat: add package bmake' (#65) from sisungo/semios-packages:bmake into master
Reviewed-on: semios/semios-packages#65
2026-07-02 22:36:32 +08:00
sisungo 19659a6b43 Merge pull request 'feat: add prefix support' (#70) from sisungo/semios-packages:prefix into master
Reviewed-on: semios/semios-packages#70
2026-07-02 22:35:46 +08:00
sisungo f7ff9d9742 feat: add prefix support
Signed-off-by: sisungo <[email protected]>
2026-07-02 22:35:03 +08:00
sisungo c9627305c2 Merge pull request 'feat: add package libffi' (#61) from sisungo/semios-packages:libffi into master
Reviewed-on: semios/semios-packages#61
2026-06-29 16:37:04 +08:00
sisungo 69adb4a599 Merge pull request 'feat: add package neatvi' (#60) from sisungo/semios-packages:neatvi into master
Reviewed-on: semios/semios-packages#60
2026-06-29 16:36:49 +08:00
sisungo 7076f76481 Merge pull request 'feat: add package awk' (#64) from sisungo/semios-packages:awk into master
Reviewed-on: semios/semios-packages#64
2026-06-29 16:36:33 +08:00
sisungo 83e967f858 feat: add package bmake
Signed-off-by: sisungo <[email protected]>
2026-06-29 16:23:56 +08:00
sisungo bc23a14b1a feat: add package awk
Signed-off-by: sisungo <[email protected]>
2026-06-29 15:43:38 +08:00
sisungo 5b78c48d8e feat: add package libffi
Signed-off-by: sisungo <[email protected]>
2026-06-29 14:13:56 +08:00
sisungo 36ceb91590 feat: add package neatvi
Signed-off-by: sisungo <[email protected]>
2026-06-29 13:56:33 +08:00
sisungo f24ea2d4bf Merge pull request 'feat: use packie new links format' (#59) from sisungo/semios-packages:new-links-format into master
Reviewed-on: semios/semios-packages#59
2026-06-28 17:12:16 +08:00
sisungo b4aa642b52 feat: use packie new links format
Signed-off-by: sisungo <[email protected]>
2026-06-28 16:31:35 +08:00
sisungo 9eb4453f3a Merge pull request 'feat: update aws-lc OPENSSLDIR' (#58) from sisungo/semios-packages:aws-lc-patch into master
Reviewed-on: semios/semios-packages#58
2026-06-28 11:32:43 +08:00
sisungo 132c47e419 Merge pull request 'feat: add aws-lc support for python' (#57) from sisungo/semios-packages:python into master
Reviewed-on: semios/semios-packages#57
2026-06-28 10:25:56 +08:00
sisungo 596b055467 feat: update aws-lc OPENSSLDIR
Signed-off-by: sisungo <[email protected]>
2026-06-28 03:35:34 +08:00
sisungo cc0a73feff feat: add aws-lc support for python
Signed-off-by: sisungo <[email protected]>
2026-06-28 02:46:31 +08:00
sisungo 4b842d43be Merge pull request 'feat: add package file' (#52) from sisungo/semios-packages:file into master
Reviewed-on: semios/semios-packages#52
2026-06-27 22:00:27 +08:00
sisungo 7f1ee4b598 Merge pull request 'feat: update aws-lc to 5.1.0' (#56) from sisungo/semios-packages:aws-lc-update into master
Reviewed-on: semios/semios-packages#56
2026-06-27 22:00:09 +08:00
sisungo 16a1087785 feat: add package file
Signed-off-by: sisungo <[email protected]>
2026-06-27 18:28:20 +08:00
26 changed files with 332 additions and 18 deletions
+4
View File
@@ -1,4 +1,5 @@
import os
import stat
import subprocess
from lib import common
@@ -19,4 +20,7 @@ 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)
+16 -1
View File
@@ -1,4 +1,5 @@
import os
import shutil
import subprocess
from lib.common import treedir
@@ -32,11 +33,25 @@ def make(rem: list[str] = []):
subprocess.run(["make", f"-j{os.cpu_count()}"] + rem, check=True)
def make_install(rem: list[str] | None = None, chdir: bool = True):
def make_install(rem: list[str] | None = None, chdir: bool = True, move: bool = True):
default_rem = ["DESTDIR=" + os.getcwd() + "/../cpp_install"]
if rem is None:
try:
shutil.rmtree("../cpp_install")
except:
pass
subprocess.run(["make", "install"] + (rem or default_rem), check=True)
if rem is None and chdir:
os.chdir("../cpp_install")
if chdir and move:
subprocess.run(
["sh", "-c", "cp -r ./pkg/*@*/* . 2>/dev/null || true"], check=False
)
subprocess.run(
["sh", "-c", "cp -r ./usr/local/* . 2>/dev/null || true"], check=False
)
subprocess.run(["sh", "-c", "cp -r ./usr/* . 2>/dev/null || true"], check=False)
subprocess.run(["rm", "-rf", "./pkg", "./usr"], check=False)
def ninja(rem: list[str] = []):
+9
View File
@@ -72,6 +72,15 @@ def link(src: str, dst: str, default: bool = True):
]
def get_prefix(pkgname: str) -> str:
pkginfo = _pkginfo[pkgname]
if pkginfo.get(_key_arch_any):
pkgarch = "any"
else:
pkgarch = arch.get_target()
return f"/pkg/{pkgname}={pkginfo[_key_version]}@{pkgarch}"
def supported_arch(s: list[str] | typing.Callable[[str], bool]):
global _supported_arch
if isinstance(s, list):
+7 -1
View File
@@ -23,7 +23,13 @@ class PkgComposer:
def write_manifest(self, manifest: dict):
with open(self.workdir + "/PkgManifest.json", "w") as f:
json.dump(manifest, f, indent=4)
json.dump(manifest, f)
def write_links(self, links: list[dict]):
with open(self.workdir + "/_links", "w") as f:
for link in links:
json.dump(link, f)
f.write("\n")
def compose(self):
shutil.make_archive(self.pkgfile, _archive_format, self.workdir)
+24
View File
@@ -0,0 +1,24 @@
import os
from lib import cpp
from lib.make import *
version("2026.4.26")
source_url("https://github.com/onetrueawk/awk/archive/refs/tags/20260426.tar.gz")
def build():
cpp.make()
on_build(build)
def pack(composer):
composer.makedir("bin")
composer.addfile("a.out", "bin/awk")
package("awk")
dep("semi-libc @same-arch")
on_pack(pack)
@@ -0,0 +1,11 @@
--- a/crypto/x509/x509_def.c
+++ b/crypto/x509/x509_def.c
@@ -5,7 +5,7 @@
// TODO(fork): cleanup
-#define OPENSSLDIR "/etc/ssl"
+#define OPENSSLDIR "/var/config/ssl"
#define X509_CERT_AREA OPENSSLDIR
#define X509_CERT_DIR OPENSSLDIR "/certs"
@@ -0,0 +1,44 @@
--- a/unit-tests/Makefile
+++ b/unit-tests/Makefile
@@ -62,7 +62,6 @@
TESTS+= cmd-errors
TESTS+= cmd-errors-jobs
TESTS+= cmd-errors-lint
-TESTS+= cmd-interrupt
TESTS+= cmdline
TESTS+= cmdline-redirect-stdin
TESTS+= cmdline-undefined
@@ -139,7 +138,6 @@
TESTS+= deptgt-begin-fail
TESTS+= deptgt-begin-fail-indirect
TESTS+= deptgt-default
-TESTS+= deptgt-delete_on_error
TESTS+= deptgt-end
TESTS+= deptgt-end-fail
TESTS+= deptgt-end-fail-all
@@ -147,7 +145,6 @@
TESTS+= deptgt-end-jobs
TESTS+= deptgt-error
TESTS+= deptgt-ignore
-TESTS+= deptgt-interrupt
TESTS+= deptgt-main
TESTS+= deptgt-makeflags
TESTS+= deptgt-no_parallel
@@ -511,8 +508,6 @@
.if ${.MAKE.OS:NIRIX*} == ""
BROKEN_TESTS+= \
- cmd-interrupt \
- deptgt-interrupt \
job-output-null \
opt-chdir \
opt-debug-x-trace \
@@ -538,7 +533,6 @@
BROKEN_TESTS+= job-output-null
.else
BROKEN_TESTS+= \
- cmd-interrupt \
job-flags \
.endif
+35
View File
@@ -0,0 +1,35 @@
import os
from lib import cpp
from lib.make import *
VERSION = "2026.6.19"
version(VERSION)
source_url("https://www.crufty.net/ftp/pub/sjg/bmake-20260619.tar.gz")
def build():
cpp.configure(
[
"--prefix=/",
f"--with-default-sys-path=/pkg/bmake={VERSION}@{arch.get_target()}/share/mk",
]
)
cpp.make()
cpp.make_install()
on_build(build)
def pack_bmake(composer):
composer.makedir("bin")
composer.addfile("bin/bmake", "bin/bmake")
composer.makedir("share")
composer.add_dir("share/mk", "share/mk")
package("bmake")
dep("semi-libc @same-arch")
on_pack(pack_bmake)
+43
View File
@@ -0,0 +1,43 @@
import subprocess
from lib import cpp
from lib.make import *
VERSION = "5.48"
version(VERSION)
source_git("https://github.com/file/file.git", "FILE5_48")
def build():
subprocess.run(["autoreconf", "-fiv"], check=True)
cpp.configure(["--prefix=/", f"--datadir=/share/file"])
cpp.make()
cpp.make_install()
on_build(build)
def pack_magic_db(composer):
composer.add_dir(f"share/file", "share")
package("file-magic-db")
arch_any()
link("share/misc/magic.mgc", "/share/file/misc/magic.mgc")
on_pack(pack_magic_db)
package("libmagic")
dep("semi-libc @same-arch")
dep("file-magic-db (same-version) @any")
cpp.use_auto_pack(["lib"])
package("libmagic-dev")
dep("libmagic (same)")
cpp.use_auto_pack(["dev"])
package("file")
dep("libmagic (same)")
cpp.use_auto_pack(["bin"])
+1 -1
View File
@@ -6,7 +6,7 @@ source_url("https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz")
def build():
cpp.configure(["--prefix=/"])
cpp.configure([f"--prefix={get_prefix('gnu-make')}"])
cpp.make()
cpp.make_install()
-1
View File
@@ -10,7 +10,6 @@ source_url("https://data.iana.org/time-zones/releases/tzdb-2026b.tar.lz")
def build():
cpp.make()
cpp.make_install()
os.chdir("usr")
on_build(build)
+10 -1
View File
@@ -11,7 +11,16 @@ source_url(
def build():
os.chdir("source")
cpp.configure(["--enable-plugins", "--prefix=/"])
cpp.configure(
[
"--enable-plugins",
"--prefix=/",
f"--bindir={get_prefix('icu4c')}/bin",
f"--sbindir={get_prefix('icu4c')}/sbin",
f"--libdir={get_prefix('libicu4c')}/lib",
f"--includedir={get_prefix('libicu4c-dev')}/include",
]
)
cpp.make()
cpp.make_install()
+14 -2
View File
@@ -8,7 +8,14 @@ source_url(
def build():
cpp.configure(["--prefix=/"])
cpp.configure(
[
"--prefix=/",
f"--bindir={get_prefix('libarchive-tools')}/bin",
f"--libdir={get_prefix('libarchive')}/lib",
f"--includedir={get_prefix('libarchive-dev')}/include",
]
)
cpp.make()
cpp.make_install()
@@ -27,7 +34,12 @@ dep("libzstd @same-arch")
package("libarchive-tools")
cpp.use_auto_pack(["bin"])
dep("libarchive (same)")
provide("bsdtar")
provide("tar")
provide("cpio")
provide("unzip")
link("bin/bsdtar", "/bin/tar")
link("bin/bsdcpio", "/bin/cpio")
link("bin/bsdunzip", "/bin/unzip")
package("libarchive-dev")
cpp.use_auto_pack(["dev"])
+32
View File
@@ -0,0 +1,32 @@
from lib import cpp
from lib.make import *
version("3.6.0")
source_url(
"https://github.com/libffi/libffi/releases/download/v3.6.0/libffi-3.6.0.tar.gz"
)
def build():
cpp.configure(
[
"--prefix=/",
f"--libdir={get_prefix('libffi')}/lib",
f"--includedir={get_prefix('libffi-dev')}/include",
"--enable-portable-binary",
"--disable-multi-os-directory",
]
)
cpp.make()
cpp.make_install()
on_build(build)
package("libffi")
dep("semi-libc @same-arch")
cpp.use_auto_pack(["lib"])
package("libffi-dev")
dep("libffi (same)")
cpp.use_auto_pack(["dev"])
Binary file not shown.
+37
View File
@@ -0,0 +1,37 @@
import os
import subprocess
from lib.make import *
version("0.1.0")
source_url(f"file://{os.getcwd()}/empty.tar")
def build():
subprocess.run(
os.environ.get("CC", "cc").split(" ")
+ [
"-shared",
"-o",
"libgcc_s.so.1",
"-Wl,--no-as-needed",
"-lunwind",
"-Wl,--no-undefined",
"-Wl,-soname,libgcc_s.so.1",
],
check=True,
)
on_build(build)
def pack(composer):
composer.makedir("lib")
composer.addfile("libgcc_s.so.1", "lib/libgcc_s.so.1")
package("libgcc-compat")
dep("semi-libc @same-arch")
dep("libunwind @same-arch")
on_pack(pack)
-2
View File
@@ -12,8 +12,6 @@ def build():
cpp.configure()
cpp.make([f"CC={os.environ['CC']}"])
cpp.make_install()
os.chdir("usr/local")
subprocess.run(["sh", "-c", "chmod +w bin/* sbin/*"], check=True)
on_build(build)
+4 -1
View File
@@ -11,6 +11,10 @@ def build():
cpp.configure(
[
"--prefix=/",
f"--bindir={get_prefix('ncurses-tools')}/bin",
f"--sbindir={get_prefix('ncurses-tools')}/sbin",
f"--libdir={get_prefix('libncurses')}/lib",
f"--includedir={get_prefix('libncurses')}/include",
"--enable-pc-files",
"--with-shared",
"--with-terminfo-dirs=/share/terminfo",
@@ -33,7 +37,6 @@ def build():
cpp.make()
cpp.make_install()
os.unlink("lib/terminfo")
os.rename("usr/lib/pkgconfig", "lib/pkgconfig")
on_build(build)
+25
View File
@@ -0,0 +1,25 @@
import os
from lib import cpp
from lib.make import *
version("19")
source_url("https://github.com/aligrudi/neatvi/archive/refs/tags/19.tar.gz")
def build():
cpp.make([f"CC={os.environ['CC']}"])
on_build(build)
def pack(composer):
composer.makedir("bin")
composer.addfile("vi", "bin/vi")
package("neatvi")
provide("vi")
dep("semi-libc @same-arch")
on_pack(pack)
+3
View File
@@ -10,6 +10,9 @@ def build():
cpp.configure(
[
"--prefix=/",
f"--bindir={get_prefix('pkgconf')}/bin",
f"--libdir={get_prefix('libpkgconf')}/lib",
f"--includedir={get_prefix('libpkgconf-dev')}/include",
f"--with-system-libdir=/lib:/lib/{arch.get_target()}",
f"--with-system-includedir=/lib/{arch.get_target()}/include",
f"--with-pkg-config-dir=/lib/{arch.get_target()}/pkgconfig",
+1 -4
View File
@@ -33,13 +33,10 @@ def build():
"--with-readline=editline",
"--with-tail-call-interp",
"--without-ensurepip",
"--with-ssl-default-suites=openssl",
]
)
cpp.make()
try:
shutil.rmtree("../cpp_install")
except:
pass
cpp.make_install()
os.rename(
f"lib/{arch.get_target()}/python{VERSION_BASE}", f"lib/python{VERSION_BASE}"
+3
View File
@@ -9,6 +9,9 @@ def build():
cpp.configure(
[
"--prefix=/",
f"--libdir={get_prefix('libsqlite')}/lib",
f"--bindir={get_prefix('sqlite')}/bin",
f"--includedir={get_prefix('libsqlite-dev')}/include",
"--all",
"--with-linenoise=/pkg/linenoise-dev=2.0@any",
"--icu-collations",
+8 -1
View File
@@ -8,7 +8,14 @@ source_url(
def build():
cpp.configure(["--prefix=/"])
cpp.configure(
[
"--prefix=/",
f"--libdir={get_prefix('liblzma')}/lib",
f"--bindir={get_prefix('xz')}/bin",
f"--includedir={get_prefix('liblzma-dev')}/include",
]
)
cpp.make()
cpp.make_install()
-1
View File
@@ -11,7 +11,6 @@ def build():
cpp.cmake(["-DZLIB_COMPAT=ON", "-DINSTALL_UTILS=ON"])
cpp.ninja()
cpp.ninja_install()
os.chdir("usr")
on_build(build)
-1
View File
@@ -12,7 +12,6 @@ source_url(
def build():
cpp.make(["HAVE_ZLIB=0", "HAVE_LZMA=0", "HAVE_LZ4=0"])
cpp.make_install()
os.chdir("usr/local")
on_build(build)
+1 -1
View File
@@ -107,11 +107,11 @@ def run_build_package(package: str):
"name": pkgname,
"version": pkgver,
"arch": pkgarch,
"links": pkginfo[lib.make._key_links],
"dependencies": pkginfo[lib.make._key_dependencies],
"provides": pkginfo[lib.make._key_provides],
}
composer.write_manifest(manifest)
composer.write_links(pkginfo[lib.make._key_links])
composer.compose()
# Build success