From cd7b10690e16aa6731d78673e687bae16e044e9d63deca238c4ad2be5c59fb19 Mon Sep 17 00:00:00 2001 From: sisungo Date: Fri, 11 Sep 2026 07:32:43 +0000 Subject: [PATCH] feat: add gtk & dependencies Signed-off-by: sisungo --- packages/cairo/pkgbuild.py | 89 ++++++++++++++++++++++++++++++ packages/epoxy/pkgbuild.py | 39 +++++++++++++ packages/gdk-pixbuf/pkgbuild.py | 60 ++++++++++++++++++++ packages/graphene/pkgbuild.py | 61 ++++++++++++++++++++ packages/gstreamer-orc/pkgbuild.py | 39 +++++++++++++ packages/gstreamer/pkgbuild.py | 61 ++++++++++++++++++++ packages/gtk4/pkgbuild.py | 43 +++++++++++++++ packages/libxslt/pkgbuild.py | 63 +++++++++++++++++++++ packages/pango/pkgbuild.py | 63 +++++++++++++++++++++ packages/xmlto/pkgbuild.py | 20 +++++++ 10 files changed, 538 insertions(+) create mode 100644 packages/cairo/pkgbuild.py create mode 100644 packages/epoxy/pkgbuild.py create mode 100644 packages/gdk-pixbuf/pkgbuild.py create mode 100644 packages/graphene/pkgbuild.py create mode 100644 packages/gstreamer-orc/pkgbuild.py create mode 100644 packages/gstreamer/pkgbuild.py create mode 100644 packages/gtk4/pkgbuild.py create mode 100644 packages/libxslt/pkgbuild.py create mode 100644 packages/pango/pkgbuild.py create mode 100644 packages/xmlto/pkgbuild.py diff --git a/packages/cairo/pkgbuild.py b/packages/cairo/pkgbuild.py new file mode 100644 index 0000000..8001660 --- /dev/null +++ b/packages/cairo/pkgbuild.py @@ -0,0 +1,89 @@ +import os +import glob + +from lib import cpp +from lib.make import * + + +version("1.18.4") +description("a 2D graphics library with support for multiple output devices") +maintainer("sisungo ") +source_url("https://gitlab.com/freedesktop-sdk/mirrors/freedesktop/cairo/cairo/-/archive/1.18.4/cairo-1.18.4.tar.gz") + +builddep("shortcut/c") +builddep("shortcut/meson") +builddep("pkgconf") +builddep("glib-dev @target") +builddep("libfontconfig-dev @target") +builddep("libfreetype-dev @target") +builddep("libpng-dev @target") +builddep("libpixman-dev @target") + + +def fix_gobject_pc(path): + with open(path, 'r') as file: + content = file.read() + content = content.replace(get_prefix('libcairo'), get_prefix('libcairo-gobject')) + content = content.replace(get_prefix('libcairo-dev'), get_prefix('libcairo-gobject-dev')) + with open(path, 'wt+') as file: + file.write(content) + + +def build(): + cpp.meson_setup([ + "--prefix=/", + f"--libdir={get_prefix('libcairo')}/lib", + f"--includedir={get_prefix('libcairo-dev')}/include", + f"--bindir={get_prefix('libcairo-dev')}/bin", + "-Dfontconfig=enabled", + "-Dfreetype=enabled", + "-Dpng=enabled", + "-Dtee=enabled", + "-Dglib=enabled", + ]) + cpp.meson_compile() + cpp.meson_install() + fix_gobject_pc("lib/pkgconfig/cairo-gobject.pc") + +on_build(build) + + +def pack_glob(composer, globs, excluded_kw=[]): + for iglob in globs: + for i in glob.glob(iglob): + if any(excluded_pattern in i for excluded_pattern in excluded_kw): + continue + composer.makedirs(os.path.dirname(i)) + if os.path.islink(i) or os.path.isfile(i): + composer.addfile(i) + else: + composer.add_dir(i) + + +package("libcairo") +dep("libfontconfig @same-arch") +dep("libpng @same-arch") +dep("libpixman @same-arch") +dep("libfreetype @same-arch") +dep("libz @same-arch") +on_pack(lambda c: pack_glob(c, ["lib/cairo", "lib/*so*"], ["gobject"])) + +package("libcairo-dev") +dep("libcairo (same)") +dep("libfontconfig-dev @same-arch") +dep("libpng-dev @same-arch") +dep("libpixman-dev @same-arch") +dep("libfreetype-dev @same-arch") +dep("libz-dev @same-arch") +on_pack(lambda c: pack_glob(c, ["lib/pkgconfig/*", "include/cairo/*"], ["gobject"])) + +package("libcairo-gobject") +dep("libcairo (same)") +dep("libglib @same-arch") +dep("libgobject @same-arch") +on_pack(lambda c: pack_glob(c, ["lib/*gobject*"])) + +package("libcairo-gobject-dev") +dep("libcairo-dev (same)") +dep("glib-dev @same-arch") +on_pack(lambda c: pack_glob(c, ["include/cairo/*gobject*", "lib/pkgconfig/*gobject*"])) diff --git a/packages/epoxy/pkgbuild.py b/packages/epoxy/pkgbuild.py new file mode 100644 index 0000000..5fd865c --- /dev/null +++ b/packages/epoxy/pkgbuild.py @@ -0,0 +1,39 @@ +from lib.make import * +from lib import cpp, arch + + +version("1.5.10") +description("a library for handling OpenGL function pointer management") +maintainer("sisungo ") +source_url("https://download.gnome.org/sources/libepoxy/1.5/libepoxy-1.5.10.tar.xz") + +builddep("shortcut/c++") +builddep("shortcut/meson") +builddep("libegl-dev @target") +builddep("libopengl-dev @target") +builddep("libglesv2-dev @target") +builddep("libexpat") + + +def build(): + cpp.meson_setup([ + "--prefix=/", + f"--libdir={get_prefix('libepoxy')}/lib", + f"--includedir={get_prefix('libepoxy-dev')}/include", + "-Dx11=false", + ]) + cpp.meson_compile() + cpp.meson_install() + +on_build(build) + + +package("libepoxy") +dep("semi-libc @same-arch") +cpp.use_auto_pack(["lib"]) + +package("libepoxy-dev") +dep("libepoxy (same)") +dep("libegl-dev @same-arch") +dep("semi-libc-dev @same-arch") +cpp.use_auto_pack(["dev"]) diff --git a/packages/gdk-pixbuf/pkgbuild.py b/packages/gdk-pixbuf/pkgbuild.py new file mode 100644 index 0000000..cdd4517 --- /dev/null +++ b/packages/gdk-pixbuf/pkgbuild.py @@ -0,0 +1,60 @@ +from lib.make import * +from lib import cpp, arch + + +version("2.44.8") +description("a library that loads image data in various formats and stores it as linear buffers in memory") +maintainer("sisungo ") +source_url("https://download.gnome.org/sources/gdk-pixbuf/2.44/gdk-pixbuf-2.44.8.tar.xz") + +builddep("shortcut/c") +builddep("shortcut/meson") +builddep("libjpeg-turbo-dev @target") +builddep("libtiff-dev @target") +builddep("libpng-dev @target") +builddep("glib-dev @target") +builddep("gobject-introspection @target") +builddep("shared-mime-info") +builddep("glib-tools") + + +def build(): + cpp.meson_setup([ + f"--libdir={get_prefix('gdk-pixbuf')}/lib", + f"--includedir={get_prefix('gdk-pixbuf-dev')}/include", + "-Dpng=enabled", + "-Dtiff=enabled", + "-Djpeg=enabled", + "-Dgif=enabled", + "-Dglycin=disabled", + "-Dintrospection=enabled", + "-Drelocatable=false", + "-Dman=false", + "-Dtests=false", + "-Dinstalled_tests=false", + "-Dthumbnailer=enabled", + ]) + cpp.meson_compile() + cpp.meson_install() + +on_build(build) + + +package("gdk-pixbuf") +dep("libpng @same-arch") +dep("libglib @same-arch") +dep("libgobject @same-arch") +dep("libgmodule @same-arch") +dep("libgio @same-arch") +dep("libjpeg-turbo @same-arch") +dep("libtiff @same-arch") +cpp.use_auto_pack(["bin", "lib"]) + +package("gdk-pixbuf-dev") +dep("libpng-dev @same-arch") +dep("glib-dev @same-arch") +dep("libjpeg-turbo-dev @same-arch") +dep("libtiff-dev @same-arch") +dep("shared-mime-info") +dep("gdk-pixbuf (same)") +cpp.use_auto_pack(["dev"]) diff --git a/packages/graphene/pkgbuild.py b/packages/graphene/pkgbuild.py new file mode 100644 index 0000000..66d8ba9 --- /dev/null +++ b/packages/graphene/pkgbuild.py @@ -0,0 +1,61 @@ +import glob +import os +import shutil + +from lib.make import * +from lib import cpp + + +version("1.10.8") +description("A thin layer of graphic data types") +maintainer("sisungo ") +source_url("https://github.com/ebassi/graphene/archive/refs/tags/1.10.8.tar.gz") + +builddep("shortcut/meson") +builddep("shortcut/c++") +builddep("glib-dev @target") +builddep("gobject-introspection @target") +builddep("glib-tools") +builddep("libexpat") + + +def build(): + cpp.meson_setup([ + "--prefix=/", + f"--libdir={get_prefix('libgraphene')}/lib", + f"--includedir={get_prefix('libgraphene-dev')}/include", + "-Dgobject_types=true", + "-Dintrospection=enabled", + ]) + cpp.meson_compile() + cpp.meson_install() + +on_build(build) + + +def pack(composer): + composer.makedir("lib") + for i in glob.glob("lib/*.so*"): + composer.add(i) + composer.add("lib/girepository-1.0") + composer.link_external(f"{get_prefix('libgraphene-dev')}/lib/graphene-1.0", "lib/graphene-1.0") + +package("libgraphene") +dep("libgobject @same-arch") +dep("libglib @same-arch") +dep("semi-libc @same-arch") +on_pack(pack) + +def pack_dev(composer): + composer.add("include") + composer.makedir("include/gir") + composer.makedir("lib") + composer.add("lib/graphene-1.0") + composer.add("lib/pkgconfig") + composer.add("share/gir-1.0", "include/gir/gir-1.0") + +package("libgraphene-dev") +dep("libgraphene (same)") +dep("glib-dev @same-arch") +dep("semi-libc-dev @same-arch") +on_pack(pack_dev) diff --git a/packages/gstreamer-orc/pkgbuild.py b/packages/gstreamer-orc/pkgbuild.py new file mode 100644 index 0000000..8f6f68b --- /dev/null +++ b/packages/gstreamer-orc/pkgbuild.py @@ -0,0 +1,39 @@ +from lib.make import * +from lib import cpp, arch + + +version("0.4.42") +description("Orc - Optimized Inner Loop Runtime Compiler") +maintainer("sisungo ") +source_url("https://gstreamer.freedesktop.org/data/src/orc/orc-0.4.42.tar.xz") + +builddep("shortcut/c") +builddep("shortcut/meson") +builddep("linux-dev @target") + + +def build(): + cpp.meson_setup([ + "--prefix=/", + f"--libdir={get_prefix('gstreamer-liborc')}/lib", + f"--bindir={get_prefix('gstreamer-orc')}/bin", + f"--includedir={get_prefix('gstreamer-liborc-dev')}/include", + ]) + cpp.meson_compile() + cpp.meson_install() + +on_build(build) + + +package("gstreamer-liborc") +dep("semi-libc @same-arch") +cpp.use_auto_pack(["lib"]) + +package("gstreamer-orc") +dep("gstreamer-liborc (same)") +cpp.use_auto_pack(["bin"]) + +package("gstreamer-liborc-dev") +dep("gstreamer-liborc (same)") +dep("semi-libc-dev @same-arch") +cpp.use_auto_pack(["dev"]) diff --git a/packages/gstreamer/pkgbuild.py b/packages/gstreamer/pkgbuild.py new file mode 100644 index 0000000..e5e7ec7 --- /dev/null +++ b/packages/gstreamer/pkgbuild.py @@ -0,0 +1,61 @@ +from lib.make import * +from lib import cpp, arch + + +version("1.28.6") +description("GStreamer multimedia framework") +maintainer("sisungo ") +source_url("https://gitlab.freedesktop.org/gstreamer/gstreamer/-/archive/1.28.6/gstreamer-1.28.6.tar.gz") + +builddep("shortcut/c++") +builddep("shortcut/meson") +builddep("glib-dev @target") +builddep("glib-tools") +builddep("libpython-dev @target") +builddep("gobject-introspection @target") +builddep("libintl-dev @target") +builddep("gettext") +builddep("flex") +builddep("bison") +builddep("libexpat") +builddep("libdrm-dev @target") +builddep("gstreamer-liborc-dev @target") +builddep("gstreamer-orc @target") +builddep("libopengl-dev @target") +builddep("libegl-dev @target") +builddep("libglesv2-dev @target") +builddep("alsa-lib-dev @target") + + +def build(): + cpp.meson_setup([ + "-Dbase=enabled", + "-Dgood=enabled", + "-Dugly=disabled", + "-Dbad=disabled", + "-Dlibav=auto", + "-Ddevtools=enabled", + "-Dges=enabled", + "-Drtsp_server=enabled", + "-Drs=disabled", + "-Dgst-examples=disabled", + "-Dpython=enabled", + "-Dpython-exe=/bin/python3", + "-Dtls=disabled", + "-Dlibnice=disabled", + "-Dgtk=disabled", + "-Dtools=enabled", + "-Dintrospection=enabled", + "-Dnls=enabled", + ]) + cpp.meson_compile() + cpp.meson_install() + +on_build(build) + + +package("gtk4") +cpp.use_auto_pack(["bin", "lib"]) + +package("gtk4-dev") +cpp.use_auto_pack(["dev"]) diff --git a/packages/gtk4/pkgbuild.py b/packages/gtk4/pkgbuild.py new file mode 100644 index 0000000..9500bae --- /dev/null +++ b/packages/gtk4/pkgbuild.py @@ -0,0 +1,43 @@ +from lib.make import * +from lib import cpp, arch + + +version("4.23.3") +description("The main GTK4 library.") +maintainer("sisungo ") +source_url("https://download.gnome.org/sources/gtk/4.23/gtk-4.23.3.tar.xz") + +builddep("shortcut/c++") +builddep("shortcut/meson") +builddep("glib-dev @target") +builddep("gdk-pixbuf-dev @target") +builddep("gobject-introspection @target") +builddep("glib-tools") +builddep("libwayland-dev @target") +builddep("wayland-protocols @target") +builddep("libpango-dev @target") +builddep("libcairo-gobject-dev @target") +builddep("libepoxy-dev @target") +builddep("libxkbcommon-dev @target") +builddep("libgraphene-dev @target") + + +def build(): + cpp.meson_setup([ + "-Dx11-backend=false", + "-Dmedia-gstreamer=enabled", + "-Dprint-cups=disabled", + "-Dvulkan=enabled", + "-Dintrospection=enabled", + ]) + cpp.meson_compile() + cpp.meson_install() + +on_build(build) + + +package("gtk4") +cpp.use_auto_pack(["bin", "lib"]) + +package("gtk4-dev") +cpp.use_auto_pack(["dev"]) diff --git a/packages/libxslt/pkgbuild.py b/packages/libxslt/pkgbuild.py new file mode 100644 index 0000000..32faaf4 --- /dev/null +++ b/packages/libxslt/pkgbuild.py @@ -0,0 +1,63 @@ +import os +import shutil + +from lib.make import * +from lib import cpp, python, arch + + +upstream_version = "1.1.45" + +version(upstream_version) +description("an XSLT processor based on libxml2") +maintainer("sisungo ") +source_url("https://download.gnome.org/sources/libxslt/1.1/libxslt-1.1.45.tar.xz") + +builddep("shortcut/c") +builddep("shortcut/autotools") +builddep("pkgconf @target") +builddep("libxml2-dev @target") +builddep("libpython-dev @target") +builddep("libexpat") + + +def build(): + cpp.configure([ + "--prefix=/", + f"--libdir={get_prefix('libxslt')}/lib", + f"--bindir={get_prefix('libxslt-tools')}/bin", + f"--includedir={get_prefix('libxslt-dev')}/include", + "--without-debug", + ]) + cpp.make() + if os.path.exists("../cpp_install"): + shutil.rmtree("../cpp_install") + cpp.make_install() + os.mkdir("py") + os.rename(f"lib/{arch.get_target()}/python{python.PY3_VERSION}", "py/arch") + os.rename(f"lib/python{python.PY3_VERSION}", "py/nonarch") + +on_build(build) + + +package("libxslt") +dep("libxml2 @same-arch") +cpp.use_auto_pack(["lib"]) + +package("libxslt-tools") +dep("libxslt (same)") +cpp.use_auto_pack(["bin"]) + +package("libxslt-dev") +dep("libxslt (same)") +dep("libxml2-dev @same-arch") +cpp.use_auto_pack(["dev"]) + +def pack_py(composer): + composer.makedir("lib") + composer.add_dir("py/arch", f"lib/python{python.PY3_VERSION}", merge=True) + composer.add_dir("py/nonarch", f"lib/python{python.PY3_VERSION}", merge=True) + +package("libxslt.py") +python.version(upstream_version) +dep(f"libxslt (={upstream_version}) @same-arch") +on_pack(pack_py) diff --git a/packages/pango/pkgbuild.py b/packages/pango/pkgbuild.py new file mode 100644 index 0000000..4fda387 --- /dev/null +++ b/packages/pango/pkgbuild.py @@ -0,0 +1,63 @@ +from lib.make import * +from lib import cpp + + +version("1.58.2") +description("Pango is a library for layout and rendering of text, with an emphasis on internationalization.") +maintainer("sisungo ") +source_url("https://gitlab.gnome.org/GNOME/pango/-/archive/1.58.2/pango-1.58.2.tar.gz") + +builddep("shortcut/c++") +builddep("shortcut/meson") +builddep("gobject-introspection @target") +builddep("libfontconfig-dev @target") +builddep("libcairo-dev @target") +builddep("libcairo-gobject-dev @target") +builddep("libfreetype-dev @target") +builddep("glib-dev @target") +builddep("libfribidi-dev @target") +builddep("libharfbuzz-dev @target") +builddep("libharfbuzz-gobject-dev @target") +builddep("glib-tools") + + +def build(): + cpp.meson_setup([ + f"--libdir={get_prefix('libpango')}/lib", + f"--includedir={get_prefix('libpango-dev')}/include", + "-Dintrospection=enabled", + "-Dfontconfig=enabled", + "-Dcairo=enabled", + "-Dfreetype=enabled", + ]) + cpp.meson_compile() + cpp.meson_install() + +on_build(build) + + +package("libpango") +dep("libfribidi @same-arch") +dep("libharfbuzz @same-arch") +dep("libglib @same-arch") +dep("libgio @same-arch") +dep("libgobject @same-arch") +dep("semi-libc @same-arch") +dep("libcairo @same-arch") +dep("libfontconfig @same-arch") +dep("libfreetype @same-arch") +cpp.use_auto_pack(["lib"]) + +package("pango") +dep("libpango (same)") +cpp.use_auto_pack(["bin"]) + +package("libpango-dev") +dep("libpango (same)") +dep("glib-dev @same-arch") +dep("libfribidi-dev @same-arch") +dep("libharfbuzz-gobject-dev @same-arch") +dep("libfontconfig-dev @same-arch") +dep("libfreetype-dev @same-arch") +dep("libcairo-dev @same-arch") +cpp.use_auto_pack(["dev"]) diff --git a/packages/xmlto/pkgbuild.py b/packages/xmlto/pkgbuild.py new file mode 100644 index 0000000..51cad5a --- /dev/null +++ b/packages/xmlto/pkgbuild.py @@ -0,0 +1,20 @@ +from lib.make import * +from lib import cpp + + +version("0.0.29") +description("A tool for converting XML files to various formats") +maintainer("sisungo ") +source_url("https://mirror1.semilabs.org/semios/srcpkgs/xmlto=0.0.29.tar.gz") + +builddep("shortcut/c") +builddep("shortcut/autotools") +builddep("libxslt-dev @target") + + +def build(): + cpp.configure() + cpp.make() + cpp.make_install() + +on_build(build) -- 2.55.0