Compare commits
3 Commits
Author | SHA256 | Date | |
---|---|---|---|
12d7c9b0b6 | |||
5a18c06228 | |||
4d8a9939d3 |
@@ -1,4 +1,3 @@
|
||||
<multibuild>
|
||||
<package>doc</package>
|
||||
<package>stage1</package>
|
||||
</multibuild>
|
||||
|
19
_service
19
_service
@@ -1,19 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<services>
|
||||
<service name="obs_scm" mode="manual">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://gitlab.gnome.org/GNOME/glib.git</param>
|
||||
<param name="revision">2.82.4</param>
|
||||
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
|
||||
<param name="versionrewrite-pattern">(.*)\+0</param>
|
||||
<param name="versionrewrite-replacement">\1</param>
|
||||
<!-- <param name="changesgenerate">enable</param> -->
|
||||
</service>
|
||||
<service name="tar" mode="buildtime"/>
|
||||
<service name="recompress" mode="buildtime">
|
||||
<param name="file">*.tar</param>
|
||||
<param name="compression">zst</param>
|
||||
</service>
|
||||
<service name="set_version" mode="manual" />
|
||||
</services>
|
||||
|
175
files.glib2
175
files.glib2
@@ -1,175 +0,0 @@
|
||||
%files tools
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%doc README.md
|
||||
%{_bindir}/gapplication
|
||||
%{_bindir}/gdbus
|
||||
%{_bindir}/gio
|
||||
%{_bindir}/gio-querymodules*
|
||||
%{_bindir}/glib-compile-schemas
|
||||
%{_bindir}/gresource
|
||||
%{_bindir}/gsettings
|
||||
%{_libexecdir}/gio-launch-desktop
|
||||
%dir %{_datadir}/bash-completion
|
||||
%dir %{_datadir}/bash-completion/completions
|
||||
%{_datadir}/bash-completion/completions/gapplication
|
||||
%{_datadir}/bash-completion/completions/gdbus
|
||||
%{_datadir}/bash-completion/completions/gio
|
||||
%{_datadir}/bash-completion/completions/gresource
|
||||
%{_datadir}/bash-completion/completions/gsettings
|
||||
%dir %{_datadir}/zsh
|
||||
%dir %{_datadir}/zsh/site-functions
|
||||
%{_datadir}/zsh/site-functions/_gsettings
|
||||
%{_mandir}/man1/gapplication.1%{?ext_man}
|
||||
%{_mandir}/man1/gdbus.1%{?ext_man}
|
||||
%{_mandir}/man1/gio.1%{?ext_man}
|
||||
%{_mandir}/man1/gio-querymodules.1%{?ext_man}
|
||||
%{_mandir}/man1/glib-compile-schemas.1%{?ext_man}
|
||||
%{_mandir}/man1/gresource.1%{?ext_man}
|
||||
%{_mandir}/man1/gsettings.1%{?ext_man}
|
||||
# We put those files here, but they don't really belong here. They just don't
|
||||
# have a better home... The zzz-glib2 scripts could arguably be in
|
||||
# libglib-2_0-0 but that would break the shared library policy.
|
||||
%{_sysconfdir}/profile.d/zzz-glib2.*
|
||||
|
||||
%files -n gio-branding-upstream
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%doc README.Gsettings-overrides
|
||||
%config (noreplace) %{_sysconfdir}/gnome_defaults.conf
|
||||
|
||||
%files -n %{libglib}
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%doc NEWS
|
||||
%{_libdir}/libglib*.so.*
|
||||
|
||||
%files -n %{libgmodule}
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%{_libdir}/libgmodule*.so.*
|
||||
|
||||
%files -n %{libgobject}
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%{_libdir}/libgobject*.so.*
|
||||
|
||||
%files -n %{libgthread}
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%{_libdir}/libgthread*.so.*
|
||||
|
||||
%files -n %{libgio}
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%{_libdir}/libgio*.so.*
|
||||
%dir %{_libdir}/gio
|
||||
%dir %{_libdir}/gio/modules
|
||||
%ghost %{_libdir}/gio/modules/giomodule.cache
|
||||
%dir %{_datadir}/glib-2.0/
|
||||
%dir %{_datadir}/glib-2.0/schemas/
|
||||
%ghost %{_datadir}/glib-2.0/schemas/gschemas.compiled
|
||||
%{_datadir}/applications/gnome-mimeapps.list
|
||||
%dir %{_localstatedir}/cache/gio-2.0
|
||||
%ghost %{_localstatedir}/cache/gio-2.0/gnome-mimeapps.list
|
||||
%ghost %{_localstatedir}/cache/gio-2.0/xfce-mimeapps.list
|
||||
%ghost %{_localstatedir}/cache/gio-2.0/lxde-mimeapps.list
|
||||
%ghost %{_localstatedir}/cache/gio-2.0/pantheon-mimeapps.list
|
||||
%ghost %{_localstatedir}/cache/gio-2.0/budgie-mimeapps.list
|
||||
%ghost %{_localstatedir}/cache/gio-2.0/mate-mimeapps.list
|
||||
|
||||
%files devel
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%{_bindir}/gdbus-codegen
|
||||
%{_bindir}/gi-compile-repository
|
||||
%{_bindir}/gi-decompile-typelib
|
||||
%{_bindir}/gi-inspect-typelib
|
||||
%{_bindir}/glib-compile-resources
|
||||
%{_bindir}/glib-genmarshal
|
||||
%{_bindir}/glib-gettextize
|
||||
%{_bindir}/glib-mkenums
|
||||
%{_bindir}/gobject-query
|
||||
%{_bindir}/gtester
|
||||
%{_bindir}/gtester-report
|
||||
%{_mandir}/man1/gdbus-codegen*%{ext_man}
|
||||
%{_mandir}/man1/gi-compile-repository.1%{?ext_man}
|
||||
%{_mandir}/man1/gi-decompile-typelib.1%{?ext_man}
|
||||
%{_mandir}/man1/gi-inspect-typelib.1%{?ext_man}
|
||||
%{_mandir}/man1/glib-compile-resources.1%{ext_man}
|
||||
%{_mandir}/man1/glib-genmarshal.1%{ext_man}
|
||||
%{_mandir}/man1/glib-gettextize.1%{ext_man}
|
||||
%{_mandir}/man1/glib-mkenums.1%{ext_man}
|
||||
%{_mandir}/man1/gobject-query.1%{ext_man}
|
||||
%{_mandir}/man1/gtester-report.1%{?ext_man}
|
||||
%{_mandir}/man1/gtester.1%{ext_man}
|
||||
%dir %{_datadir}/aclocal
|
||||
%{_datadir}/aclocal/glib-2.0.m4
|
||||
%{_datadir}/aclocal/glib-gettext.m4
|
||||
%{_datadir}/aclocal/gsettings.m4
|
||||
%dir %{_datadir}/gettext/its/
|
||||
%{_datadir}/gettext/its/gschema*
|
||||
%dir %{_datadir}/glib-2.0/
|
||||
%{_datadir}/glib-2.0/dtds/
|
||||
%{_datadir}/glib-2.0/gdb/
|
||||
%{_datadir}/glib-2.0/gettext/
|
||||
%{_datadir}/glib-2.0/codegen/
|
||||
%{_datadir}/glib-2.0/schemas/gschema.dtd
|
||||
%{_datadir}/glib-2.0/valgrind/
|
||||
%{_includedir}/glib-2.0
|
||||
%{_includedir}/gio-unix-2.0
|
||||
%{_libdir}/lib*.so
|
||||
%dir %{_libdir}/glib-2.0/
|
||||
%{_libdir}/glib-2.0/include/
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
%{_datadir}/gdb/auto-load/%{_libdir}/*-gdb.py
|
||||
%if %{with systemtap}
|
||||
%dir %{_datadir}/systemtap
|
||||
%dir %{_datadir}/systemtap/tapset
|
||||
%dir %{_datadir}/systemtap/tapset/*
|
||||
%{_datadir}/systemtap/tapset/*/libgio-*.so.*.stp
|
||||
%{_datadir}/systemtap/tapset/*/libglib-*.so.*.stp
|
||||
%{_datadir}/systemtap/tapset/*/libgobject-*.so.*.stp
|
||||
%endif
|
||||
%{_rpmmacrodir}/macros.glib2
|
||||
# Own these directories to avoid build requirement on gdb
|
||||
# only for directories ownership
|
||||
%dir %{_datadir}/gdb
|
||||
%dir %{_datadir}/gdb/auto-load
|
||||
%dir %{_datadir}/gdb/auto-load%{_prefix}
|
||||
%dir %{_datadir}/gdb/auto-load%{_libdir}
|
||||
%{_datadir}/gir-1.0/GIRepository-3.0.gir
|
||||
%{_datadir}/gir-1.0/GLib-2.0.gir
|
||||
%{_datadir}/gir-1.0/GModule-2.0.gir
|
||||
%{_datadir}/gir-1.0/GObject-2.0.gir
|
||||
%{_datadir}/gir-1.0/Gio-2.0.gir
|
||||
%{_datadir}/gir-1.0/GLibUnix-2.0.gir
|
||||
%{_datadir}/gir-1.0/GioUnix-2.0.gir
|
||||
|
||||
%files -n typelib-1_0-GLibUnix-2_0
|
||||
%{_libdir}/girepository-1.0/GLibUnix-2.0.typelib
|
||||
|
||||
%files -n typelib-1_0-GIRepository-3_0
|
||||
%{_libdir}/girepository-1.0/GIRepository-3.0.typelib
|
||||
|
||||
%files -n typelib-1_0-GLib-2_0
|
||||
%{_libdir}/girepository-1.0/GLib-2.0.typelib
|
||||
|
||||
%files -n typelib-1_0-GModule-2_0
|
||||
%{_libdir}/girepository-1.0/GModule-2.0.typelib
|
||||
|
||||
%files -n typelib-1_0-GObject-2_0
|
||||
%{_libdir}/girepository-1.0/GObject-2.0.typelib
|
||||
|
||||
%files -n typelib-1_0-Gio-2_0
|
||||
%{_libdir}/girepository-1.0/Gio-2.0.typelib
|
||||
%{_libdir}/girepository-1.0/GioUnix-2.0.typelib
|
||||
|
||||
%files -n %{libgirepository}
|
||||
%{_libdir}/libgirepository-2.0.so.0*
|
||||
|
||||
%files devel-static
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%{_libdir}/lib*.a
|
||||
|
||||
%files lang -f glib20.lang
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
|
||||
%files tests-devel
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%{_libexecdir}/installed-tests
|
||||
%attr(0755 - -) %{_libexecdir}/installed-tests/glib/taptestrunner.py
|
||||
%attr(0755 - -) %{_libexecdir}/installed-tests/glib/x-content/unix-software/autorun.sh
|
||||
%{_datadir}/installed-tests
|
63
files.stage1
63
files.stage1
@@ -1,63 +0,0 @@
|
||||
|
||||
%ldconfig_scriptlets
|
||||
|
||||
%files
|
||||
%dir %{_libdir}/glib-2.0
|
||||
%dir %{_libdir}/glib-2.0/include
|
||||
%dir %{_datadir}/gdb/auto-load/usr
|
||||
%dir %{_datadir}/gdb/auto-load%{_libdir}
|
||||
%dir %{_datadir}/gettext/its
|
||||
%dir %{_datadir}/gdb
|
||||
%dir %{_datadir}/gdb/auto-load
|
||||
|
||||
%{_bindir}/gapplication
|
||||
%{_bindir}/gdbus
|
||||
%{_bindir}/gdbus-codegen
|
||||
%{_bindir}/gi-compile-repository
|
||||
%{_bindir}/gi-decompile-typelib
|
||||
%{_bindir}/gi-inspect-typelib
|
||||
%{_bindir}/gio
|
||||
%{_bindir}/gio-querymodules
|
||||
%{_bindir}/glib-compile-resources
|
||||
%{_bindir}/glib-compile-schemas
|
||||
%{_bindir}/glib-genmarshal
|
||||
%{_bindir}/glib-gettextize
|
||||
%{_bindir}/glib-mkenums
|
||||
%{_bindir}/gobject-query
|
||||
%{_bindir}/gresource
|
||||
%{_bindir}/gsettings
|
||||
%{_bindir}/gtester
|
||||
%{_bindir}/gtester-report
|
||||
%{_datadir}/aclocal/glib-2.0.m4
|
||||
%{_datadir}/aclocal/glib-gettext.m4
|
||||
%{_datadir}/aclocal/gsettings.m4
|
||||
%{_datadir}/bash-completion/completions/gapplication
|
||||
%{_datadir}/bash-completion/completions/gdbus
|
||||
%{_datadir}/bash-completion/completions/gio
|
||||
%{_datadir}/bash-completion/completions/gresource
|
||||
%{_datadir}/bash-completion/completions/gsettings
|
||||
%{_datadir}/gdb/auto-load%{_libdir}/libglib-2.0.so.*gdb.py
|
||||
%{_datadir}/gdb/auto-load%{_libdir}/libgobject-2.0.so.*gdb.py
|
||||
%{_datadir}/gettext/its/gschema.its
|
||||
%{_datadir}/gettext/its/gschema.loc
|
||||
%{_datadir}/glib-2.0/
|
||||
%{_includedir}/gio-unix-2.0
|
||||
%{_includedir}/glib-2.0
|
||||
%{_libdir}/glib-2.0/include/glibconfig.h
|
||||
%{_libdir}/libgio-2.0.so*
|
||||
%{_libdir}/libgirepository-2.0.so*
|
||||
%{_libdir}/libglib-2.0.so*
|
||||
%{_libdir}/libgmodule-2.0.so*
|
||||
%{_libdir}/libgobject-2.0.so*
|
||||
%{_libdir}/libgthread-2.0.so*
|
||||
%{_libdir}/pkgconfig/gio-2.0.pc
|
||||
%{_libdir}/pkgconfig/gio-unix-2.0.pc
|
||||
%{_libdir}/pkgconfig/girepository-2.0.pc
|
||||
%{_libdir}/pkgconfig/glib-2.0.pc
|
||||
%{_libdir}/pkgconfig/gmodule-2.0.pc
|
||||
%{_libdir}/pkgconfig/gmodule-export-2.0.pc
|
||||
%{_libdir}/pkgconfig/gmodule-no-export-2.0.pc
|
||||
%{_libdir}/pkgconfig/gobject-2.0.pc
|
||||
%{_libdir}/pkgconfig/gthread-2.0.pc
|
||||
%{_libexecdir}/gio-launch-desktop
|
||||
|
BIN
glib-2.78.6.tar.xz
Normal file
BIN
glib-2.78.6.tar.xz
Normal file
Binary file not shown.
BIN
glib-2.82.4.obscpio
(Stored with Git LFS)
BIN
glib-2.82.4.obscpio
(Stored with Git LFS)
Binary file not shown.
@@ -1,4 +0,0 @@
|
||||
name: glib
|
||||
version: 2.82.4
|
||||
mtime: 1733955682
|
||||
commit: ca20e4ac71864f08e980dc044ac96c06d5482b37
|
45
glib2-CVE-2024-52533.patch
Normal file
45
glib2-CVE-2024-52533.patch
Normal file
@@ -0,0 +1,45 @@
|
||||
From 25833cefda24c60af913d6f2d532b5afd608b821 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@redhat.com>
|
||||
Date: Thu, 19 Sep 2024 18:35:53 +0100
|
||||
Subject: [PATCH] gsocks4aproxy: Fix a single byte buffer overflow in connect
|
||||
messages
|
||||
|
||||
`SOCKS4_CONN_MSG_LEN` failed to account for the length of the final nul
|
||||
byte in the connect message, which is an addition in SOCKSv4a vs
|
||||
SOCKSv4.
|
||||
|
||||
This means that the buffer for building and transmitting the connect
|
||||
message could be overflowed if the username and hostname are both
|
||||
`SOCKS4_MAX_LEN` (255) bytes long.
|
||||
|
||||
Proxy configurations are normally statically configured, so the username
|
||||
is very unlikely to be near its maximum length, and hence this overflow
|
||||
is unlikely to be triggered in practice.
|
||||
|
||||
(Commit message by Philip Withnall, diagnosis and fix by Michael
|
||||
Catanzaro.)
|
||||
|
||||
Fixes: #3461
|
||||
---
|
||||
gio/gsocks4aproxy.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gio/gsocks4aproxy.c b/gio/gsocks4aproxy.c
|
||||
index 3dad118eb..b3146d08f 100644
|
||||
--- a/gio/gsocks4aproxy.c
|
||||
+++ b/gio/gsocks4aproxy.c
|
||||
@@ -79,9 +79,9 @@ g_socks4a_proxy_init (GSocks4aProxy *proxy)
|
||||
* +----+----+----+----+----+----+----+----+----+----+....+----+------+....+------+
|
||||
* | VN | CD | DSTPORT | DSTIP | USERID |NULL| HOST | | NULL |
|
||||
* +----+----+----+----+----+----+----+----+----+----+....+----+------+....+------+
|
||||
- * 1 1 2 4 variable 1 variable
|
||||
+ * 1 1 2 4 variable 1 variable 1
|
||||
*/
|
||||
-#define SOCKS4_CONN_MSG_LEN (9 + SOCKS4_MAX_LEN * 2)
|
||||
+#define SOCKS4_CONN_MSG_LEN (10 + SOCKS4_MAX_LEN * 2)
|
||||
static gint
|
||||
set_connect_msg (guint8 *msg,
|
||||
const gchar *hostname,
|
||||
--
|
||||
2.47.0
|
||||
|
55
glib2-CVE-2025-3360.patch
Normal file
55
glib2-CVE-2025-3360.patch
Normal file
@@ -0,0 +1,55 @@
|
||||
From 8d60d7dc168aee73a15eb5edeb2deaf196d96114 Mon Sep 17 00:00:00 2001
|
||||
From: Philip Withnall <pwithnall@gnome.org>
|
||||
Date: Tue, 18 Feb 2025 16:44:58 +0000
|
||||
Subject: [PATCH] gdatetime: Fix integer overflow when parsing very long
|
||||
ISO8601 inputs
|
||||
|
||||
This will only happen with invalid (or maliciously invalid) potential
|
||||
ISO8601 strings, but `g_date_time_new_from_iso8601()` needs to be robust
|
||||
against that.
|
||||
|
||||
Prevent `length` overflowing by correctly defining it as a `size_t`.
|
||||
Similarly for `date_length`, but additionally track its validity in a
|
||||
boolean rather than as its sign.
|
||||
|
||||
Spotted by chamalsl as #YWH-PGM9867-43.
|
||||
|
||||
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
|
||||
---
|
||||
glib/gdatetime.c | 12 ++++++++----
|
||||
1 file changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/glib/gdatetime.c b/glib/gdatetime.c
|
||||
index 5c5638234..efa072982 100644
|
||||
--- a/glib/gdatetime.c
|
||||
+++ b/glib/gdatetime.c
|
||||
@@ -1540,7 +1540,8 @@ parse_iso8601_time (const gchar *text, gsize length,
|
||||
GDateTime *
|
||||
g_date_time_new_from_iso8601 (const gchar *text, GTimeZone *default_tz)
|
||||
{
|
||||
- gint length, date_length = -1;
|
||||
+ size_t length, date_length = 0;
|
||||
+ gboolean date_length_set = FALSE;
|
||||
gint hour = 0, minute = 0;
|
||||
gdouble seconds = 0.0;
|
||||
GTimeZone *tz = NULL;
|
||||
@@ -1551,11 +1552,14 @@ g_date_time_new_from_iso8601 (const gchar *text, GTimeZone *default_tz)
|
||||
/* Count length of string and find date / time separator ('T', 't', or ' ') */
|
||||
for (length = 0; text[length] != '\0'; length++)
|
||||
{
|
||||
- if (date_length < 0 && (text[length] == 'T' || text[length] == 't' || text[length] == ' '))
|
||||
- date_length = length;
|
||||
+ if (!date_length_set && (text[length] == 'T' || text[length] == 't' || text[length] == ' '))
|
||||
+ {
|
||||
+ date_length = length;
|
||||
+ date_length_set = TRUE;
|
||||
+ }
|
||||
}
|
||||
|
||||
- if (date_length < 0)
|
||||
+ if (!date_length_set)
|
||||
return NULL;
|
||||
|
||||
if (!parse_iso8601_time (text + date_length + 1, length - (date_length + 1),
|
||||
--
|
||||
2.41.0
|
117
glib2-CVE-2025-4373.patch
Normal file
117
glib2-CVE-2025-4373.patch
Normal file
@@ -0,0 +1,117 @@
|
||||
From a47dc889463d73dd47ad428ac217e3d84f28e242 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@redhat.com>
|
||||
Date: Mon, 28 Apr 2025 16:03:08 +0000
|
||||
Subject: [PATCH 1/2] gstring: carefully handle gssize parameters
|
||||
|
||||
Wherever we use gssize to allow passing -1, we need to ensure we don't
|
||||
overflow the value by assigning a gsize to it without checking if the
|
||||
size exceeds the maximum gssize. The safest way to do this is to just
|
||||
use normal gsize everywhere instead and use gssize only for the
|
||||
parameter.
|
||||
|
||||
Our computers don't have enough RAM to write tests for this. I tried
|
||||
forcing string->len to high values for test purposes, but this isn't
|
||||
valid and will just cause out of bounds reads/writes due to
|
||||
string->allocated_len being unexpectedly small, so I don't think we can
|
||||
test this easily.
|
||||
|
||||
|
||||
(cherry picked from commit cc647f9e46d55509a93498af19659baf9c80f2e3)
|
||||
|
||||
Co-authored-by: Michael Catanzaro <mcatanzaro@redhat.com>
|
||||
---
|
||||
glib/gstring.c | 36 +++++++++++++++++++++++-------------
|
||||
1 file changed, 23 insertions(+), 13 deletions(-)
|
||||
|
||||
Index: glib-2.78.6/glib/gstring.c
|
||||
===================================================================
|
||||
--- glib-2.78.6.orig/glib/gstring.c
|
||||
+++ glib-2.78.6/glib/gstring.c
|
||||
@@ -490,8 +490,9 @@ g_string_insert_len (GString *string
|
||||
return string;
|
||||
|
||||
if (len < 0)
|
||||
- len = strlen (val);
|
||||
- len_unsigned = len;
|
||||
+ len_unsigned = strlen (val);
|
||||
+ else
|
||||
+ len_unsigned = len;
|
||||
|
||||
if (pos < 0)
|
||||
pos_unsigned = string->len;
|
||||
@@ -788,10 +789,12 @@ g_string_insert_c (GString *string,
|
||||
g_string_maybe_expand (string, 1);
|
||||
|
||||
if (pos < 0)
|
||||
- pos = string->len;
|
||||
+ pos_unsigned = string->len;
|
||||
else
|
||||
- g_return_val_if_fail ((gsize) pos <= string->len, string);
|
||||
- pos_unsigned = pos;
|
||||
+ {
|
||||
+ pos_unsigned = pos;
|
||||
+ g_return_val_if_fail (pos_unsigned <= string->len, string);
|
||||
+ }
|
||||
|
||||
/* If not just an append, move the old stuff */
|
||||
if (pos_unsigned < string->len)
|
||||
@@ -824,6 +827,7 @@ g_string_insert_unichar (GString *strin
|
||||
gssize pos,
|
||||
gunichar wc)
|
||||
{
|
||||
+ gsize pos_unsigned;
|
||||
gint charlen, first, i;
|
||||
gchar *dest;
|
||||
|
||||
@@ -865,15 +869,18 @@ g_string_insert_unichar (GString *strin
|
||||
g_string_maybe_expand (string, charlen);
|
||||
|
||||
if (pos < 0)
|
||||
- pos = string->len;
|
||||
+ pos_unsigned = string->len;
|
||||
else
|
||||
- g_return_val_if_fail ((gsize) pos <= string->len, string);
|
||||
+ {
|
||||
+ pos_unsigned = pos;
|
||||
+ g_return_val_if_fail (pos_unsigned <= string->len, string);
|
||||
+ }
|
||||
|
||||
/* If not just an append, move the old stuff */
|
||||
- if ((gsize) pos < string->len)
|
||||
- memmove (string->str + pos + charlen, string->str + pos, string->len - pos);
|
||||
+ if (pos_unsigned < string->len)
|
||||
+ memmove (string->str + pos_unsigned + charlen, string->str + pos_unsigned, string->len - pos_unsigned);
|
||||
|
||||
- dest = string->str + pos;
|
||||
+ dest = string->str + pos_unsigned;
|
||||
/* Code copied from g_unichar_to_utf() */
|
||||
for (i = charlen - 1; i > 0; --i)
|
||||
{
|
||||
@@ -931,6 +938,7 @@ g_string_overwrite_len (GString *str
|
||||
const gchar *val,
|
||||
gssize len)
|
||||
{
|
||||
+ gsize len_unsigned;
|
||||
gsize end;
|
||||
|
||||
g_return_val_if_fail (string != NULL, NULL);
|
||||
@@ -942,14 +950,16 @@ g_string_overwrite_len (GString *str
|
||||
g_return_val_if_fail (pos <= string->len, string);
|
||||
|
||||
if (len < 0)
|
||||
- len = strlen (val);
|
||||
+ len_unsigned = strlen (val);
|
||||
+ else
|
||||
+ len_unsigned = len;
|
||||
|
||||
- end = pos + len;
|
||||
+ end = pos + len_unsigned;
|
||||
|
||||
if (end > string->len)
|
||||
g_string_maybe_expand (string, end - string->len);
|
||||
|
||||
- memcpy (string->str + pos, val, len);
|
||||
+ memcpy (string->str + pos, val, len_unsigned);
|
||||
|
||||
if (end > string->len)
|
||||
{
|
68
glib2-CVE-2025-6052.patch
Normal file
68
glib2-CVE-2025-6052.patch
Normal file
@@ -0,0 +1,68 @@
|
||||
From 33d9ba2fcc907b4f9a6c0540f9976b64b6f59db2 Mon Sep 17 00:00:00 2001
|
||||
From: Philip Withnall <pwithnall@gnome.org>
|
||||
Date: Tue, 3 Jun 2025 11:31:04 +0100
|
||||
Subject: [PATCH] gstring: Fix overflow check when expanding the string
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
After commit 34b7992fd6e3894bf6d2229b8aa59cac34bcb1b5 the overflow check
|
||||
was only done when expanding the string, but we need to do it before
|
||||
checking whether to expand the string, otherwise that calculation could
|
||||
overflow and falsely decide that the string is big enough already.
|
||||
|
||||
As a concrete example, consider a `GString` which has:
|
||||
* `.len = G_MAXSIZE / 2 + 1`
|
||||
* `.allocated_len = G_MAXSIZE / 2 + 1`
|
||||
and `g_string_append()` is called on it with an input string of length
|
||||
`G_MAXSIZE / 2`.
|
||||
|
||||
This results in a call `g_string_maybe_expand (string, G_MAXSIZE / 2)`,
|
||||
which calculates `string->len + len` as `(G_MAXSIZE / 2 + 1) +
|
||||
(G_MAXSIZE / 2)` which evaluates to `1` as it overflows. This is not
|
||||
greater than `string->allocated_len` (which is `G_MAXSIZE / 2 + 1`), so
|
||||
`g_string_expand()` is *not* called, and `g_string_maybe_expand()`
|
||||
returns successfully. The caller then assumes that there’s enough space
|
||||
in the buffer, and happily continues to cause a buffer overflow.
|
||||
|
||||
It’s unlikely anyone could hit this in practice because it requires
|
||||
ludicrously big strings and `GString` allocations, which likely would
|
||||
have been blocked by other code, but if we’re going to have the overflow
|
||||
checks in `GString` then they should be effective.
|
||||
|
||||
Spotted by code inspection.
|
||||
|
||||
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
|
||||
---
|
||||
glib/gstring.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/glib/gstring.c b/glib/gstring.c
|
||||
index 645746c9a..010a8e976 100644
|
||||
--- a/glib/gstring.c
|
||||
+++ b/glib/gstring.c
|
||||
@@ -68,10 +68,6 @@ static void
|
||||
g_string_expand (GString *string,
|
||||
gsize len)
|
||||
{
|
||||
- /* Detect potential overflow */
|
||||
- if G_UNLIKELY ((G_MAXSIZE - string->len - 1) < len)
|
||||
- g_error ("adding %" G_GSIZE_FORMAT " to string would overflow", len);
|
||||
-
|
||||
string->allocated_len = g_nearest_pow (string->len + len + 1);
|
||||
/* If the new size is bigger than G_MAXSIZE / 2, only allocate enough
|
||||
* memory for this string and don't over-allocate.
|
||||
@@ -86,6 +82,10 @@ static inline void
|
||||
g_string_maybe_expand (GString *string,
|
||||
gsize len)
|
||||
{
|
||||
+ /* Detect potential overflow */
|
||||
+ if G_UNLIKELY ((G_MAXSIZE - string->len - 1) < len)
|
||||
+ g_error ("adding %" G_GSIZE_FORMAT " to string would overflow", len);
|
||||
+
|
||||
if (G_UNLIKELY (string->len + len >= string->allocated_len))
|
||||
g_string_expand (string, len);
|
||||
}
|
||||
--
|
||||
2.49.0
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/gio/gdbus-2.0/codegen/codegen.py b/gio/gdbus-2.0/codegen/codegen.py
|
||||
index 2e8ef8e2..772dad77 100644
|
||||
--- a/gio/gdbus-2.0/codegen/codegen.py
|
||||
+++ b/gio/gdbus-2.0/codegen/codegen.py
|
||||
@@ -98,8 +98,7 @@ class HeaderCodeGenerator:
|
||||
Index: glib-2.70.0/gio/gdbus-2.0/codegen/codegen.py
|
||||
===================================================================
|
||||
--- glib-2.70.0.orig/gio/gdbus-2.0/codegen/codegen.py
|
||||
+++ glib-2.70.0/gio/gdbus-2.0/codegen/codegen.py
|
||||
@@ -95,8 +95,7 @@ class HeaderCodeGenerator:
|
||||
# ----------------------------------------------------------------------------------------------------
|
||||
|
||||
def generate_header_preamble(self):
|
||||
@@ -12,7 +12,7 @@ index 2e8ef8e2..772dad77 100644
|
||||
self.outfile.write("\n")
|
||||
|
||||
if self.use_pragma:
|
||||
@@ -1043,8 +1042,7 @@ class InterfaceInfoHeaderCodeGenerator:
|
||||
@@ -1040,8 +1039,7 @@ class InterfaceInfoHeaderCodeGenerator:
|
||||
# ----------------------------------------------------------------------------------------------------
|
||||
|
||||
def generate_header_preamble(self):
|
||||
@@ -22,7 +22,7 @@ index 2e8ef8e2..772dad77 100644
|
||||
self.outfile.write("\n")
|
||||
|
||||
if self.use_pragma:
|
||||
@@ -1115,8 +1113,7 @@ class InterfaceInfoBodyCodeGenerator:
|
||||
@@ -1112,8 +1110,7 @@ class InterfaceInfoBodyCodeGenerator:
|
||||
# ----------------------------------------------------------------------------------------------------
|
||||
|
||||
def generate_body_preamble(self):
|
||||
@@ -32,12 +32,13 @@ index 2e8ef8e2..772dad77 100644
|
||||
|
||||
if self.symbol_decoration_define is not None:
|
||||
self.outfile.write("\n")
|
||||
@@ -1469,7 +1466,7 @@ class CodeGenerator:
|
||||
@@ -1466,8 +1463,7 @@ class CodeGenerator:
|
||||
# ----------------------------------------------------------------------------------------------------
|
||||
|
||||
def generate_body_preamble(self):
|
||||
basenames = ", ".join(self.input_files_basenames)
|
||||
- basenames = ", ".join(self.input_files_basenames)
|
||||
- self.outfile.write(LICENSE_STR.format(config.VERSION, basenames))
|
||||
+ self.outfile.write(LICENSE_STR)
|
||||
|
||||
if self.symbol_decoration_define is not None:
|
||||
self.outfile.write("\n")
|
||||
self.outfile.write("#define %s\n" % self.symbol_decoration_define)
|
||||
|
308
glib2.changes
308
glib2.changes
@@ -1,188 +1,62 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 15 18:14:10 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
Fri Jun 13 21:00:33 UTC 2025 - Michael Gorse <mgorse@suse.com>
|
||||
|
||||
- Update to version 2.82.4:
|
||||
+ Fix a double-unref crash which affects many apps which use
|
||||
pygobject to export objects on D-Bus
|
||||
+ Bugs fixed:
|
||||
- Fix regression: lollypop crashes on startup
|
||||
- Revert "gdbus: Fix leak of method invocation when registering
|
||||
an object with closures"
|
||||
- ci: Add release component to automate tarball publishing
|
||||
- Add glib2-CVE-2025-6052.patch: fix overflow check when expanding
|
||||
a GString (bsc#1244596 CVE-2025-6052).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 9 16:41:51 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
Thu Jun 5 06:38:31 UTC 2025 - Xiaoguang Wang <xiaoguang.wang@suse.com>
|
||||
|
||||
- Update to version 2.82.3:
|
||||
+ Fix compatibility with tzdata 2024b
|
||||
+ Bugs fixed:
|
||||
- Test regressions with tzdata 2024b
|
||||
- gdatetime test: Do not assume PST8PDT was always exactly
|
||||
-8/-7
|
||||
- glib: Don't require GLIB_DOMAIN to be a NUL-terminated string
|
||||
- gio: Fix GFileEnumerator leaks in gio tools
|
||||
- macos: Remove extraous space from type identifier
|
||||
- refstring: Fix race between releasing and re-acquiring an
|
||||
interned GRefString
|
||||
- appmonitor: Fix warning building test
|
||||
- grefstring: Mark a variable as potentially unused
|
||||
- gdbus: Fix leak of method invocation when registering an
|
||||
object with closures
|
||||
- Add glib2-CVE-2025-4373.patch: carefully handle gssize parameters
|
||||
(bsc#1242844 CVE-2025-4373 glgo#GNOME/glib#3677).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 27 17:40:33 UTC 2024 - Michael Gorse <mgorse@suse.com>
|
||||
Tue Apr 08 05:58:04 UTC 2025 - Cliff Zhao <qzhao@suse.com>
|
||||
|
||||
- Add glib2-CVE-2025-3360.patch:
|
||||
Backport 8d60d7dc from upstream, Fix integer overflow when
|
||||
parsing very long ISO8601 inputs. This will only happen with
|
||||
invalid (or maliciously invalid) potential ISO8601 strings,
|
||||
but `g_date_time_new_from_iso8601()` needs to be robust against
|
||||
that.
|
||||
(CVE-2025-3360, bsc#1240897)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 27 17:22:59 UTC 2024 - Michael Gorse <mgorse@suse.com>
|
||||
|
||||
- Have the glib2-tools postun trigger exit normally if
|
||||
glib2-compile-schemas can't be run. Fixes error when uninstalling
|
||||
if libgio is uninstalled first (bsc#1231463).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 17 12:05:15 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
Tue Nov 12 20:27:24 UTC 2024 - Michael Gorse <mgorse@suse.com>
|
||||
|
||||
- Update to version 2.82.2:
|
||||
+ Bugs fixed:
|
||||
- glib/gvariant: incorrect use of G_ANALYZER_ANALYZING
|
||||
- Multicast cannot be joined on Mac OS on non-default interface
|
||||
- glib/gvariant: Fix check for G_ANALYZER_ANALYZING
|
||||
- macos: Fix URL launcher
|
||||
- gopenuriportal: Fix two memory leaks
|
||||
- gio: Fix multicast iface selection on macOS
|
||||
- gdatainputstream: Fix length return value on UTF-8 validation
|
||||
failure
|
||||
+ Updated translations.
|
||||
- Add glib2-CVE-2024-52533.patch: fix a single byte buffer overflow
|
||||
(boo#1233282 CVE-2024-52533 glgo#GNOME/glib#3461).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 20 05:59:19 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
Mon May 20 21:44:26 UTC 2024 - Michael Gorse <mgorse@suse.com>
|
||||
|
||||
- Update to version 2.82.1:
|
||||
+ Fix a potential buffer overflow in `GSocks4aProxy` (boo#1233282
|
||||
CVE-2024-52533).
|
||||
+ Bugs fixed:
|
||||
- Test /unix-mounts/get-mount-entries fails unless libmount is
|
||||
enabled
|
||||
- Buffer overflow in set_connect_msg()
|
||||
- tests: Test against a sample mtab file in unix-mounts for
|
||||
getmntent()
|
||||
- tests: Run lint tests with detected bash
|
||||
- docs(glib): Fix link in string-utils ref
|
||||
- Move to Apple Silicon based runner
|
||||
- gsocks4aproxy: Fix a single byte buffer overflow in connect
|
||||
messages
|
||||
+ Updated translations.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 27 12:00:06 UTC 2024 - pgajdos@suse.com
|
||||
|
||||
- remove dependency on /usr/bin/python3 using
|
||||
%python3_fix_shebang{,_path} macros, [bsc#1212476]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 26 10:49:32 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
- Update to version 2.82.0:
|
||||
+ Change the default value of -Dglib_debug from `auto` to
|
||||
`enabled` for developers — distributions will almost certainly
|
||||
want to override it to `-Dglib_debug=disabled` for package
|
||||
release builds though.
|
||||
+ Revert per-instance locking changes in `GCancellable` as they
|
||||
introduced new races.
|
||||
+ Bugs fixed:
|
||||
- Investigate trampoline performance implications in
|
||||
g_mutex_lock_impl() changes
|
||||
- Default value for glib_debug meson option
|
||||
- wrong comment in gmessage.c:escape_string
|
||||
- Should check for epoll_create1 rather than epoll_create
|
||||
- Gio.MenuModel docs have an outdated UI example
|
||||
- gunixmounts: Fix use of uninitialised variable
|
||||
- tests: Run expected-to-hang cancellable tests in subprocesses
|
||||
- CI/msys2-mingw32: Set the G_DEBUGGER environment variable
|
||||
- Revert "GCancellable: Use per-instance mutex logic instead of
|
||||
global critical sections”
|
||||
- Various small backports
|
||||
- Backport “gthread: Move thread _impl functions to static
|
||||
inlines for speed”
|
||||
+ Updated translations.
|
||||
- Pass glib_debug=disabled to meson as recommended by upstream and
|
||||
pass sysprof=disabled to meson, avoid pulling in extra
|
||||
dependencies.
|
||||
- Drop python enviroment fix, no longer needed.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 26 10:45:18 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
- Update to version 2.80.5:
|
||||
+ Bugs fixed:
|
||||
- Fix gsocketclient-slow test on FreeBSD
|
||||
- glib-private: fix build under Cygwin
|
||||
- tests: Fix compilation of resolver-parsing test on FreeBSD
|
||||
- introspection: Correct GIO-Windows pkg-config name
|
||||
+ Updated translations
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 8 18:19:52 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
- Update to version 2.80.4:
|
||||
+ Bugs fixed:
|
||||
- GLib unit tests fail on macOS runner due to localhost being
|
||||
out of addresses
|
||||
- Random failures to build glib 2.80.3
|
||||
- Backport !4111 “gioerror: Map EADDRNOTAVAIL to
|
||||
G_IO_ERROR_CONNECTION_REFUSED” to glib-2-80
|
||||
- Backport !3373 and !4117 “Handle files >4GB in
|
||||
g_file_load_contents()“ to glib-2-80
|
||||
- Backport !4020 and !4122: fixes to GIR install locations and
|
||||
build race fixes
|
||||
- Backport !4110 “gthreadedresolver: ref-sink returned records
|
||||
in lookup_records()” to glib-2-80
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 11 07:14:25 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Update to version 2.80.3:
|
||||
+ Bugs fixed:
|
||||
- g_socket_client_connect_to_host_async leaks memory when
|
||||
target host doesn't respond to ARP.
|
||||
- gi_repository_find_by_gtype is nondeterministic.
|
||||
- Crash in error path of g_dbus_connection_export_menu_model().
|
||||
- Backport !4057 “gdbusmessage: Clean the cached arg0 when
|
||||
setting the message body” to glib-2-80.
|
||||
- Backport !4058 “Tests: Build fixes when running `meson test`
|
||||
without previous builds“ to glib-2-80
|
||||
- Partially backport !4059 “tests: Fix various memory leaks and
|
||||
valgrind / ASAN errors” to glib-2-80
|
||||
- Backport !4066 “Fix several GCC 14 warnings to please
|
||||
msys2-mingw32 CI” to glib-2-80
|
||||
- Backport !4065 “girepository: Don't assume a bitfield has a
|
||||
fixed size” to glib-2-80
|
||||
- Backport !4073 “gmenuexporter: Fix a NULL pointer dereference
|
||||
on an error handling path” to glib-2-80
|
||||
- Backport !4078 “tests: Fix clang compilation failure due to
|
||||
unrecognised option in pragma” to glib-2-80.
|
||||
- Backport !4033 “girepository: Keep an ordered list of the
|
||||
loaded typelibs” to glib-2-80
|
||||
- Backport !4104 “gsocketclient: Fix a leak of the task data on
|
||||
an error path” to glib-2-80
|
||||
+ Updated translations.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 13 14:07:04 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Update to version 2.80.2:
|
||||
+ Fix a regression with IBus caused by the fix for
|
||||
CVE-2024-34397.
|
||||
+ Fix installation directory of the GVariant specification.
|
||||
+ Bugs fixed:
|
||||
- GVariant specification installed in wrong directory.
|
||||
- Backport "gdbusconnection: Fix test signal subscription
|
||||
ordering" to glib-2-80.
|
||||
- Backport “Correct installation directory of GVariant
|
||||
specification” to glib-2-80.
|
||||
- Backport “gdbusconnection: Allow name owners to have the
|
||||
syntax of a well-known name” to glib-2-80.
|
||||
- Changes from version 2.80.1
|
||||
- Update to version 2.78.6 (boo#1224044):
|
||||
+ Fix a regression with IBus caused by the fix for CVE-2024-34397
|
||||
+ Changes in version 2.78.5:
|
||||
+ Fix CVE-2024-34397: GDBus signal subscriptions for well-known
|
||||
names are vulnerable to unicast spoofing (boo#1224044).
|
||||
+ Updated translations.
|
||||
names are vulnerable to unicast spoofing.
|
||||
+ Bugs fixed:
|
||||
- gvfs-udisks2-volume-monitor SIGSEGV in
|
||||
g_content_type_guess_for_tree() due to filename with bad
|
||||
encoding
|
||||
- gcontenttype: Make filename valid utf-8 string before
|
||||
processing.
|
||||
- “gdbusconnection: Don't deliver signals if the sender
|
||||
doesn't match.
|
||||
+ Changes in version 2.78.4:
|
||||
+ Bugs fixed:
|
||||
- “Fix generated RST anchors for methods, signals and
|
||||
properties.
|
||||
- docs/reference: depend on a native gtk-doc.
|
||||
- “gobject_gdb.py: Do not break bt on optimized build.
|
||||
- “gregex: clean up usage of _GRegex.jit_status.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 2 16:17:11 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
@@ -190,104 +64,6 @@ Tue Apr 2 16:17:11 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
- require dbus-launch only if dbus-service is wanted. This helps
|
||||
with stripping down container-only builds (jsc#PED-8153)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 18 12:25:33 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Fold typelib-1_0-GioUnix-2_0 into typeib-1_0-Gio-2_0: gjs loads
|
||||
GioUnix as platform-specific overlay to Gio transparently. Any
|
||||
consumer that wants Gio needs GioUnix on Unix-like systems
|
||||
(boo#1211604).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 8 07:28:10 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Update to version 2.80.0:
|
||||
+ Bugs fixed:
|
||||
- GLib: string malformed for gettext.
|
||||
- Add missing argument placeholders to several command-line
|
||||
tools.
|
||||
- g_warn_if_fail: Document as always evaluating expr.
|
||||
- docs:
|
||||
. Fix a typo in the macros docs page.
|
||||
. Specify gi-docgen as a native dependency.
|
||||
. Fix building with docs enabled and introspection disabled.
|
||||
. Minor improvements to GSignal documentation.
|
||||
+ Updated translations.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 6 14:32:51 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Create glib2-stage1: build glib2 without intrsospection. This
|
||||
intermediate glib2-stage1-devel is used to the build
|
||||
gobject-introspection, which in turn is needed to build the real
|
||||
glib2 packages.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 27 10:43:06 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Update to version 2.79.3:
|
||||
+ Various consistency improvements to the command line
|
||||
libgirepository tools
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 13 09:20:25 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Update to version 2.79.2:
|
||||
+ More work to reduce lock contention and improve performance in
|
||||
GObject.
|
||||
+ More API changes to libgirepository, which is now stable as of
|
||||
this release.
|
||||
+ Import `g-ir-compiler`, `g-ir-generate` and `g-ir-inspect`
|
||||
from gobject-introspection.git and update them to work with
|
||||
girepository-2.0, renaming them to `gi-compile-repository`,
|
||||
`gi-decompile-typelib` and`gi-inspect-typelib`.
|
||||
+ Add new `GLibUnix-2.0.gir`, `GLibWin32-2.0.gir`,
|
||||
`GioUnix-2.0.gir` and `GioWin32-2.0.gir` GIRs which contain
|
||||
platform specific APIs, and are the preferred way for third
|
||||
parties to access those APIs in future; although platform
|
||||
specific APIs which were already exposed in `GLib-2.0.gir` and
|
||||
`Gio-2.0.gir` continue to be listed there; the underlying `.so`
|
||||
files have not changed.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 29 13:38:52 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Update to version 2.79.1:
|
||||
+ Fix a race condition in `g_object_unref()`,
|
||||
+ Various API and build changes to libgirepository as it is not
|
||||
yet API-stable,
|
||||
+ Build fixes on big-endian 64-bit systems and mips64el,
|
||||
+ Reduce contention on global locks within GObject,
|
||||
+ Allow building man pages without the reference documentation,
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 16 07:51:52 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Update to version 2.79.0+158:
|
||||
+ Port to gi-docgen and drop gtk-doc support — dependencies have
|
||||
changed, and Meson needs `-Ddocumentation` now rather than
|
||||
`-Dgtk_doc.
|
||||
+ Move libgirepository into glib.git from
|
||||
gobject-introspection.git — but tools like `g-ir-scanner` are
|
||||
currently still in gobject-introspection.git. For the moment,
|
||||
glib.git needs to be built twice, once with
|
||||
`-Dintrospection=false`, then build gobject-introspection.git,
|
||||
then re-build glib.git with `-Dintrospection=true`. This
|
||||
process will evolve throughout the GLib 2.80 cycle. The API and
|
||||
ABI of libgirepository has changed, and accordingly its version
|
||||
number has been bumped from 1.0 to 2.0 (note: the version
|
||||
number of `GIRepository-*.gir` has been bumped from 2.0 to 3.0.
|
||||
+ Match behaviour for `GAppInfo` searches has changed.
|
||||
+ Rename `GTK_USE_PORTAL` environment variable to
|
||||
`GIO_USE_PORTALS`.
|
||||
+ Bump Meson dependency to 1.2.0 and depend on Python `packaging`
|
||||
module.
|
||||
- Add pkgconfig(gobject-introspection-1.0) BuildRequires: new
|
||||
dependency.
|
||||
- For doc flavor: replace gtk-doc BuildRequires with
|
||||
pkgconfig(gi-docgen), following upstreams port to gi-docgen.
|
||||
- Convert to source service for easier updating.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Dec 7 10:52:01 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
@@ -1039,7 +815,7 @@ Thu Jul 7 11:59:36 UTC 2022 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
+ Use a numeric space (U+2007) for padding with some
|
||||
`g_date_time_format()` placeholders.
|
||||
+ Fix a slow memory leak in `GSocketClient` when using long-lived
|
||||
`GCancellable`s.
|
||||
`GCancellable`s.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jul 3 23:43:59 UTC 2022 - Emily Gonyer <emilyyrose@gmail.com>
|
||||
|
416
glib2.spec
416
glib2.spec
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package glib2
|
||||
# spec file
|
||||
#
|
||||
# Copyright (c) 2025 SUSE LLC
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -18,16 +18,9 @@
|
||||
|
||||
%global flavor @BUILD_FLAVOR@%{nil}
|
||||
%if "%{flavor}" == "doc"
|
||||
%global psuffix -doc
|
||||
%bcond_with systemtap
|
||||
%global psuffix -doc
|
||||
%else
|
||||
%if "%{flavor}" == "stage1"
|
||||
%global psuffix -stage1-devel
|
||||
%bcond_with systemtap
|
||||
%else
|
||||
%global psuffix %{nil}
|
||||
%bcond_without systemtap
|
||||
%endif
|
||||
%global psuffix %{nil}
|
||||
%endif
|
||||
%define libver 2_0-0
|
||||
%define libgio libgio-%{libver}
|
||||
@@ -35,15 +28,15 @@
|
||||
%define libgmodule libgmodule-%{libver}
|
||||
%define libgobject libgobject-%{libver}
|
||||
%define libgthread libgthread-%{libver}
|
||||
%define libgirepository libgirepository-%{libver}
|
||||
%bcond_without systemtap
|
||||
Name: glib2%{psuffix}
|
||||
Version: 2.82.4
|
||||
Version: 2.78.6
|
||||
Release: 0
|
||||
Summary: General-Purpose Utility Library
|
||||
License: LGPL-2.1-or-later
|
||||
Group: Development/Libraries/C and C++
|
||||
URL: https://gitlab.gnome.org/GNOME/glib/
|
||||
Source0: glib-%{version}.tar.zst
|
||||
Source0: https://download.gnome.org/sources/glib/2.78/glib-%{version}.tar.xz
|
||||
Source1: glib2.sh
|
||||
Source2: glib2.csh
|
||||
# Not upstream file. Only proposes upstream packages:
|
||||
@@ -55,16 +48,23 @@ Source6: macros.glib2
|
||||
Source8: gsettings.zsh
|
||||
Source98: glib2-rpmlintrc
|
||||
Source99: baselibs.conf
|
||||
Source200: files.glib2
|
||||
Source201: files.stage1
|
||||
# PATCH-FEATURE-UPSTREAM glib2-bgo569829-gettext-gkeyfile.patch fate300461 bgo569829 vuntz@novell.com -- Look for translation of desktop entry strings via gettext, part that we share with Ubuntu and try to push upstream
|
||||
Patch0: glib2-bgo569829-gettext-gkeyfile.patch
|
||||
# PATCH-FEATURE-OPENSUSE glib2-fate300461-gettext-gkeyfile-suse.patch fate300461 vuntz@novell.com -- Look for translation of desktop entry strings via gettext, part that deals with the openSUSE specific infrastructure (with desktop_translations)
|
||||
Patch1: glib2-fate300461-gettext-gkeyfile-suse.patch
|
||||
# PATCH-FIX-OPENSUSE glib2-suppress-schema-deprecated-path-warning.patch rh#814053 badshah400@gmail.com -- Suppress the deprecated path warning since it fills up screen unnecessarily during package installations/upgrade.
|
||||
Patch2: glib2-suppress-schema-deprecated-path-warning.patch
|
||||
# PATCH-FIX-OPENSUSE glib2-gdbus-codegen-version.patch olaf@aepfle.de -- Remove version string from files generated by gdbus-codegen
|
||||
# PATCH-FIX-OPENSUSE glib2-gdbus-codegen-version.patch olaf@aepfle.de -- Remove version string from files generated by gdbus-codegen
|
||||
Patch4: glib2-gdbus-codegen-version.patch
|
||||
# PATCH-FIX-UPSTREAM glib2-CVE-2024-52533.patch CVE-2024-52533 boo#1233282 mgorse@suse.com -- fix a single byte buffer overflow.
|
||||
Patch5: glib2-CVE-2024-52533.patch
|
||||
# PATCH-FIX-UPSTREAM glib2-CVE-2025-3360.patch CVE-2025-3360 bsc#1240897 qzhao@suse.com -- Fix integer overflow when parsing very long.
|
||||
Patch6: glib2-CVE-2025-3360.patch
|
||||
# PATCH-FIX-UPSTREAM glib2-CVE-2024-4373.patch bsc#1242844 CVE-2025-4373 glgo#GNOME/glib#3677 xwang@suse.com -- carefully handle gssize parameters
|
||||
Patch7: glib2-CVE-2025-4373.patch
|
||||
# PATCH-FIX-UPSTREAM glib2-CVE-2025-6052.patch bsc#1244596 mgorse@suse.com -- fix overflow check when expanding a GString.
|
||||
Patch8: glib2-CVE-2025-6052.patch
|
||||
|
||||
BuildRequires: docbook-xsl-stylesheets
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gcc-c++
|
||||
@@ -73,7 +73,6 @@ BuildRequires: m4
|
||||
BuildRequires: meson >= 0.60.0
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python3-base >= 3.5
|
||||
BuildRequires: python3-docutils
|
||||
# gdbus-codegen is run during the build, so we need python3-xml
|
||||
BuildRequires: python3-xml
|
||||
BuildRequires: xsltproc
|
||||
@@ -83,33 +82,18 @@ BuildRequires: pkgconfig(libffi) >= 3.0.0
|
||||
BuildRequires: pkgconfig(libpcre2-8) >= 10.32
|
||||
BuildRequires: pkgconfig(mount) >= 2.28
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
%if "%{flavor}" != "stage1"
|
||||
BuildRequires: pkgconfig(gobject-introspection-1.0)
|
||||
%endif
|
||||
%if "%{flavor}" == "doc"
|
||||
# Split-provides
|
||||
Provides: glib2-devel:%{_datadir}/gtk-doc/html/gobject/index.html
|
||||
%endif
|
||||
%if "%{flavor}" == "doc"
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: pkgconfig(gi-docgen)
|
||||
BuildRequires: gtk-doc >= 1.32
|
||||
%endif
|
||||
%if %{with systemtap}
|
||||
BuildRequires: systemtap-dtrace
|
||||
BuildRequires: systemtap-headers
|
||||
%endif
|
||||
%if "%{flavor}" == "stage1"
|
||||
Requires: this-is-only-for-build-envs
|
||||
Conflicts: %{libgio}
|
||||
Conflicts: %{libgirepository}
|
||||
Conflicts: %{libglib}
|
||||
Conflicts: %{libgmodule}
|
||||
Conflicts: %{libgobject}
|
||||
Conflicts: %{libgthread}
|
||||
Conflicts: glib2-devel
|
||||
Conflicts: glib2-tools
|
||||
Conflicts: glib2-tools-32bit
|
||||
%endif
|
||||
|
||||
%description
|
||||
GLib is a general-purpose utility library, which provides many useful
|
||||
@@ -159,12 +143,9 @@ GSettings and applications used by the MIME system.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for glib, a general-purpose utility library
|
||||
# Now require the subpackages too
|
||||
Group: Development/Libraries/C and C++
|
||||
# GDbusTest launches dbus-daemon with a special env to not interfere with
|
||||
# the real session bus.
|
||||
Requires: %{_bindir}/dbus-daemon
|
||||
Requires: %{libgio} = %{version}
|
||||
Requires: %{libgirepository} = %{version}
|
||||
Requires: %{libglib} = %{version}
|
||||
Requires: %{libgmodule} = %{version}
|
||||
Requires: %{libgobject} = %{version}
|
||||
@@ -174,12 +155,9 @@ Requires: glibc-devel
|
||||
Requires: pkgconfig
|
||||
# Required by gdbus-codegen
|
||||
Requires: python3-xml
|
||||
Requires: typelib-1_0-GIRepository-3_0 = %{version}
|
||||
Requires: typelib-1_0-GLib-2_0 = %{version}
|
||||
Requires: typelib-1_0-GLibUnix-2_0 = %{version}
|
||||
Requires: typelib-1_0-GModule-2_0 = %{version}
|
||||
Requires: typelib-1_0-GObject-2_0 = %{version}
|
||||
Requires: typelib-1_0-Gio-2_0 = %{version}
|
||||
# GDbusTest launches dbus-daemon with a special env to not interfere with
|
||||
# the real session bus.
|
||||
Requires: %{_bindir}/dbus-daemon
|
||||
#
|
||||
|
||||
%description devel
|
||||
@@ -231,9 +209,9 @@ Group: System/Libraries
|
||||
# The tools are useful for people having libgio
|
||||
# bnc#555605: shared-mime-info is required by libgio to properly detect mime types, but not during build
|
||||
#!BuildIgnore: shared-mime-info
|
||||
Requires: %{name}-tools
|
||||
# bnc#678518: libgio interacts with others by means of dbus-launch
|
||||
Requires: (%{_bindir}/dbus-launch if dbus-service)
|
||||
Requires: %{name}-tools
|
||||
Requires: gio-branding = %{version}
|
||||
Requires: shared-mime-info
|
||||
# Needed for branding packages
|
||||
@@ -271,17 +249,6 @@ a main loop abstraction, and so on.
|
||||
|
||||
The GObject library provides an object-oriented framework for C.
|
||||
|
||||
%package -n %{libgirepository}
|
||||
Summary: Object-Oriented Framework for C
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n %{libgirepository}
|
||||
GLib is a general-purpose utility library, which provides many useful
|
||||
data types, macros, type conversions, string utilities, file utilities,
|
||||
a main loop abstraction, and so on.
|
||||
|
||||
The GObject library provides an object-oriented framework for C.
|
||||
|
||||
%package tests-devel
|
||||
Summary: Tests for the glib2 package
|
||||
Group: Development/Libraries/C and C++
|
||||
@@ -294,76 +261,6 @@ Obsoletes: %{name}-tests < %{version}-%{release}
|
||||
The glib2-tests-devel package contains tests that can be used to verify
|
||||
the functionality of the installed glib2 package.
|
||||
|
||||
%package -n typelib-1_0-GIRepository-3_0
|
||||
Summary: Object-Oriented Framework for C
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n typelib-1_0-GIRepository-3_0
|
||||
GLib is a general-purpose utility library, which provides many useful
|
||||
data types, macros, type conversions, string utilities, file utilities,
|
||||
a main loop abstraction, and so on.
|
||||
|
||||
The GObject library provides an object-oriented framework for C.
|
||||
|
||||
%package -n typelib-1_0-GLib-2_0
|
||||
Summary: Object-Oriented Framework for C
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n typelib-1_0-GLib-2_0
|
||||
GLib is a general-purpose utility library, which provides many useful
|
||||
data types, macros, type conversions, string utilities, file utilities,
|
||||
a main loop abstraction, and so on.
|
||||
|
||||
The GObject library provides an object-oriented framework for C.
|
||||
|
||||
%package -n typelib-1_0-GLibUnix-2_0
|
||||
Summary: Object-Oriented Framework for C
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n typelib-1_0-GLibUnix-2_0
|
||||
GLib is a general-purpose utility library, which provides many useful
|
||||
data types, macros, type conversions, string utilities, file utilities,
|
||||
a main loop abstraction, and so on.
|
||||
|
||||
The GObject library provides an object-oriented framework for C.
|
||||
|
||||
%package -n typelib-1_0-GModule-2_0
|
||||
Summary: Object-Oriented Framework for C
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n typelib-1_0-GModule-2_0
|
||||
GLib is a general-purpose utility library, which provides many useful
|
||||
data types, macros, type conversions, string utilities, file utilities,
|
||||
a main loop abstraction, and so on.
|
||||
|
||||
The GObject library provides an object-oriented framework for C.
|
||||
|
||||
%package -n typelib-1_0-GObject-2_0
|
||||
Summary: Object-Oriented Framework for C
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n typelib-1_0-GObject-2_0
|
||||
GLib is a general-purpose utility library, which provides many useful
|
||||
data types, macros, type conversions, string utilities, file utilities,
|
||||
a main loop abstraction, and so on.
|
||||
|
||||
The GObject library provides an object-oriented framework for C.
|
||||
|
||||
%package -n typelib-1_0-Gio-2_0
|
||||
Summary: Object-Oriented Framework for C
|
||||
Group: System/Libraries
|
||||
# GioUnix has been folded into Gio package, as this is transparently loaded
|
||||
# when including Gio (Platform specific loader in gjs - we know we are on unix)
|
||||
Provides: typelib-1_0-GioUnix-2_0 = %{version}
|
||||
Obsoletes: typelib-1_0-GioUnix-2_0 <= %{version}
|
||||
|
||||
%description -n typelib-1_0-Gio-2_0
|
||||
GLib is a general-purpose utility library, which provides many useful
|
||||
data types, macros, type conversions, string utilities, file utilities,
|
||||
a main loop abstraction, and so on.
|
||||
|
||||
The GObject library provides an object-oriented framework for C.
|
||||
|
||||
%lang_package
|
||||
|
||||
%prep
|
||||
@@ -371,6 +268,9 @@ The GObject library provides an object-oriented framework for C.
|
||||
|
||||
cp -a %{SOURCE1} %{SOURCE2} %{SOURCE5} .
|
||||
cp -a %{SOURCE4} gnome_defaults.conf
|
||||
# replace /usr/bin/env shebangs
|
||||
# /usr/bin/env @PYTHON@ -> /usr/bin/python3
|
||||
grep "%{_bindir}/env @PYTHON@" . -rl | xargs sed -i "s|%{_bindir}/env @PYTHON@|%{_bindir}/python3|g"
|
||||
sed -i "s/1.32.1/1.32/" docs/reference/meson.build
|
||||
|
||||
%build
|
||||
@@ -380,15 +280,11 @@ sed -i "s/1.32.1/1.32/" docs/reference/meson.build
|
||||
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
|
||||
%endif
|
||||
%meson \
|
||||
--default-library=%[ "%{flavor}" == "" ? "both" : "shared" ]\
|
||||
-Dselinux=%[ "%{flavor}" != "stage1" ? "enabled" : "disabled" ] \
|
||||
-Dman-pages=%[ "%{flavor}" != "stage1" ? "true" : "false" ] \
|
||||
--default-library=both \
|
||||
-Dselinux=enabled \
|
||||
-Dman=true \
|
||||
%if "%{flavor}" == "doc"
|
||||
-Ddocumentation=true \
|
||||
%else
|
||||
-Ddocumentation=false \
|
||||
-Dinstalled_tests=%[ "%{flavor}" != "stage1" ? "true" : "false" ] \
|
||||
-Dnls=%[ "%{flavor}" != "stage1" ? "enabled" : "disabled" ] \
|
||||
-Dgtk_doc=true \
|
||||
%endif
|
||||
%if %{with systemtap}
|
||||
-Dsystemtap=true \
|
||||
@@ -397,59 +293,50 @@ sed -i "s/1.32.1/1.32/" docs/reference/meson.build
|
||||
-Dsystemtap=false \
|
||||
-Ddtrace=false \
|
||||
%endif
|
||||
-Dintrospection=%[ "%{flavor}" != "stage1" ? "enabled" : "disabled" ] \
|
||||
-Dglib_debug=disabled \
|
||||
-Dsysprof=disabled \
|
||||
-Dinstalled_tests=true \
|
||||
%{nil}
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
%if "%{flavor}" == "doc"
|
||||
find %{buildroot}/%{_prefix} -not -path "*%{_datadir}/doc/*" -delete || :
|
||||
find %{buildroot}/%{_prefix} -not -path "*%{_datadir}/gtk-doc/*" -delete || :
|
||||
%else
|
||||
%find_lang glib20 %{?no_lang_C}
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/profile.d
|
||||
install -D -m0644 glib2.sh %{buildroot}%{_sysconfdir}/profile.d/zzz-glib2.sh
|
||||
install -D -m0644 glib2.csh %{buildroot}%{_sysconfdir}/profile.d/zzz-glib2.csh
|
||||
install -D -m0644 gnome_defaults.conf %{buildroot}%{_sysconfdir}/gnome_defaults.conf
|
||||
# default apps magic
|
||||
mkdir -p %{buildroot}%{_localstatedir}/cache/gio-2.0 %{buildroot}%{_datadir}/applications
|
||||
>> %{buildroot}%{_localstatedir}/cache/gio-2.0/gnome-mimeapps.list
|
||||
>> %{buildroot}%{_localstatedir}/cache/gio-2.0/xfce-mimeapps.list
|
||||
>> %{buildroot}%{_localstatedir}/cache/gio-2.0/lxde-mimeapps.list
|
||||
>> %{buildroot}%{_localstatedir}/cache/gio-2.0/pantheon-mimeapps.list
|
||||
>> %{buildroot}%{_localstatedir}/cache/gio-2.0/budgie-mimeapps.list
|
||||
>> %{buildroot}%{_localstatedir}/cache/gio-2.0/mate-mimeapps.list
|
||||
ln -s %{_localstatedir}/cache/gio-2.0/gnome-mimeapps.list %{buildroot}%{_datadir}/applications/gnome-mimeapps.list
|
||||
# gio-querymodules magic
|
||||
%if "%{_lib}" == "lib64"
|
||||
mv -T %{buildroot}%{_bindir}/gio-querymodules %{buildroot}%{_bindir}/gio-querymodules-64
|
||||
sed -i -e "/^gio_querymodules=/s/gio-querymodules/gio-querymodules-64/" %{buildroot}%{_libdir}/pkgconfig/gio-2.0.pc
|
||||
%endif
|
||||
mkdir -p %{buildroot}%{_libdir}/gio/modules
|
||||
>> %{buildroot}%{_libdir}/gio/modules/giomodule.cache
|
||||
# gsettings magic
|
||||
>> %{buildroot}%{_datadir}/glib-2.0/schemas/gschemas.compiled
|
||||
# Install rpm macros
|
||||
mkdir -p %{buildroot}%{_rpmmacrodir}
|
||||
cp -t%{buildroot}%{_rpmmacrodir} %{SOURCE6}
|
||||
# Install zsh completion for gsettings
|
||||
mkdir -p %{buildroot}%{_datadir}/zsh/site-functions/
|
||||
cp -T %{SOURCE8} %{buildroot}%{_datadir}/zsh/site-functions/_gsettings
|
||||
mkdir -p %{buildroot}%{_datadir}/gtk-doc/html
|
||||
%fdupes %{buildroot}/%{_prefix}
|
||||
|
||||
%if "%{flavor}" == ""
|
||||
%find_lang glib20 %{?no_lang_C}
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/profile.d
|
||||
install -D -m0644 glib2.sh %{buildroot}%{_sysconfdir}/profile.d/zzz-glib2.sh
|
||||
install -D -m0644 glib2.csh %{buildroot}%{_sysconfdir}/profile.d/zzz-glib2.csh
|
||||
install -D -m0644 gnome_defaults.conf %{buildroot}%{_sysconfdir}/gnome_defaults.conf
|
||||
# default apps magic
|
||||
mkdir -p %{buildroot}%{_localstatedir}/cache/gio-2.0 %{buildroot}%{_datadir}/applications
|
||||
>> %{buildroot}%{_localstatedir}/cache/gio-2.0/gnome-mimeapps.list
|
||||
>> %{buildroot}%{_localstatedir}/cache/gio-2.0/xfce-mimeapps.list
|
||||
>> %{buildroot}%{_localstatedir}/cache/gio-2.0/lxde-mimeapps.list
|
||||
>> %{buildroot}%{_localstatedir}/cache/gio-2.0/pantheon-mimeapps.list
|
||||
>> %{buildroot}%{_localstatedir}/cache/gio-2.0/budgie-mimeapps.list
|
||||
>> %{buildroot}%{_localstatedir}/cache/gio-2.0/mate-mimeapps.list
|
||||
ln -s %{_localstatedir}/cache/gio-2.0/gnome-mimeapps.list %{buildroot}%{_datadir}/applications/gnome-mimeapps.list
|
||||
# gio-querymodules magic
|
||||
|
||||
%if "%{_lib}" == "lib64"
|
||||
mv -T %{buildroot}%{_bindir}/gio-querymodules %{buildroot}%{_bindir}/gio-querymodules-64
|
||||
sed -i -e "/^gio_querymodules=/s/gio-querymodules/gio-querymodules-64/" %{buildroot}%{_libdir}/pkgconfig/gio-2.0.pc
|
||||
%endif
|
||||
|
||||
mkdir -p %{buildroot}%{_libdir}/gio/modules
|
||||
>> %{buildroot}%{_libdir}/gio/modules/giomodule.cache
|
||||
# gsettings magic
|
||||
>> %{buildroot}%{_datadir}/glib-2.0/schemas/gschemas.compiled
|
||||
# Install rpm macros
|
||||
mkdir -p %{buildroot}%{_rpmmacrodir}
|
||||
cp -t%{buildroot}%{_rpmmacrodir} %{SOURCE6}
|
||||
# Install zsh completion for gsettings
|
||||
mkdir -p %{buildroot}%{_datadir}/zsh/site-functions/
|
||||
cp -T %{SOURCE8} %{buildroot}%{_datadir}/zsh/site-functions/_gsettings
|
||||
%fdupes %{buildroot}/%{_prefix}
|
||||
%python3_fix_shebang
|
||||
%if %{suse_version} >= 1600
|
||||
%python3_fix_shebang_path %{buildroot}%{_libexecdir}/installed-tests/glib/*
|
||||
%endif
|
||||
|
||||
# Too many users complain about schemas compiled with wrong permissions
|
||||
# when in fact the system just honours their umask setting
|
||||
# subshell restores umask for paranoia mode
|
||||
# Too many users complain about schemas compiled with wrong permissions
|
||||
# when in fact the system just honours their umask setting
|
||||
# subshell restores umask for paranoia mode
|
||||
%define compile_schemas \
|
||||
(umask 022 && %{_bindir}/glib-compile-schemas %{_datadir}/glib-2.0/schemas)
|
||||
|
||||
@@ -459,6 +346,10 @@ sed -i "s/1.32.1/1.32/" docs/reference/meson.build
|
||||
%filetriggerpostun -n glib2-tools -- %{_datadir}/glib-2.0/schemas
|
||||
%{compile_schemas} &> /dev/null || :
|
||||
|
||||
%post -n %{libglib} -p /sbin/ldconfig
|
||||
%post -n %{libgobject} -p /sbin/ldconfig
|
||||
%post -n %{libgthread} -p /sbin/ldconfig
|
||||
|
||||
%post -n %{libgio}
|
||||
%{ldconfig}
|
||||
for ENV in gnome xfce lxde pantheon mate
|
||||
@@ -468,31 +359,168 @@ do mimeapps="%{_localstatedir}/cache/gio-2.0/$ENV-mimeapps.list" &&
|
||||
[Default Applications]
|
||||
EOF
|
||||
done
|
||||
|
||||
%postun -n %{libgio} -p %{ldconfig}
|
||||
|
||||
%ldconfig_scriptlets -n %{libglib}
|
||||
%ldconfig_scriptlets -n %{libgobject}
|
||||
%ldconfig_scriptlets -n %{libgthread}
|
||||
%ldconfig_scriptlets -n %{libgmodule}
|
||||
%ldconfig_scriptlets -n %{libgirepository}
|
||||
%endif
|
||||
|
||||
%check
|
||||
### FIXME ### Figure out how to run the "stable tests" only ref info from upstream.
|
||||
#%%meson_test
|
||||
|
||||
%post -n libgmodule-2_0-0 -p /sbin/ldconfig
|
||||
%postun -n %{libglib} -p %{ldconfig}
|
||||
%postun -n %{libgobject} -p %{ldconfig}
|
||||
%postun -n %{libgthread} -p %{ldconfig}
|
||||
%postun -n %{libgio} -p %{ldconfig}
|
||||
%postun -n %{libgmodule} -p %{ldconfig}
|
||||
|
||||
%if "%{flavor}" == "doc"
|
||||
%files
|
||||
%{_datadir}/doc/g*-2.0/
|
||||
%endif
|
||||
%{_datadir}/gtk-doc/html/gio
|
||||
%{_datadir}/gtk-doc/html/glib
|
||||
%{_datadir}/gtk-doc/html/gobject
|
||||
%else
|
||||
|
||||
%if "%{flavor}" == ""
|
||||
%include %{SOURCE200}
|
||||
%endif
|
||||
%files tools
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%doc README.md
|
||||
%{_bindir}/gapplication
|
||||
%{_bindir}/gdbus
|
||||
%{_bindir}/gio
|
||||
%{_bindir}/gio-querymodules*
|
||||
%{_bindir}/glib-compile-schemas
|
||||
%{_bindir}/gresource
|
||||
%{_bindir}/gsettings
|
||||
%{_libexecdir}/gio-launch-desktop
|
||||
%dir %{_datadir}/bash-completion
|
||||
%dir %{_datadir}/bash-completion/completions
|
||||
%{_datadir}/bash-completion/completions/gapplication
|
||||
%{_datadir}/bash-completion/completions/gdbus
|
||||
%{_datadir}/bash-completion/completions/gio
|
||||
%{_datadir}/bash-completion/completions/gresource
|
||||
%{_datadir}/bash-completion/completions/gsettings
|
||||
%dir %{_datadir}/zsh
|
||||
%dir %{_datadir}/zsh/site-functions
|
||||
%{_datadir}/zsh/site-functions/_gsettings
|
||||
%{_mandir}/man1/gapplication.1%{?ext_man}
|
||||
%{_mandir}/man1/gdbus.1%{?ext_man}
|
||||
%{_mandir}/man1/gio.1%{?ext_man}
|
||||
%{_mandir}/man1/gio-querymodules.1%{?ext_man}
|
||||
%{_mandir}/man1/glib-compile-schemas.1%{?ext_man}
|
||||
%{_mandir}/man1/gresource.1%{?ext_man}
|
||||
%{_mandir}/man1/gsettings.1%{?ext_man}
|
||||
# We put those files here, but they don't really belong here. They just don't
|
||||
# have a better home... The zzz-glib2 scripts could arguably be in
|
||||
# libglib-2_0-0 but that would break the shared library policy.
|
||||
%{_sysconfdir}/profile.d/zzz-glib2.*
|
||||
|
||||
%if "%{flavor}" == "stage1"
|
||||
%include %{SOURCE201}
|
||||
%files -n gio-branding-upstream
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%doc README.Gsettings-overrides
|
||||
%config (noreplace) %{_sysconfdir}/gnome_defaults.conf
|
||||
|
||||
%files -n %{libglib}
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%doc NEWS
|
||||
%{_libdir}/libglib*.so.*
|
||||
|
||||
%files -n %{libgmodule}
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%{_libdir}/libgmodule*.so.*
|
||||
|
||||
%files -n %{libgobject}
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%{_libdir}/libgobject*.so.*
|
||||
|
||||
%files -n %{libgthread}
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%{_libdir}/libgthread*.so.*
|
||||
|
||||
%files -n %{libgio}
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%{_libdir}/libgio*.so.*
|
||||
%dir %{_libdir}/gio
|
||||
%dir %{_libdir}/gio/modules
|
||||
%ghost %{_libdir}/gio/modules/giomodule.cache
|
||||
%dir %{_datadir}/glib-2.0/
|
||||
%dir %{_datadir}/glib-2.0/schemas/
|
||||
%ghost %{_datadir}/glib-2.0/schemas/gschemas.compiled
|
||||
%{_datadir}/applications/gnome-mimeapps.list
|
||||
%dir %{_localstatedir}/cache/gio-2.0
|
||||
%ghost %{_localstatedir}/cache/gio-2.0/gnome-mimeapps.list
|
||||
%ghost %{_localstatedir}/cache/gio-2.0/xfce-mimeapps.list
|
||||
%ghost %{_localstatedir}/cache/gio-2.0/lxde-mimeapps.list
|
||||
%ghost %{_localstatedir}/cache/gio-2.0/pantheon-mimeapps.list
|
||||
%ghost %{_localstatedir}/cache/gio-2.0/budgie-mimeapps.list
|
||||
%ghost %{_localstatedir}/cache/gio-2.0/mate-mimeapps.list
|
||||
|
||||
%files devel
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%{_bindir}/gdbus-codegen
|
||||
%{_bindir}/glib-compile-resources
|
||||
%{_bindir}/glib-genmarshal
|
||||
%{_bindir}/glib-gettextize
|
||||
%{_bindir}/glib-mkenums
|
||||
%{_bindir}/gobject-query
|
||||
%{_bindir}/gtester
|
||||
%{_bindir}/gtester-report
|
||||
%{_mandir}/man?/gdbus-codegen*%{ext_man}
|
||||
%{_mandir}/man?/glib-compile-resources*%{ext_man}
|
||||
%{_mandir}/man?/glib-genmarshal*%{ext_man}
|
||||
%{_mandir}/man?/glib-gettextize*%{ext_man}
|
||||
%{_mandir}/man?/glib-mkenums*%{ext_man}
|
||||
%{_mandir}/man?/gobject-query*%{ext_man}
|
||||
%{_mandir}/man?/gtester*%{ext_man}
|
||||
%dir %{_datadir}/aclocal
|
||||
%{_datadir}/aclocal/glib-2.0.m4
|
||||
%{_datadir}/aclocal/glib-gettext.m4
|
||||
%{_datadir}/aclocal/gsettings.m4
|
||||
%dir %{_datadir}/gettext/its/
|
||||
%{_datadir}/gettext/its/gschema*
|
||||
%dir %{_datadir}/glib-2.0/
|
||||
%{_datadir}/glib-2.0/dtds/
|
||||
%{_datadir}/glib-2.0/gdb/
|
||||
%{_datadir}/glib-2.0/gettext/
|
||||
%{_datadir}/glib-2.0/codegen/
|
||||
%{_datadir}/glib-2.0/schemas/gschema.dtd
|
||||
%{_datadir}/glib-2.0/valgrind/
|
||||
%{_includedir}/glib-2.0
|
||||
%{_includedir}/gio-unix-2.0
|
||||
%{_libdir}/lib*.so
|
||||
%dir %{_libdir}/glib-2.0/
|
||||
%{_libdir}/glib-2.0/include/
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
%{_datadir}/gdb/auto-load/%{_libdir}/*-gdb.py
|
||||
%if %{with systemtap}
|
||||
%dir %{_datadir}/systemtap
|
||||
%dir %{_datadir}/systemtap/tapset
|
||||
%dir %{_datadir}/systemtap/tapset/*
|
||||
%{_datadir}/systemtap/tapset/*/libgio-*.so.*.stp
|
||||
%{_datadir}/systemtap/tapset/*/libglib-*.so.*.stp
|
||||
%{_datadir}/systemtap/tapset/*/libgobject-*.so.*.stp
|
||||
%endif
|
||||
%{_rpmmacrodir}/macros.glib2
|
||||
# Own these directories to avoid build requirement on gdb
|
||||
# only for directories ownership
|
||||
%dir %{_datadir}/gdb
|
||||
%dir %{_datadir}/gdb/auto-load
|
||||
%dir %{_datadir}/gdb/auto-load%{_prefix}
|
||||
%dir %{_datadir}/gdb/auto-load%{_libdir}
|
||||
# Own these directories to not avoid breakages throughout the project
|
||||
%dir %{_datadir}/gtk-doc
|
||||
%dir %{_datadir}/gtk-doc/html
|
||||
|
||||
%files devel-static
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%{_libdir}/lib*.a
|
||||
|
||||
%files lang -f glib20.lang
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
|
||||
%files tests-devel
|
||||
%license LICENSES/LGPL-2.1-or-later.txt
|
||||
%{_libexecdir}/installed-tests
|
||||
%attr(0755 - -) %{_libexecdir}/installed-tests/glib/taptestrunner.py
|
||||
%attr(0755 - -) %{_libexecdir}/installed-tests/glib/x-content/unix-software/autorun.sh
|
||||
%{_datadir}/installed-tests
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
|
Reference in New Issue
Block a user