forked from semios/semios-packages
Compare commits
106
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e7d77b63b3 | ||
|
|
0238507da1 | ||
|
|
21bb0c0416 | ||
|
|
614aae909b | ||
|
|
71ae4dd1cb | ||
|
|
19d58033f0 | ||
|
|
7c61d7ca8b | ||
|
|
3b613fc446 | ||
|
|
cfb2a07fa4 | ||
|
|
a7afab336b | ||
|
|
e0af0577bf | ||
|
|
da5c4329bf | ||
|
|
aa19be566b | ||
|
|
05cb5c94c5 | ||
|
|
65a884ddd4 | ||
|
|
8c41ed811f | ||
|
|
e421add41d | ||
|
|
1b2f8a2295 | ||
|
|
2b3204cb9a | ||
|
|
02cf225a7e | ||
|
|
8d99e1d12a | ||
|
|
89f0038e99 | ||
|
|
0743d92327 | ||
|
|
7e66f0669d | ||
|
|
557aae6cb5 | ||
|
|
178f5820e7 | ||
|
|
aded8393fe | ||
|
|
ea6c4592e9 | ||
|
|
6abf94ba6c | ||
|
|
a903430180 | ||
|
|
b3d71e0a3a | ||
|
|
6dd8c911a1 | ||
|
|
5c22c479bd | ||
|
|
6704ec11ea | ||
|
|
8c58073118 | ||
|
|
eea8869aa5 | ||
|
|
7e888b8408 | ||
|
|
5729463e2e | ||
|
|
9dc11ca666 | ||
|
|
e567c27db8 | ||
|
|
4f4ec0468a | ||
|
|
ab71a8ae75 | ||
|
|
07c93dac59 | ||
|
|
5dece05466 | ||
|
|
c47d1390bc | ||
|
|
b0185d379b | ||
|
|
bd16d6d218 | ||
|
|
d06120bdeb | ||
|
|
490c81a6d9 | ||
|
|
b9533a5c6e | ||
|
|
37da18439b | ||
|
|
aaab087b4d | ||
|
|
e6fb25c31b | ||
|
|
4f06471aa2 | ||
|
|
f6efa6fd66 | ||
|
|
e92240a211 | ||
|
|
c530c16fbf | ||
|
|
e24723a940 | ||
|
|
cf9d57202b | ||
|
|
c0e9573a41 | ||
|
|
23394f785e | ||
|
|
3994b0d9a3 | ||
|
|
3b78c450c5 | ||
|
|
0075495c78 | ||
|
|
f0147fafac | ||
|
|
a34f41f1fe | ||
|
|
db6f7fa8ad | ||
|
|
e9f52ee363 | ||
|
|
0178b36988 | ||
|
|
57578dcb05 | ||
|
|
9f623be2e5 | ||
|
|
f76006e595 | ||
|
|
fea89673ed | ||
|
|
487ac4a679 | ||
|
|
e55d5e74db | ||
|
|
868a631c93 | ||
|
|
92192d5fba | ||
|
|
bbe4604406 | ||
|
|
c471a18585 | ||
|
|
c4e694cd42 | ||
|
|
7300eb7d00 | ||
|
|
aba5fba2e3 | ||
|
|
3ced6357dc | ||
|
|
b026069a61 | ||
|
|
bafd4098a8 | ||
|
|
ed7d0b5680 | ||
|
|
66626cf702 | ||
|
|
bfd4548869 | ||
|
|
e3d032623f | ||
|
|
abfe30c539 | ||
|
|
b0ae1f4bf4 | ||
|
|
2938e9e969 | ||
|
|
50e41c4c36 | ||
|
|
b0b40ef774 | ||
|
|
df1accfb3e | ||
|
|
2fa379760a | ||
|
|
f541a95e49 | ||
|
|
b7d9d9b7d6 | ||
|
|
f55398575a | ||
|
|
3a4307f811 | ||
|
|
2b73f626a1 | ||
|
|
aef0d22091 | ||
|
|
424ff5f6e4 | ||
|
|
3022b06b20 | ||
|
|
dac07d40bb | ||
|
|
f947e27187 |
+38
-15
@@ -3,29 +3,52 @@ import os
|
||||
from lib import arch, common, make, pkgcomposer
|
||||
|
||||
|
||||
def is_abslink(path):
|
||||
try:
|
||||
return os.readlink(path).startswith("/")
|
||||
except:
|
||||
return False
|
||||
|
||||
|
||||
def autolink_bin(composer: pkgcomposer.PkgComposer):
|
||||
if is_abslink("bin"):
|
||||
return
|
||||
for i in common.treedir("bin"):
|
||||
if i.is_file() and os.access(i.path, os.X_OK):
|
||||
make.link(f"bin/{i.name}", "/bin/" + i.name)
|
||||
|
||||
def autolink_lib(composer: pkgcomposer.PkgComposer):
|
||||
if is_abslink("lib"):
|
||||
return
|
||||
for i in common.treedir("lib"):
|
||||
if i.is_file():
|
||||
make.link(f"lib/{i.name}", "/lib/" + arch.get_target() + "/" + i.name)
|
||||
|
||||
def autolink_include(composer: pkgcomposer.PkgComposer):
|
||||
if is_abslink("include"):
|
||||
return
|
||||
for i in common.treedir("include"):
|
||||
if i.is_file():
|
||||
make.link(
|
||||
f"include/{i.name}",
|
||||
"/lib/" + arch.get_target() + "/include/" + i.name,
|
||||
)
|
||||
|
||||
|
||||
def autolink(composer: pkgcomposer.PkgComposer):
|
||||
os.chdir(composer.workdir + "/bundle/")
|
||||
|
||||
try:
|
||||
for i in common.treedir("bin"):
|
||||
if i.is_file():
|
||||
make.link(f"bin/{i.name}", "/bin/" + i.name)
|
||||
except Exception:
|
||||
autolink_bin(composer)
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
for i in common.treedir("lib"):
|
||||
if i.is_file():
|
||||
make.link(f"lib/{i.name}", "/lib/" + arch.get_target() + "/" + i.name)
|
||||
except Exception:
|
||||
autolink_lib(composer)
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
for i in common.treedir("include"):
|
||||
if i.is_file():
|
||||
make.link(
|
||||
f"include/{i.name}",
|
||||
"/lib/" + arch.get_target() + "/include/" + i.name,
|
||||
)
|
||||
except Exception:
|
||||
autolink_include(composer)
|
||||
except:
|
||||
pass
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
from . import packie
|
||||
|
||||
BASE_REQUIREMENTS = [
|
||||
# Basic packages for running shell scripts
|
||||
"mksh",
|
||||
"coreutils",
|
||||
"findutils",
|
||||
"diffutils",
|
||||
# Packages for running `semios-packages` scripts
|
||||
"python",
|
||||
"packie",
|
||||
"patch",
|
||||
"zstd",
|
||||
"libz-ng",
|
||||
"liblzma",
|
||||
"libbzip2",
|
||||
# Basic libraries
|
||||
"sqlite",
|
||||
"libgcc-compat",
|
||||
"libcxx",
|
||||
"semi-libc",
|
||||
# Networking
|
||||
"ca-certificates",
|
||||
"certutil",
|
||||
"aws-lc-libssl",
|
||||
"aws-lc-tools",
|
||||
]
|
||||
|
||||
|
||||
def _prepare_build_env_base_files(root: str):
|
||||
os.makedirs(root, exist_ok=True)
|
||||
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")
|
||||
os.makedirs(f"{root}/var/db/packie")
|
||||
shutil.copytree("/var/config/packie/repos.d", f"{root}/var/config/packie/repos.d")
|
||||
os.mkdir(f"{root}/dev")
|
||||
os.mkdir(f"{root}/sys")
|
||||
os.mkdir(f"{root}/proc")
|
||||
os.makedirs(f"{root}/home/root")
|
||||
|
||||
|
||||
def prepare_build_env(root: str, extreq: list[str] = []):
|
||||
# Skip if the environment is already initialized
|
||||
if os.path.exists(f"{root}/.INIT"):
|
||||
return
|
||||
try:
|
||||
shutil.rmtree(root)
|
||||
except:
|
||||
pass
|
||||
|
||||
# Prepare basic filesystem hierarchy
|
||||
_prepare_build_env_base_files(root)
|
||||
|
||||
# Install packages
|
||||
packie.chroot_update(root)
|
||||
packie.chroot_install(root, BASE_REQUIREMENTS + extreq)
|
||||
|
||||
# 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")
|
||||
|
||||
|
||||
def enter_build_env(root: str, cmd: list[str], chdir: str = "/"):
|
||||
reserve_env = ["https_proxy", "http_proxy", "all_proxy"]
|
||||
reserve_env_args = []
|
||||
for i in reserve_env:
|
||||
if os.environ.get(i):
|
||||
reserve_env_args += ["--setenv", i, os.environ[i]]
|
||||
subprocess.run(
|
||||
[
|
||||
"bwrap",
|
||||
"--bind",
|
||||
root,
|
||||
"/",
|
||||
"--unshare-pid",
|
||||
"--unshare-user",
|
||||
"--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",
|
||||
"--chdir",
|
||||
chdir,
|
||||
]
|
||||
+ reserve_env_args
|
||||
+ cmd
|
||||
)
|
||||
|
||||
|
||||
def copy_pkgbuild_tree(repo_root: str, pkgname: str, build_env_root: str):
|
||||
build_dir = f"{build_env_root}/Atom"
|
||||
if os.path.exists(build_dir):
|
||||
return
|
||||
os.mkdir(build_dir)
|
||||
shutil.copytree(f"{repo_root}/hooks", f"{build_dir}/hooks")
|
||||
shutil.copytree(f"{repo_root}/lib", f"{build_dir}/lib")
|
||||
shutil.copy2(f"{repo_root}/x", f"{build_dir}/x")
|
||||
shutil.copy2(f"{repo_root}/x.py", f"{build_dir}/x.py")
|
||||
os.makedirs(f"{build_dir}/packages/{pkgname}")
|
||||
for i in os.listdir(f"{repo_root}/packages/{pkgname}"):
|
||||
srcpath = f"{repo_root}/packages/{pkgname}/{i}"
|
||||
dstpath = f"{build_dir}/packages/{pkgname}/{i}"
|
||||
if i in ["target", "__pycache__"]:
|
||||
continue
|
||||
if os.path.isdir(srcpath):
|
||||
shutil.copytree(srcpath, dstpath)
|
||||
elif os.path.isfile(srcpath):
|
||||
shutil.copy2(srcpath, dstpath)
|
||||
+16
-10
@@ -29,6 +29,15 @@ def cmake(rem: list[str] = []):
|
||||
)
|
||||
|
||||
|
||||
def _move_install():
|
||||
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 make(rem: list[str] = []):
|
||||
subprocess.run(["make", f"-j{os.cpu_count()}"] + rem, check=True)
|
||||
|
||||
@@ -44,26 +53,21 @@ def make_install(rem: list[str] | None = None, chdir: bool = True, move: bool =
|
||||
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)
|
||||
_move_install()
|
||||
|
||||
|
||||
def ninja(rem: list[str] = []):
|
||||
subprocess.run(["ninja"] + rem, check=True)
|
||||
|
||||
|
||||
def ninja_install(rem: list[str] = [], chdir: bool = True):
|
||||
def ninja_install(rem: list[str] = [], chdir: bool = True, move: bool = True):
|
||||
if chdir:
|
||||
os.environ["DESTDIR"] = os.getcwd() + "/../cpp_install"
|
||||
subprocess.run(["ninja", "install"] + rem, check=True)
|
||||
if chdir:
|
||||
os.chdir(os.environ["DESTDIR"])
|
||||
if chdir and move:
|
||||
_move_install()
|
||||
|
||||
|
||||
def meson_setup(rem: list[str] = []):
|
||||
@@ -74,7 +78,7 @@ def meson_compile(rem: list[str] = []):
|
||||
subprocess.run(["meson", "compile", "-C", "_meson_build"] + rem, check=True)
|
||||
|
||||
|
||||
def meson_install(rem: list[str] | None = None, chdir: bool = True):
|
||||
def meson_install(rem: list[str] | None = None, chdir: bool = True, move: bool = True):
|
||||
default_rem = ["--destdir", f"{os.getcwd()}/../cpp_install"]
|
||||
if not rem:
|
||||
os.makedirs("../cpp_install", exist_ok=True)
|
||||
@@ -83,6 +87,8 @@ def meson_install(rem: list[str] | None = None, chdir: bool = True):
|
||||
)
|
||||
if chdir:
|
||||
os.chdir("../cpp_install")
|
||||
if chdir and move:
|
||||
_move_install()
|
||||
|
||||
|
||||
def _do_auto_pack(pc: pkgcomposer.PkgComposer, srcdir: str, dstdir: str, filter):
|
||||
|
||||
+40
-5
@@ -11,6 +11,7 @@ _key_on_pack = "on_pack"
|
||||
_key_arch_any = "arch_any"
|
||||
_key_links = "links"
|
||||
_key_dependencies = "dependencies"
|
||||
_key_recommendations = "recommendations"
|
||||
_key_provides = "provides"
|
||||
|
||||
_current_pkgname: str = _key_global
|
||||
@@ -19,14 +20,38 @@ _pkginfo: dict[str, dict[str, typing.Any]] = {
|
||||
_key_links: [],
|
||||
_key_dependencies: [],
|
||||
_key_provides: [],
|
||||
_key_recommendations: [],
|
||||
},
|
||||
}
|
||||
_supported_arch: typing.Callable[[str], bool] = lambda x: True
|
||||
_on_build: typing.Callable[[], None] | None = None
|
||||
|
||||
_in_atombuild = False
|
||||
_builddep: list[str] = []
|
||||
|
||||
_blocked_hooks: list[str] = []
|
||||
|
||||
|
||||
def builddep(s: str):
|
||||
global _builddep
|
||||
if s == "shortcut/c":
|
||||
_builddep += ["semi-libc-dev", "clang", "llvm", "lld"]
|
||||
elif s == "shortcut/c++":
|
||||
builddep("shortcut/c")
|
||||
_builddep += ["libcxx-dev"]
|
||||
elif s == "shortcut/autotools":
|
||||
_builddep += ["gnu-make", "gnu-sed", "awk", "grep"]
|
||||
elif s == "shortcut/rust":
|
||||
builddep("shortcut/c")
|
||||
_builddep += ["cargo", "rustc"]
|
||||
elif s == "shortcut/cmake":
|
||||
_builddep += ["cmake", "ninja"]
|
||||
elif s == "shortcut/meson":
|
||||
_builddep += ["meson", "ninja"]
|
||||
else:
|
||||
_builddep += [s]
|
||||
|
||||
|
||||
def package(s: str):
|
||||
global _current_pkgname
|
||||
_current_pkgname = s
|
||||
@@ -54,12 +79,20 @@ def provide(s: str):
|
||||
]
|
||||
|
||||
|
||||
def dep(s: str):
|
||||
_pkginfo[_current_pkgname][_key_dependencies] += [
|
||||
def _translate_dep_spec(s: str) -> str:
|
||||
return (
|
||||
s.replace("(same)", "(same-version) @same-arch")
|
||||
.replace("(same-version)", f"(={_pkginfo[_current_pkgname][_key_version]})")
|
||||
.replace("@same-arch", f"@{arch.get_target()}")
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
def dep(s: str):
|
||||
_pkginfo[_current_pkgname][_key_dependencies] += [_translate_dep_spec(s)]
|
||||
|
||||
|
||||
def recommend(s: str):
|
||||
_pkginfo[_current_pkgname][_key_recommendations] += [_translate_dep_spec(s)]
|
||||
|
||||
|
||||
def link(src: str, dst: str, default: bool = True):
|
||||
@@ -103,8 +136,10 @@ def block_hook(hook: str):
|
||||
|
||||
|
||||
def source_url(url: str):
|
||||
sources.source_url(url)
|
||||
if not _in_atombuild:
|
||||
sources.source_url(url)
|
||||
|
||||
|
||||
def source_git(url: str, branch: str | None = None):
|
||||
sources.source_git(url, branch)
|
||||
if not _in_atombuild:
|
||||
sources.source_git(url, branch)
|
||||
|
||||
+28
-2
@@ -1,11 +1,37 @@
|
||||
import subprocess
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
PACKIE_EXEC = os.getenv("PACKIE", "packie")
|
||||
|
||||
|
||||
def host_arch() -> str:
|
||||
result = subprocess.run(
|
||||
[PACKIE_EXEC, "print", "profile.host_arch"],
|
||||
check=True, capture_output=True,
|
||||
check=True,
|
||||
capture_output=True,
|
||||
)
|
||||
return result.stdout.decode().strip()
|
||||
|
||||
|
||||
def chroot_update(root: str):
|
||||
subprocess.run([PACKIE_EXEC, "--chroot", root, "update"], check=True)
|
||||
|
||||
|
||||
def chroot_install(root: str, requirements: list[str]):
|
||||
subprocess.run(
|
||||
[PACKIE_EXEC, "--chroot", root, "install", "--yes"] + requirements, check=True
|
||||
)
|
||||
|
||||
|
||||
def update():
|
||||
subprocess.run([PACKIE_EXEC, "update"], check=True)
|
||||
|
||||
|
||||
def install(requirements: list[str]):
|
||||
subprocess.run([PACKIE_EXEC, "install", "--yes"] + requirements, check=True)
|
||||
|
||||
|
||||
def repo_add(repo: str, pkgfile: str):
|
||||
subprocess.run(
|
||||
[PACKIE_EXEC, "repo-admin", repo, "--add-package", pkgfile], check=True
|
||||
)
|
||||
|
||||
+12
-1
@@ -1,6 +1,7 @@
|
||||
import json
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
if sys.version_info >= (3, 14):
|
||||
@@ -45,4 +46,14 @@ class PkgComposer:
|
||||
shutil.copy2(src, f"{self.workdir}/bundle/{dst}", follow_symlinks=False)
|
||||
|
||||
def add_dir(self, src: str, dst: str, merge: bool = False):
|
||||
shutil.copytree(src, f"{self.workdir}/bundle/{dst}", dirs_exist_ok=merge)
|
||||
target = f"{self.workdir}/bundle/{dst}"
|
||||
if not os.path.exists(src):
|
||||
raise FileNotFoundError(f"Source directory not found: {src}")
|
||||
os.makedirs(os.path.dirname(target), exist_ok=True)
|
||||
if merge and os.path.exists(target) and os.path.isdir(target):
|
||||
cmd = ["cp", "-a", f"{src}/.", target]
|
||||
else:
|
||||
cmd = ["cp", "-a", src, target]
|
||||
result = subprocess.run(cmd, capture_output=True, text=True)
|
||||
if result.returncode != 0:
|
||||
raise RuntimeError(f"cp command failed: {result.stderr}")
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -7,6 +7,8 @@ from lib.make import *
|
||||
version("0.10.9")
|
||||
source_url("https://github.com/sisungo/airup/archive/refs/tags/v0.10.9.tar.gz")
|
||||
|
||||
builddep("shortcut/rust")
|
||||
|
||||
|
||||
def build():
|
||||
shutil.copy2("../../build_manifest.json", "build_manifest.json")
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
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")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep(f"linux-dev @{arch.get_target()}")
|
||||
|
||||
|
||||
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"])
|
||||
@@ -0,0 +1,35 @@
|
||||
from lib.make import *
|
||||
from lib import cpp
|
||||
|
||||
version("1.2.16")
|
||||
source_url("https://www.alsa-project.org/files/pub/utils/alsa-utils-1.2.16.tar.bz2")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep("pkgconf")
|
||||
builddep(f"libncurses-dev @{arch.get_target()}")
|
||||
builddep(f"alsa-lib-dev @{arch.get_target()}")
|
||||
builddep(f"libintl-dev @{arch.get_target()}")
|
||||
builddep("gettext")
|
||||
|
||||
def build():
|
||||
cpp.configure([f"--prefix={get_prefix('alsa-utils')}", "--disable-nls"])
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
|
||||
on_build(build)
|
||||
|
||||
|
||||
def pack_alsa_utils(composer):
|
||||
composer.add_dir("bin", "bin")
|
||||
composer.add_dir("sbin", "bin", merge=True)
|
||||
composer.add_dir("lib", "lib")
|
||||
composer.makedir("share")
|
||||
composer.add_dir("share/alsa", "share/alsa")
|
||||
composer.add_dir("share/sounds", "share/sounds")
|
||||
|
||||
package("alsa-utils")
|
||||
dep("semi-libc @same-arch")
|
||||
dep("alsa-lib @same-arch")
|
||||
dep("libncurses @same-arch")
|
||||
on_pack(pack_alsa_utils)
|
||||
@@ -6,6 +6,10 @@ from lib.make import *
|
||||
version("2026.4.26")
|
||||
source_url("https://github.com/onetrueawk/awk/archive/refs/tags/20260426.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep("bison")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.make()
|
||||
|
||||
@@ -6,13 +6,28 @@ from lib.make import *
|
||||
version("5.1.0")
|
||||
source_url("https://github.com/aws/aws-lc/archive/refs/tags/v5.1.0.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
|
||||
def _fix_pc(name, prefix):
|
||||
filepath = f"lib/pkgconfig/{name}.pc"
|
||||
with open(filepath, "r") as f:
|
||||
content = f.read()
|
||||
new_content = content.replace("prefix=/", f"prefix={prefix}").replace("libdir=${prefix}/usr/lib", "libdir=${prefix}/lib")
|
||||
with open(filepath, "w") as f:
|
||||
f.write(new_content)
|
||||
|
||||
def build():
|
||||
cpp.cmake(["-DBUILD_SHARED_LIBS=1"])
|
||||
cpp.cmake(
|
||||
[
|
||||
"-DBUILD_SHARED_LIBS=1",
|
||||
"-DCMAKE_INSTALL_PREFIX=/",
|
||||
f"-DCMAKE_INSTALL_INCLUDEDIR={get_prefix('aws-lc-dev')}/include",
|
||||
]
|
||||
)
|
||||
cpp.ninja()
|
||||
cpp.ninja_install()
|
||||
os.chdir("usr")
|
||||
|
||||
_fix_pc("libssl", get_prefix("aws-lc-libssl"))
|
||||
_fix_pc("libcrypto", get_prefix("aws-lc-libcrypto"))
|
||||
|
||||
on_build(build)
|
||||
|
||||
@@ -41,6 +56,7 @@ package("aws-lc-tools")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
dep("aws-lc-libcrypto (same)")
|
||||
dep("aws-lc-libssl (same)")
|
||||
dep("libcxx @same-arch")
|
||||
|
||||
package("aws-lc-dev")
|
||||
cpp.use_auto_pack(["dev"])
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
from lib import arch, cpp
|
||||
from lib.make import *
|
||||
|
||||
version("7.0.3")
|
||||
source_url("https://github.com/gavinhoward/bc/releases/download/7.0.3/bc-7.0.3.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
def build():
|
||||
predefined_build_type = "GDH"
|
||||
if "-linux" in arch.get_target():
|
||||
predefined_build_type = "GNU"
|
||||
cpp.configure(
|
||||
[
|
||||
"--disable-nls",
|
||||
"--opt=3",
|
||||
f"--predefined-build-type={predefined_build_type}",
|
||||
f"--prefix={get_prefix('bc')}",
|
||||
]
|
||||
)
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
package("bc")
|
||||
dep("semi-libc @same-arch")
|
||||
provide("dc")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
@@ -0,0 +1,36 @@
|
||||
from lib import cpp
|
||||
from lib.make import *
|
||||
|
||||
version("3.7.91")
|
||||
source_url("https://alpha.gnu.org/gnu/bison/bison-3.7.91.tar.xz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep("gnu-m4")
|
||||
|
||||
block_hook("autolink")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(["--enable-relocatable"])
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
|
||||
def pack_bison(composer):
|
||||
composer.add_dir("bin", "bin")
|
||||
composer.add_dir("lib", "lib")
|
||||
composer.makedir("share")
|
||||
composer.add_dir("share/aclocal", "share/aclocal")
|
||||
composer.add_dir("share/bison", "share/bison")
|
||||
|
||||
|
||||
package("bison")
|
||||
dep("semi-libc @same-arch")
|
||||
dep("gnu-m4")
|
||||
on_pack(pack_bison)
|
||||
link("bin/bison", "/bin/bison")
|
||||
link("bin/yacc", "/bin/yacc", default=False)
|
||||
@@ -8,6 +8,10 @@ VERSION = "2026.6.19"
|
||||
version(VERSION)
|
||||
source_url("https://www.crufty.net/ftp/pub/sjg/bmake-20260619.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep("bc")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
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()
|
||||
|
||||
|
||||
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"])
|
||||
@@ -0,0 +1,25 @@
|
||||
import os
|
||||
|
||||
from lib import cpp
|
||||
from lib.make import *
|
||||
|
||||
version("2.0")
|
||||
source_url("https://www.invisible-island.net/archives/byacc/byacc-2.0.tgz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure([f"--prefix={get_prefix('byacc')}", "--enable-btyacc"])
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
os.rename("bin/yacc", "bin/byacc")
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
package("byacc")
|
||||
dep("semi-libc @same-arch")
|
||||
cpp.use_auto_pack(["bin", "lib", "dev"])
|
||||
link("bin/byacc", "/bin/yacc")
|
||||
@@ -6,14 +6,28 @@ from lib.make import *
|
||||
|
||||
upstream_version = "1.0.8"
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
version(f"{upstream_version}")
|
||||
source_url(f"https://sourceware.org/pub/bzip2/bzip2-{upstream_version}.tar.gz")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.make(["-f", "Makefile-libbz2_so"])
|
||||
cpp.make_install(["PREFIX=../cpp_install"], chdir=False)
|
||||
shutil.copy2(f"libbz2.so.{upstream_version}", "../cpp_install/lib/libbz2.so")
|
||||
makevars = [f"CC={os.environ.get('CC', 'cc')}"]
|
||||
cpp.make(["-f", "Makefile-libbz2_so"] + makevars)
|
||||
try:
|
||||
shutil.rmtree("../cpp_install")
|
||||
except Exception:
|
||||
pass
|
||||
cpp.make_install(["PREFIX=../cpp_install"] + makevars, chdir=False)
|
||||
shutil.copy2(
|
||||
f"libbz2.so.{upstream_version}",
|
||||
f"../cpp_install/lib/libbz2.so.{upstream_version}",
|
||||
)
|
||||
os.symlink(f"libbz2.so.{upstream_version}", "../cpp_install/lib/libbz2.so.1.0")
|
||||
os.symlink(f"libbz2.so.{upstream_version}", "../cpp_install/lib/libbz2.so.1")
|
||||
os.symlink(f"libbz2.so.{upstream_version}", "../cpp_install/lib/libbz2.so")
|
||||
os.chdir("../cpp_install")
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
from lib import cpp
|
||||
from lib.make import *
|
||||
|
||||
version("1.34.6")
|
||||
source_url(
|
||||
"https://github.com/c-ares/c-ares/releases/download/v1.34.6/c-ares-1.34.6.tar.gz"
|
||||
)
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
[
|
||||
"--prefix=/",
|
||||
f"--libdir={get_prefix('libcares')}/lib",
|
||||
f"--includedir={get_prefix('libcares-dev')}/include",
|
||||
]
|
||||
)
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
package("libcares")
|
||||
dep("semi-libc @same-arch")
|
||||
cpp.use_auto_pack(["lib"])
|
||||
|
||||
package("libcares-dev")
|
||||
dep("libcares (same)")
|
||||
cpp.use_auto_pack(["dev"])
|
||||
@@ -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)
|
||||
@@ -0,0 +1,18 @@
|
||||
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")
|
||||
|
||||
builddep("shortcut/rust")
|
||||
|
||||
|
||||
def build():
|
||||
rust.build()
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
package("certutil")
|
||||
dep("semi-libc @same-arch")
|
||||
rust.use_auto_pack(["bin"])
|
||||
@@ -0,0 +1,63 @@
|
||||
import subprocess
|
||||
import os
|
||||
|
||||
from lib import cpp, arch
|
||||
from lib.make import *
|
||||
|
||||
upstream_version = "4.3.4"
|
||||
[upstream_major, upstream_minor, upstream_rev] = upstream_version.split(".")
|
||||
|
||||
version(upstream_version)
|
||||
source_url(
|
||||
"https://github.com/Kitware/CMake/releases/download/v4.3.4/cmake-4.3.4.tar.gz"
|
||||
)
|
||||
|
||||
builddep("shortcut/c++")
|
||||
builddep("shortcut/autotools")
|
||||
builddep("shortcut/cmake")
|
||||
builddep(f"libcurl-dev @{arch.get_target()}")
|
||||
builddep(f"aws-lc-dev @{arch.get_target()}")
|
||||
builddep(f"libcurl-dev @{arch.get_target()}")
|
||||
builddep(f"libexpat-dev @{arch.get_target()}")
|
||||
builddep(f"libz-dev @{arch.get_target()}")
|
||||
builddep(f"libbzip2-dev @{arch.get_target()}")
|
||||
builddep(f"liblzma-dev @{arch.get_target()}")
|
||||
builddep(f"libzstd-dev @{arch.get_target()}")
|
||||
builddep(f"libnghttp2-dev @{arch.get_target()}")
|
||||
builddep(f"librhash-dev @{arch.get_target()}")
|
||||
builddep(f"libarchive-dev @{arch.get_target()}")
|
||||
builddep(f"linux-dev @{arch.get_target()}")
|
||||
|
||||
|
||||
def build():
|
||||
os.environ["CMAKE_PREFIX_PATH"] = f"/lib/{arch.get_target()}"
|
||||
cpp.cmake([
|
||||
f"-DCMAKE_INSTALL_PREFIX={get_prefix('cmake')}",
|
||||
"-DCMAKE_USE_SYSTEM_CURL=ON",
|
||||
"-DCMAKE_USE_SYSTEM_ZLIB=ON",
|
||||
"-DCMAKE_USE_SYSTEM_ZSTD=ON",
|
||||
"-DCMAKE_USE_SYSTEM_LIBRHASH=ON",
|
||||
"-DCMAKE_USE_SYSTEM_LIBARCHIVE=ON",
|
||||
"-DCMAKE_USE_SYSTEM_LIBLZMA=ON",
|
||||
"-DCMAKE_USE_SYSTEM_EXPAT=ON",
|
||||
"-DCMAKE_USE_SYSTEM_BZIP2=ON",
|
||||
])
|
||||
cpp.ninja()
|
||||
cpp.ninja_install()
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
def pack_cmake(composer):
|
||||
composer.add_dir("bin", "bin")
|
||||
composer.makedir("share")
|
||||
composer.add_dir(
|
||||
f"share/cmake-{upstream_major}.{upstream_minor}",
|
||||
f"share/cmake-{upstream_major}.{upstream_minor}",
|
||||
)
|
||||
|
||||
package("cmake")
|
||||
dep("semi-libc @same-arch")
|
||||
dep("libcxx @same-arch")
|
||||
dep("libcurl @same-arch")
|
||||
on_pack(pack_cmake)
|
||||
@@ -5,6 +5,8 @@ version("0.9.0")
|
||||
source_url("https://github.com/uutils/coreutils/archive/refs/tags/0.9.0.tar.gz")
|
||||
block_hook("autolink")
|
||||
|
||||
builddep("shortcut/rust")
|
||||
|
||||
|
||||
def build():
|
||||
rust.build(["--features", "unix"])
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
from lib import cpp, arch
|
||||
from lib.make import *
|
||||
|
||||
version("8.21.0")
|
||||
source_url("https://curl.se/download/curl-8.21.0.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep(f"libnghttp2-dev @{arch.get_target()}")
|
||||
builddep(f"libcares-dev @{arch.get_target()}")
|
||||
builddep(f"aws-lc-dev @{arch.get_target()}")
|
||||
builddep(f"libbrotli-dev @{arch.get_target()}")
|
||||
builddep(f"libz-dev @{arch.get_target()}")
|
||||
builddep(f"libzstd-dev @{arch.get_target()}")
|
||||
builddep(f"libpsl-dev @{arch.get_target()}")
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
[
|
||||
"--prefix=/",
|
||||
f"--bindir={get_prefix('curl')}/bin",
|
||||
f"--libdir={get_prefix('libcurl')}/lib",
|
||||
f"--includedir={get_prefix('libcurl-dev')}/include",
|
||||
"--enable-optimize",
|
||||
"--disable-debug",
|
||||
"--enable-warnings",
|
||||
"--enable-symbol-hiding",
|
||||
"--enable-ares",
|
||||
"--enable-http",
|
||||
"--enable-ftp",
|
||||
"--enable-file",
|
||||
"--enable-ipfs",
|
||||
"--disable-ldap",
|
||||
"--disable-ldaps",
|
||||
"--enable-rtsp",
|
||||
"--enable-proxy",
|
||||
"--enable-dict",
|
||||
"--enable-telnet",
|
||||
"--enable-tftp",
|
||||
"--enable-pop3",
|
||||
"--enable-imap",
|
||||
"--enable-smb",
|
||||
"--enable-smtp",
|
||||
"--enable-gopher",
|
||||
"--enable-mqtt",
|
||||
"--disable-init-mem-debug",
|
||||
"--enable-manual",
|
||||
"--enable-docs",
|
||||
"--enable-libcurl-option",
|
||||
"--enable-ipv6",
|
||||
"--enable-openssl-auto-load-config",
|
||||
"--enable-ca-native",
|
||||
"--enable-versioned-symbols",
|
||||
"--enable-typecheck",
|
||||
"--enable-verbose",
|
||||
"--disable-tls-srp",
|
||||
"--enable-unix-sockets",
|
||||
"--enable-cookies",
|
||||
"--enable-socketpair",
|
||||
"--enable-http-auth",
|
||||
"--enable-doh",
|
||||
"--enable-mime",
|
||||
"--enable-bindlocal",
|
||||
"--enable-form-api",
|
||||
"--enable-dateparse",
|
||||
"--enable-netrc",
|
||||
"--enable-progress-meter",
|
||||
"--enable-get-easy-options",
|
||||
"--enable-alt-svc",
|
||||
"--enable-headers-api",
|
||||
"--enable-hsts",
|
||||
"--enable-websockets",
|
||||
"--with-openssl",
|
||||
"--with-nghttp2",
|
||||
"--without-libidn2",
|
||||
]
|
||||
)
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
package("libcurl")
|
||||
dep("semi-libc @same-arch")
|
||||
dep("libpsl @same-arch")
|
||||
dep("libz @same-arch")
|
||||
dep("libcares @same-arch")
|
||||
dep("libnghttp2 @same-arch")
|
||||
dep("libssl @same-arch")
|
||||
dep("libcrypto @same-arch")
|
||||
dep("libzstd @same-arch")
|
||||
dep("libbrotli @same-arch")
|
||||
cpp.use_auto_pack(["lib"])
|
||||
|
||||
package("curl")
|
||||
dep("libcurl (same)")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
|
||||
package("libcurl-dev")
|
||||
dep("libcurl (same)")
|
||||
cpp.use_auto_pack(["dev"])
|
||||
@@ -0,0 +1,53 @@
|
||||
import os
|
||||
|
||||
from lib.make import *
|
||||
from lib import cpp
|
||||
|
||||
version("1.16.2")
|
||||
source_url("https://dbus.freedesktop.org/releases/dbus/dbus-1.16.2.tar.xz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/meson")
|
||||
builddep("gettext")
|
||||
builddep(f"libintl-dev @{arch.get_target()}")
|
||||
builddep(f"glib-dev @{arch.get_target()}")
|
||||
builddep("pkgconf")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.meson_setup([
|
||||
"-Dapparmor=disabled",
|
||||
"-Dmessage_bus=false",
|
||||
"-Druntime_dir=/run",
|
||||
"-Dsystemd=disabled",
|
||||
"--prefix=/",
|
||||
f"--libdir={get_prefix('libdbus')}/lib",
|
||||
f"--bindir={get_prefix('dbus-tools')}/bin",
|
||||
f"--includedir={get_prefix('libdbus-dev')}/include",
|
||||
"--sysconfdir=/var/config",
|
||||
"--localstatedir=/var/db/dbus",
|
||||
])
|
||||
cpp.meson_compile()
|
||||
cpp.meson_install()
|
||||
|
||||
on_build(build)
|
||||
|
||||
def pack_libdbus(composer):
|
||||
composer.makedir("lib")
|
||||
for i in os.listdir("lib"):
|
||||
if not ".so" in i:
|
||||
continue
|
||||
composer.addfile(f"lib/{i}", f"lib/{i}")
|
||||
os.symlink(f"{get_prefix('libdbus-dev')}/lib/dbus-1.0", f"{composer.workdir}/bundle/lib/dbus-1.0")
|
||||
|
||||
package("libdbus")
|
||||
dep("semi-libc @same-arch")
|
||||
on_pack(pack_libdbus)
|
||||
|
||||
package("dbus-tools")
|
||||
dep("libdbus (same)")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
|
||||
package("libdbus-dev")
|
||||
dep("libdbus (same)")
|
||||
cpp.use_auto_pack(["dev"])
|
||||
@@ -4,6 +4,8 @@ from lib.make import *
|
||||
version("0.5.0")
|
||||
source_url("https://github.com/uutils/diffutils/archive/refs/tags/v0.5.0.tar.gz")
|
||||
|
||||
builddep("shortcut/rust")
|
||||
|
||||
block_hook("autolink")
|
||||
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@ def build():
|
||||
cpp.cmake()
|
||||
cpp.ninja()
|
||||
cpp.ninja_install()
|
||||
os.chdir("usr")
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import subprocess
|
||||
|
||||
from lib import cpp
|
||||
from lib import arch, cpp
|
||||
from lib.make import *
|
||||
|
||||
VERSION = "5.48"
|
||||
@@ -8,6 +8,13 @@ VERSION = "5.48"
|
||||
version(VERSION)
|
||||
source_git("https://github.com/file/file.git", "FILE5_48")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep(f"libz-dev @{arch.get_target()}")
|
||||
builddep(f"libzstd-dev @{arch.get_target()}")
|
||||
builddep(f"liblzma-dev @{arch.get_target()}")
|
||||
builddep(f"libbzip2-dev @{arch.get_target()}")
|
||||
|
||||
|
||||
def build():
|
||||
subprocess.run(["autoreconf", "-fiv"], check=True)
|
||||
@@ -32,6 +39,10 @@ on_pack(pack_magic_db)
|
||||
package("libmagic")
|
||||
dep("semi-libc @same-arch")
|
||||
dep("file-magic-db (same-version) @any")
|
||||
dep("libz @same-arch")
|
||||
dep("libzstd @same-arch")
|
||||
dep("liblzma @same-arch")
|
||||
dep("libbzip2 @same-arch")
|
||||
cpp.use_auto_pack(["lib"])
|
||||
|
||||
package("libmagic-dev")
|
||||
|
||||
@@ -4,6 +4,8 @@ from lib.make import *
|
||||
version("0.9.0")
|
||||
source_url("https://github.com/uutils/findutils/archive/refs/tags/0.9.0.tar.gz")
|
||||
|
||||
builddep("shortcut/rust")
|
||||
|
||||
|
||||
def build():
|
||||
rust.build()
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
from lib import cpp
|
||||
from lib.make import *
|
||||
|
||||
version("2.6.4")
|
||||
source_url("https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep("m4")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
[
|
||||
f"--prefix={get_prefix('flex')}",
|
||||
"--disable-nls",
|
||||
]
|
||||
)
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
package("flex")
|
||||
dep("semi-libc @same-arch")
|
||||
cpp.use_auto_pack(["bin", "lib", "dev"])
|
||||
@@ -0,0 +1,31 @@
|
||||
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"
|
||||
)
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
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"])
|
||||
@@ -0,0 +1,42 @@
|
||||
import subprocess
|
||||
|
||||
from lib import arch, cpp
|
||||
from lib.make import *
|
||||
|
||||
version("2.55.0")
|
||||
source_url("https://www.kernel.org/pub/software/scm/git/git-2.55.0.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep(f"libintl-dev @{arch.get_target()}")
|
||||
builddep(f"libz-dev @{arch.get_target()}")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
[
|
||||
"--prefix=",
|
||||
"--with-gitconfig=/var/config/git/config.ini",
|
||||
"--with-gitattributes=/var/config/git/attributes.txt",
|
||||
]
|
||||
)
|
||||
cpp.make(["RUNTIME_PREFIX=YesPlease"])
|
||||
cpp.make_install()
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
|
||||
def pack_git(composer):
|
||||
composer.add_dir("bin", "bin")
|
||||
composer.add_dir("libexec", "libexec")
|
||||
composer.makedir("share")
|
||||
composer.add_dir("share/git-core", "share/git-core")
|
||||
composer.add_dir("share/gitweb", "share/gitweb")
|
||||
composer.add_dir("share/perl5", "share/perl5")
|
||||
|
||||
|
||||
package("git")
|
||||
dep("semi-libc @same-arch")
|
||||
dep("libz @same-arch")
|
||||
on_pack(pack_git)
|
||||
@@ -0,0 +1,122 @@
|
||||
import shutil
|
||||
import os
|
||||
|
||||
from lib.make import *
|
||||
from lib import cpp
|
||||
|
||||
upstream_version = "2.89.2"
|
||||
|
||||
version(upstream_version)
|
||||
source_url("https://download.gnome.org/sources/glib/2.89/glib-2.89.2.tar.xz")
|
||||
|
||||
builddep("shortcut/c++")
|
||||
builddep("shortcut/meson")
|
||||
builddep("gettext")
|
||||
builddep(f"libintl-dev @{arch.get_target()}")
|
||||
builddep("pcre2-tools")
|
||||
builddep(f"libpcre2-dev @{arch.get_target()}")
|
||||
builddep(f"libffi-dev @{arch.get_target()}")
|
||||
builddep("pkgconf")
|
||||
builddep(f"libz-ng-dev @{arch.get_target()}")
|
||||
builddep("libexpat")
|
||||
|
||||
|
||||
def build():
|
||||
os.environ["CFLAGS"] = os.environ.get("CFLAGS", "") + " -Wno-missing-include-dirs"
|
||||
os.environ["CXXFLAGS"] = os.environ.get("CXXLAGS", "") + os.environ["CFLAGS"]
|
||||
cpp.meson_setup([
|
||||
"-Druntime_dir=/run",
|
||||
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"--includedir={get_prefix('glib-dev')}/include",
|
||||
f"--libexecdir={get_prefix('libglib')}/libexec",
|
||||
f"--datadir={get_prefix('glib')}/share",
|
||||
])
|
||||
cpp.meson_compile()
|
||||
cpp.meson_install()
|
||||
|
||||
on_build(build)
|
||||
|
||||
|
||||
def pack_libxxx(composer, prefix):
|
||||
composer.makedirs("lib")
|
||||
for i in os.listdir("lib"):
|
||||
if not i.startswith(prefix):
|
||||
continue
|
||||
composer.addfile(f"lib/{i}", f"lib/{i}")
|
||||
|
||||
|
||||
def pack_libglib(composer):
|
||||
composer.add_dir("libexec", "libexec")
|
||||
pack_libxxx(composer, "libglib")
|
||||
|
||||
|
||||
package("libglib")
|
||||
dep("semi-libc @same-arch")
|
||||
dep("libpcre2 @same-arch")
|
||||
on_pack(pack_libglib)
|
||||
|
||||
|
||||
package("libgobject")
|
||||
dep("libglib (same)")
|
||||
dep("libffi @same-arch")
|
||||
on_pack(lambda composer: pack_libxxx(composer, "libgobject"))
|
||||
|
||||
package("libgthread")
|
||||
dep("libglib (same)")
|
||||
dep("semi-libc @same-arch")
|
||||
on_pack(lambda composer: pack_libxxx(composer, "libgthread"))
|
||||
|
||||
package("libgmodule")
|
||||
dep("libglib (same)")
|
||||
dep("semi-libc @same-arch")
|
||||
on_pack(lambda composer: pack_libxxx(composer, "libgmodule"))
|
||||
|
||||
package("libgio")
|
||||
dep("libglib (same)")
|
||||
dep("libgobject (same)")
|
||||
dep("libgmodule (same)")
|
||||
dep("libz @same-arch")
|
||||
dep("semi-libc @same-arch")
|
||||
on_pack(lambda composer: pack_libxxx(composer, "libgio"))
|
||||
|
||||
package("libgirepository")
|
||||
dep("libglib (same)")
|
||||
dep("libgobject (same)")
|
||||
dep("libgmodule (same)")
|
||||
dep("libffi @same-arch")
|
||||
dep("semi-libc @same-arch")
|
||||
on_pack(lambda composer: pack_libxxx(composer, "libgirepository"))
|
||||
|
||||
|
||||
def pack_glib(composer):
|
||||
composer.makedir("lib")
|
||||
for i in os.listdir("lib"):
|
||||
if not i.endswith(".so"):
|
||||
continue
|
||||
pkgname = i.split("-")[0]
|
||||
os.symlink(f"{get_prefix(pkgname)}/lib/{i}", f"{composer.workdir}/bundle/lib/{i}")
|
||||
os.symlink(f"{get_prefix('glib-dev')}/lib/glib-2.0", f"{composer.workdir}/bundle/lib/glib-2.0")
|
||||
composer.add_dir("share", "share")
|
||||
|
||||
package("glib")
|
||||
dep("libglib (same)")
|
||||
dep("libgobject (same)")
|
||||
dep("libgthread (same)")
|
||||
dep("libgmodule (same)")
|
||||
dep("libgio (same)")
|
||||
dep("libgirepository (same)")
|
||||
on_pack(pack_glib)
|
||||
|
||||
package("glib-tools")
|
||||
dep("glib (same)")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
|
||||
package("glib-dev")
|
||||
dep("glib (same)")
|
||||
dep("libz-dev @same-arch")
|
||||
dep("libpcre2-dev @same-arch")
|
||||
dep("libffi-dev @same-arch")
|
||||
cpp.use_auto_pack(["dev"])
|
||||
@@ -0,0 +1,29 @@
|
||||
import os
|
||||
|
||||
from lib import cpp, arch
|
||||
from lib.make import *
|
||||
|
||||
version("1.4.21")
|
||||
source_url("https://ftp.gnu.org/gnu/m4/m4-1.4.21.tar.xz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep(f"linux-dev @{arch.get_target()}")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
[f"--prefix={get_prefix('gnu-m4')}", "--enable-changeword", "--disable-nls"]
|
||||
)
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
os.rename("bin/m4", "bin/gnu-m4")
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
package("gnu-m4")
|
||||
provide("m4")
|
||||
dep("semi-libc @same-arch")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
link("bin/gnu-m4", "/bin/m4")
|
||||
@@ -4,6 +4,9 @@ from lib.make import *
|
||||
version("4.4.1")
|
||||
source_url("https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure([f"--prefix={get_prefix('gnu-make')}"])
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
import os
|
||||
|
||||
from lib import cpp
|
||||
from lib.make import *
|
||||
|
||||
version("4.10")
|
||||
source_url("https://ftp.gnu.org/gnu/sed/sed-4.10.tar.gz")
|
||||
|
||||
block_hook("autolink")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
[
|
||||
"--prefix=/",
|
||||
f"--bindir={get_prefix('gnu-sed')}/bin",
|
||||
"--disable-i18n",
|
||||
"--disable-nls",
|
||||
]
|
||||
)
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
os.rename("bin/sed", "bin/gsed")
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
package("gnu-sed")
|
||||
provide("sed")
|
||||
dep("semi-libc @same-arch")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
link("bin/gsed", "/bin/gsed")
|
||||
link("bin/gsed", "/bin/sed")
|
||||
@@ -0,0 +1,32 @@
|
||||
import subprocess
|
||||
|
||||
from lib.make import *
|
||||
|
||||
version("15.1.2")
|
||||
source_url("https://gitea.semilabs.org/semios/grep/archive/v15.1.2.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep(f"libpcre2-dev @{arch.get_target()}")
|
||||
builddep("pcre2-tools")
|
||||
builddep(f"libbzip2-dev @{arch.get_target()}")
|
||||
builddep(f"libz-ng-dev @{arch.get_target()}")
|
||||
|
||||
|
||||
def build():
|
||||
subprocess.run(["./build.sh"], check=True)
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
|
||||
def pack_grep(composer):
|
||||
composer.makedir("bin")
|
||||
composer.addfile("grep", "bin/grep")
|
||||
|
||||
|
||||
package("grep")
|
||||
dep("semi-libc @same-arch")
|
||||
dep("libpcre2 @same-arch")
|
||||
on_pack(pack_grep)
|
||||
link("bin/grep", "/bin/egrep")
|
||||
link("bin/grep", "/bin/fgrep")
|
||||
@@ -6,6 +6,9 @@ from lib.make import *
|
||||
version("2026.4.22")
|
||||
source_url("https://data.iana.org/time-zones/releases/tzdb-2026b.tar.lz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.make()
|
||||
|
||||
@@ -8,6 +8,9 @@ source_url(
|
||||
"https://github.com/unicode-org/icu/releases/download/release-78.3/icu4c-78.3-sources.tgz"
|
||||
)
|
||||
|
||||
builddep("shortcut/c++")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
def build():
|
||||
os.chdir("source")
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
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")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep("git")
|
||||
|
||||
|
||||
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"])
|
||||
@@ -1,17 +1,30 @@
|
||||
import os
|
||||
|
||||
import lib.cpp as cpp
|
||||
from lib import cpp, arch
|
||||
from lib.make import *
|
||||
|
||||
version("1.34")
|
||||
source_url("https://github.com/kmod-project/kmod/archive/refs/tags/v34.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/meson")
|
||||
builddep(f"linux-dev @{arch.get_target()}")
|
||||
builddep(f"libzstd-dev @{arch.get_target()}")
|
||||
builddep(f"aws-lc-dev @{arch.get_target()}")
|
||||
builddep(f"liblzma-dev @{arch.get_target()}")
|
||||
builddep(f"libz-ng-dev @{arch.get_target()}")
|
||||
builddep("pkgconf")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.meson_setup()
|
||||
cpp.meson_setup([
|
||||
"-Dprefix=/",
|
||||
f"-Ddistconfdir={get_prefix('libkmod')}/share",
|
||||
"-Dmoduledir=/lib/lkm",
|
||||
"-Dtools=true",
|
||||
"-Ddlopen=all",
|
||||
"-Dmanpages=false",
|
||||
])
|
||||
cpp.meson_compile()
|
||||
cpp.meson_install()
|
||||
os.chdir("usr")
|
||||
|
||||
|
||||
on_build(build)
|
||||
@@ -19,12 +32,20 @@ on_build(build)
|
||||
package("libkmod")
|
||||
cpp.use_auto_pack(["lib"])
|
||||
dep("semi-libc @same-arch")
|
||||
dep("libzstd @same-arch")
|
||||
dep("libcrypto @same-arch")
|
||||
recommend("libzstd @same-arch")
|
||||
recommend("libz @same-arch")
|
||||
recommend("liblzma @same-arch")
|
||||
|
||||
package("kmod")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
dep("libkmod (same)")
|
||||
link("bin/kmod", "/bin/depmod")
|
||||
link("bin/kmod", "/bin/insmod")
|
||||
link("bin/kmod", "/bin/lsmod")
|
||||
link("bin/kmod", "/bin/modinfo")
|
||||
link("bin/kmod", "/bin/modprobe")
|
||||
link("bin/kmod", "/bin/rmmod")
|
||||
|
||||
package("libkmod-dev")
|
||||
cpp.use_auto_pack(["dev"])
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
from lib import arch, cpp
|
||||
from lib.make import *
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep(f"libncurses-dev @{arch.get_target()}")
|
||||
|
||||
version("704")
|
||||
source_url("https://www.greenwoodsoftware.com/less/less-704.tar.gz")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure([f"--prefix={get_prefix('less')}", "--with-regex=posix"])
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
package("less")
|
||||
dep("semi-libc @same-arch")
|
||||
dep("libncurses @same-arch")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
@@ -6,6 +6,14 @@ source_url(
|
||||
"https://github.com/libarchive/libarchive/releases/download/v3.8.7/libarchive-3.8.7.tar.gz"
|
||||
)
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep(f"aws-lc-dev @{arch.get_target()}")
|
||||
builddep(f"libz-ng-dev @{arch.get_target()}")
|
||||
builddep(f"libzstd-dev @{arch.get_target()}")
|
||||
builddep(f"libbzip2-dev @{arch.get_target()}")
|
||||
builddep(f"liblzma-dev @{arch.get_target()}")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
@@ -34,7 +42,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"])
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from lib import cpp
|
||||
from lib import arch, cpp
|
||||
from lib.make import *
|
||||
|
||||
version("3.6.0")
|
||||
@@ -6,6 +6,10 @@ source_url(
|
||||
"https://github.com/libffi/libffi/releases/download/v3.6.0/libffi-3.6.0.tar.gz"
|
||||
)
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep(f"linux-dev @{arch.get_target()}")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
from lib import arch
|
||||
from lib.make import *
|
||||
|
||||
version("0.2.0")
|
||||
source_url("https://gitea.semilabs.org/semios/libgcc-compat/archive/v0.2.0.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep(f"libunwind-dev @{arch.get_target()}")
|
||||
builddep(f"linux-dev @{arch.get_target()}")
|
||||
|
||||
|
||||
def build():
|
||||
subprocess.run(["./build.sh"], check=True)
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
|
||||
def pack(composer):
|
||||
composer.makedir("lib")
|
||||
composer.addfile("libgcc_s.so.1", "lib/libgcc_s.so.1")
|
||||
composer.addfile("libatomic.so.1", "lib/libatomic.so.1")
|
||||
|
||||
|
||||
package("libgcc-compat")
|
||||
dep("semi-libc @same-arch")
|
||||
dep("libunwind @same-arch")
|
||||
on_pack(pack)
|
||||
@@ -0,0 +1,31 @@
|
||||
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")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
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"])
|
||||
@@ -0,0 +1,41 @@
|
||||
from lib import cpp, arch
|
||||
from lib.make import *
|
||||
|
||||
version("0.22.0")
|
||||
source_url(
|
||||
"https://github.com/rockdaboot/libpsl/releases/download/0.22.0/libpsl-0.22.0.tar.gz"
|
||||
)
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep(f"libicu4c-dev @{arch.get_target()}")
|
||||
builddep("pkgconf")
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
[
|
||||
"--prefix=/",
|
||||
f"--libdir={get_prefix('libpsl')}/lib",
|
||||
f"--includedir={get_prefix('libpsl-dev')}/include",
|
||||
"--disable-nls",
|
||||
"--enable-runtime=libicu",
|
||||
]
|
||||
)
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
package("libpsl")
|
||||
dep("semi-libc @same-arch")
|
||||
dep("libicu4c @same-arch")
|
||||
cpp.use_auto_pack(["lib"])
|
||||
|
||||
package("libpsl-tools")
|
||||
dep("libpsl (same)")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
|
||||
package("libpsl-dev")
|
||||
dep("libpsl (same)")
|
||||
cpp.use_auto_pack(["dev"])
|
||||
@@ -5,13 +5,19 @@ import lib.arch as arch
|
||||
import lib.cpp as cpp
|
||||
from lib.make import *
|
||||
|
||||
upstream_version = "6.18.35"
|
||||
upstream_version = "6.18.38"
|
||||
|
||||
version(f"{upstream_version}")
|
||||
source_url(
|
||||
f"https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-{upstream_version}.tar.xz"
|
||||
)
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep("libncurses-dev")
|
||||
builddep("aws-lc-dev")
|
||||
builddep("aws-lc-tools")
|
||||
|
||||
|
||||
def get_arch():
|
||||
return arch.get_target().split("-")[0].replace("aarch64", "arm64")
|
||||
|
||||
+289
-329
@@ -1,366 +1,326 @@
|
||||
import os
|
||||
import subprocess
|
||||
import shutil
|
||||
import glob
|
||||
|
||||
import lib.cpp as cpp
|
||||
from lib import arch
|
||||
import lib
|
||||
from lib import arch, cpp
|
||||
from lib.make import *
|
||||
|
||||
version("22.1.7")
|
||||
source_url(
|
||||
"https://github.com/llvm/llvm-project/releases/download/llvmorg-22.1.7/llvm-project-22.1.7.src.tar.xz"
|
||||
)
|
||||
pkgver = "22.1.8"
|
||||
[pkgver_major, pkgver_minor, pkgver_rev] = pkgver.split(".")
|
||||
|
||||
version(pkgver)
|
||||
source_url(f"https://github.com/llvm/llvm-project/releases/download/llvmorg-{pkgver}/llvm-project-{pkgver}.src.tar.xz")
|
||||
|
||||
builddep("shortcut/c++")
|
||||
builddep("shortcut/cmake")
|
||||
builddep(f"linux-dev @{arch.get_target()}")
|
||||
builddep(f"libffi-dev @{arch.get_target()}")
|
||||
builddep(f"libz-ng-dev @{arch.get_target()}")
|
||||
builddep(f"aws-lc-dev @{arch.get_target()}")
|
||||
builddep(f"libunwind-dev @{arch.get_target()}")
|
||||
|
||||
|
||||
srcdir = None
|
||||
packname = None
|
||||
|
||||
def llvm_host_triple():
|
||||
return arch.get_target().replace("-semios-linux", "-semios-linux-musl")
|
||||
|
||||
def cmake(sourcedir, args):
|
||||
builddir = os.getcwd() + f"/../_build_{sourcedir}"
|
||||
installdir = os.getcwd() + f"/../_cpp_install/{sourcedir}"
|
||||
template_args = [
|
||||
"cmake", "-G", "Ninja", "-S", sourcedir, "-B", builddir,
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
|
||||
f"-DLLVM_DEFAULT_TARGET_TRIPLE={llvm_host_triple()}",
|
||||
f"-DLLVM_HOST_TRIPLE={llvm_host_triple()}",
|
||||
|
||||
"-DLLVM_ENABLE_EH=ON",
|
||||
"-DLLVM_ENABLE_RTTI=ON",
|
||||
"-DLLVM_ENABLE_ASSERTIONS=OFF",
|
||||
"-DLLVM_BUILD_LLVM_DYLIB=ON",
|
||||
"-DLLVM_LINK_LLVM_DYLIB=ON",
|
||||
|
||||
"-DLLVM_ENABLE_LIBCXX=ON",
|
||||
"-DLLVM_ENABLE_LLD=ON",
|
||||
"-DLLVM_ENABLE_FFI=ON",
|
||||
]
|
||||
subprocess.run(template_args + args, check=True)
|
||||
subprocess.run(["cmake", "--build", builddir], check=True)
|
||||
os.environ["DESTDIR"] = installdir
|
||||
subprocess.run(["cmake", "--install", builddir], check=True)
|
||||
|
||||
def import_llvm():
|
||||
return [f"-DLLVM_ROOT={os.getcwd()}/../_cpp_install/llvm/usr/local"]
|
||||
|
||||
def import_clang():
|
||||
return [f"-DClang_DIR={os.getcwd()}/../_cpp_install/clang/usr/local"]
|
||||
|
||||
def enter_install(name):
|
||||
global packname
|
||||
packname = name
|
||||
|
||||
def auto_pack_static(composer):
|
||||
composer.makedir("lib")
|
||||
for i in os.listdir("lib"):
|
||||
if ".a" in i:
|
||||
composer.addfile(f"lib/{i}", f"lib/{i}")
|
||||
|
||||
def auto_pack_dev(composer, name, devbins=[], extdirs=["lib/cmake"]):
|
||||
composer.add_dir("include", "include")
|
||||
composer.makedir("lib")
|
||||
for i in os.listdir("lib"):
|
||||
prefix = None
|
||||
if os.path.isdir(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}")
|
||||
elif ".a" in i:
|
||||
prefix = get_prefix(f"lib{name}-static")
|
||||
if prefix:
|
||||
os.symlink(f"{prefix}/lib/{i}", f"{composer.workdir}/bundle/lib/{i}")
|
||||
composer.makedir("bin")
|
||||
for i in devbins:
|
||||
composer.addfile(f"bin/{i}", f"bin/{i}")
|
||||
for i in os.listdir("bin"):
|
||||
if i in devbins:
|
||||
continue
|
||||
prefix = get_prefix(name)
|
||||
os.symlink(f"{prefix}/bin/{i}", f"{composer.workdir}/bundle/bin/{i}")
|
||||
|
||||
def auto_pack_runtime_lib(composer, name):
|
||||
composer.makedir("lib")
|
||||
for i in os.listdir("lib"):
|
||||
if name in i and ".so" in i:
|
||||
composer.addfile(f"lib/{i}", f"lib/{i}")
|
||||
|
||||
def auto_pack_glob(composer, matches):
|
||||
for matchable in matches:
|
||||
for i in glob.glob(matchable):
|
||||
composer.makedirs(f"{os.path.dirname(i)}")
|
||||
if os.path.isdir(i):
|
||||
composer.add_dir(i, i)
|
||||
else:
|
||||
composer.addfile(i, i)
|
||||
|
||||
|
||||
old_on_pack = on_pack
|
||||
def new_on_pack(f):
|
||||
current_packname = packname
|
||||
def wrap_f(composer):
|
||||
pkgdir = f"{srcdir}/../_cpp_install/{current_packname}/usr/local"
|
||||
os.chdir(pkgdir)
|
||||
f(composer)
|
||||
old_on_pack(wrap_f)
|
||||
lib.make.on_pack = new_on_pack
|
||||
on_pack = new_on_pack
|
||||
|
||||
|
||||
def build_llvm():
|
||||
cmake("llvm", [])
|
||||
|
||||
def build_bolt():
|
||||
cmake("bolt", import_llvm())
|
||||
|
||||
def build_clang():
|
||||
options = [
|
||||
"-DCLANG_DEFAULT_CXX_STDLIB=libc++",
|
||||
"-DCLANG_DEFAULT_RTLIB=compiler-rt",
|
||||
"-DLLVM_INCLUDE_TESTS=OFF",
|
||||
f"-DC_INCLUDE_DIRS=/lib/{arch.get_target()}/include",
|
||||
]
|
||||
cmake("clang", import_llvm() + options)
|
||||
|
||||
def build_lldb():
|
||||
cmake("lldb", import_llvm() + import_clang())
|
||||
|
||||
def build_lld():
|
||||
cmake("lld", import_llvm())
|
||||
|
||||
def build_polly():
|
||||
cmake("polly", import_llvm())
|
||||
|
||||
def build_runtimes():
|
||||
os.makedirs("../_build_runtimes", exist_ok=True)
|
||||
shutil.rmtree("../_build_runtimes")
|
||||
options = [
|
||||
# Configure runtimes
|
||||
"-DLLVM_ENABLE_RUNTIMES=libunwind;libcxxabi;libcxx",
|
||||
|
||||
# Configure libcxx
|
||||
"-DLIBCXX_HAS_MUSL_LIBC=ON",
|
||||
]
|
||||
cmake("runtimes", options)
|
||||
shutil.rmtree("../_build_runtimes")
|
||||
options = [
|
||||
# Configure runtimes
|
||||
"-DLLVM_ENABLE_RUNTIMES=compiler-rt",
|
||||
|
||||
# Configure compiler-rt
|
||||
"-DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON",
|
||||
"-DCOMPILER_RT_BUILD_GWP_ASAN=OFF",
|
||||
"-DCOMPILER_RT_BUILD_LIBFUZZER=OFF",
|
||||
]
|
||||
cmake("runtimes", options)
|
||||
|
||||
|
||||
def build():
|
||||
subprocess.run(
|
||||
[
|
||||
"cmake",
|
||||
"-G",
|
||||
"Ninja",
|
||||
"-S",
|
||||
"llvm",
|
||||
"-B",
|
||||
"build",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
f"-DLLVM_DEFAULT_TARGET_TRIPLE={llvm_host_triple()}",
|
||||
f"-DLLVM_HOST_TRIPLE={llvm_host_triple()}",
|
||||
"-DLLVM_ENABLE_PROJECTS=clang;lldb;lld;bolt",
|
||||
"-DLLVM_ENABLE_RUNTIMES=libcxx;libcxxabi;libunwind;compiler-rt",
|
||||
"-DLLVM_ENABLE_EH=ON",
|
||||
"-DLLVM_ENABLE_RTTI=ON",
|
||||
"-DCMAKE_INSTALL_PREFIX=/",
|
||||
"-DLLVM_ENABLE_ASSERTIONS=OFF",
|
||||
"-DLLVM_BUILD_LLVM_DYLIB=ON",
|
||||
"-DLLVM_ENABLE_LIBCXX=ON",
|
||||
"-DLLVM_ENABLE_LIBEDIT=ON",
|
||||
"-DLLVM_LINK_LLVM_DYLIB=ON",
|
||||
"-DLIBCXX_HAS_MUSL_LIBC=ON",
|
||||
"-DCOMPILER_RT_BUILD_GWP_ASAN=OFF",
|
||||
],
|
||||
check=True,
|
||||
)
|
||||
subprocess.run(["cmake", "--build", "build"], check=True)
|
||||
os.environ["DESTDIR"] = os.getcwd() + "/cpp_install"
|
||||
subprocess.run(["cmake", "--install", "build"], check=True)
|
||||
os.chdir("cpp_install")
|
||||
|
||||
global srcdir
|
||||
srcdir = os.getcwd()
|
||||
build_llvm()
|
||||
build_bolt()
|
||||
build_clang()
|
||||
build_lldb()
|
||||
build_lld()
|
||||
build_polly()
|
||||
build_runtimes()
|
||||
|
||||
on_build(build)
|
||||
|
||||
|
||||
def pack_runtime_lib(composer, files):
|
||||
composer.makedir("lib")
|
||||
for file in files:
|
||||
composer.addfile(f"lib/{llvm_host_triple()}/{file}", f"lib/{file}")
|
||||
|
||||
|
||||
def pack_runtime_dev(composer, files: list[str]):
|
||||
for file in files:
|
||||
if file.startswith("lib/"):
|
||||
composer.makedirs("lib")
|
||||
composer.addfile(file.replace("lib/", f"lib/{llvm_host_triple()}/"), file)
|
||||
elif file.startswith("include/"):
|
||||
realpath = file.replace("include/", "usr/include/")
|
||||
composer.makedirs(os.path.dirname(file))
|
||||
if os.path.isfile(realpath):
|
||||
composer.addfile(realpath, file)
|
||||
elif os.path.isdir(realpath):
|
||||
composer.add_dir(realpath, file)
|
||||
|
||||
|
||||
package("libunwind")
|
||||
on_pack(
|
||||
lambda composer: pack_runtime_lib(
|
||||
composer, ["libunwind.so.1.0", "libunwind.so.1", "libunwind.so"]
|
||||
)
|
||||
)
|
||||
|
||||
package("libunwind-dev")
|
||||
on_pack(
|
||||
lambda composer: pack_runtime_dev(
|
||||
composer,
|
||||
[
|
||||
"lib/libunwind.a",
|
||||
"include/mach-o/compact_unwind_encoding.h",
|
||||
"include/__libunwind_config.h",
|
||||
"include/libunwind.h",
|
||||
"include/libunwind.modulemap",
|
||||
"include/unwind.h",
|
||||
"include/unwind_arm_ehabi.h",
|
||||
"include/unwind_itanium.h",
|
||||
],
|
||||
)
|
||||
)
|
||||
|
||||
package("libcxxabi")
|
||||
on_pack(
|
||||
lambda composer: pack_runtime_lib(
|
||||
composer, ["libc++abi.so", "libc++abi.so.1", "libc++abi.so.1.0"]
|
||||
)
|
||||
)
|
||||
|
||||
package("libcxxabi-dev")
|
||||
on_pack(lambda composer: pack_runtime_dev(composer, ["lib/libc++abi.a"]))
|
||||
|
||||
|
||||
package("libcxx")
|
||||
on_pack(
|
||||
lambda composer: pack_runtime_lib(
|
||||
composer, ["libc++.so", "libc++.so.1", "libc++.so.1.0"]
|
||||
)
|
||||
)
|
||||
|
||||
package("libcxx-dev")
|
||||
on_pack(
|
||||
lambda composer: pack_runtime_dev(
|
||||
composer,
|
||||
[
|
||||
"lib/libc++.a",
|
||||
"lib/libc++experimental.a",
|
||||
"lib/libc++.modules.json",
|
||||
f"include/{llvm_host_triple()}/c++/v1",
|
||||
"include/c++/v1",
|
||||
],
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def pack_libllvm(composer):
|
||||
LIBRARIES = [
|
||||
"libLLVM.so.22.1",
|
||||
"libLLVM.so",
|
||||
"libLLVM-22.so",
|
||||
"libLTO.so",
|
||||
"libLTO.so.22.1",
|
||||
"libRemarks.so",
|
||||
"libRemarks.so.22.1",
|
||||
]
|
||||
composer.makedir("lib")
|
||||
for lib in LIBRARIES:
|
||||
composer.addfile(f"lib/{lib}", f"lib/{lib}")
|
||||
|
||||
enter_install("llvm")
|
||||
|
||||
package("libllvm")
|
||||
on_pack(pack_libllvm)
|
||||
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")
|
||||
dep("libllvm (same)")
|
||||
on_pack(lambda composer: auto_pack_dev(composer, "llvm", ["llvm-config"]))
|
||||
|
||||
package("libllvm-static")
|
||||
on_pack(auto_pack_static)
|
||||
|
||||
def pack_llvm(composer):
|
||||
BINARIES = [
|
||||
"bugpoint",
|
||||
"dsymutil",
|
||||
"llc",
|
||||
"lli",
|
||||
"llvm-addr2line",
|
||||
"llvm-ar",
|
||||
"llvm-as",
|
||||
"llvm-bcanalyzer",
|
||||
"llvm-bitcode-strip",
|
||||
"llvm-bolt",
|
||||
"llvm-bolt-binary-analysis",
|
||||
"llvm-bolt-heatmap",
|
||||
"llvm-boltdiff",
|
||||
"llvm-c-test",
|
||||
"llvm-cas",
|
||||
"llvm-cat",
|
||||
"llvm-cfi-verify",
|
||||
"llvm-cgdata",
|
||||
"llvm-config",
|
||||
"llvm-cov",
|
||||
"llvm-ctxprof-util",
|
||||
"llvm-cvtres",
|
||||
"llvm-cxxdump",
|
||||
"llvm-cxxfilt",
|
||||
"llvm-cxxmap",
|
||||
"llvm-debuginfo-analyzer",
|
||||
"llvm-debuginfod",
|
||||
"llvm-debuginfod-find",
|
||||
"llvm-diff",
|
||||
"llvm-dis",
|
||||
"llvm-dlltool",
|
||||
"llvm-dwarfdump",
|
||||
"llvm-dwarfutil",
|
||||
"llvm-dwp",
|
||||
"llvm-exegesis",
|
||||
"llvm-extract",
|
||||
"llvm-gsymutil",
|
||||
"llvm-ifs",
|
||||
"llvm-install-name-tool",
|
||||
"llvm-ir2vec",
|
||||
"llvm-jitlink",
|
||||
"llvm-lib",
|
||||
"llvm-libtool-darwin",
|
||||
"llvm-link",
|
||||
"llvm-lipo",
|
||||
"llvm-lto",
|
||||
"llvm-lto2",
|
||||
"llvm-mc",
|
||||
"llvm-mca",
|
||||
"llvm-ml",
|
||||
"llvm-ml64",
|
||||
"llvm-modextract",
|
||||
"llvm-nm",
|
||||
"llvm-objcopy",
|
||||
"llvm-objdump",
|
||||
"llvm-offload-binary",
|
||||
"llvm-offload-wrapper",
|
||||
"llvm-opt-report",
|
||||
"llvm-otool",
|
||||
"llvm-pdbutil",
|
||||
"llvm-profdata",
|
||||
"llvm-profgen",
|
||||
"llvm-ranlib",
|
||||
"llvm-rc",
|
||||
"llvm-readelf",
|
||||
"llvm-readobj",
|
||||
"llvm-readtapi",
|
||||
"llvm-reduce",
|
||||
"llvm-remarkutil",
|
||||
"llvm-rtdyld",
|
||||
"llvm-sim",
|
||||
"llvm-size",
|
||||
"llvm-split",
|
||||
"llvm-stress",
|
||||
"llvm-strings",
|
||||
"llvm-strip",
|
||||
"llvm-symbolizer",
|
||||
"llvm-tblgen",
|
||||
"llvm-tli-checker",
|
||||
"llvm-undname",
|
||||
"llvm-windres",
|
||||
"llvm-xray",
|
||||
"merge-fdata",
|
||||
"opt",
|
||||
"perf2bolt",
|
||||
"reduce-chunk-list",
|
||||
"sancov",
|
||||
"sanstats",
|
||||
"verify-uselistorder",
|
||||
]
|
||||
composer.makedir("bin")
|
||||
for bin in BINARIES:
|
||||
composer.addfile(f"usr/bin/{bin}", f"bin/{bin}")
|
||||
|
||||
composer.add_dir("bin", "bin")
|
||||
os.remove(f"{composer.workdir}/bundle/bin/llvm-config")
|
||||
composer.add_dir("share", "share")
|
||||
|
||||
package("llvm")
|
||||
dep("libllvm (same)")
|
||||
on_pack(pack_llvm)
|
||||
for i in ["strip", "ar", "ranlib", "readelf", "objcopy", "objdump", "strings", "nm"]:
|
||||
link(f"bin/llvm-{i}", f"/bin/{i}")
|
||||
|
||||
|
||||
def pack_lld(composer):
|
||||
BINARIES = ["lld", "lld-link", "ld.lld", "ld64.lld", "wasm-ld"]
|
||||
composer.makedir("bin")
|
||||
for bin in BINARIES:
|
||||
composer.addfile(f"usr/bin/{bin}", f"bin/{bin}")
|
||||
enter_install("bolt")
|
||||
|
||||
package("bolt")
|
||||
dep("libcxx @same-arch")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
|
||||
|
||||
package("lld")
|
||||
on_pack(pack_lld)
|
||||
|
||||
|
||||
def pack_liblldb(composer):
|
||||
LIBRARIES = [
|
||||
"liblldb.so",
|
||||
"liblldb.so.22.1",
|
||||
"liblldb.so.22.1.7",
|
||||
"liblldbIntelFeatures.so",
|
||||
"liblldbIntelFeatures.so.22.1",
|
||||
]
|
||||
composer.makedir("lib")
|
||||
for lib in LIBRARIES:
|
||||
composer.addfile(f"lib/{lib}", f"lib/{lib}")
|
||||
|
||||
|
||||
package("liblldb")
|
||||
on_pack(pack_liblldb)
|
||||
|
||||
|
||||
def pack_lldb(composer):
|
||||
BINARIES = [
|
||||
"lldb",
|
||||
"lldb-argdumper",
|
||||
"lldb-dap",
|
||||
"lldb-instr",
|
||||
"lldb-mcp",
|
||||
"lldb-server",
|
||||
"yaml2macho-core",
|
||||
]
|
||||
composer.makedir("bin")
|
||||
for bin in BINARIES:
|
||||
composer.addfile(f"bin/{bin}", f"bin/{bin}")
|
||||
|
||||
|
||||
package("lldb")
|
||||
on_pack(pack_lldb)
|
||||
|
||||
|
||||
def pack_libclang(composer):
|
||||
LIBRARIES = [
|
||||
"libclang.so",
|
||||
"libclang-cpp.so",
|
||||
"libclang-cpp.so.22.1",
|
||||
"libclang.so.22.1",
|
||||
"libclang.so.22.1.7",
|
||||
]
|
||||
composer.makedir("lib")
|
||||
for lib in LIBRARIES:
|
||||
composer.addfile(f"lib/{lib}", f"lib/{lib}")
|
||||
|
||||
enter_install("clang")
|
||||
|
||||
package("libclang")
|
||||
on_pack(pack_libclang)
|
||||
dep("libllvm (same)")
|
||||
cpp.use_auto_pack(["lib"])
|
||||
|
||||
package("libclang-static")
|
||||
on_pack(auto_pack_static)
|
||||
|
||||
package("libclang-dev")
|
||||
dep("libclang (same)")
|
||||
on_pack(lambda composer: auto_pack_dev(composer, "clang"))
|
||||
|
||||
def pack_clang(composer):
|
||||
BINARIES = [
|
||||
"clang",
|
||||
"clang++",
|
||||
"clang-22",
|
||||
"clang-check",
|
||||
"clang-cl",
|
||||
"clang-cpp",
|
||||
"clang-extdef-mapping",
|
||||
"clang-format",
|
||||
"clang-installapi",
|
||||
"clang-linker-wrapper",
|
||||
"clang-nvlink-wrapper",
|
||||
"clang-offload-bundler",
|
||||
"clang-offload-packager",
|
||||
"clang-refactor",
|
||||
"clang-repl",
|
||||
"clang-scan-deps",
|
||||
"clang-sycl-linker",
|
||||
"clang-tblgen",
|
||||
"diagtool",
|
||||
"git-clang-format",
|
||||
"hmaptool",
|
||||
"intercept-build",
|
||||
"amdgpu-arch",
|
||||
"c-index-test",
|
||||
"analyze-build",
|
||||
"nvptx-arch",
|
||||
"offload-arch",
|
||||
"scan-build",
|
||||
"scan-build-py",
|
||||
"scan-view",
|
||||
]
|
||||
LIBEXEC = [
|
||||
"analyze-c++",
|
||||
"analyze-cc",
|
||||
"c++-analyzer",
|
||||
"ccc-analyzer",
|
||||
"intercept-c++",
|
||||
"intercept-cc",
|
||||
]
|
||||
composer.makedir("bin")
|
||||
for bin in BINARIES:
|
||||
composer.addfile(f"usr/bin/{bin}", f"bin/{bin}")
|
||||
composer.makedir("libexec")
|
||||
for libexec in LIBEXEC:
|
||||
composer.addfile(f"usr/libexec/{libexec}", f"libexec/{libexec}")
|
||||
# Add base files
|
||||
composer.add_dir("bin", "bin")
|
||||
composer.add_dir("libexec", "libexec")
|
||||
composer.makedir("share")
|
||||
for i in ["clang", "scan-build", "scan-view"]:
|
||||
composer.add_dir(f"share/{i}", f"share/{i}")
|
||||
|
||||
# Add resource files
|
||||
composer.makedir("lib")
|
||||
composer.add_dir("lib/clang", "lib/clang")
|
||||
|
||||
# Add compiler-rt for current architecture
|
||||
linuxrtdir = "../../../runtimes/usr/local/lib/linux"
|
||||
localrtdir = f"lib/clang/{pkgver_major}/lib/{llvm_host_triple()}"
|
||||
composer.makedirs(localrtdir)
|
||||
for rtlib in os.listdir(linuxrtdir):
|
||||
larch = llvm_host_triple().split("-")[0]
|
||||
lrtlib = rtlib.replace(f"-{larch}", "")
|
||||
composer.addfile(f"{linuxrtdir}/{rtlib}", f"{localrtdir}/{lrtlib}")
|
||||
|
||||
# Add configuration
|
||||
clang_cfg = f"-L/lib/{arch.get_target()}\n-B/lib/{arch.get_target()}\n-rtlib=compiler-rt\n"
|
||||
clangxx_cfg = f"-stdlib=libc++\n{clang_cfg}"
|
||||
with open(f"{composer.workdir}/bundle/bin/clang.cfg", "wt+") as file:
|
||||
file.write(clang_cfg)
|
||||
with open(f"{composer.workdir}/bundle/bin/clang++.cfg", "wt+") as file:
|
||||
file.write(clangxx_cfg)
|
||||
|
||||
package("clang")
|
||||
dep("libclang (same)")
|
||||
on_pack(pack_clang)
|
||||
|
||||
|
||||
enter_install("lld")
|
||||
|
||||
package("lld")
|
||||
dep("libllvm (same)")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
link("bin/ld.lld", "/bin/ld")
|
||||
|
||||
package("lld-dev")
|
||||
dep("lld (same)")
|
||||
cpp.use_auto_pack(["dev"])
|
||||
|
||||
|
||||
enter_install("lldb")
|
||||
|
||||
package("liblldb")
|
||||
dep("libclang (same)")
|
||||
dep("libllvm (same)")
|
||||
cpp.use_auto_pack(["lib"])
|
||||
|
||||
package("liblldb-dev")
|
||||
dep("liblldb (same)")
|
||||
cpp.use_auto_pack(["dev"])
|
||||
|
||||
package("lldb")
|
||||
dep("liblldb (same)")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
|
||||
|
||||
enter_install("polly")
|
||||
|
||||
package("polly")
|
||||
dep("libcxx @same-arch")
|
||||
on_pack(lambda composer: auto_pack_glob(composer, ["*"]))
|
||||
|
||||
|
||||
enter_install("runtimes")
|
||||
|
||||
package("libunwind")
|
||||
dep("semi-libc @same-arch")
|
||||
on_pack(lambda composer: auto_pack_runtime_lib(composer, "unwind"))
|
||||
|
||||
package("libunwind-dev")
|
||||
dep("libunwind (same)")
|
||||
on_pack(lambda composer: auto_pack_glob(composer, ["lib/libunwind.a", "include/*unwind*", "include/mach-o"]))
|
||||
|
||||
package("libcxxabi")
|
||||
dep("libunwind (same)")
|
||||
on_pack(lambda composer: auto_pack_runtime_lib(composer, "libc++abi"))
|
||||
|
||||
package("libcxxabi-dev")
|
||||
dep("libcxxabi (same)")
|
||||
on_pack(lambda composer: auto_pack_glob(composer, ["lib/libc++abi.a"]))
|
||||
|
||||
package("libcxx")
|
||||
dep("libcxxabi (same)")
|
||||
on_pack(lambda composer: auto_pack_runtime_lib(composer, "libc++"))
|
||||
|
||||
package("libcxx-dev")
|
||||
dep("libcxx (same)")
|
||||
on_pack(lambda composer: auto_pack_glob(composer, ["lib/libc++experimental.a", "lib/libc++.a", "lib/libc++.modules.json", "include/c++", "share/libc++"]))
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
from lib import cpp
|
||||
from lib import arch, cpp
|
||||
from lib.make import *
|
||||
|
||||
version("1.14.6")
|
||||
source_url("https://mandoc.bsd.lv/snapshots/mandoc-1.14.6.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep(f"libz-ng-dev @{arch.get_target()}")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure()
|
||||
@@ -17,4 +21,5 @@ def build():
|
||||
on_build(build)
|
||||
|
||||
package("mandoc")
|
||||
dep("libz @same-arch")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import subprocess
|
||||
|
||||
from lib.make import *
|
||||
|
||||
version("1.11.2")
|
||||
source_url("https://github.com/mesonbuild/meson/releases/download/1.11.2/meson-1.11.2.tar.gz")
|
||||
|
||||
builddep("python")
|
||||
|
||||
|
||||
def build():
|
||||
subprocess.run([
|
||||
"python3",
|
||||
"./packaging/create_zipapp.py",
|
||||
"--outfile",
|
||||
"meson",
|
||||
"--interpreter",
|
||||
"/bin/python3"
|
||||
])
|
||||
|
||||
on_build(build)
|
||||
|
||||
def pack_meson(composer):
|
||||
composer.makedir("bin")
|
||||
composer.addfile("meson", "bin/meson")
|
||||
|
||||
package("meson")
|
||||
dep("python @same-arch")
|
||||
recommend("ninja")
|
||||
on_pack(pack_meson)
|
||||
@@ -1,13 +1,18 @@
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
from lib.make import *
|
||||
|
||||
version("1.59.2")
|
||||
source_git("https://github.com/mirabilos/mksh-cvs2git.git", "mksh-R59c")
|
||||
source_url(
|
||||
"https://github.com/mirabilos/mksh-cvs2git/archive/refs/tags/mksh-R59c.tar.gz"
|
||||
)
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("gnu-sed")
|
||||
|
||||
|
||||
def build():
|
||||
os.system("sh ./Build.sh")
|
||||
subprocess.run(["sh", "./Build.sh"], check=True)
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
@@ -6,6 +6,9 @@ from lib.make import *
|
||||
version("6.6")
|
||||
source_url("https://invisible-island.net/archives/ncurses/ncurses-6.6.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
|
||||
@@ -6,6 +6,9 @@ from lib.make import *
|
||||
version("19")
|
||||
source_url("https://github.com/aligrudi/neatvi/archive/refs/tags/19.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.make([f"CC={os.environ['CC']}"])
|
||||
|
||||
@@ -7,6 +7,9 @@ from lib.make import *
|
||||
version("5.3")
|
||||
source_url("https://github.com/kyx0r/nextvi/archive/refs/tags/5.3.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
def build():
|
||||
os.environ["PREFIX"] = "/"
|
||||
|
||||
@@ -13,7 +13,6 @@ def build():
|
||||
cpp.cmake()
|
||||
cpp.ninja()
|
||||
cpp.ninja_install()
|
||||
os.chdir("usr")
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
@@ -5,9 +5,12 @@ from lib.make import *
|
||||
version("1.13.2")
|
||||
source_url("https://github.com/ninja-build/ninja/archive/refs/tags/v1.13.2.tar.gz")
|
||||
|
||||
builddep("shortcut/c++")
|
||||
builddep("sed")
|
||||
|
||||
|
||||
def build():
|
||||
os.system("./configure.py --bootstrap")
|
||||
os.system("python3 ./configure.py --bootstrap")
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
@@ -4,6 +4,11 @@ from lib.make import *
|
||||
version("10.3.1")
|
||||
source_url("https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.3p1.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep(f"libz-ng-dev @{arch.get_target()}")
|
||||
builddep(f"aws-lc-dev @{arch.get_target()}")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
from lib.make import *
|
||||
|
||||
version("15.1.1")
|
||||
source_url("https://gitea.semilabs.org/semios/patch/archive/v15.1.1.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
|
||||
|
||||
def build():
|
||||
subprocess.run(["./build.sh"], check=True)
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
|
||||
def pack_patch(composer):
|
||||
composer.makedir("bin")
|
||||
composer.addfile("patch", "bin/patch")
|
||||
|
||||
|
||||
package("patch")
|
||||
dep("semi-libc @same-arch")
|
||||
on_pack(pack_patch)
|
||||
@@ -0,0 +1,38 @@
|
||||
from lib import cpp
|
||||
from lib.make import *
|
||||
|
||||
version("10.47")
|
||||
source_url(
|
||||
"https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.47/pcre2-10.47.tar.gz"
|
||||
)
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
[
|
||||
"--prefix=/",
|
||||
f"--libdir={get_prefix('libpcre2')}/lib",
|
||||
f"--bindir={get_prefix('pcre2-tools')}/bin",
|
||||
"--enable-jit",
|
||||
]
|
||||
)
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
package("libpcre2")
|
||||
dep("semi-libc @same-arch")
|
||||
cpp.use_auto_pack(["lib"])
|
||||
|
||||
package("pcre2-tools")
|
||||
dep("libpcre2 (same)")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
|
||||
package("libpcre2-dev")
|
||||
dep("semi-libc @same-arch")
|
||||
cpp.use_auto_pack(["dev"])
|
||||
@@ -0,0 +1,75 @@
|
||||
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")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
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}")
|
||||
@@ -5,6 +5,9 @@ from lib.make import *
|
||||
version("2.5.1")
|
||||
source_url("https://distfiles.ariadne.space/pkgconf/pkgconf-2.5.1.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
@@ -31,6 +34,7 @@ dep("semi-libc @same-arch")
|
||||
package("pkgconf")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
dep("libpkgconf (same)")
|
||||
link("bin/pkgconf", "/bin/pkg-config")
|
||||
|
||||
package("libpkgconf-dev")
|
||||
cpp.use_auto_pack(["dev"])
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
from lib import arch, cpp
|
||||
from lib.make import *
|
||||
@@ -15,6 +14,19 @@ source_url(
|
||||
f"https://www.python.org/ftp/python/{VERSION_FULL}/Python-{VERSION_FULL}.tar.xz"
|
||||
)
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep(f"liblzma-dev @{arch.get_target()}")
|
||||
builddep(f"libzstd-dev @{arch.get_target()}")
|
||||
builddep(f"libz-ng-dev @{arch.get_target()}")
|
||||
builddep(f"aws-lc-dev @{arch.get_target()}")
|
||||
builddep(f"libexpat-dev @{arch.get_target()}")
|
||||
builddep(f"libsqlite-dev @{arch.get_target()}")
|
||||
builddep(f"libncurses-dev @{arch.get_target()}")
|
||||
builddep(f"libbzip2-dev @{arch.get_target()}")
|
||||
builddep(f"libffi-dev @{arch.get_target()}")
|
||||
builddep("pkgconf")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
prefix=/
|
||||
exec_prefix=${prefix}
|
||||
libdir=
|
||||
includedir=
|
||||
|
||||
Name: librhash
|
||||
Description: LibRHash shared library
|
||||
Version:
|
||||
Cflags: -I${includedir}
|
||||
Libs: -L${libdir} -lrhash
|
||||
Libs.private:
|
||||
@@ -0,0 +1,54 @@
|
||||
from lib import cpp
|
||||
from lib.make import *
|
||||
|
||||
import os
|
||||
|
||||
upstream_version = "1.4.6"
|
||||
|
||||
version(upstream_version)
|
||||
source_url("https://github.com/rhash/RHash/archive/refs/tags/v1.4.6.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
with open("files/librhash.pc") as f:
|
||||
librhash_pc = f.read()
|
||||
|
||||
def build():
|
||||
global librhash_pc
|
||||
cpp.configure(
|
||||
[
|
||||
"--prefix=/",
|
||||
f"--bindir={get_prefix('rhash-tools')}/bin",
|
||||
f"--libdir={get_prefix('librhash')}/lib",
|
||||
"--disable-gettext",
|
||||
"--enable-lib-static",
|
||||
]
|
||||
)
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
|
||||
os.symlink("librhash.so.1", "./lib/librhash.so")
|
||||
os.makedirs("./lib/pkgconfig", exist_ok=True)
|
||||
with open("./lib/pkgconfig/librhash.pc", "w+") as file:
|
||||
librhash_pc = (librhash_pc
|
||||
.replace("libdir=", f"libdir={get_prefix('librhash')}/lib")
|
||||
.replace("includedir=", f"includedir={get_prefix('librhash-dev')}/include")
|
||||
.replace("Version:", f"Version: {upstream_version}")
|
||||
)
|
||||
file.write(librhash_pc)
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
package("librhash")
|
||||
dep("semi-libc @same-arch")
|
||||
cpp.use_auto_pack(["lib"])
|
||||
|
||||
package("rhash-tools")
|
||||
dep("librhash (same)")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
|
||||
package("librhash-dev")
|
||||
dep("librhash (same)")
|
||||
cpp.use_auto_pack(["dev"])
|
||||
@@ -4,6 +4,8 @@ from lib.make import *
|
||||
version("15.1.0")
|
||||
source_url("https://github.com/BurntSushi/ripgrep/archive/refs/tags/15.1.0.tar.gz")
|
||||
|
||||
builddep("shortcut/rust")
|
||||
|
||||
|
||||
def build():
|
||||
rust.build()
|
||||
|
||||
@@ -1,16 +1,28 @@
|
||||
from lib import rust
|
||||
import subprocess
|
||||
|
||||
from lib.make import *
|
||||
|
||||
version("0.1.1")
|
||||
source_url("https://github.com/uutils/sed/releases/download/0.1.1/source.tar.gz")
|
||||
version("15.1.1")
|
||||
source_url("https://gitea.semilabs.org/semios/sed/archive/v15.1.1.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep(f"libpcre2-dev @{arch.get_target()}")
|
||||
builddep("pcre2-tools")
|
||||
|
||||
|
||||
def build():
|
||||
rust.build()
|
||||
subprocess.run(["./build.sh"])
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
|
||||
def pack_sed(composer):
|
||||
composer.makedir("bin")
|
||||
composer.addfile("sed", "bin/sed")
|
||||
|
||||
|
||||
package("sed")
|
||||
dep("semi-libc @same-arch")
|
||||
rust.use_auto_pack(["bin"])
|
||||
dep("libpcre2 @same-arch")
|
||||
on_pack(pack_sed)
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
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")
|
||||
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
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 +23,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)")
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,42 @@
|
||||
import os
|
||||
|
||||
from lib.make import *
|
||||
from lib import arch
|
||||
|
||||
def deplinux(s):
|
||||
if "linux" in arch.get_target():
|
||||
dep(s)
|
||||
|
||||
version("1.0.0")
|
||||
source_url(f"file://{os.getcwd()}/empty.tar")
|
||||
|
||||
on_build(lambda: print("Building virtual package `semios-assembly`..."))
|
||||
|
||||
package("SemiOS.Assembly.CoreRuntime")
|
||||
deplinux("semi-libc @same-arch")
|
||||
deplinux("libgcc-compat @same-arch")
|
||||
dep("libunwind @same-arch")
|
||||
dep("mksh @same-arch")
|
||||
dep("coreutils @same-arch")
|
||||
dep("findutils @same-arch")
|
||||
dep("diffutils @same-arch")
|
||||
dep("grep @same-arch")
|
||||
dep("packie @same-arch")
|
||||
dep("iana-timezone-db")
|
||||
on_pack(lambda _: print("Packing virtual package `SemiOS.Assembly.CoreRuntime`..."))
|
||||
|
||||
package("SemiOS.Assembly.Cli")
|
||||
dep("less @same-arch")
|
||||
dep("ncurses-tools @same-arch")
|
||||
dep("ncurses-terminfo")
|
||||
dep("mandoc @same-arch")
|
||||
dep("neatvi @same-arch")
|
||||
on_pack(lambda _: print("Packing virtual package `SemiOS.Assembly.Cli`..."))
|
||||
|
||||
package("SemiOS.Assembly.Networking")
|
||||
dep("aws-lc-libssl @same-arch")
|
||||
dep("aws-lc-tools @same-arch")
|
||||
dep("ca-certificates")
|
||||
dep("certutil @same-arch")
|
||||
deplinux("iproute2 @same-arch")
|
||||
on_pack(lambda _: print("Packing virtual package `SemiOS.Assembly.Networking`..."))
|
||||
@@ -1,9 +1,15 @@
|
||||
import os
|
||||
|
||||
import lib.cpp as cpp
|
||||
from lib.make import *
|
||||
|
||||
version("3.53.2")
|
||||
source_url("https://sqlite.org/2026/sqlite-autoconf-3530200.tar.gz")
|
||||
|
||||
builddep("shortcut/autotools")
|
||||
builddep("shortcut/c")
|
||||
builddep("linenoise-dev")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
|
||||
@@ -0,0 +1,323 @@
|
||||
import os
|
||||
|
||||
from lib.make import *
|
||||
from lib import cpp
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep("gettext")
|
||||
builddep("bash")
|
||||
builddep(f"linux-dev @{arch.get_target()}")
|
||||
builddep(f"libintl-dev @{arch.get_target()}")
|
||||
builddep(f"libz-ng-dev @{arch.get_target()}")
|
||||
builddep(f"libncurses-dev @{arch.get_target()}")
|
||||
|
||||
version("2.42.2")
|
||||
source_url("https://www.kernel.org/pub/linux/utils/util-linux/v2.42/util-linux-2.42.2.tar.xz")
|
||||
|
||||
def build():
|
||||
cpp.configure([
|
||||
"--prefix=/",
|
||||
"--enable-fs-paths-default=/bin",
|
||||
"--disable-su",
|
||||
"--disable-sulogin",
|
||||
"--disable-chfn-chsh",
|
||||
"--disable-login",
|
||||
"--without-systemd",
|
||||
"--disable-makeinstall-setuid",
|
||||
"--disable-makeinstall-chown",
|
||||
"--disable-makeinstall-tty-setgid",
|
||||
])
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
|
||||
on_build(build)
|
||||
|
||||
|
||||
def fix_pc(libname: str):
|
||||
pkgname_lib = f"lib{libname}"
|
||||
pkgname_dev = f"lib{libname}-dev"
|
||||
pc_path = f"lib/pkgconfig/{libname}.pc"
|
||||
with open(pc_path, "r") as file:
|
||||
pc_content = file.read()
|
||||
pc_content = pc_content.replace(
|
||||
"libdir=//lib", f"libdir={get_prefix(pkgname_lib)}/lib"
|
||||
).replace(
|
||||
"includedir=//include", f"includedir={get_prefix(pkgname_dev)}/include"
|
||||
)
|
||||
with open(pc_path, "wt") as file:
|
||||
file.write(pc_content)
|
||||
|
||||
|
||||
def pack_lib(composer, name):
|
||||
composer.makedir("lib")
|
||||
for i in os.listdir("lib"):
|
||||
if name in i and "so" in i:
|
||||
composer.addfile(f"lib/{i}", f"lib/{i}")
|
||||
|
||||
def pack_dev(composer, name):
|
||||
fix_pc(name)
|
||||
composer.makedir("lib")
|
||||
for i in os.listdir("lib"):
|
||||
if name in i and "so" not in i:
|
||||
composer.addfile(f"lib/{i}", f"lib/{i}")
|
||||
composer.makedir("lib/pkgconfig")
|
||||
composer.addfile(f"lib/pkgconfig/{name}.pc", f"lib/pkgconfig/{name}.pc")
|
||||
composer.makedir("include")
|
||||
for i in os.listdir("include"):
|
||||
if name in i:
|
||||
composer.add_dir(f"include/{i}", f"include/{i}")
|
||||
|
||||
def pack_bin(composer, list):
|
||||
composer.makedir("bin")
|
||||
for i in list:
|
||||
if i.startswith("sbin/"):
|
||||
i = i.replace("sbin/", "")
|
||||
composer.addfile(f"sbin/{i}", f"bin/{i}")
|
||||
else:
|
||||
composer.addfile(f"bin/{i}", f"bin/{i}")
|
||||
|
||||
package("libblkid")
|
||||
dep("semi-libc @same-arch")
|
||||
on_pack(lambda composer: pack_lib(composer, "blkid"))
|
||||
|
||||
package("libblkid-dev")
|
||||
dep("libblkid (same)")
|
||||
on_pack(lambda composer: pack_dev(composer, "blkid"))
|
||||
|
||||
package("libfdisk")
|
||||
dep("libuuid (same)")
|
||||
dep("libblkid (same)")
|
||||
on_pack(lambda composer: pack_lib(composer, "fdisk"))
|
||||
|
||||
package("libfdisk-dev")
|
||||
dep("libfdisk (same)")
|
||||
on_pack(lambda composer: pack_dev(composer, "fdisk"))
|
||||
|
||||
package("libmount")
|
||||
dep("libblkid (same)")
|
||||
on_pack(lambda composer: pack_lib(composer, "mount"))
|
||||
|
||||
package("libmount-dev")
|
||||
dep("libmount (same)")
|
||||
on_pack(lambda composer: pack_dev(composer, "mount"))
|
||||
|
||||
package("libsmartcols")
|
||||
dep("semi-libc @same-arch")
|
||||
on_pack(lambda composer: pack_lib(composer, "smartcols"))
|
||||
|
||||
package("libsmartcols-dev")
|
||||
dep("libsmartcols (same)")
|
||||
on_pack(lambda composer: pack_dev(composer, "smartcols"))
|
||||
|
||||
package("libuuid")
|
||||
dep("semi-libc @same-arch")
|
||||
on_pack(lambda composer: pack_lib(composer, "uuid"))
|
||||
|
||||
package("libuuid-dev")
|
||||
dep("libuuid (same)")
|
||||
on_pack(lambda composer: pack_dev(composer, "uuid"))
|
||||
|
||||
package("util-linux-swap")
|
||||
dep("libblkid (same)")
|
||||
dep("libmount (same)")
|
||||
dep("libsmartcols (same)")
|
||||
on_pack(lambda composer: pack_bin(composer, ["sbin/swaplabel", "sbin/swapoff", "sbin/swapon", "sbin/mkswap"]))
|
||||
|
||||
package("util-linux-mount")
|
||||
provide("mount")
|
||||
dep("libmount (same)")
|
||||
on_pack(lambda composer: pack_bin(composer, ["mount", "umount"]))
|
||||
|
||||
package("util-linux-fdisk")
|
||||
provide("fdisk")
|
||||
dep("libfdisk (same)")
|
||||
dep("libsmartcols (same)")
|
||||
dep("libncurses @same-arch")
|
||||
on_pack(lambda composer: pack_bin(composer, ["sbin/fdisk"]))
|
||||
|
||||
package("util-linux-sfdisk")
|
||||
provide("sfdisk")
|
||||
dep("libfdisk (same)")
|
||||
dep("libsmartcols (same)")
|
||||
dep("libncurses @same-arch")
|
||||
on_pack(lambda composer: pack_bin(composer, ["sbin/sfdisk"]))
|
||||
|
||||
package("util-linux-cfdisk")
|
||||
provide("cfdisk")
|
||||
dep("libfdisk (same)")
|
||||
dep("libsmartcols (same)")
|
||||
dep("libncurses @same-arch")
|
||||
on_pack(lambda composer: pack_bin(composer, ["sbin/cfdisk"]))
|
||||
|
||||
package("util-linux-mkfs")
|
||||
dep("semi-libc @same-arch")
|
||||
dep("libz @same-arch")
|
||||
provide("mkfs")
|
||||
on_pack(lambda composer: pack_bin(composer, ["sbin/mkfs", "sbin/mkfs.bfs", "sbin/mkfs.cramfs", "sbin/mkfs.minix"]))
|
||||
|
||||
package("util-linux-fsck")
|
||||
dep("libmount (same)")
|
||||
dep("libblkid (same)")
|
||||
dep("libz @same-arch")
|
||||
provide("fsck")
|
||||
on_pack(lambda composer: pack_bin(composer, ["sbin/fsck", "sbin/fsck.cramfs", "sbin/fsck.minix"]))
|
||||
|
||||
package("util-linux-fs")
|
||||
dep("libblkid (same)")
|
||||
dep("libsmartcols (same)")
|
||||
dep("libmount (same)")
|
||||
on_pack(lambda composer: pack_bin(composer, [
|
||||
"sbin/addpart",
|
||||
"sbin/resizepart",
|
||||
"sbin/delpart",
|
||||
"sbin/partx",
|
||||
"sbin/losetup",
|
||||
"sbin/blkdiscard",
|
||||
"sbin/blkid",
|
||||
"sbin/blkpr",
|
||||
"sbin/blkzone",
|
||||
"sbin/blockdev",
|
||||
"sbin/findfs",
|
||||
"sbin/fsfreeze",
|
||||
"sbin/fstrim",
|
||||
"copyfilerange",
|
||||
"exch",
|
||||
"fadvise",
|
||||
"fallocate",
|
||||
"fincore",
|
||||
"flock",
|
||||
"getino",
|
||||
"hardlink",
|
||||
"mountpoint",
|
||||
"namei",
|
||||
"rename",
|
||||
"whereis",
|
||||
"sbin/pivot_root",
|
||||
"sbin/switch_root",
|
||||
"sbin/wipefs",
|
||||
"sbin/zramctl",
|
||||
"findmnt",
|
||||
]))
|
||||
|
||||
package("util-linux-security")
|
||||
dep("libsmartcols (same)")
|
||||
dep("libmount (same)")
|
||||
on_pack(lambda composer: pack_bin(composer, [
|
||||
"utmpdump",
|
||||
"unshare",
|
||||
"last",
|
||||
"lastb",
|
||||
"nsenter",
|
||||
"lsns",
|
||||
"sbin/nologin",
|
||||
]))
|
||||
|
||||
package("util-linux-proc")
|
||||
dep("libsmartcols (same)")
|
||||
dep("semi-libc @same-arch")
|
||||
on_pack(lambda composer: pack_bin(composer, [
|
||||
"uclampset",
|
||||
"waitpid",
|
||||
"setsid",
|
||||
"setpgid",
|
||||
"taskset",
|
||||
"chrt",
|
||||
"coresched",
|
||||
"prlimit",
|
||||
"renice",
|
||||
"ionice",
|
||||
]))
|
||||
|
||||
package("util-linux-text")
|
||||
dep("libncurses @same-arch")
|
||||
dep("libsmartcols (same)")
|
||||
on_pack(lambda composer: pack_bin(composer, [
|
||||
"bits",
|
||||
"cal",
|
||||
"colcrt",
|
||||
"colrm",
|
||||
"column",
|
||||
"getopt",
|
||||
"hexdump",
|
||||
"look",
|
||||
"mcookie",
|
||||
"rev",
|
||||
"ul",
|
||||
]))
|
||||
|
||||
package("util-linux-term")
|
||||
dep("libncurses @same-arch")
|
||||
on_pack(lambda composer: pack_bin(composer, [
|
||||
"setterm",
|
||||
"mesg",
|
||||
"script",
|
||||
"scriptlive",
|
||||
"scriptreplay",
|
||||
"wall",
|
||||
"sbin/agetty",
|
||||
"sbin/ldattach",
|
||||
]))
|
||||
|
||||
package("util-linux-ipc")
|
||||
dep("libmount (same)")
|
||||
dep("libsmartcols (same)")
|
||||
on_pack(lambda composer: pack_bin(composer, [
|
||||
"ipcmk",
|
||||
"ipcrm",
|
||||
"ipcs",
|
||||
"lslocks",
|
||||
"pipesz",
|
||||
"dmesg",
|
||||
]))
|
||||
|
||||
package("util-linux-hardware")
|
||||
dep("libsmartcols (same)")
|
||||
dep("libncurses @same-arch")
|
||||
on_pack(lambda composer: pack_bin(composer, [
|
||||
"irqtop",
|
||||
"lsirq",
|
||||
"lsmem",
|
||||
"wdctl",
|
||||
"sbin/hwclock",
|
||||
"sbin/readprofile",
|
||||
"sbin/rfkill",
|
||||
"sbin/rtcwake",
|
||||
]))
|
||||
|
||||
package("isosize")
|
||||
dep("semi-libc @same-arch")
|
||||
on_pack(lambda composer: pack_bin(composer, ["isosize"]))
|
||||
|
||||
package("util-linux-arch")
|
||||
dep("semi-libc @same-arch")
|
||||
on_pack(lambda composer: pack_bin(composer, ["setarch", "uname26", "linux32", "linux64"]))
|
||||
|
||||
package("util-linux-uuid")
|
||||
dep("libuuid (same)")
|
||||
dep("libsmartcols (same)")
|
||||
on_pack(lambda composer: pack_bin(composer, [
|
||||
"uuidgen",
|
||||
"uuidparse",
|
||||
"sbin/uuidd",
|
||||
]))
|
||||
|
||||
package("util-linux")
|
||||
dep("util-linux-swap (same)")
|
||||
dep("util-linux-mount (same)")
|
||||
dep("util-linux-fdisk (same)")
|
||||
dep("util-linux-sfdisk (same)")
|
||||
dep("util-linux-cfdisk (same)")
|
||||
dep("util-linux-mkfs (same)")
|
||||
dep("util-linux-fsck (same)")
|
||||
dep("util-linux-fs (same)")
|
||||
dep("util-linux-security (same)")
|
||||
dep("util-linux-proc (same)")
|
||||
dep("util-linux-text (same)")
|
||||
dep("util-linux-term (same)")
|
||||
dep("util-linux-ipc (same)")
|
||||
dep("util-linux-hardware (same)")
|
||||
dep("isosize (same)")
|
||||
dep("util-linux-arch (same)")
|
||||
dep("util-linux-uuid (same)")
|
||||
on_pack(lambda _composer: None)
|
||||
@@ -0,0 +1,47 @@
|
||||
from lib import cpp
|
||||
from lib.make import *
|
||||
|
||||
upstream_version = "9.2.782"
|
||||
|
||||
version(upstream_version)
|
||||
source_url("https://github.com/vim/vim/archive/refs/tags/v9.2.0782.tar.gz")
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
builddep(f"libncurses-dev @{arch.get_target()}")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(
|
||||
[
|
||||
"--prefix=/",
|
||||
f"--bindir={get_prefix('vim')}/bin",
|
||||
"--datarootdir=/share",
|
||||
f"--datadir={get_prefix('vim-data')}/share",
|
||||
"--enable-terminal",
|
||||
"--enable-autoservername",
|
||||
"--enable-multibyte",
|
||||
"--disable-nls",
|
||||
]
|
||||
)
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
|
||||
def pack_data(composer):
|
||||
composer.makedirs("share/vim")
|
||||
composer.add_dir("share/vim/vim92", "share/vim/vim92")
|
||||
|
||||
|
||||
package("vim-data")
|
||||
arch_any()
|
||||
on_pack(pack_data)
|
||||
|
||||
package("vim")
|
||||
dep("semi-libc @same-arch")
|
||||
dep("libncurses @same-arch")
|
||||
dep(f"vim-data (={upstream_version}) @any")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
@@ -1,3 +1,5 @@
|
||||
import os
|
||||
|
||||
from lib import cpp
|
||||
from lib.make import *
|
||||
|
||||
@@ -6,8 +8,12 @@ source_url(
|
||||
"https://github.com/tukaani-project/xz/releases/download/v5.8.3/xz-5.8.3.tar.gz"
|
||||
)
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
def build():
|
||||
os.environ["FGREP"] = "grep -F"
|
||||
cpp.configure(
|
||||
[
|
||||
"--prefix=/",
|
||||
|
||||
@@ -6,6 +6,8 @@ from lib.make import *
|
||||
version("2.3.3")
|
||||
source_url("https://github.com/zlib-ng/zlib-ng/archive/refs/tags/2.3.3.tar.gz")
|
||||
|
||||
builddep("shortcut/c++")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.cmake(["-DZLIB_COMPAT=ON", "-DINSTALL_UTILS=ON"])
|
||||
|
||||
@@ -8,6 +8,9 @@ source_url(
|
||||
"https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz"
|
||||
)
|
||||
|
||||
builddep("shortcut/c")
|
||||
builddep("shortcut/autotools")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.make(["HAVE_ZLIB=0", "HAVE_LZMA=0", "HAVE_LZ4=0"])
|
||||
|
||||
@@ -7,7 +7,9 @@ import typing
|
||||
|
||||
import hooks
|
||||
import lib.arch
|
||||
import lib.atombuild
|
||||
import lib.make
|
||||
import lib.packie
|
||||
import lib.pkgcomposer
|
||||
import lib.sources
|
||||
|
||||
@@ -20,13 +22,19 @@ argparser = argparse.ArgumentParser(
|
||||
argparser.add_argument(
|
||||
"--target", type=str, help="Target architecture to build the package for"
|
||||
)
|
||||
argparser.add_argument("--atombuild", action="store_true", help="Enable Atom Build")
|
||||
subparsers = argparser.add_subparsers(dest="subcommand")
|
||||
parser_build = subparsers.add_parser("build")
|
||||
parser_build.add_argument("BUILD_PKGNAME")
|
||||
parser_clean = subparsers.add_parser("clean")
|
||||
parser_clean.add_argument("CLEAN_PKGNAME")
|
||||
parser_clean.add_argument("CLEAN_PKGNAME", nargs="*")
|
||||
parser_clean.add_argument("--all", action="store_true")
|
||||
parser_clean.add_argument("--no-artifacts", action="store_true")
|
||||
parser_list = subparsers.add_parser("list")
|
||||
parser_list.add_argument("ITEM", choices=("all", "built", "new"))
|
||||
parser_repo_push = subparsers.add_parser("repo-push")
|
||||
parser_repo_push.add_argument("REPO_DIR")
|
||||
parser_repo_push.add_argument("REPO_PUSH_PKGNAME", nargs="*")
|
||||
args = argparser.parse_args()
|
||||
|
||||
if args.target:
|
||||
@@ -47,7 +55,7 @@ def run_hooks(map, arg: typing.Any = None):
|
||||
os.chdir(current_dir)
|
||||
|
||||
|
||||
def run_build_package(package: str):
|
||||
def cmd_build_package(package: str):
|
||||
try:
|
||||
os.chdir(f"packages/{package}")
|
||||
os.makedirs("target", exist_ok=True)
|
||||
@@ -64,6 +72,9 @@ def run_build_package(package: str):
|
||||
print(f"Architecture {lib.arch.get_target()} is not supported for this package")
|
||||
exit(1)
|
||||
|
||||
if os.environ.get("SEMIOS_PKGBUILD_IN_ATOMIC", "0") == "1":
|
||||
lib.packie.install(lib.make._builddep)
|
||||
|
||||
# Run `pre_build` hooks
|
||||
run_hooks(hooks.pre_build)
|
||||
|
||||
@@ -109,6 +120,7 @@ def run_build_package(package: str):
|
||||
"arch": pkgarch,
|
||||
"dependencies": pkginfo[lib.make._key_dependencies],
|
||||
"provides": pkginfo[lib.make._key_provides],
|
||||
"recommendations": pkginfo[lib.make._key_recommendations],
|
||||
}
|
||||
composer.write_manifest(manifest)
|
||||
composer.write_links(pkginfo[lib.make._key_links])
|
||||
@@ -119,25 +131,37 @@ def run_build_package(package: str):
|
||||
file.write("OK")
|
||||
|
||||
|
||||
def run_clean_package(package: str):
|
||||
try:
|
||||
shutil.rmtree(f"packages/{package}/target")
|
||||
except Exception:
|
||||
pass
|
||||
def cmd_clean_package(package: list[str]):
|
||||
for i in package:
|
||||
targetdir = f"packages/{i}/target"
|
||||
if not os.path.exists(targetdir):
|
||||
continue
|
||||
if args.no_artifacts:
|
||||
for file in os.listdir(targetdir):
|
||||
path = f"{targetdir}/{file}"
|
||||
if file.endswith(".pkg") or file == "build-ok.tag":
|
||||
continue
|
||||
if os.path.isfile(path) or os.path.islink(path):
|
||||
os.remove(path)
|
||||
else:
|
||||
shutil.rmtree(path)
|
||||
|
||||
else:
|
||||
shutil.rmtree(targetdir)
|
||||
|
||||
|
||||
def run_list(item):
|
||||
def do_list(item: str):
|
||||
if item == "all":
|
||||
for i in os.listdir("packages"):
|
||||
if i.startswith("."):
|
||||
continue
|
||||
print(i)
|
||||
yield i
|
||||
elif item == "built":
|
||||
for i in os.listdir("packages"):
|
||||
if i.startswith("."):
|
||||
continue
|
||||
if os.path.exists(f"packages/{i}/target/build-ok.tag"):
|
||||
print(i)
|
||||
yield i
|
||||
elif item == "new":
|
||||
for i in os.listdir("packages"):
|
||||
if i.startswith("."):
|
||||
@@ -146,17 +170,87 @@ def run_list(item):
|
||||
pkgbuild_mtime = os.path.getmtime(f"packages/{i}/pkgbuild.py")
|
||||
target_mtime = os.path.getmtime(f"packages/{i}/target/build-ok.tag")
|
||||
if target_mtime < pkgbuild_mtime:
|
||||
print(i)
|
||||
yield i
|
||||
except Exception:
|
||||
print(i)
|
||||
yield i
|
||||
|
||||
|
||||
def cmd_list(item):
|
||||
for i in do_list(item):
|
||||
print(i)
|
||||
|
||||
|
||||
def cmd_build_atom(pkgname: str):
|
||||
# Declare necessary paths
|
||||
repo_root = os.getcwd()
|
||||
package_dir = f"{repo_root}/packages/{pkgname}"
|
||||
target_dir = f"{package_dir}/target"
|
||||
build_env_root = f"{target_dir}/atombuild_root"
|
||||
|
||||
# Read `pkgbuild.py` of that package
|
||||
lib.make._in_atombuild = True
|
||||
try:
|
||||
os.chdir(package_dir)
|
||||
os.makedirs(target_dir, exist_ok=True)
|
||||
except Exception:
|
||||
print(f"No such package {pkgname}")
|
||||
exit(1)
|
||||
importlib.import_module(f"packages.{pkgname}.pkgbuild")
|
||||
os.chdir(repo_root)
|
||||
|
||||
# Initialize build environment
|
||||
lib.atombuild.prepare_build_env(build_env_root, lib.make._builddep)
|
||||
lib.atombuild.copy_pkgbuild_tree(repo_root, pkgname, build_env_root)
|
||||
lib.atombuild.enter_build_env(
|
||||
build_env_root,
|
||||
["./x", "--target", lib.arch.get_target(), "build", pkgname],
|
||||
chdir="/Atom",
|
||||
)
|
||||
|
||||
# Copy artifacts
|
||||
atom_target_dir = f"{build_env_root}/Atom/packages/{pkgname}/target"
|
||||
try:
|
||||
for i in os.listdir(atom_target_dir):
|
||||
if i.endswith(".pkg"):
|
||||
shutil.copy2(f"{atom_target_dir}/{i}", f"{target_dir}/{i}")
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# Build success
|
||||
with open(f"{target_dir}/build-ok.tag", "wt+") as file:
|
||||
file.write("OK")
|
||||
|
||||
|
||||
def cmd_repo_push(repo_dir: str, pkgname: list[str]):
|
||||
for pkg in pkgname:
|
||||
targetdir = f"packages/{pkg}/target"
|
||||
if not os.path.exists(targetdir):
|
||||
print(f"error: failed to add '{pkg}': package is not built")
|
||||
continue
|
||||
for target_file in os.listdir(targetdir):
|
||||
if not target_file.endswith(".pkg"):
|
||||
continue
|
||||
try:
|
||||
lib.packie.repo_add(repo_dir, f"{targetdir}/{target_file}")
|
||||
except:
|
||||
print(f"error: failed to add '{pkg}': see the output above")
|
||||
|
||||
|
||||
if args.subcommand == "build":
|
||||
run_build_package(args.BUILD_PKGNAME)
|
||||
if args.atombuild:
|
||||
cmd_build_atom(args.BUILD_PKGNAME)
|
||||
else:
|
||||
cmd_build_package(args.BUILD_PKGNAME)
|
||||
elif args.subcommand == "clean":
|
||||
run_clean_package(args.CLEAN_PKGNAME)
|
||||
if args.all:
|
||||
pkgs = os.listdir("packages")
|
||||
else:
|
||||
pkgs = args.CLEAN_PKGNAME
|
||||
cmd_clean_package(pkgs)
|
||||
elif args.subcommand == "list":
|
||||
run_list(args.ITEM)
|
||||
cmd_list(args.ITEM)
|
||||
elif args.subcommand == "repo-push":
|
||||
cmd_repo_push(args.REPO_DIR, args.REPO_PUSH_PKGNAME)
|
||||
else:
|
||||
print("error: no action specified", file=sys.stderr)
|
||||
exit(1)
|
||||
|
||||
Reference in New Issue
Block a user