summaryrefslogtreecommitdiff
path: root/repo/glib
diff options
context:
space:
mode:
Diffstat (limited to 'repo/glib')
-rw-r--r--repo/glib/glib.trigger16
-rw-r--r--repo/glib/glib.xibuild44
-rw-r--r--repo/glib/gparamspec.patch33
3 files changed, 69 insertions, 24 deletions
diff --git a/repo/glib/glib.trigger b/repo/glib/glib.trigger
new file mode 100644
index 0000000..e042aac
--- /dev/null
+++ b/repo/glib/glib.trigger
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+for i in "$@"; do
+ if ! [ -e "$i" ]; then
+ continue
+ fi
+ case "$i" in
+ */modules|*gtk-4.0)
+ /usr/bin/gio-querymodules "$i"
+ ;;
+ */schemas)
+ /usr/bin/glib-compile-schemas "$i"
+ ;;
+ esac
+done
+
diff --git a/repo/glib/glib.xibuild b/repo/glib/glib.xibuild
index dcf3a02..f92f62c 100644
--- a/repo/glib/glib.xibuild
+++ b/repo/glib/glib.xibuild
@@ -1,36 +1,32 @@
#!/bin/sh
-MAKEDEPS="meson ninja docbook-xsl docbook-dtd"
-DEPS="pcre libffi zlib musl libxslt gdbm"
+NAME="glib"
+DESC="Common C routines used by Gtk+ and other libs"
+
+MAKEDEPS=" bzip2 docbook-xml docbook-xsl gettext libxml2 libxslt python pcre2 meson zlib libffi util-linux"
+
+PKG_VER=2.74.0
+SOURCE="https://download.gnome.org/sources/glib/${PKG_VER%.*}/glib-$PKG_VER.tar.xz"
-PKG_VER=2.73.3
-SOURCE=https://download.gnome.org/sources/glib/$(echo $PKG_VER | cut -d. -f-2)/glib-$PKG_VER.tar.xz
-DESC="Low level core library"
ADDITIONAL="
0001-gquark-fix-initialization-with-c-constructors.patch
deprecated-no-warn.patch
-musl-libintl.patch"
-
-prepare () {
+glib.trigger
+gparamspec.patch
+"
+
+prepare () {
apply_patches
}
-build () {
- mkdir build &&
- cd build &&
-
- meson --prefix=/usr \
- --buildtype=release \
- -Dman=false \
- .. &&
- ninja
+build() {
+ meson --prefix=/usr \
+ --default-library=both \
+ -Dman=true \
+ . output
+ meson compile ${JOBS:+-j ${JOBS}} -C output
}
-package () {
- DESTDIR=$PKG_DEST ninja install
- mkdir -p $PKG_DEST/usr/share/doc/glib-$PKG_VER &&
- cp -r ../docs/reference/NEWS $PKG_DEST/usr/share/doc/glib-$PKG_VER
- cp -r ../docs/reference/gio $PKG_DEST/usr/share/doc/glib-$PKG_VER
- cp -r ../docs/reference/glib $PKG_DEST/usr/share/doc/glib-$PKG_VER
- cp -r ../docs/reference/gobject $PKG_DEST/usr/share/doc/glib-$PKG_VER
+package() {
+ DESTDIR="$PKG_DEST" meson install --no-rebuild -C output
}
diff --git a/repo/glib/gparamspec.patch b/repo/glib/gparamspec.patch
new file mode 100644
index 0000000..ef1dcfb
--- /dev/null
+++ b/repo/glib/gparamspec.patch
@@ -0,0 +1,33 @@
+From ea3f17d598d550345e94e4571130e429443e91cb Mon Sep 17 00:00:00 2001
+From: Emmanuele Bassi <ebassi@gnome.org>
+Date: Sun, 25 Sep 2022 14:20:24 +0100
+Subject: [PATCH] Empty values are not valid GParamSpec
+
+The validate() vfunc for GParamSpecParam returns FALSE for empty GValue,
+which means the is_valid() vfunc should do the same.
+
+This avoids a segfault when calling g_param_value_is_valid() on a
+GParamSpecParam.
+
+Fixes: #2770
+---
+ gobject/gparamspecs.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/gobject/gparamspecs.c b/gobject/gparamspecs.c
+index f17b3488b9..17b8606572 100644
+--- a/gobject/gparamspecs.c
++++ b/gobject/gparamspecs.c
+@@ -894,6 +894,9 @@ param_param_is_valid (GParamSpec *pspec,
+ {
+ GParamSpec *param = value->data[0].v_pointer;
+
++ if (param == NULL)
++ return FALSE;
++
+ return g_value_type_compatible (G_PARAM_SPEC_TYPE (param), G_PARAM_SPEC_VALUE_TYPE (pspec));
+ }
+
+--
+GitLab
+