Compare commits

..
27 Commits
Author SHA1 Message Date
sisungo 868a631c93 fix: invalid semi-libc version format
Signed-off-by: sisungo <[email protected]>
2026-07-04 22:30:05 +08:00
sisungo bbe4604406 feat: update semi-libc to v1.2.6-1
Signed-off-by: sisungo <[email protected]>
2026-07-04 22:26:20 +08:00
sisungo c471a18585 Merge pull request 'feat: add package libopus' (#69) from sisungo/semios-packages:libopus into master
Reviewed-on: semios/semios-packages#69
2026-07-04 20:51:57 +08:00
sisungo c4e694cd42 Merge pull request 'feat: add package alsa-lib' (#68) from sisungo/semios-packages:alsa-lib into master
Reviewed-on: semios/semios-packages#68
2026-07-04 20:50:24 +08:00
sisungo 7300eb7d00 Merge pull request 'feat: add package iproute2' (#67) from sisungo/semios-packages:iproute2 into master
Reviewed-on: semios/semios-packages#67
2026-07-04 20:48:11 +08:00
sisungo aba5fba2e3 Merge pull request 'feat: add package rhash' (#73) from sisungo/semios-packages:rhash into master
Reviewed-on: semios/semios-packages#73
2026-07-04 20:46:53 +08:00
sisungo 3ced6357dc Merge pull request 'feat: add package certutil' (#86) from sisungo/semios-packages:certutil into master
Reviewed-on: semios/semios-packages#86
2026-07-04 19:19:05 +08:00
sisungo b026069a61 Merge pull request 'feat: add package libgcc-compat' (#87) from sisungo/semios-packages:libgcc-compat into master
Reviewed-on: semios/semios-packages#87
2026-07-04 19:18:45 +08:00
sisungo bafd4098a8 Merge pull request 'fix: source_url does not support file://' (#88) from sisungo/semios-packages:sources-file into master
Reviewed-on: semios/semios-packages#88
2026-07-04 19:18:34 +08:00
sisungo ed7d0b5680 fix: source_url does not support file://
Signed-off-by: sisungo <[email protected]>
2026-07-04 19:17:40 +08:00
sisungo 66626cf702 feat: add package libgcc-compat
Signed-off-by: sisungo <[email protected]>
2026-07-04 19:16:36 +08:00
sisungo bfd4548869 feat: add package certutil
Signed-off-by: sisungo <[email protected]>
2026-07-04 19:01:53 +08:00
sisungo abfe30c539 Merge pull request 'feat: add package gettext-tiny' (#84) from sisungo/semios-packages:gettext-tiny into master
Reviewed-on: semios/semios-packages#84
2026-07-04 14:00:09 +08:00
sisungo b0ae1f4bf4 Merge pull request 'feat: add package ca-certificates' (#85) from sisungo/semios-packages:ca-certificates into master
Reviewed-on: semios/semios-packages#85
2026-07-04 13:59:56 +08:00
sisungo 2938e9e969 feat: add package ca-certificates
Signed-off-by: sisungo <[email protected]>
2026-07-04 12:35:05 +08:00
sisungo 50e41c4c36 feat: add package gettext-tiny
Signed-off-by: sisungo <[email protected]>
2026-07-04 11:40:00 +08:00
sisungo df1accfb3e Merge pull request 'feat: add package brotli' (#80) from sisungo/semios-packages:brotli into master
Reviewed-on: semios/semios-packages#80
2026-07-04 10:49:08 +08:00
sisungo 2fa379760a Merge pull request 'feat: add package perl' (#81) from sisungo/semios-packages:perl into master
Reviewed-on: semios/semios-packages#81
2026-07-04 10:48:54 +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 b7d9d9b7d6 feat: add package perl
Signed-off-by: sisungo <[email protected]>
2026-07-03 22:30:54 +08:00
sisungo f55398575a feat: add package brotli
Signed-off-by: sisungo <[email protected]>
2026-07-03 12:36:35 +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 3022b06b20 feat: add package libopus
Signed-off-by: sisungo <[email protected]>
2026-07-02 22:46:48 +08:00
sisungo dac07d40bb feat: add package iproute2
Signed-off-by: sisungo <[email protected]>
2026-07-02 22:44:17 +08:00
sisungo f947e27187 feat: add package alsa-lib
Signed-off-by: sisungo <[email protected]>
2026-07-02 22:40:43 +08:00
16 changed files with 379 additions and 12 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)
+39
View File
@@ -30,6 +30,45 @@ def download(url, output):
last_percent = percent
try:
if url.startswith("file://"):
file_path = url[7:]
if not os.path.exists(file_path):
raise Exception("File not found: " + file_path)
total_size = os.path.getsize(file_path)
if total_size <= 0:
print("Copying...")
with open(file_path, "rb") as src, open(output, "wb") as dst:
while True:
chunk = src.read(8192)
if not chunk:
break
dst.write(chunk)
print("Download completed: " + output)
return output
sys.stdout.write("downloading... 0%")
sys.stdout.flush()
with open(file_path, "rb") as src, open(output, "wb") as dst:
downloaded = 0
block_size = 8192
while True:
chunk = src.read(block_size)
if not chunk:
break
dst.write(chunk)
downloaded += len(chunk)
percent = int(downloaded * 100 / total_size)
report_progress(percent)
if last_percent != 100:
report_progress(100)
sys.stdout.write("\n")
print("Download completed: " + output)
return output
req = urllib.request.Request(url, method="GET")
req.add_header(
"User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
+49
View File
@@ -0,0 +1,49 @@
from lib import arch, cpp
from lib.make import *
upstream_version = "1.2.16.1"
version(upstream_version)
source_url("https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.16.1.tar.bz2")
def build():
cpp.configure(
[
"--prefix=/",
f"--libdir={get_prefix('alsa-lib')}/lib",
f"--includedir={get_prefix('alsa-lib-dev')}/include",
"--enable-symbolic-functions",
f"--with-configdir={get_prefix('alsa-lib')}/share/alsa",
f"--with-plugindir=/lib/{arch.get_target()}/alsa/plugins",
]
)
cpp.make()
cpp.make_install()
on_build(build)
def pack_alsa_lib(composer):
composer.makedir("lib")
for i in [
"libasound.so",
"libasound.so.2",
"libasound.so.2.0.0",
"libatopology.so",
"libatopology.so.2",
"libatopology.so.2.0.0",
]:
composer.addfile(f"lib/{i}", f"lib/{i}")
composer.makedir("share")
composer.add_dir("share/alsa", "share/alsa")
package("alsa-lib")
dep("semi-libc @same-arch")
on_pack(pack_alsa_lib)
package("alsa-lib-dev")
dep("alsa-lib (same)")
cpp.use_auto_pack(["dev"])
-1
View File
@@ -18,7 +18,6 @@ def build():
)
cpp.make()
cpp.make_install()
os.chmod("bin/bmake", 0o655)
on_build(build)
+29
View File
@@ -0,0 +1,29 @@
import os
from lib import cpp
from lib.make import *
version("1.2.0")
source_url("https://github.com/google/brotli/archive/refs/tags/v1.2.0.tar.gz")
def build():
cpp.cmake()
cpp.ninja()
cpp.ninja_install()
os.chdir("usr")
on_build(build)
package("libbrotli")
dep("semi-libc @same-arch")
cpp.use_auto_pack(["lib"])
package("brotli")
dep("libbrotli (same)")
cpp.use_auto_pack(["bin"])
package("libbrotli-dev")
dep("libbrotli (same)")
cpp.use_auto_pack(["dev"])
+28
View File
@@ -0,0 +1,28 @@
import os
from lib.make import *
version("2026.7.4")
source_url(
"https://gitea.semilabs.org/semios/ca-certificates/releases/download/v2026.07.04/ca-certificates-2026.07.04.tar"
)
block_hook("autolink")
def build():
for i in os.listdir("."):
link(f"share/ca-certificates/{i}", f"/share/ca-certificates/{i}")
on_build(build)
def pack(composer):
composer.makedir("share")
composer.add_dir(".", "share/ca-certificates")
package("ca-certificates")
arch_any()
on_pack(pack)
+16
View File
@@ -0,0 +1,16 @@
from lib import rust
from lib.make import *
version("0.1.0")
source_url("https://gitea.semilabs.org/semios/certutil/archive/v0.1.0.tar.gz")
def build():
rust.build()
on_build(build)
package("certutil")
dep("semi-libc @same-arch")
rust.use_auto_pack(["bin"])
+28
View File
@@ -0,0 +1,28 @@
import os
from lib import cpp
from lib.make import *
version("0.3.3")
source_url(
"https://github.com/sabotage-linux/gettext-tiny/releases/download/v0.3.3/gettext-tiny-0.3.3.tar.xz"
)
def build():
cpp.make(["LIBINTL=musl"])
cpp.make_install(
["LIBINTL=musl", "DESTDIR=../cpp_install", "prefix=/"], chdir=False, move=False
)
os.chdir("../cpp_install")
on_build(build)
package("libintl-dev")
dep("semi-libc-dev @same-arch")
cpp.use_auto_pack(["dev"])
package("gettext")
dep("semi-libc @same-arch")
cpp.use_auto_pack(["bin"])
+34
View File
@@ -0,0 +1,34 @@
import os
import shutil
from lib import cpp
from lib.make import *
version("7.1.0")
source_git("https://git.kernel.org/pub/scm/network/iproute2/iproute2.git", "v7.1.0")
def build():
cpp.configure()
cpp.make()
cpp.make_install()
on_build(build)
def pack_iproute2(composer):
composer.makedirs("lib/iproute2")
composer.makedir("share")
composer.add_dir("sbin", "bin")
composer.add_dir("share/iproute2", "share/iproute2")
composer.add_dir("lib/tc", "lib/iproute2/tc")
package("iproute2")
dep("semi-libc @same-arch")
on_pack(pack_iproute2)
package("iproute2-dev")
dep("semi-libc @same-arch")
cpp.use_auto_pack(["dev"])
+6 -1
View File
@@ -34,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"])
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)
+28
View File
@@ -0,0 +1,28 @@
from lib import cpp
from lib.make import *
version("1.6.1")
source_url("https://downloads.xiph.org/releases/opus/opus-1.6.1.tar.gz")
def build():
cpp.configure(
[
"--prefix=/",
f"--libdir={get_prefix('libopus')}/lib",
f"--includedir={get_prefix('libopus-dev')}/include",
]
)
cpp.make()
cpp.make_install()
on_build(build)
package("libopus")
dep("semi-libc @same-arch")
cpp.use_auto_pack(["lib"])
package("libopus-dev")
dep("libopus (same)")
cpp.use_auto_pack(["dev"])
-1
View File
@@ -12,7 +12,6 @@ def build():
cpp.configure()
cpp.make([f"CC={os.environ['CC']}"])
cpp.make_install()
subprocess.run(["sh", "-c", "chmod +w bin/* sbin/*"], check=True)
on_build(build)
+72
View File
@@ -0,0 +1,72 @@
import os
import subprocess
from lib import arch, cpp
from lib.make import *
upstream_version = "5.42.2"
version(upstream_version)
source_url("https://www.cpan.org/src/5.0/perl-5.42.2.tar.gz")
block_hook("autolink")
def build():
subprocess.run(
[
"./Configure",
"-de",
f"-Dcc={os.environ.get('CC', 'cc')}",
f"-Doptimize={os.environ.get('CFLAGS', '')}",
"-Dusethreads",
"-Duseshrplib",
"-Dprefix=/",
"-Dvendorprefix=/",
f"-Dprivlib={get_prefix('libperl')}/share/core_perl",
f"-Darchlib={get_prefix('libperl')}/lib/core_perl",
f"-Dsitelib=/lib/{arch.get_target()}/perl5/site_perl",
f"-Dsitearch=/lib/{arch.get_target()}/perl5/site_arch",
f"-Dvendorlib=/lib/{arch.get_target()}/perl5/vendor_perl",
f"-Dvendorarch=/lib/{arch.get_target()}/perl5/vendor_arch",
f"-Dscriptdir={get_prefix('perl')}/bin/core_perl",
"-Dsitescript=/bin/site_perl",
"-Dvendorscript=/bin/vendor_perl",
"-Dinc_version_list=none",
"-Dman1dir=/share/man/man1",
"-Dman3dir=/share/man/man3",
"-Dman1ext=1perl",
"-Dman3ext=3perl",
f"-Dlddlflags=-shared {os.environ.get('LDFLAGS', '')}",
f"-Dldflags={os.environ.get('LDFLAGS', '')}",
],
check=True,
)
cpp.make()
cpp.make_install()
on_build(build)
def pack_libperl(composer):
composer.makedir("lib")
composer.makedir("share")
composer.add_dir("lib/core_perl", "lib/core_perl")
composer.add_dir("share/core_perl", "share/core_perl")
package("libperl")
dep("semi-libc @same-arch")
on_pack(pack_libperl)
def pack_perl(composer):
composer.add_dir("bin", "bin")
package("perl")
dep("libperl (same)")
cpp.use_auto_pack(["bin"])
link("bin/perl", "/bin/perl")
link(f"bin/perl{upstream_version}", f"/bin/perl{upstream_version}")
+9 -9
View File
@@ -1,15 +1,14 @@
import lib.arch as arch
from lib.cpp import *
from lib import arch, cpp
from lib.make import *
version("1.2.6+1")
source_url("https://gitea.semilabs.org/semios/semi-libc/archive/v1.2.6-1.tar.gz")
version("1.2.6")
source_url("https://gitea.semilabs.org/semios/semi-libc/archive/v1.2.6.tar.gz")
def build():
configure(["--prefix=/"])
make()
make_install()
cpp.configure(["--prefix=/"])
cpp.make()
cpp.make_install()
on_build(build)
@@ -20,9 +19,10 @@ def musl_target():
package("semi-libc")
use_auto_pack(["lib"])
cpp.use_auto_pack(["lib"])
link("lib/libc.so", f"/lib/ld-musl-{musl_target()}.so.1")
link("lib/libc.so", "/bin/ldd")
package("semi-libc-dev")
use_auto_pack(["dev"])
cpp.use_auto_pack(["dev"])
dep("semi-libc (same)")