From 2e7aca82e598f6f8960d35900c89a73036ef8be6 Mon Sep 17 00:00:00 2001 From: xhaa123 Date: Mon, 29 Apr 2024 14:51:04 +0800 Subject: [PATCH] glib2 2.80.0-1 --- PKGBUILD | 54 ++++++++++++++++++++++++++ gio-querymodules.hook | 11 ++++++ glib-compile-schemas.hook | 12 ++++++ glib-skip_warnings-1.patch | 79 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 156 insertions(+) create mode 100644 PKGBUILD create mode 100644 gio-querymodules.hook create mode 100644 glib-compile-schemas.hook create mode 100644 glib-skip_warnings-1.patch diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..5addf8a --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,54 @@ +# Maintainer: Future Linux Team + +pkgname=glib2 +pkgver=2.80.0 +pkgrel=1 +pkgdesc="Low level core library" +arch=('x86_64') +url="https://gitlab.gnome.org/GNOME/glib" +license=('LGPL-2.1-or-later') +depends=('libffi' 'pcre2' 'util-linux' 'zlib' 'python-packaging') +makedepends=('dbus' 'gettext' 'libelf' 'meson' 'python-docutils' 'libxslt') +source=(https://download.gnome.org/sources/glib/${pkgver%.*}/glib-${pkgver}.tar.xz + glib-skip_warnings-1.patch + gio-querymodules.hook + glib-compile-schemas.hook) +sha256sums=(8228a92f92a412160b139ae68b6345bd28f24434a7b5af150ebe21ff587a561d + 8f9ee9f4a6a08c49c9c912241c63d55b969950c49f4d40337c6fd9557b9daa1b + b6fb5f07643c234bd0bde6c4899001effd270c17132e546cec535cb15771d269 + 64ae5597dda3cc160fc74be038dbe6267d41b525c0c35da9125fbf0de27f9b25) + +prepare() { + cd glib-${pkgver} + + patch -Np1 -i ${srcdir}/glib-skip_warnings-1.patch +} + +build() { + cd glib-${pkgver} + + # Produce more debug info: GLib has a lot of useful macros + CFLAGS+=" -g3" + CXXFLAGS+=" -g3" + + # use fat LTO objects for static libraries + CFLAGS+=" -ffat-lto-objects" + CXXFLAGS+=" -ffat-lto-objects" + + meson setup build \ + --prefix=/usr \ + --libdir=/usr/lib64 \ + --buildtype=release \ + -Dintrospection=disabled \ + -Dman-pages=enabled + + meson compile -C build +} + +package() { + cd glib-${pkgver} + + meson install -C build --destdir ${pkgdir} + + install -Dt ${pkgdir}/usr/share/libalpm/hooks -m644 ${srcdir}/*.hook +} diff --git a/gio-querymodules.hook b/gio-querymodules.hook new file mode 100644 index 0000000..c7192b9 --- /dev/null +++ b/gio-querymodules.hook @@ -0,0 +1,11 @@ +[Trigger] +Type = Path +Operation = Install +Operation = Upgrade +Operation = Remove +Target = usr/lib64/gio/modules/*.so + +[Action] +Description = Updating GIO module cache... +When = PostTransaction +Exec = /usr/bin/gio-querymodules /usr/lib64/gio/modules diff --git a/glib-compile-schemas.hook b/glib-compile-schemas.hook new file mode 100644 index 0000000..974549d --- /dev/null +++ b/glib-compile-schemas.hook @@ -0,0 +1,12 @@ +[Trigger] +Type = Path +Operation = Install +Operation = Upgrade +Operation = Remove +Target = usr/share/glib-2.0/schemas/*.gschema.xml +Target = usr/share/glib-2.0/schemas/*.gschema.override + +[Action] +Description = Compiling GSettings XML schema files... +When = PostTransaction +Exec = /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas diff --git a/glib-skip_warnings-1.patch b/glib-skip_warnings-1.patch new file mode 100644 index 0000000..2cca332 --- /dev/null +++ b/glib-skip_warnings-1.patch @@ -0,0 +1,79 @@ +Submitted By: Bruce Dubbs +Rediffed By: Douglas R. Reno +Date: 2017-10-15 +Rediffed Date: 2021-04-01 +Initial Package Version: 2.54.0 +Upstream Status: Not submitted +Origin: Self +Description: Adds a capabiility to skip printing warning messages using + an environment variable: GLIB_LOG_LEVEL. The value + of the variable is a digit that correponds to: + 1 Alert + 2 Critical + 3 Error + 4 Warning + 5 Notice + + For instance GLIB_LOG_LEVEL=4 will skip output of Warning and + Notice messages (and Info/Debug messages if they are turned on). + + Rediffed for 2.68.0 to reduce the fuzz warnings. + +diff -Naurp glib-2.68.0.orig/glib/gmessages.c glib-2.68.0/glib/gmessages.c +--- glib-2.68.0.orig/glib/gmessages.c 2021-03-18 08:28:31.909625000 -0500 ++++ glib-2.68.0/glib/gmessages.c 2021-04-01 20:32:23.517596280 -0500 +@@ -528,6 +528,34 @@ static GDestroyNotify log_writer_user_da + + /* --- functions --- */ + ++/* skip_message ++ * ++ * This internal function queries an optional environment variable, ++ * GLIB_LOG_LEVEL and converts it to a value consistent ++ * with the type GLogLevelFlags. If the value is equal to ++ * or greater than the integer equivalent of the log_level, ++ * then the function returns a boolean that indicates that ++ * logging the output should be skipped. ++ */ ++ ++static gboolean skip_message( GLogLevelFlags log_level); ++ ++static gboolean skip_message( GLogLevelFlags log_level) ++{ ++ char* user_log_level; ++ int user_log_int; ++ gboolean skip = FALSE; ++ ++ user_log_level = getenv( "GLIB_LOG_LEVEL" ); ++ ++ user_log_int = ( user_log_level != NULL ) ? atoi( user_log_level ) : 0; ++ user_log_int = ( user_log_level != 0 ) ? 1 << user_log_int : 0; ++ ++ if ( user_log_int >= log_level ) skip = TRUE; ++ ++ return skip; ++} ++ + static void _g_log_abort (gboolean breakpoint); + + static void +@@ -2591,6 +2619,9 @@ g_log_writer_standard_streams (GLogLevel + g_return_val_if_fail (fields != NULL, G_LOG_WRITER_UNHANDLED); + g_return_val_if_fail (n_fields > 0, G_LOG_WRITER_UNHANDLED); + ++ /* If the user does not want this message level, just return */ ++ if ( skip_message( log_level) ) return G_LOG_WRITER_HANDLED; ++ + stream = log_level_to_file (log_level); + if (!stream || fileno (stream) < 0) + return G_LOG_WRITER_UNHANDLED; +@@ -2818,6 +2849,9 @@ _g_log_writer_fallback (GLogLevelFlags + FILE *stream; + gsize i; + ++ /* If the user does not want this message level, just return */ ++ if ( skip_message( log_level) ) return G_LOG_WRITER_HANDLED; ++ + /* we cannot call _any_ GLib functions in this fallback handler, + * which is why we skip UTF-8 conversion, etc. + * since we either recursed or ran out of memory, we're in a pretty