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.
Provides
Requires
License
LGPL-2.1-or-later
Changelog
* Tue Jan 27 2026 mgorse@suse.com
- Add CVE fixes:
+ glib2-CVE-2026-1484.patch (bsc#1257355 CVE-2026-1484
glgo#GNOME/glib!4979).
+ glib2-CVE-2026-1485.patch (bsc#1257354 CVE-2026-1485
glgo#GNOME/glib!4981).
+ glib2-CVE-2026-1489.patch (bsc#1257353 CVE-2026-1489
glgo#GNOME/glib!4984).
* Wed Jan 21 2026 mgorse@suse.com
- Add glib2-CVE-2026-0988.patch: fix a potential integer overflow
in g_buffered_input_stream_peek (bsc#1257049 CVE-2026-0988
glgo#GNOME/glib#3851).
* Thu Dec 11 2025 mgorse@suse.com
- Add CVE fixes:
+ glib2-CVE-2025-13601-1.patch, glib2-CVE-2025-13601-2.patch
(bsc#1254297 CVE-2025-13601 glgo#GNOME/glib#3827).
+ glib2-CVE-2025-14087-1.patch, glib2-CVE-2025-14087-2.patch,
glib2-CVE-2025-14087-3.patch (bsc#1254662 CVE-2025-14087
glgo#GNOME/glib#3834).
+ glib2-CVE-2025-14512.patch (bsc#1254878 CVE-2025-14512
glgo#GNOME/glib#3845).
* Fri Aug 08 2025 bjorn.lie@gmail.com
- Update to version 2.84.4 (bsc#1249055):
+ Bugs fixed:
- (CVE-2025-7039) (#YWH-PGM9867-104) Buffer Under-read on GLib
through glib/gfileutils.c via get_tmp_file()
- GFile leak in g_local_file_set_display_name during error
handling
- Incorrect output parameter handling in closure helper of
g_settings_bind_with_mapping_closures
- gfileutils: fix computation of temporary file name
- Fix GFile leak in g_local_file_set_display_name()
- gthreadpool: Catch pool_spawner creation failure
- gio/filenamecompleter: Fix leaks
- gfilenamecompleter: Fix g_object_unref() of undefined value
* Fri Jun 13 2025 dimstar@opensuse.org
- Update to version 2.84.3:
+ Bug fixed: gstring: Fix overflow check when expanding the
string (CVE-2025-6052, boo#1244596).
* Wed May 21 2025 bjorn.lie@gmail.com
- Update to version 2.84.2:
+ Bugs fixed:
- gclosure: fix ATOMIC_CHANGE_FIELD to read vint atomically
- Windows: fix wrong typelib path
- gstring: carefully handle gssize parameters
- Update macOS job for new CI runner
- gdate: Call tzset before localtime_r
- Backport -Wsign-conversion fixes for g_get_locale_variants()
- glocalfile: Disable faccessat()-based query_exists on Android
* Thu Apr 03 2025 bjorn.lie@gmail.com
- Update to version 2.84.1:
+ Fix test failure when building against gobject-introspection
≥1.83.4
+ Bugs fixed:
- 2.84.0 build failure on Linux:
../gio/gnetworkmonitornetlink.c:47:10: fatal error:
netlink/netlink_route.h: No such file or directory
- test failure with gobject-introspection 1.83.4: warning:
element doc:format from state 3 is unknown, ignoring
- gio/trash does not handle special characters well
- `g_cancellable_connect()` documentation incorrect
- g_cancellable_connect(): is it safe to unref cancellable from
callback?
- Crash with some registry key values in GWin32AppInfo
- Memory sanitizer fixes
- gobject: Be consistent in using atomic logic to handle the
GParamSpecPool
- gsettings: Port docs to gi-docgen format, add missing
annotations and make various improvements
- tests: Don't install runner scripts without installed_tests
- docs: Document GSignalFlags members added after 2.0
- tests: Add a test for g_object_freeze_notify() being called
too often
- gfileinfo: Slightly expand docs for
g_file_info_get_attribute_as_string()
- gi: Dynamically set doc-format
- tests: Various fixes to create temporary files in /tmp rather
than the build directory
- gdbusnameowning: Convert docs to gi-docgen linking syntax
- giounix-private: Fix macro for checking for epoll_create1()
- Fix LGPL in header
- gutils: make documentation of g_set_prgname() clearer
- docs: Add some detail
- gspawn-win32: Fix potential integer overflows in argv
handling
- gvarianttype: Improve docs on type validation
+ Updated translations.
* Thu Mar 06 2025 bjorn.lie@gmail.com
- Update to version 2.84.0:
+ Bugs fixed:
- tests: Minor fixes to reference and stream-rw_all tests
- gdebugcontrollerdbus: Fix a minor typo in a code example in
the docs
+ Updated translations.
* Fri Feb 28 2025 bjorn.lie@gmail.com
- Update to version 2.83.5 (Unstable):
+ A few improvements for when GLib is used as a subproject
+ Fix out-of-order parameters in a marshaller generated by
`gdbus-codegen`
+ Various bugs fixed.
+ Updated translations.
* Thu Feb 20 2025 bjorn.lie@gmail.com
- Update to version 2.83.4 (Unstable):
+ Fix Python shebang paths so they work on Windows again
+ Fix refcounting semantics of
`g_dbus_connection_register_object_with_closures()` by adding a
replacement API
+ Support static vfuncs in GIRepository
+ Add support for QNX8.0
+ Add a soft dependency on C11 — if your toolchain doesn’t
support C11, you have six months to tell us before this becomes
a hard dependency
+ Port from `net.hadess.PowerProfiles` to
`org.freedesktop.UPower.PowerProfiles` for
`GPowerProfileMonitorDBus`
+ Various bugs fixed.
+ Updated translations.
+ gdatetime: Fix integer overflow when parsing very long ISO8601 inputs.
(CVE-2025-3360, bsc#1240897)
- Rebase patches with quilt.
* Thu Feb 20 2025 bjorn.lie@gmail.com
- Update to version 2.83.3 (Unstable):
+ Fix build-time paths appearing in generated `Gio-2.0.gir` and
`GioUnix-2.0.gir` files
+ Fix crash on macOS when opening links
+ Bugs fixed:
- Recent `(inout)` changes caused unintended side-effects with
`GWeakRef`
- Missing nullable annotation on parameter user_data and on the
return value of GVfsFileLookupFunc callback
- GBytes semantics of handling empty strings are inconsistent
and confusing
- Bad anchor link in g_signal_connect() documentation
- build-time paths to gio/gunixmounts.h, etc. end up in
Gio-2.0.gir, GioUnix-2.0.gir
- Links crash application on MacOS due to lack of machine-id
file
- Requirement of GUnixMountMonitor for a Valid Timestamp from
unix_mount_at is not Suffeciently Documented
- gmacros: _G_BOOLEAN_EXPR_IMPL is incompatible with c++
functions marked constexpr
- [th/gdataset-index] add a lookup index (GHashTable) to
`GData`
- GWin32: Add g_win32_com_clear()
- docs: Add --generate-md to the gdbus-codegen documentation
- docs: Fix some backslash escaping issues in doc comments
- gio, gobject: Improve reproducibility of enumtypes headers
- gstrfuncs: Drop a redundant paragraph
- Don't define test setups unless we're testing
- build: Make the introspection feature yield
- Fix pointer-to-paramref syntax in docs
- gio: Fix a link to a specifications document
- Add several assertions to help static analysis and fix some
GIR annotations
- Fix GCC version detection for GUINT*_SWAP_LE_BE
- gioenums: Add deprecation for FLAGS_NONE
- docs: Use gi-docgen syntax in main-loop.md
- docs: Document more extension points
- docs: Clarify that g_array_unref() works like
g_ptr_array_unref()
* Thu Feb 20 2025 dimstar@opensuse.org
- Update to version 2.83.2:
+ This release has the same code as 2.83.1, but contains a fix
for release archive generation which means that 2.83.1 does not
have a release archive
+ Bugs fixed: ci: Enable -Dintrospection for dist builds.
- Changes from version 2.83.1:
+ Heap buffer overflow read in utf8_verify_ascii().
+ Build failure “'ifunc' is not supported on this target” with
muslc.
+ 2.82.3 regression: lollypop crashes on startup.
+ Replace procfs linuxism with kinfo freebsdism.
* Thu Feb 20 2025 dimstar@opensuse.org
- Update to version 2.83.0:
+ Update to Unicode 16.0.0; there may be bugs in linebreaking
support.
+ Optimise UTF-8 validation of strings, including use of ifuncs
to prevent spurious warnings from sanitizers and valgrind.
+ 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.
+ Bump Meson dependency to 1.4.0.
+ Rename multiple `g_unix_mount_*()` APIs to
`g_unix_mount_entry_*()` (#3492.
+ Add a new `GFileMonitor` backend for macOS and BSD.
+ Add APIs for sync, async and finish function annotations to
libgirepository.
+ Updated translations.
* Thu Feb 20 2025 bjorn.lie@gmail.com
- Update to version 2.82.5:
+ Bugs fixed:
- gosxappinfo: Correctly launch list of files
- Don't mark test setups as default in subprojects
- gdatetime: Fix integer overflow when parsing very long
ISO8601 inputs
* Wed Jan 15 2025 bjorn.lie@gmail.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
* Mon Dec 09 2024 bjorn.lie@gmail.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
* Wed Nov 27 2024 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 2024 bjorn.lie@gmail.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.
* Fri Sep 20 2024 bjorn.lie@gmail.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 2024 pgajdos@suse.com
- remove dependency on /usr/bin/python3 using
%python3_fix_shebang{,_path} macros, [bsc#1212476]
* Mon Aug 26 2024 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 2024 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 08 2024 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 2024 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 2024 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
+ Fix CVE-2024-34397: GDBus signal subscriptions for well-known
names are vulnerable to unicast spoofing (boo#1224044).
+ Updated translations.
* Tue Apr 02 2024 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 2024 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 08 2024 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 06 2024 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 2024 dimstar@opensuse.org
- Update to version 2.79.3:
+ Various consistency improvements to the command line
libgirepository tools
* Tue Feb 13 2024 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 2024 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 2024 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 07 2023 bjorn.lie@gmail.com
- Update to version 2.78.3:
+ Fix a crash-causing regression in xdgmime
+ Bugs fixed:
- Crash in __gio_xdg_cache_mime_type_subclass
- Backport “xdgmime: Update to upstream commit c2c814d4051f232”
to glib-2-78
* Tue Dec 05 2023 bjorn.lie@gmail.com
- Update to version 2.78.2:
+ Bugs fixed:
- check for #ifdef PTRACE_O_EXITKILL will always fail since it
isn't a macro
- gsubprocess build-time test intermittently timing out since
2.78.1
- “meson: Improve PTRACE_O_EXITKILL presence check”
- “Make GQuark register intentional leaks”
- “gsignalgroup: Avoid function call with side effect in
g_return_* macro”
- “tests: Don't assume that sh optimizes simple commands into
exec”
- “xdgmime: Handle buggy type definitions with circular
inheritance”
- “collate: Don't segfault on bad input”
* Tue Nov 28 2023 dimstar@opensuse.org
- Use %autosetup instead of %setup/%patch.
* Wed Oct 25 2023 bjorn.lie@gmail.com
- Update to version 2.78.1:
+ Fix truncating files when `g_file_set_contents_full()` is
called without `G_FILE_SET_CONTENTS_CONSISTENT`
+ Fix `-Dlibelf=disabled` on Linux
+ Bugs fixed:
- NetworkManager 1.44.0 crashes repeatedly with glib 2.78.0
- gsubprocess-testprog.c: build error with cygwin
(sys/ptrace.h: No such file or directory)
- gio clears modification time in microseconds when setting
with `set_modification_date_time`
- Build of glib 2.78.0 ignores -Dlibelf=disabled
- glib-2.78.0 fails at gio/tests/gsubprocess.p/gsubprocess.c.o
- Segfault when creating GIO GPropertyAction without properties
- `g_file_set_contents_full()` doesn't truncate the file
(without `G_FILE_SET_CONTENTS_CONSISTENT`)
- guniprop.c: Avoid creating (temporarily) out-of-bounds
pointers
- Fixes for integer cast warnings when targeting CHERI
- Fix test_find_program on FreeBSD
- gconstructor.h: Ensure [c|d]tor prototypes are present for
MSVC
- Fix gutils-user-database test on macOS
- Add value annotation to G_TYPE_FUNDAMENTAL_MAX
- meson: Fix Windows build with PCRE2 as sibling subproject
- gconstructor.h: Ensure [c|d]tor prototypes are present for
MSVC
- glocalfileinfo: Preserve microseconds for access/modify times
- Make sure the `GTask` is freed on a graceful disconnect
- Buffer needs to be aligned correctly to receive
linux_dirent64.
- gtestutils.h: Fix warning with -Wsign-conversion caused by
g_assert_cmpint
- tests: Drop unnecessary include from gsubprocess-testprog.c
- wakeup: do single read when using eventfd()
- wakeup: Fix g_wakeup_acknowledge if signal comes in”
- Use g_task_return in task threads
- build: Fix -Dlibelf=disabled on Linux
- gfileutils: Add a missing ftruncate() call when writing files
+ Updated translations.
- Drop 0005-gthreadedresolver-Fix-race.patch: Fixed upstream.
* Tue Oct 24 2023 bjorn.lie@gmail.com
- Use sed call to replace gio-querymodules with gio-querymodules-64
in gio-2.0.pc where appropiate.
* Wed Oct 11 2023 dimstar@opensuse.org
- Require /usr/bin/dbus-daemon by the devel package: GDBusTest
launches an own dbus-daemon with a separate environment, so that
test code does not have to rely on the session bus. Ensure
consumers of GDBusTest have the needed dep present.
- Change the dbus-launch Requires to %{_bindir}/dbus-launch: be
flexible about potential future package layout changes.
* Thu Sep 28 2023 scabrero@suse.de
- Fix NetworkManager crashing repeatedly with glib 2.78.0;
(bsc#1215709); Add patch 0005-gthreadedresolver-Fix-race.patch
* Fri Sep 08 2023 bjorn.lie@gmail.com
- Update to version 2.78.0:
+ Bugs fixed:
- Error handling of invalid GKeyFile string escape sequences
changed in GLib 2.77.3
- gdb: Workaround optimized out quark_seq_id
- meson: fix `gnetworking.h` install tag
- gthread: Annotate g_thread_exit() with G_NORETURN
- Fix gutils-user-database unit test
+ Updated translations.
* Mon Sep 04 2023 luc14n0@opensuse.org
- Update to version 2.77.3:
+ Bugs fixed:
- GSettings schemas default value translations don't work when
using l10n=time.
- gdbus-codegen eats indentation in RST i