Compare commits

..
9 Commits
8 changed files with 279 additions and 2 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):
+4
View File
@@ -44,6 +44,10 @@ def builddep(s: str):
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]
+63
View File
@@ -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)
+27
View File
@@ -1,3 +1,5 @@
import os
from lib.make import *
from lib import cpp
@@ -19,8 +21,33 @@ def build():
"-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"])
+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"])
+30
View File
@@ -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)
+11
View File
@@ -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:
+19 -1
View File
@@ -1,25 +1,43 @@
from lib import cpp
from lib.make import *
version("1.4.6")
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)