From 4437d067aa30d4c7b9640fc2cbfe88b58f4e3e705f12bcaf1ef64bee319e98b4 Mon Sep 17 00:00:00 2001 From: sisungo Date: Mon, 14 Sep 2026 07:51:26 +0000 Subject: [PATCH] feat: add package init-scripts Signed-off-by: sisungo --- hooks/autolink.py | 20 ++++++++++++++++++++ packages/airup/build_manifest.json | 4 ++-- packages/airup/pkgbuild.py | 20 ++++++++++++++++++-- packages/init-scripts/pkgbuild.py | 26 ++++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 packages/init-scripts/pkgbuild.py diff --git a/hooks/autolink.py b/hooks/autolink.py index d65305d..5515d5c 100644 --- a/hooks/autolink.py +++ b/hooks/autolink.py @@ -41,6 +41,16 @@ def autolink_share_pkgconfig(): if i.is_file(): make.link(f"share/pkgconfig/{i.name}", "/share/pkgconfig/" + i.name) +def autolink_services(): + for i in common.treedir("share/services"): + if i.is_file() and os.access(i.path, os.F_OK): + make.link(f"share/services/{i.name}", "/share/services/" + i.name) + +def autolink_milestones(): + for i in common.treedir("share/milestones"): + if i.is_file() and os.access(i.path, os.F_OK): + make.link(f"share/milestones/{i.name}", "/share/milestones/" + i.name) + def autolink(composer: pkgcomposer.PkgComposer): os.chdir(composer.workdir + "/bundle/") @@ -64,3 +74,13 @@ def autolink(composer: pkgcomposer.PkgComposer): autolink_share_pkgconfig() except: pass + + try: + autolink_services() + except: + pass + + try: + autolink_milestones() + except: + pass diff --git a/packages/airup/build_manifest.json b/packages/airup/build_manifest.json index 7ccebc8..b953470 100644 --- a/packages/airup/build_manifest.json +++ b/packages/airup/build_manifest.json @@ -1,8 +1,8 @@ { "os_name": "\u001b[36;4mSemiOS\u001b[0m", "config_dir": "/var/config/airup", - "service_dir": "/share/airup/services", - "milestone_dir": "/share/airup/milestones", + "service_dir": "/share/services", + "milestone_dir": "/share/milestones", "runtime_dir": "/run/airup", "env_vars": {}, "early_cmds": [] diff --git a/packages/airup/pkgbuild.py b/packages/airup/pkgbuild.py index d6273d1..e584a23 100644 --- a/packages/airup/pkgbuild.py +++ b/packages/airup/pkgbuild.py @@ -16,14 +16,30 @@ def build(): shutil.copy2("../../build_manifest.json", "build_manifest.json") rust.build() - on_build(build) +def patch_logger_airs(path): + with open(path) as fd: + content = fd.read() + content = content.replace( + "/usr/libexec/airup/airup-fallback-logger", + get_prefix('airup') + "/libexec/airup-fallback-logger", + ) + with open(path, 'wt+') as fd: + fd.write(content) + + def pack_airup(composer): - os.chdir(rust.artifacts_dir()) composer.makedir("bin") composer.makedir("libexec") + composer.makedirs("share/services") + + patch_logger_airs("docs/resources/airup-fallback-logger.airs") + composer.addfile("docs/resources/airup-fallback-logger.airs", "share/services/airup-fallback-logger.airs") + composer.addfile("docs/resources/airupd.airs", "share/services/airupd.airs") + + os.chdir(rust.artifacts_dir()) composer.addfile("airup", "bin/airup") composer.addfile("airupd", "bin/airupd") composer.addfile("airup-fallback-logger", "libexec/airup-fallback-logger") diff --git a/packages/init-scripts/pkgbuild.py b/packages/init-scripts/pkgbuild.py new file mode 100644 index 0000000..5dc1c9b --- /dev/null +++ b/packages/init-scripts/pkgbuild.py @@ -0,0 +1,26 @@ +import subprocess +import os +import lib + +from lib.make import * + +version("0.1.0-alpha.1") +description("SemiOS init scripts") +maintainer("sisungo ") +source_url("https://gitea.semilabs.org/semios/init-scripts/archive/0.1.0-alpha.1.tar.gz") + + +def build(): + subprocess.run(["env", f"PREFIX={get_prefix('init-scripts')}", "sh", "install.sh"], check=True) + os.chdir("./target") + +on_build(build) + + +def pack(composer): + composer.add("share") + composer.add("bin") + +package("init-scripts") +arch_any() +on_pack(pack)