Compare commits

...
3 Commits
Author SHA1 Message Date
sisungo 2a7def094d feat: add package bash
Signed-off-by: sisungo <[email protected]>
2026-08-08 01:45:44 +08:00
sisungo da5c4329bf Merge pull request 'feat: add package glib' (#128) from sisungo/semios-packages:glib into master
Reviewed-on: semios/semios-packages#128
2026-07-17 14:52:12 +08:00
sisungo 05cb5c94c5 feat: add package glib
Signed-off-by: sisungo <[email protected]>
2026-07-17 13:01:21 +08:00
3 changed files with 209 additions and 1 deletions
+3 -1
View File
@@ -78,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)
@@ -87,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):
+84
View File
@@ -0,0 +1,84 @@
import os
from lib.make import *
from lib import cpp
version("5.3")
description("the Bourne Again SHell")
source_url("https://ftp.gnu.org/gnu/bash/bash-5.3.tar.gz")
builddep("shortcut/c")
builddep("shortcut/autotools")
builddep(f"libncurses-dev @{arch.get_target()}")
def build():
cpp.configure([
f"--prefix={get_prefix('bash')}",
f"--datarootdir={get_prefix('bash-doc')}/share",
f"--localedir={get_prefix('bash')}/share/locale",
"--enable-alias",
"--enable-alt-array-implementation",
"--enable-arith-for-command",
"--enable-array-variables",
"--enable-bang-history",
"--enable-brace-expansion",
"--enable-casemod-attributes",
"--enable-casemod-expansions",
"--enable-command-timing",
"--enable-cond-command",
"--enable-cond-regexp",
"--enable-coprocesses",
"--enable-directory-stack",
"--enable-dparen-arithmetic",
"--enable-extended-glob",
"--enable-function-import",
"--enable-glob-asciiranges-default",
"--enable-help-builtin",
"--enable-history",
"--enable-job-control",
"--enable-multibyte",
"--enable-net-redirections",
"--enable-process-substitution",
"--enable-progcomp",
"--enable-prompt-string-decoding",
"--enable-readline",
"--enable-restricted",
"--enable-select",
"--enable-separate-helpfiles",
"--enable-single-help-strings",
"--enable-translatable-strings",
"--without-bash-malloc",
])
cpp.make()
cpp.make_install()
on_build(build)
def pack_bash(composer):
composer.add_dir("bin", "bin")
composer.makedir("lib")
composer.add_dir("lib/bash", "lib/bash")
os.remove(f"{composer.workdir}/bundle/lib/bash/loadables.h")
os.remove(f"{composer.workdir}/bundle/lib/bash/Makefile.inc")
os.remove(f"{composer.workdir}/bundle/lib/bash/Makefile.sample")
composer.makedir("share")
composer.add_dir("share/locale", "share/locale")
def pack_doc(composer):
composer.makedir("share")
composer.add_dir("share/bash", "share/bash")
composer.add_dir("share/doc", "share/doc")
composer.add_dir("share/info", "share/info")
composer.add_dir("share/man", "share/man")
package("bash")
dep("semi-libc @same-arch")
dep("libncurses @same-arch")
on_pack(pack_bash)
package("bash-dev")
dep("bash (same)")
cpp.use_auto_pack(["dev"])
package("bash-doc")
on_pack(pack_doc)
+122
View File
@@ -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"])