Github messages for voidlinux
 help / color / mirror / Atom feed
From: oreo639 <oreo639@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] glib: update to 2.80.0.
Date: Thu, 18 Apr 2024 01:36:27 +0200	[thread overview]
Message-ID: <20240417233627.090C8242EF@inbox.vuxu.org> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-49446@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 2396 bytes --]

There is an updated pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages glib
https://github.com/void-linux/void-packages/pull/49446

glib: update to 2.80.0.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

glib 2.80.0 introduces libgirepository-2.0 and GIRepository-3.0, which unfortunately creates a build cycle between glib and gobject-introspection, although that is supposedly transitory.

Currently only the C components have been moved over to glib. (Notably, g-ir-scanner is missing, which is needed to compile glib's introspection data. An explanation for why along with the proposed remedies can be found in "The hard part" section of the glib issue below.)
The GLib gir files have also been moved to being generated by glib build instead of gobject-introspection build. (hence why gobject-introspection is necessary)

https://discourse.gnome.org/t/dealing-with-glib-and-gobject-introspection-circular-dependency/18701
https://gitlab.gnome.org/GNOME/glib/-/issues/2616
https://docs.gtk.org/girepository/migrating-gi.html

The bootstrap process, while not intentionally, mirrors the one used by gnome-buld-meta: https://gitlab.gnome.org/GNOME/gnome-build-meta/-/blob/master/elements/sdk/glib.bst
(While gobject-introspection technically doesn't need to be rebuilt I did so here due to issues with dependencies, e.g. glib-bootstrap vs glib)

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/49446.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-glib-49446.patch --]
[-- Type: text/x-diff, Size: 39727 bytes --]

From 865d8c074d35cd8b7ef68299f7a0d7b7640149fe Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Thu, 21 Mar 2024 12:27:39 -0700
Subject: [PATCH 1/5] New package: glib-bootstrap-2.80.0

---
 srcpkgs/glib-bootstrap/patches  |  1 +
 srcpkgs/glib-bootstrap/template | 46 +++++++++++++++++++++++++++++++++
 srcpkgs/glib-bootstrap/update   |  2 ++
 3 files changed, 49 insertions(+)
 create mode 120000 srcpkgs/glib-bootstrap/patches
 create mode 100644 srcpkgs/glib-bootstrap/template
 create mode 100644 srcpkgs/glib-bootstrap/update

diff --git a/srcpkgs/glib-bootstrap/patches b/srcpkgs/glib-bootstrap/patches
new file mode 120000
index 00000000000000..4beb39573cad4a
--- /dev/null
+++ b/srcpkgs/glib-bootstrap/patches
@@ -0,0 +1 @@
+../glib/patches
\ No newline at end of file
diff --git a/srcpkgs/glib-bootstrap/template b/srcpkgs/glib-bootstrap/template
new file mode 100644
index 00000000000000..8839d8b24c893b
--- /dev/null
+++ b/srcpkgs/glib-bootstrap/template
@@ -0,0 +1,46 @@
+# Template file for 'glib-bootstrap'
+# keep in sync with glib
+#
+# This aloing with gobject-introspection-bootstrap is unfortunately necessary as a part of the
+#   libgirepository-1.0 to libgirepository-2.0 migration.
+pkgname=glib-bootstrap
+version=2.80.0
+revision=1
+build_style=meson
+# static version is necessary for qemu-user-static;
+# also disable LTO, otherwise there are multiple failures when linking qemu
+configure_args="-Dman=true -Dselinux=disabled
+ --default-library=both -Db_lto=false -Dintrospection=disabled"
+hostmakedepends="gettext pkg-config libxslt docbook-xsl python3-packaging python3-docutils"
+makedepends="zlib-devel pcre2-devel libffi-devel dbus-devel elfutils-devel libmount-devel"
+depends="${makedepends}"
+checkdepends="desktop-file-utils shared-mime-info dbus python3-pytest"
+short_desc="GNU library of C routines"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="LGPL-2.1-or-later"
+homepage="https://wiki.gnome.org/Projects/GLib"
+#changelog="https://gitlab.gnome.org/GNOME/glib/raw/glib-2-78/NEWS"
+changelog="https://gitlab.gnome.org/GNOME/glib/raw/main/NEWS"
+distfiles="${GNOME_SITE}/glib/${version%.*}/glib-${version}.tar.xz"
+checksum=8228a92f92a412160b139ae68b6345bd28f24434a7b5af150ebe21ff587a561d
+make_check_pre="dbus-run-session"
+
+repository=bootstrap
+conflicts="glib libglib-devel glib-devel"
+provides="glib-${version}_${revision}"
+
+post_patch() {
+	# Timer test is flaky on 32 bit (does float comparisons)
+	if [ "${XBPS_TARGET_WORDSIZE}" = "32" ]; then
+		vsed -e "s/'timer' : {},//" -i glib/tests/meson.build
+	fi
+}
+
+pre_check() {
+	# machine-id is a random, non-zero value
+	echo 'dcb30309cd6c8b7cc20383d85a5c7012' > /etc/machine-id
+}
+
+post_check() {
+	rm /etc/machine-id
+}
diff --git a/srcpkgs/glib-bootstrap/update b/srcpkgs/glib-bootstrap/update
new file mode 100644
index 00000000000000..4d29b9118be20b
--- /dev/null
+++ b/srcpkgs/glib-bootstrap/update
@@ -0,0 +1,2 @@
+pattern="glib-[0-9]+\.[0-9]*[02468]\.[0-9]+"
+pkgname="glib"

From bda11cf40cf54c18b25874fa18740c52bf2abf67 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Thu, 21 Mar 2024 12:33:00 -0700
Subject: [PATCH 2/5] New package: gobject-introspection-bootstrap-1.80.0

---
 srcpkgs/gobject-introspection-bootstrap/files |  1 +
 .../gobject-introspection-bootstrap/patches   |  1 +
 .../gobject-introspection-bootstrap/template  | 80 +++++++++++++++++++
 .../gobject-introspection-bootstrap/update    |  1 +
 4 files changed, 83 insertions(+)
 create mode 120000 srcpkgs/gobject-introspection-bootstrap/files
 create mode 120000 srcpkgs/gobject-introspection-bootstrap/patches
 create mode 100644 srcpkgs/gobject-introspection-bootstrap/template
 create mode 100644 srcpkgs/gobject-introspection-bootstrap/update

diff --git a/srcpkgs/gobject-introspection-bootstrap/files b/srcpkgs/gobject-introspection-bootstrap/files
new file mode 120000
index 00000000000000..4602177e31f6a7
--- /dev/null
+++ b/srcpkgs/gobject-introspection-bootstrap/files
@@ -0,0 +1 @@
+../gobject-introspection/files
\ No newline at end of file
diff --git a/srcpkgs/gobject-introspection-bootstrap/patches b/srcpkgs/gobject-introspection-bootstrap/patches
new file mode 120000
index 00000000000000..cc2ee1c4a0e3b9
--- /dev/null
+++ b/srcpkgs/gobject-introspection-bootstrap/patches
@@ -0,0 +1 @@
+../gobject-introspection/patches
\ No newline at end of file
diff --git a/srcpkgs/gobject-introspection-bootstrap/template b/srcpkgs/gobject-introspection-bootstrap/template
new file mode 100644
index 00000000000000..8ca0cc1fcdf7ee
--- /dev/null
+++ b/srcpkgs/gobject-introspection-bootstrap/template
@@ -0,0 +1,80 @@
+# Template file for 'gobject-introspection-bootstrap'
+# keep in sync with gobject-introspection
+#
+# This aloing with glib-bootstrap is unfortunately necessary as a part of the
+#   libgirepository-1.0 to libgirepository-2.0 migration.
+pkgname=gobject-introspection-bootstrap
+version=1.80.1
+revision=1
+build_style=meson
+configure_args="-Dbuild_introspection_data=false"
+pycompile_dirs="usr/lib/gobject-introspection/giscanner"
+hostmakedepends="flex pkg-config"
+# We won't run tests with cairo to avoid cyclical deps
+makedepends="libffi-devel glib-bootstrap python3-devel python3-Mako
+ python3-Markdown"
+depends="${makedepends}"
+short_desc="Introspection system for GObject-based libraries"
+maintainer="oreo639 <oreo6391@gmail.com>"
+license="GPL-2.0-or-later, LGPL-2.1-or-later"
+homepage="https://wiki.gnome.org/Projects/GObjectIntrospection"
+distfiles="${GNOME_SITE}/gobject-introspection/${version%.*}/gobject-introspection-${version}.tar.xz"
+checksum=a1df7c424e15bda1ab639c00e9051b9adf5cea1a9e512f8a603b53cd199bc6d8
+python_version=3
+
+repository=bootstrap
+conflicts="libgirepository libgirepository-devel gobject-introspection"
+noverifyrdeps=yes
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" gobject-introspection-bootstrap qemu-user-static prelink-cross"
+	configure_args+=" -Dgi_cross_use_prebuilt_gi=true
+	 -Dgi_cross_binary_wrapper=/usr/bin/g-ir-scanner-qemuwrapper
+	 -Dgi_cross_ldd_wrapper=/usr/bin/g-ir-scanner-lddwrapper
+	 -Dgi_cross_pkgconfig_sysroot_path=${XBPS_CROSS_BASE}"
+fi
+
+post_install() {
+	rm ${DESTDIR}/usr/lib/gobject-introspection/giscanner/doctemplates/*/meson.build
+
+	# Install our wrappers system-wide, they are required for building all other
+	# gobject-based packages.
+	vbin ${FILESDIR}/g-ir-scanner-qemuwrapper
+	vbin ${FILESDIR}/g-ir-scanner-lddwrapper
+
+	# Install g-ir-scanner-wrapper as g-ir-scanner, we need it with that name since
+	# we can't expect people to just not hardcode /usr/bin/g-ir-scanner, some packages
+	# like gtk+3 just like **really** much to use /usr/bin/g-ir-scanner and meson with
+	# find_program is also to blame.
+	mv ${DESTDIR}/usr/bin/g-ir-scanner{,.wrapped}
+	vbin ${FILESDIR}/g-ir-scanner-wrapper g-ir-scanner
+
+	# Same logic of g-ir-scanner applies here
+	mv ${DESTDIR}/usr/bin/g-ir-compiler{,.wrapped}
+	vbin ${FILESDIR}/g-ir-compiler-wrapper g-ir-compiler
+
+	# For cross builds copy the not installed tests subdirectory
+	if [ "$CROSS_BUILD" ]; then
+		vmkdir usr/share/gobject-introspection-1.0/tests
+		for f in scanner/annotation.? scanner/drawable.? scanner/foo.? \
+			scanner/regress.? scanner/utility.? scanner/warnlib.? \
+			gimarshallingtests.? gitestmacros.h; do
+			vcopy tests/$f usr/share/gobject-introspection-1.0/tests
+		done
+	fi
+
+	# modify the pkg-config files to respect ${pc_sysrootdir} for variables that are
+	# meant to be called with 'pkg-config --variable'
+	vsed -e 's|^g_ir_scanner=.*|g_ir_scanner=${pc_sysrootdir}/${bindir}/g-ir-scanner|g' \
+		 -e 's|^g_ir_compiler=.*|g_ir_compiler=${pc_sysrootdir}/${bindir}/g-ir-compiler|g' \
+		 -e 's|^g_ir_generate=.*|g_ir_generate=${pc_sysrootdir}/${bindir}/g-ir-generate|g' \
+		 -e 's|^gidatadir.*|gidatadir=${pc_sysrootdir}/${datadir}/gobject-introspection-1.0|g' \
+		 -e 's|^girdir.*|girdir=${pc_sysrootdir}/${datadir}/gir-1.0|g' \
+		 -e 's|^typelibdir.*|typelibdir=${pc_sysrootdir}/${libdir}/girepository-1.0|g' \
+		 -i ${DESTDIR}/usr/lib/pkgconfig/gobject-introspection-1.0.pc \
+		 -i ${DESTDIR}/usr/lib/pkgconfig/gobject-introspection-no-export-1.0.pc
+
+	# Fix the name of the python3 c bindings
+	mv ${DESTDIR}/usr/lib/gobject-introspection/giscanner/_giscanner*.so \
+	   ${DESTDIR}/usr/lib/gobject-introspection/giscanner/_giscanner.so
+}
diff --git a/srcpkgs/gobject-introspection-bootstrap/update b/srcpkgs/gobject-introspection-bootstrap/update
new file mode 100644
index 00000000000000..8f89bb085398ec
--- /dev/null
+++ b/srcpkgs/gobject-introspection-bootstrap/update
@@ -0,0 +1 @@
+pattern="(?<=${pkgname}-)[0-9]+\.[0-9]*[02468]\.[0-9]+"

From 028700f0d14b64b35cd1d762a982330452ab9c5b Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Thu, 21 Mar 2024 12:53:54 -0700
Subject: [PATCH 3/5] glib: update to 2.80.0.

This merges part of gobject-introspection tools, but not all of it.
Unfortunately this creates a cyclic dependency between glib and gi.
This is supposed to be temporary.

https://discourse.gnome.org/t/dealing-with-glib-and-gobject-introspection-circular-dependency/18701
https://gitlab.gnome.org/GNOME/glib/-/issues/2616
https://docs.gtk.org/girepository/migrating-gi.html
---
 common/shlibs                                 |   1 +
 srcpkgs/glib/files/gi-tool-emulator-wrapper   |  20 +++
 srcpkgs/glib/files/gi-xbps-qemuwrapper        |  10 ++
 ...pository-directory-for-native-builds.patch |  34 ++++
 ...12bb095382770f000055f63f82e2903f6b33.patch |  47 ++++++
 ...c379e85bacc89a7a8468f7e8447c8df15785.patch |  33 ++++
 .../glib/patches/disable-broken-tests.patch   |  67 --------
 ...ea2ac9ca2e85321c5d34f8f40f7f9b614db1.patch |  91 ++++++++++
 srcpkgs/glib/patches/fix-test-cxxcpp.patch    |  26 ---
 ...er-Fix-race-between-source-callbacks.patch | 158 ------------------
 srcpkgs/glib/template                         |  49 ++++--
 11 files changed, 271 insertions(+), 265 deletions(-)
 create mode 100755 srcpkgs/glib/files/gi-tool-emulator-wrapper
 create mode 100755 srcpkgs/glib/files/gi-xbps-qemuwrapper
 create mode 100644 srcpkgs/glib/patches/0001-Relocate-the-repository-directory-for-native-builds.patch
 create mode 100644 srcpkgs/glib/patches/014f12bb095382770f000055f63f82e2903f6b33.patch
 create mode 100644 srcpkgs/glib/patches/d2a6c379e85bacc89a7a8468f7e8447c8df15785.patch
 delete mode 100644 srcpkgs/glib/patches/disable-broken-tests.patch
 create mode 100644 srcpkgs/glib/patches/fa45ea2ac9ca2e85321c5d34f8f40f7f9b614db1.patch
 delete mode 100644 srcpkgs/glib/patches/fix-test-cxxcpp.patch
 delete mode 100644 srcpkgs/glib/patches/gthreadedresolver-Fix-race-between-source-callbacks.patch

diff --git a/common/shlibs b/common/shlibs
index 60179b1306b770..6313a4ed2795c9 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -102,6 +102,7 @@ libglib-2.0.so.0 glib-2.76.0_1
 libgmodule-2.0.so.0 glib-2.76.0_1
 libgio-2.0.so.0 glib-2.76.0_1
 libgobject-2.0.so.0 glib-2.76.0_1
+libgrepository-2.0.so.0 glib-2.80.0_1
 libwt.so.4.10.4 wt-4.10.4_1
 libwtdbo.so.4.10.4 wt-4.10.4_1
 libwtdbosqlite3.so.4.10.4 wt-4.10.4_1
diff --git a/srcpkgs/glib/files/gi-tool-emulator-wrapper b/srcpkgs/glib/files/gi-tool-emulator-wrapper
new file mode 100755
index 00000000000000..73f0cb0950506e
--- /dev/null
+++ b/srcpkgs/glib/files/gi-tool-emulator-wrapper
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# Check if we are running in an xbps-src environment and run the wrapper if that
+# is the case.
+if [ -n "$XBPS_CROSS_BASE" -a -n "$XBPS_TARGET_MACHINE" -a -n "$XBPS_VERSION" ]; then
+	# wrapper for g-ir-compiler, which runs the target version of it through qemu.
+	# g-ir-compiler writes out the raw content of a C struct to disk, and therefore
+	# is architecture dependent.
+	if [ -x build/tools/@TOOL@ ]; then
+		# We are compiling gobject-introspection.
+		# lets used the one we just compiled.
+		gir_bin=build/tools/@TOOL@
+	elif [ -x ${XBPS_CROSS_BASE}/usr/bin/@TOOL@.wrapped ]; then
+		# Lets use the g-ir-compiler from the target
+		gir_bin=${XBPS_CROSS_BASE}/usr/bin/@TOOL@.wrapped
+	fi
+	exec /usr/bin/gi-xbps-qemuwrapper ${gir_bin} "$@"
+fi
+
+exec /usr/bin/@TOOL@.wrapped "$@"
diff --git a/srcpkgs/glib/files/gi-xbps-qemuwrapper b/srcpkgs/glib/files/gi-xbps-qemuwrapper
new file mode 100755
index 00000000000000..665eae0e9360cd
--- /dev/null
+++ b/srcpkgs/glib/files/gi-xbps-qemuwrapper
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+# Ensure GIO_MODULE_DIR is not set so we don't load random things
+# which may then get deleted (or their dependencies) and potentially segfault
+/usr/bin/qemu-${XBPS_TARGET_QEMU_MACHINE}-static ${GIR_EXTRA_OPTIONS} \
+			-L ${XBPS_CROSS_BASE} \
+			-E LD_LIBRARY_PATH="${XBPS_CROSS_BASE}/usr/lib:.libs:${GIR_EXTRA_LIBS_PATH}" \
+			-E GI_TYPELIB_SYSROOT="${XBPS_CROSS_BASE}" \
+			-U GIO_MODULE_DIR \
+			"$@"
diff --git a/srcpkgs/glib/patches/0001-Relocate-the-repository-directory-for-native-builds.patch b/srcpkgs/glib/patches/0001-Relocate-the-repository-directory-for-native-builds.patch
new file mode 100644
index 00000000000000..66bf4240e7c64a
--- /dev/null
+++ b/srcpkgs/glib/patches/0001-Relocate-the-repository-directory-for-native-builds.patch
@@ -0,0 +1,34 @@
+Allow us to specify the typelib sysroot in wrapper scripts for cross compiling.
+
+--- a/girepository/girepository.c
++++ b/girepository/girepository.c
+@@ -154,6 +154,7 @@ gi_repository_init (GIRepository *reposi
+       const char *libdir;
+       char *typelib_dir;
+       const char *type_lib_path_env;
++      const char *type_lib_sysroot_env;
+ 
+       /* This variable is intended to take precedence over both:
+        *   - the default search path;
+@@ -161,6 +162,9 @@ gi_repository_init (GIRepository *reposi
+        */
+       type_lib_path_env = g_getenv ("GI_TYPELIB_PATH");
+ 
++      /* Void Linux addition for cross compiling, since we use cross sysroots */
++      type_lib_sysroot_env = g_getenv ("GI_TYPELIB_SYSROOT");
++
+       if (type_lib_path_env)
+         {
+           char **custom_dirs;
+@@ -176,7 +180,10 @@ gi_repository_init (GIRepository *reposi
+ 
+       libdir = GOBJECT_INTROSPECTION_LIBDIR;
+ 
+-      typelib_dir = g_build_filename (libdir, "girepository-1.0", NULL);
++      if (type_lib_sysroot_env)
++          typelib_dir = g_build_filename (type_lib_sysroot_env, libdir, "girepository-1.0", NULL);
++      else
++          typelib_dir = g_build_filename (libdir, "girepository-1.0", NULL);
+ 
+       g_ptr_array_add (repository->typelib_search_path, g_steal_pointer (&typelib_dir));
+     }
diff --git a/srcpkgs/glib/patches/014f12bb095382770f000055f63f82e2903f6b33.patch b/srcpkgs/glib/patches/014f12bb095382770f000055f63f82e2903f6b33.patch
new file mode 100644
index 00000000000000..615f9681e428fb
--- /dev/null
+++ b/srcpkgs/glib/patches/014f12bb095382770f000055f63f82e2903f6b33.patch
@@ -0,0 +1,47 @@
+From 014f12bb095382770f000055f63f82e2903f6b33 Mon Sep 17 00:00:00 2001
+From: q66 <q66@chimera-linux.org>
+Date: Sat, 23 Mar 2024 20:51:52 +0100
+Subject: [PATCH] Use CPU_COUNT to get the number of set CPUs
+
+This fixes an issue with the number getting very big due to
+CPU_ISSET not returning exactly 0 or 1.
+
+This also fixes scenarios where there are holes in the CPU
+set. E.g. for a simple run like `taskset --cpu-list 1,2,4 ...`
+the old code would return 2 instead of 3, due to iterating
+until `ncores` (which is 3) and therefore not accounting for
+CPUs further in the set.
+
+Ref https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3784
+
+
+(cherry picked from commit cc25486b233ada380ac8452f47f5fb35536888f4)
+---
+ glib/gthread.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/glib/gthread.c b/glib/gthread.c
+index b39acc475c..a264353ecb 100644
+--- a/glib/gthread.c
++++ b/glib/gthread.c
+@@ -1092,7 +1092,6 @@ g_get_num_processors (void)
+     return count;
+ #elif defined(_SC_NPROCESSORS_ONLN) && defined(THREADS_POSIX) && defined(HAVE_PTHREAD_GETAFFINITY_NP)
+   {
+-    int idx;
+     int ncores = MIN (sysconf (_SC_NPROCESSORS_ONLN), CPU_SETSIZE);
+     cpu_set_t cpu_mask;
+     CPU_ZERO (&cpu_mask);
+@@ -1100,8 +1099,7 @@ g_get_num_processors (void)
+     int af_count = 0;
+     int err = pthread_getaffinity_np (pthread_self (), sizeof (cpu_mask), &cpu_mask);
+     if (!err)
+-      for (idx = 0; idx < ncores && idx < CPU_SETSIZE; ++idx)
+-        af_count += CPU_ISSET (idx, &cpu_mask);
++      af_count = CPU_COUNT (&cpu_mask);
+ 
+     int count = (af_count > 0) ? af_count : ncores;
+     return count;
+-- 
+GitLab
+
diff --git a/srcpkgs/glib/patches/d2a6c379e85bacc89a7a8468f7e8447c8df15785.patch b/srcpkgs/glib/patches/d2a6c379e85bacc89a7a8468f7e8447c8df15785.patch
new file mode 100644
index 00000000000000..1de85c881c57c0
--- /dev/null
+++ b/srcpkgs/glib/patches/d2a6c379e85bacc89a7a8468f7e8447c8df15785.patch
@@ -0,0 +1,33 @@
+From d2a6c379e85bacc89a7a8468f7e8447c8df15785 Mon Sep 17 00:00:00 2001
+From: Simon McVittie <smcv@collabora.com>
+Date: Fri, 15 Mar 2024 13:49:47 +0000
+Subject: [PATCH] girparser: Don't assume sizeof(size_t) == sizeof(void *)
+
+We don't actually need to use the results of configure-time checks here:
+sizeof is a perfectly reasonable integer constant expression, so we can
+use that directly.
+
+Helps: https://gitlab.gnome.org/GNOME/glib/-/issues/2842
+Signed-off-by: Simon McVittie <smcv@collabora.com>
+---
+ girepository/girparser.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/girepository/girparser.c b/girepository/girparser.c
+index 647cf2498d..b5d8fc7108 100644
+--- a/girepository/girparser.c
++++ b/girepository/girparser.c
+@@ -459,8 +459,8 @@ static IntegerAliasInfo integer_aliases[] = {
+   { "gulong",   SIZEOF_LONG,      0 },
+   { "gssize",   GLIB_SIZEOF_SIZE_T,    1 },
+   { "gsize",    GLIB_SIZEOF_SIZE_T,    0 },
+-  { "gintptr",  GLIB_SIZEOF_SIZE_T,    1 },
+-  { "guintptr", GLIB_SIZEOF_SIZE_T,    0 },
++  { "gintptr",  sizeof (gintptr),      1 },
++  { "guintptr", sizeof (guintptr),     0 },
+ };
+ 
+ typedef struct {
+-- 
+GitLab
+
diff --git a/srcpkgs/glib/patches/disable-broken-tests.patch b/srcpkgs/glib/patches/disable-broken-tests.patch
deleted file mode 100644
index f6e0328b214e76..00000000000000
--- a/srcpkgs/glib/patches/disable-broken-tests.patch
+++ /dev/null
@@ -1,67 +0,0 @@
---- a/gio/tests/meson.build
-+++ b/gio/tests/meson.build
-@@ -63,7 +63,6 @@ gio_tests = {
-     # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392 / https://gitlab.gnome.org/GNOME/glib/-/issues/1251
-     'can_fail' : host_system == 'darwin',
-   },
--  'converter-stream' : {},
-   'credentials' : {},
-   'data-input-stream' : {},
-   'data-output-stream' : {},
-@@ -227,7 +226,6 @@ endif
- #  Test programs buildable on UNIX only
- if host_machine.system() != 'windows'
-   gio_tests += {
--    'file' : {},
-     'gdbus-peer-object-manager' : {},
-     'gdbus-sasl' : {},
-     'live-g-file' : {},
-@@ -951,13 +949,6 @@ if not meson.is_cross_build()
-       test_resources_binary2,
-     ]
-   endif
--
--  gio_tests += {
--    'resources' : {
--      'extra_sources' : resources_extra_sources,
--      'depends' : resource_plugin,
--    },
--  }
- endif
- 
- test_extra_programs_targets = {}
-diff --git a/glib/tests/meson.build b/glib/tests/meson.build
-index d74617823..1de81a825 100644
---- a/glib/tests/meson.build
-+++ b/glib/tests/meson.build
-@@ -12,22 +12,14 @@ glib_tests = {
-   'cache' : {},
-   'charset' : {},
-   'checksum' : {},
--  'collate' : {},
-   'completion' : {},
-   'cond' : {},
--  'convert' : {},
-   'dataset' : {},
--  'date' : {
--    # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
--    'can_fail' : host_system == 'darwin',
--  },
-   'dir' : {},
-   'environment' : {
-     # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
-     'can_fail' : host_system == 'darwin',
-   },
--  'error' : {},
--  'fileutils' : {},
-   'gdatetime' : {
-     'suite' : ['slow'],
-     'can_fail' : host_system == 'windows',
-@@ -70,7 +62,6 @@ glib_tests = {
-   'node' : {},
-   'once' : {},
-   'onceinit' : {},
--  'option-context' : {},
-   'option-argv0' : {},
-   'overflow' : {},
-   'overflow-fallback' : {
diff --git a/srcpkgs/glib/patches/fa45ea2ac9ca2e85321c5d34f8f40f7f9b614db1.patch b/srcpkgs/glib/patches/fa45ea2ac9ca2e85321c5d34f8f40f7f9b614db1.patch
new file mode 100644
index 00000000000000..59e3904ed27520
--- /dev/null
+++ b/srcpkgs/glib/patches/fa45ea2ac9ca2e85321c5d34f8f40f7f9b614db1.patch
@@ -0,0 +1,91 @@
+From fa45ea2ac9ca2e85321c5d34f8f40f7f9b614db1 Mon Sep 17 00:00:00 2001
+From: Simon McVittie <smcv@collabora.com>
+Date: Fri, 15 Mar 2024 13:56:20 +0000
+Subject: [PATCH] girparser: Allow time_t, off_t, etc. to appear in GIR XML
+
+g-ir-scanner currently maps these to lower-level types at scan time by
+assuming that time_t is an alias for long, off_t is an alias for size_t
+and so on. This is not always accurate: some ILP32 architectures have
+64-bit time_t (for Y2038 compatibility) and 64-bit off_t (for large file
+support), and that mismatch is tracked as GNOME/gobject-introspection#494.
+
+One option for resolving this g-ir-scanner bug is to have it pass these
+types through to the GIR XML, and teach g-ir-compiler and its replacement
+gi-compile-repository to convert them to the corresponding concrete
+type tag, as they already do for abstract types such as `long long` and
+`size_t`.
+
+Loosely based on GNOME/gobject-introspection!451 by Shuyu Liu.
+
+Co-authored-by: Shuyu Liu <liushuyu011@gmail.com>
+Signed-off-by: Simon McVittie <smcv@collabora.com>
+---
+ girepository/girparser.c | 36 ++++++++++++++++++++++++++++++++++++
+ 1 file changed, 36 insertions(+)
+
+diff --git a/girepository/girparser.c b/girepository/girparser.c
+index b5d8fc7108..9667900826 100644
+--- a/girepository/girparser.c
++++ b/girepository/girparser.c
+@@ -32,6 +32,12 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <stdio.h>
++#include <time.h>       /* For time_t */
++#include <sys/types.h>  /* For off_t on both Unix and Windows */
++
++#ifdef G_OS_UNIX
++#include <sys/socket.h> /* For socklen_t */
++#endif
+ 
+ /* This is a "major" version in the sense that it's only bumped
+  * for incompatible changes.
+@@ -448,6 +454,19 @@ typedef struct {
+   unsigned int is_signed : 1;
+ } IntegerAliasInfo;
+ 
++/* Ignore warnings from use of signedness() */
++#if G_GNUC_CHECK_VERSION(4, 6)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wtype-limits"
++#elif defined(__clang__)
++#pragma clang diagnostic push
++#pragma clang diagnostic ignored "-Wtype-limits"
++#endif
++
++#define signedness(T) (((T) -1) < 0)
++G_STATIC_ASSERT (signedness (int) == 1);
++G_STATIC_ASSERT (signedness (unsigned int) == 0);
++
+ static IntegerAliasInfo integer_aliases[] = {
+   { "gchar",    SIZEOF_CHAR,      1 },
+   { "guchar",   SIZEOF_CHAR,      0 },
+@@ -461,8 +480,25 @@ static IntegerAliasInfo integer_aliases[] = {
+   { "gsize",    GLIB_SIZEOF_SIZE_T,    0 },
+   { "gintptr",  sizeof (gintptr),      1 },
+   { "guintptr", sizeof (guintptr),     0 },
++#define INTEGER_ALIAS(T) { #T, sizeof (T), signedness (T) }
++  INTEGER_ALIAS (off_t),
++  INTEGER_ALIAS (time_t),
++#ifdef G_OS_UNIX
++  INTEGER_ALIAS (dev_t),
++  INTEGER_ALIAS (gid_t),
++  INTEGER_ALIAS (pid_t),
++  INTEGER_ALIAS (socklen_t),
++  INTEGER_ALIAS (uid_t),
++#endif
++#undef INTEGER_ALIAS
+ };
+ 
++#if G_GNUC_CHECK_VERSION(4, 6)
++#pragma GCC diagnostic pop
++#elif defined(__clang__)
++#pragma clang diagnostic pop
++#endif
++
+ typedef struct {
+   const char *str;
+   int tag;
+-- 
+GitLab
+
diff --git a/srcpkgs/glib/patches/fix-test-cxxcpp.patch b/srcpkgs/glib/patches/fix-test-cxxcpp.patch
deleted file mode 100644
index 2b1ad5b4e6adc7..00000000000000
--- a/srcpkgs/glib/patches/fix-test-cxxcpp.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Fails to build on musl.
-../glib/tests/cxx.cpp:509:15: error: missing sentinel in function call [-Werror=format=]
-g_test_init (&argc, &argv, NULL);
-
---- a/glib/tests/cxx.cpp
-+++ a/glib/tests/cxx.cpp
-@@ -505,7 +505,7 @@ test_string_free (void)
- int
- main (int argc, char *argv[])
- {
- #if G_CXX_STD_CHECK_VERSION (11)
--  g_test_init (&argc, &argv, NULL);
-+  g_test_init (&argc, &argv, nullptr);
- #else
-   g_test_init (&argc, &argv, static_cast<void *>(NULL));
---- a/gio/tests/cxx.cpp
-+++ a/gio/tests/cxx.cpp
-@@ -59,7 +59,7 @@ int
- main (int argc, char **argv)
- {
- #if G_CXX_STD_CHECK_VERSION (11)
--  g_test_init (&argc, &argv, NULL);
-+  g_test_init (&argc, &argv, nullptr);
- #else
-   g_test_init (&argc, &argv, static_cast<void *>(NULL));
- #endif
diff --git a/srcpkgs/glib/patches/gthreadedresolver-Fix-race-between-source-callbacks.patch b/srcpkgs/glib/patches/gthreadedresolver-Fix-race-between-source-callbacks.patch
deleted file mode 100644
index 17de85b15bdbbe..00000000000000
--- a/srcpkgs/glib/patches/gthreadedresolver-Fix-race-between-source-callbacks.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <philip@tecnocode.co.uk>
-Date: Mon, 11 Sep 2023 16:02:15 +0100
-Subject: [PATCH] gthreadedresolver: Fix race between source callbacks and
- finalize
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-I had thought that because `g_source_destroy()` was called for the two
-sources (cancel and timeout) in the `GTask` finalize function for a
-threaded resolver operation, that it would be fine to use a plain
-pointer in the source callbacks to point to the `GTask`.
-
-That turns out to not be true: because the source callbacks are executed
-in the GLib worker thread, and the `GTask` can be finalized in another
-thread, it’s possible for a source callback (e.g. `cancelled_cb()`) to
-be scheduled in the worker thread, then for the `GTask` to be finalized,
-and then the source callback to continue execution and find itself
-doing a use-after-free.
-
-Fix that by using a weak ref to the `GTask` in the source callbacks,
-rather than a plain pointer.
-
-Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>
-
-Fixes: #3105
----
- gio/gthreadedresolver.c | 43 +++++++++++++++++++++++++++++++++++------
- 1 file changed, 37 insertions(+), 6 deletions(-)
-
-diff --git a/gio/gthreadedresolver.c b/gio/gthreadedresolver.c
-index 2d94531bfda3..c7a567549f28 100644
---- a/gio/gthreadedresolver.c
-+++ b/gio/gthreadedresolver.c
-@@ -1422,85 +1422,116 @@ lookup_records_finish (GResolver     *resolver,
- static gboolean
- timeout_cb (gpointer user_data)
- {
--  GTask *task = G_TASK (user_data);
--  LookupData *data = g_task_get_task_data (task);
-+  GWeakRef *weak_task = user_data;
-+  GTask *task = NULL;  /* (owned) */
-+  LookupData *data;
-   gboolean should_return;
- 
-+  task = g_weak_ref_get (weak_task);
-+  if (task == NULL)
-+    return G_SOURCE_REMOVE;
-+
-+  data = g_task_get_task_data (task);
-+
-   g_mutex_lock (&data->lock);
- 
-   should_return = g_atomic_int_compare_and_exchange (&data->will_return, NOT_YET, TIMED_OUT);
-   g_clear_pointer (&data->timeout_source, g_source_unref);
- 
-   g_mutex_unlock (&data->lock);
- 
-   if (should_return)
-     g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_TIMED_OUT,
-                              _("Socket I/O timed out"));
- 
-   /* Signal completion of the task. */
-   g_mutex_lock (&data->lock);
-   data->has_returned = TRUE;
-   g_cond_broadcast (&data->cond);
-   g_mutex_unlock (&data->lock);
- 
-+  g_object_unref (task);
-+
-   return G_SOURCE_REMOVE;
- }
- 
- /* Will be called in the GLib worker thread, so must lock all accesses to shared
-  * data. */
- static gboolean
- cancelled_cb (GCancellable *cancellable,
-               gpointer      user_data)
- {
--  GTask *task = G_TASK (user_data);
--  LookupData *data = g_task_get_task_data (task);
-+  GWeakRef *weak_task = user_data;
-+  GTask *task = NULL;  /* (owned) */
-+  LookupData *data;
-   gboolean should_return;
- 
-+  task = g_weak_ref_get (weak_task);
-+  if (task == NULL)
-+    return G_SOURCE_REMOVE;
-+
-+  data = g_task_get_task_data (task);
-+
-   g_mutex_lock (&data->lock);
- 
-   g_assert (g_cancellable_is_cancelled (cancellable));
-   should_return = g_atomic_int_compare_and_exchange (&data->will_return, NOT_YET, CANCELLED);
-   g_clear_pointer (&data->cancellable_source, g_source_unref);
- 
-   g_mutex_unlock (&data->lock);
- 
-   if (should_return)
-     g_task_return_error_if_cancelled (task);
- 
-   /* Signal completion of the task. */
-   g_mutex_lock (&data->lock);
-   data->has_returned = TRUE;
-   g_cond_broadcast (&data->cond);
-   g_mutex_unlock (&data->lock);
- 
-+  g_object_unref (task);
-+
-   return G_SOURCE_REMOVE;
- }
- 
-+static void
-+weak_ref_clear_and_free (GWeakRef *weak_ref)
-+{
-+  g_weak_ref_clear (weak_ref);
-+  g_free (weak_ref);
-+}
-+
- static void
- run_task_in_thread_pool_async (GThreadedResolver *self,
-                                GTask             *task)
- {
-   LookupData *data = g_task_get_task_data (task);
-   guint timeout_ms = g_resolver_get_timeout (G_RESOLVER (self));
-   GCancellable *cancellable = g_task_get_cancellable (task);
- 
-   g_mutex_lock (&data->lock);
- 
-   g_thread_pool_push (self->thread_pool, g_object_ref (task), NULL);
- 
-   if (timeout_ms != 0)
-     {
-+      GWeakRef *weak_task = g_new0 (GWeakRef, 1);
-+      g_weak_ref_set (weak_task, task);
-+
-       data->timeout_source = g_timeout_source_new (timeout_ms);
-       g_source_set_static_name (data->timeout_source, "[gio] threaded resolver timeout");
--      g_source_set_callback (data->timeout_source, G_SOURCE_FUNC (timeout_cb), task, NULL);
-+      g_source_set_callback (data->timeout_source, G_SOURCE_FUNC (timeout_cb), g_steal_pointer (&weak_task), (GDestroyNotify) weak_ref_clear_and_free);
-       g_source_attach (data->timeout_source, GLIB_PRIVATE_CALL (g_get_worker_context) ());
-     }
- 
-   if (cancellable != NULL)
-     {
-+      GWeakRef *weak_task = g_new0 (GWeakRef, 1);
-+      g_weak_ref_set (weak_task, task);
-+
-       data->cancellable_source = g_cancellable_source_new (cancellable);
-       g_source_set_static_name (data->cancellable_source, "[gio] threaded resolver cancellable");
--      g_source_set_callback (data->cancellable_source, G_SOURCE_FUNC (cancelled_cb), task, NULL);
-+      g_source_set_callback (data->cancellable_source, G_SOURCE_FUNC (cancelled_cb), g_steal_pointer (&weak_task), (GDestroyNotify) weak_ref_clear_and_free);
-       g_source_attach (data->cancellable_source, GLIB_PRIVATE_CALL (g_get_worker_context) ());
-     }
- 
diff --git a/srcpkgs/glib/template b/srcpkgs/glib/template
index 8cbde21cc6019b..f7f4acbe63e7d1 100644
--- a/srcpkgs/glib/template
+++ b/srcpkgs/glib/template
@@ -1,30 +1,36 @@
 # Template file for 'glib'
+# keep in sync with glib-bootstrap
 pkgname=glib
-version=2.78.0
-revision=3
+version=2.80.0
+revision=1
 build_style=meson
+build_helper=qemu
 # static version is necessary for qemu-user-static;
 # also disable LTO, otherwise there are multiple failures when linking qemu
-configure_args="-Dman=true -Dselinux=disabled
- $(vopt_bool gtk_doc gtk_doc) --default-library=both -Db_lto=false"
-hostmakedepends="gettext pkg-config libxslt docbook-xsl $(vopt_if gtk_doc gtk-doc)"
+configure_args="-Dman=true -Dselinux=disabled -Dintrospection=enabled
+ $(vopt_bool gtk_doc documentation) --default-library=both -Db_lto=false"
+hostmakedepends="gettext pkg-config gobject-introspection-bootstrap
+ libxslt docbook-xsl $(vopt_if gtk_doc gi-docgen) python3-packaging python3-docutils"
 makedepends="zlib-devel pcre2-devel libffi-devel dbus-devel elfutils-devel libmount-devel"
 checkdepends="desktop-file-utils shared-mime-info dbus python3-pytest"
 short_desc="GNU library of C routines"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="LGPL-2.1-or-later"
 homepage="https://wiki.gnome.org/Projects/GLib"
-#changelog="https://gitlab.gnome.org/GNOME/glib/raw/glib-2-78/NEWS"
+#changelog="https://gitlab.gnome.org/GNOME/glib/raw/glib-2-80/NEWS"
 changelog="https://gitlab.gnome.org/GNOME/glib/raw/main/NEWS"
 distfiles="${GNOME_SITE}/glib/${version%.*}/glib-${version}.tar.xz"
-checksum=44eaab8b720877ce303c5540b657b126f12dc94972d9880b52959f43fb537b30
+checksum=8228a92f92a412160b139ae68b6345bd28f24434a7b5af150ebe21ff587a561d
+conflicts="gir-freedesktop<1.80.0_1" # glib typelibs are now in glib
 make_check_pre="dbus-run-session"
 
 build_options="gtk_doc"
-desc_option_gtk_doc="Build GTK API docs"
+build_options_default="gtk_doc"
+desc_option_gtk_doc="Build Glib API docs"
 
-if [ -z "$CROSS_BUILD" ]; then
-	build_options_default+=" gtk_doc"
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" prelink-cross"
+	makedepends+=" gobject-introspection-bootstrap"
 fi
 
 post_patch() {
@@ -34,6 +40,18 @@ post_patch() {
 	fi
 }
 
+post_install() {
+	# Install introspection wrappers for cross compiling
+	vbin ${FILESDIR}/gi-xbps-qemuwrapper
+
+	# Install emulator wrappers for tools that require it
+	for tool in gi-compile-repository gi-decompile-typelib gi-inspect-typelib; do
+		mv ${DESTDIR}/usr/bin/${tool}{,.wrapped}
+		sed -e "s|@TOOL@|${tool}|" ${FILESDIR}/gi-tool-emulator-wrapper > gi-tool-emulator-wrapper
+		vbin gi-tool-emulator-wrapper ${tool}
+	done
+}
+
 pre_check() {
 	# machine-id is a random, non-zero value
 	echo 'dcb30309cd6c8b7cc20383d85a5c7012' > /etc/machine-id
@@ -44,11 +62,13 @@ post_check() {
 }
 
 libglib-devel_package() {
-	depends="${makedepends} ${sourcepkg}>=${version}_${revision}"
+	depends="${makedepends/gobject-introspection-bootstrap/} ${sourcepkg}>=${version}_${revision}"
+	conflicts="libgirepository-devel<1.80.0_1"
 	short_desc+=" - development files"
 	lib32files="/usr/lib/glib-2.0/include/glibconfig.h"
 	pkg_install() {
 		vmove usr/include
+		vmove usr/share/gir-1.0
 		vmove usr/lib/glib-2.0
 		vmove usr/lib/pkgconfig
 		vmove "usr/lib/*.so"
@@ -57,7 +77,7 @@ libglib-devel_package() {
 }
 
 glib-devel_package() {
-	depends="python3-setuptools libglib-devel>=${version}_${revision}"
+	depends="python3-packaging libglib-devel>=${version}_${revision}"
 	short_desc+=" - development files"
 	python_version=3
 	pycompile_dirs="usr/share/glib-2.0/codegen usr/share/glib-2.0/gdb"
@@ -69,6 +89,7 @@ glib-devel_package() {
 		vmove usr/bin/gdbus-codegen
 		vmove usr/bin/gtester
 		vmove usr/bin/glib-gettextize
+		vmove "usr/bin/gi-*"
 		vmove usr/share/man/man1/glib-compile-resources.1
 		vmove usr/share/man/man1/glib-gettextize.1
 		vmove usr/share/man/man1/gtester.1
@@ -79,8 +100,8 @@ glib-devel_package() {
 		for f in aclocal glib-2.0 gdb; do
 			vmove usr/share/${f}
 		done
-		if [ -d $DESTDIR/usr/share/gtk-doc ]; then
-			vmove usr/share/gtk-doc
+		if [ "$build_option_gtk_doc" ]; then
+			vmove usr/share/doc
 		fi
 	}
 }

From 640acb455137a7aa7bd487affcca880f941b0ae8 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Thu, 21 Mar 2024 12:54:17 -0700
Subject: [PATCH 4/5] gobject-introspection: update to 1.80.0.

---
 .../patches/fix-leaks.patch                   | 46 -------------------
 srcpkgs/gobject-introspection/template        | 12 +++--
 2 files changed, 7 insertions(+), 51 deletions(-)
 delete mode 100644 srcpkgs/gobject-introspection/patches/fix-leaks.patch

diff --git a/srcpkgs/gobject-introspection/patches/fix-leaks.patch b/srcpkgs/gobject-introspection/patches/fix-leaks.patch
deleted file mode 100644
index fa23ee74578897..00000000000000
--- a/srcpkgs/gobject-introspection/patches/fix-leaks.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From bf96a92ef263820d40e233814a46932cae00db41 Mon Sep 17 00:00:00 2001
-From: Xavier Claessens <xavier.claessens@collabora.com>
-Date: Tue, 18 Jul 2023 11:07:59 -0400
-Subject: [PATCH] gdump: Fix leaked io streams
-
-This makes Meson unit test fail:
-https://github.com/mesonbuild/meson/issues/11754
----
-
-MR: https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/411
-
- girepository/gdump.c | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/girepository/gdump.c b/girepository/gdump.c
-index 055a8b8c1..449b260a4 100644
---- a/girepository/gdump.c
-+++ b/girepository/gdump.c
-@@ -594,6 +594,7 @@ g_irepository_dump (const char *arg, GError **error)
-   if (output == NULL)
-     {
-       g_input_stream_close (G_INPUT_STREAM (input), NULL, NULL);
-+      g_object_unref (input);
-       return FALSE;
-     }
- 
-@@ -674,11 +675,12 @@ g_irepository_dump (const char *arg, GError **error)
-       ioerror = NULL;
-     else
-       ioerror = error;
--    if (!g_input_stream_close (G_INPUT_STREAM (in), NULL, ioerror))
--      return FALSE;
--    if (!g_output_stream_close (G_OUTPUT_STREAM (output), NULL, ioerror))
--      return FALSE;
-+    caught_error |= !g_input_stream_close (G_INPUT_STREAM (in), NULL, ioerror);
-+    caught_error |= !g_output_stream_close (G_OUTPUT_STREAM (output), NULL, ioerror);
-   }
- 
-+  g_object_unref (in);
-+  g_object_unref (output);
-+
-   return !caught_error;
- }
--- 
-GitLab
-
diff --git a/srcpkgs/gobject-introspection/template b/srcpkgs/gobject-introspection/template
index 356646ced3117f..60b4b05178e227 100644
--- a/srcpkgs/gobject-introspection/template
+++ b/srcpkgs/gobject-introspection/template
@@ -1,9 +1,10 @@
 # Template file for 'gobject-introspection'
+# keep in sync with gobject-introspection-bootstrap
 pkgname=gobject-introspection
-version=1.76.1
-revision=3
+version=1.80.1
+revision=1
 build_style=meson
-pycompile_dirs="usr/lib/${pkgname}/giscanner"
+pycompile_dirs="usr/lib/gobject-introspection/giscanner"
 hostmakedepends="flex pkg-config"
 # won't run tests with cairo to avoid cyclical deps
 makedepends="libffi-devel libglib-devel python3-devel python3-Mako
@@ -13,8 +14,9 @@ short_desc="Introspection system for GObject-based libraries"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later"
 homepage="https://wiki.gnome.org/Projects/GObjectIntrospection"
-distfiles="${GNOME_SITE}/${pkgname}/${version%.*}/${pkgname}-${version}.tar.xz"
-checksum=196178bf64345501dcdc4d8469b36aa6fe80489354efe71cb7cb8ab82a3738bf
+changelog="https://gitlab.gnome.org/GNOME/gobject-introspection/-/raw/main/NEWS"
+distfiles="${GNOME_SITE}/gobject-introspection/${version%.*}/gobject-introspection-${version}.tar.xz"
+checksum=a1df7c424e15bda1ab639c00e9051b9adf5cea1a9e512f8a603b53cd199bc6d8
 python_version=3
 
 if [ "$CROSS_BUILD" ]; then

From 83f9212f05aa56c39dd70e52b9d8cd10725ead67 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Thu, 21 Mar 2024 12:59:31 -0700
Subject: [PATCH 5/5] glib-networking: update to 2.80.0.

---
 srcpkgs/glib-networking/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/glib-networking/template b/srcpkgs/glib-networking/template
index 680a064ffec5a9..7e9bcf0c9f267b 100644
--- a/srcpkgs/glib-networking/template
+++ b/srcpkgs/glib-networking/template
@@ -1,6 +1,6 @@
 # Template file for 'glib-networking'
 pkgname=glib-networking
-version=2.76.0
+version=2.80.0
 revision=1
 build_style=meson
 configure_args="-Dinstalled_tests=false -Dgnutls=enabled -Dlibproxy=enabled
@@ -14,7 +14,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="LGPL-2.1-or-later"
 homepage="https://gitlab.gnome.org/GNOME/glib-networking/"
 changelog="https://gitlab.gnome.org/GNOME/glib-networking/-/raw/master/NEWS"
-#changelog="https://gitlab.gnome.org/GNOME/glib-networking/-/raw/glib-2-76/NEWS"
+#changelog="https://gitlab.gnome.org/GNOME/glib-networking/-/raw/glib-2-80/NEWS"
 distfiles="${GNOME_SITE}/${pkgname}/${version%.*}/${pkgname}-${version}.tar.xz"
-checksum=149a05a179e629a538be25662aa324b499d7c4549c5151db5373e780a1bf1b9a
+checksum=d8f4f1aab213179ae3351617b59dab5de6bcc9e785021eee178998ebd4bb3acf
 lib32disabled=yes

  parent reply	other threads:[~2024-04-17 23:36 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-21 20:10 [PR PATCH] " oreo639
2024-03-21 20:22 ` [PR PATCH] [Updated] [WIP] " oreo639
2024-03-21 20:23 ` oreo639
2024-03-21 20:50 ` oreo639
2024-03-21 21:04 ` oreo639
2024-03-21 21:08 ` chrysos349
2024-03-21 21:16 ` oreo639
2024-03-21 21:18 ` oreo639
2024-03-21 21:24 ` [PR PATCH] [Updated] " oreo639
2024-03-21 21:31 ` oreo639
2024-03-22  0:15 ` oreo639
2024-03-22  0:48 ` oreo639
2024-03-22  7:29 ` oreo639
2024-03-22  7:58 ` oreo639
2024-03-22  7:58 ` oreo639
2024-03-22  8:00 ` oreo639
2024-03-22  8:03 ` oreo639
2024-03-22  8:19 ` oreo639
2024-03-22  8:20 ` oreo639
2024-03-22  8:20 ` oreo639
2024-03-22  8:20 ` oreo639
2024-03-22  8:22 ` oreo639
2024-03-22 23:13 ` [PR PATCH] [Updated] " oreo639
2024-03-23  0:09 ` oreo639
2024-03-23  0:12 ` [PR PATCH] [Updated] " oreo639
2024-03-23  0:14 ` oreo639
2024-03-24  9:14 ` oreo639
2024-04-14  8:38 ` [PR PATCH] [Updated] " oreo639
2024-04-14 21:44 ` oreo639
2024-04-17  2:23 ` oreo639
2024-04-17  2:32 ` oreo639
2024-04-17  2:37 ` oreo639
2024-04-17  2:40 ` [PR PATCH] [Updated] " oreo639
2024-04-17  2:44 ` oreo639
2024-04-17  2:46 ` oreo639
2024-04-17  2:53 ` [PR PATCH] [Updated] " oreo639
2024-04-17  2:53 ` oreo639
2024-04-17  3:21 ` oreo639
2024-04-17  3:36 ` oreo639
2024-04-17  3:47 ` [PR PATCH] [Updated] " oreo639
2024-04-17  3:49 ` oreo639
2024-04-17 23:36 ` oreo639 [this message]
2024-04-18  0:28 ` oreo639
2024-04-18  3:02 ` oreo639
2024-04-18  3:25 ` [PR PATCH] [Merged]: " oreo639

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240417233627.090C8242EF@inbox.vuxu.org \
    --to=oreo639@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).