The following modules have been removed in this release:
   gcr-3, evince, gtksourceview-4, gnome-keyring

The following modules have a new version:
- adwaita-fonts (50.0 => 51.0)
- adwaita-icon-theme (50.alpha => 51.0)
- at-spi2-core (2.59.90 => 2.61.90)
- baobab (49.1 => 50.0)
- blueprint-compiler (0.20.0 => 0.22.2)
- calls (49.1.1 => 50.0)
- d-spy (50.rc => 50.0)
- dconf (0.49.0 => 51.0)
- decibels (49.0 => 49.6.1)
- epiphany (50.rc => 51.0)
- evolution-data-server (3.59.3 => 3.62.0)
- foundry (1.1.rc => 1.2.0)
- gcr (4.4.0.1 => 4.4.1)
- gdk-pixbuf (2.44.5 => 2.44.8)
- gdm (50.rc => 51.0)
- gexiv2 (0.16.0 => 0.16.2)
- gjs (1.87.90 => 1.90.0)
- glib (2.87.3 => 2.90.0)
- glib-networking (2.80.1 => 2.90.0)
- glibmm (2.86.0 => 2.90.0)
- glycin (2.1.rc => 2.2.1)
- gnome-app-list (3.0 => 2026.08)
- gnome-autoar (0.4.5 => 0.5.2)
- gnome-backgrounds (50.alpha => 51.0)
- gnome-bluetooth (47.1 => 47.2)
- gnome-boxes (49.1 => 50.0)
- gnome-builder (50.rc.1 => 50.0)
- gnome-calculator (50.beta => 51.0)
- gnome-calendar (50.rc => 51.0)
- gnome-characters (50.alpha => 51.0)
- gnome-clocks (50.beta => 51.0)
- gnome-connections (50.rc => 51.0)
- gnome-console (49.2 => 51.0)
- gnome-contacts (50.alpha => 51.0)
- gnome-control-center (50.rc => 51.0)
- gnome-desktop (44.5 => 51.0)
- gnome-font-viewer (49.0 => 50.0)
- gnome-initial-setup (50.rc => 51.0)
- gnome-logs (49.0 => 50.0)
- gnome-maps (50.rc => 51.0)
- gnome-music (49.1 => 50.0)
- gnome-online-accounts (3.57.1 => 3.58.1)
- gnome-remote-desktop (50.rc => 51.0)
- gnome-session (50.rc => 51.0)
- gnome-settings-daemon (50.rc => 51.0)
- gnome-shell (50.rc => 51.0)
- gnome-software (50.rc => 51.0)
- gnome-system-monitor (50.beta.1 => 51.0)
- gnome-text-editor (50.rc => 51.0)
- gnome-tour (50.rc => 50.0)
- gnome-user-docs (50.beta => 51.0)
- gnome-user-share (48.2 => 48.3)
- gnome-weather (50.beta => 50.0)
- gsettings-desktop-schemas (50.rc => 51.0)
- gssdp (1.6.4 => 1.6.6)
- gst-thumbnailers (1.0.rc => 1.1.0)
- gtk (4.21.6 => 4.24.0)
- gtk+-3 (3.24.51 => 3.24.52)
- gtk-doc (1.35.1 => 1.36.1)
- gtkmm (4.21.3 => 4.24.0)
- gtksourceview (5.19.0 => 5.21.0)
- gupnp (1.6.9 => 1.6.10)
- gupnp-av (0.14.4 => 0.14.5)
- gvfs (1.59.90 => 1.62.0)
- gweather-locations (2025.1 => 2026.2)
- libadwaita (1.9.rc => 1.10.0)
- libcloudproviders (0.4.0 => 0.4.1)
- libdex (1.1.rc => 1.2.0)
- libgsf (1.14.55 => 1.14.58)
- libgweather (4.5.0 => 4.6.0)
- librsvg (2.62.0 => 2.63.0)
- libsecret (0.21.7 => 0.21.8.2)
- libshumate (1.6.rc => 1.7.0)
- libsoup (3.6.6 => 3.7.3)
- localsearch (3.11.rc => 3.12.0)
- loupe (50.rc => 51.0)
- manuals (50.rc => 50.1)
- mm-common (1.0.7 => 1.0.8)
- msgraph (0.3.4 => 0.3.5)
- mutter (50.rc => 51.0)
- nautilus (50.rc => 51.0.1)
- orca (50.rc => 51.0)
- pango (1.57.0 => 1.58.2)
- pangomm (2.56.1 => 2.56.2)
- papers (50.rc => 51.0)
- pyatspi (2.58.1 => 2.58.2)
- pygobject (3.56.0 => 3.58.0)
- rygel (45.1 => 46.0)
- showtime (50.rc => 50.0)
- simple-scan (49.1 => 50.0)
- snapshot (50.rc => 51.0)
- sushi (50.rc.1 => 51.0)
- sysprof (50.rc => 51.0)
- tecla (50.rc => 51.0)
- template-glib (3.39.0 => 3.40.0)
- tinysparql (3.11.rc => 3.12.0)
- totem-pl-parser (3.26.6 => 3.26.7)
- vala (0.56.18 => 0.56.19)
- vte (0.83.91 => 0.84.1)
- xdg-desktop-portal-gnome (50.rc => 51.0)
- yelp (49.0 => 49.2)
- zenity (4.2.1 => 4.2.2)

The following modules weren't upgraded in this release:
   cantarell-fonts, dconf-editor, folks, gcab, geocode-glib, gi-docgen, gnome-color-manager, gnome-disk-utility, gnome-menus, gobject-introspection, gom, grilo, grilo-plugins, gsound, gtk-vnc, gupnp-dlna, json-glib, jsonrpc-glib, libgee, libgit2-glib, libgtop, libgxps, libhandy, libmanette, libmanette-0.2, libmediaart, libnma, libnotify, libpanel, libpeas, librest, libspelling, mobile-broadband-provider-info, phodav, startup-notification, xdg-user-dirs-gtk, yelp-tools, yelp-xsl

========================================
  adwaita-icon-theme
========================================

51.0
51.beta
- XDG Projects folder (issue #219)

50.0
- use old format of the legacy icons for gtk3

50.rc
- reintroduce legacy icons because themes. (issue #316)


========================================
  at-spi2-core
========================================

What's new in at-spi2-core 2.61.90:

* libatspi: Fix transfer annotation on atspi_document_get_text_selections

* Add a Ready signal to org.a11y.atspi.Cache.

* Add ATSPI_STATE_DEFAULT as an alias for ATSPI_STATE_IS_DEFAULT, so that
  StateChanged signals for the equivalent atk state are handled.

What's new in at-spi2-core 2.61.1:

* atk-bridge: Attempt to fix a crash in get_registered_event_listeners

* AtspiDevice: Avoid assigning 0 as a grab id

* Remove G_GNUC_CONST from *_get_type_declarations

What's new in at-spi2-core 2.61.0:

* Add atspi_set_g_main_loop_reentrancy. If this is enabled, then
  libatspi will use a GMainLoop when waiting for replies from DBus calls.
  This is off by default but can be enabled in cases where reentrancy is
  needed.

* at-spi-bus-launcher: Rework the way org.a11y.Status.IsEnabled is
  handled. At-spi-bus-launcher now listens for ATs registering events and
  assumes that accessibility is enabled if events are registered, rather
  than relying on the value of a gsettings key.

* meson: Build dbind with -DG_LOG_DOMAIN=atspi.

* libatspi: Disable direct DBus connections if ATSPI_DISABLE_P2P is set.

* Do not call GetItems if ATSPI_NO_CACHE is set.

What's new in at-spi2-core 2.60.5:

* Fix a possible crash in atk_bridge_adaptor_cleanup.

* Attempt to fix event listeners still being wrongly deregistered in some
  cases.

What's new in at-spi2-core 2.60.4:

* AtspiDeviceA11yManager: Make use of pid when returned by queryPointer

* Fix deregistering application-specific event listeners

What's new in at-spi2-core 2.60.3:

* libatspi: Fix another NULL pointer dereference.

What's new in at-spi2-core 2.60.2:

* atspi-device-legacy: add null checks for when x11 isnt available.

* python: Fix __getitem__ with a negative offset.

* Fix a NULL pointer dereference when sending an event.

* device-x11: Fall back on raw key events if there is no focus.

What's new in at-spi2-core 2.60.1:

* Detect unresponsive applications, and do not expose them as children
  of the desktop.

* Attempt to fix a crash when opening a group chat in pidgin that contains
  new messages.

What's new in at-spi2-core 2.60.0:

* Fix detection of whether the org.freedesktop.a11y.PointerLocator
  interface is available.


========================================
  baobab
========================================

50.0
====
* Port help overlay to AdwShortcutsDialog (Automeris naranja)

* Translation updates:
  - Basque (Asier Saratsua Garmendia)
  - Bulgarian (twlvnn kraftwerk)
  - Catalan (Victor Dargallo)
  - Chinese (China) (luming zh)
  - Cornish (Flynn Peck)
  - Czech (Daniel Rusek)
  - Danish (Ask Hjorth Larsen)
  - English (United Kingdom) (Bruce Cowan)
  - Esperanto (Kristjan ESPERANTO)
  - Finnish (Jiri Grönroos)
  - French (Lucien Ouoba)
  - Galician (Fran Diéguez)
  - Georgian (Ekaterine Papava)
  - German (Jürgen Benvenuti)
  - Greek, Modern (1453-) (Efstathios Iosifidis)
  - Hebrew (Yaron Shahrabani)
  - Hungarian (Balázs Úr)
  - Indonesian (Andika Triwidada)
  - Japanese (Makoto Sakaguchi)
  - Kazakh (Baurzhan Muftakhidinov)
  - Korean (Seong-ho Cho)
  - Lithuanian (Aurimas Aurimas Černius)
  - Nepali (Pawan Chitrakar)
  - Occitan (post 1500) (Quentin PAGÈS)
  - Persian (Danial Behzadi)
  - Polish (Victoria)
  - Portuguese (Hugo Carvalho)
  - Portuguese (Brazil) (Rafael Fontenelle)
  - Romanian (Antonio Marin)
  - Russian (Artur S0)
  - Slovenian (Martin)
  - Spanish (Daniel Mustieles)
  - Swedish (Anders Jonsson)
  - Turkish (Sabri Ünal)
  - Uighur (Abduqadir Abliz)
  - Ukrainian (Yuri Chornoivan)


========================================
  calls
========================================

gnome-calls 50.0
----------------
Released March 2026
* Lookup emergency numbers from mobile-broadband-provider-info
* Local ringback while alerting peer for SIP calls
  (needs new dependency: gsound)
* Add proxy support for SIP
* Fix systemd unit not starting in daemon mode
  and restart on failure
* Logging respects G_MESSAGES_DEBUG again
* Avoid crash with fortified sources in the network watch module
* Housekeeping (CI, build and metainfo files)
* Issues fixed:
    * https://gitlab.gnome.org/GNOME/calls/-/issues/351
    * https://gitlab.gnome.org/GNOME/calls/-/issues/714
    * https://gitlab.gnome.org/GNOME/calls/-/issues/718
    * https://gitlab.gnome.org/GNOME/calls/-/issues/719
    * https://gitlab.gnome.org/GNOME/calls/-/issues/720
    * https://gitlab.gnome.org/GNOME/calls/-/issues/724
* Contributors:
    * Christian Glombek
    * Evangelos Ribeiro Tzaras
    * Guido Günther
    * Martin Prejsa
    * Sabri Ünal
    * Sebastian Krzyszkowiak
* UI translations:
    * Abduqadir Abliz (ug)
    * Alan Mortensen (da)
    * Anders Jonsson (sv)
    * Antonio Marin (ro)
    * Artur S0 (ru)
    * Asier Saratsua Garmendia (eu)
    * Aurimas Aurimas Černius (lt)
    * Balázs Úr (hu)
    * Baurzhan Muftakhidinov (kk)
    * Bruce Cowan (en_GB)
    * Changwoo Ryu (ko)
    * Daniel Mustieles (es)
    * Daniel Rusek (cs)
    * Efstathios Iosifidis (el)
    * Ekaterine Papava (ka)
    * Emilio Sepúlveda (ia)
    * Flynn Peck (kw)
    * Fran Diéguez (gl)
    * Guillaume Bernard (fr)
    * Hugo Carvalho (pt)
    * Jiri Grönroos (fi)
    * Jordi Mas (ca)
    * Juliano de Souza Camargo (pt_BR)
    * Jürgen Benvenuti (de)
    * Martin (sl)
    * Pawan Chitrakar (ne)
    * Quentin PAGÈS (oc)
    * Sabri Ünal (tr)
    * Victor Dargallo (ca)
    * Victoria (pl)
    * Yaron Shahrabani (he)
    * Yuri Chornoivan (uk)
    * luming zh (zh_CN)
    * twlvnn kraftwerk (bg)


========================================
  d-spy
========================================

# D-Spy 50.0

 * Translation updates


========================================
  dconf
========================================

Changes in dconf 51.0
=======================

 - No changes since 51.rc

Changes in dconf 51.rc
=======================

 - Update overview regarding safe writer (Marek Kasik, !97)


Changes in dconf 51.beta
=======================

 - Implement safe GVDB writer and use it by default for homes on NFS (Marek Kasik, Ray Strode, !88)
 - docs: Describe DBDIR argument in man page (Marek Kasik, !94)
 - docs: Fix a typo (Marek Kasik)



========================================
  decibels
========================================

49.6
---

* Bugs fixed:
  - #140 Decibels doesn't set audio stream metadata (pretty name, icon and
    current playback title) for other PipeWire apps (DaPigGuy)
  - #147 Volume Meter shows incorrect default value (50%) after starting the
    application
  - !169 metainfo: Change component type to "desktop-application"
  - !171 fix(mpris): SetPosition and OpenUri
  - !175 metainfo: Use supports for controls

* Translation updates:
  - Basque (Asier Saratsua Garmendia)
  - Bulgarian (twlvnn kraftwerk)
  - Catalan (Victor Dargallo)
  - Chinese (China) (luming zh)
  - Cornish (Flynn Peck)
  - Czech (Daniel Rusek)
  - Danish (Alan Mortensen)
  - English (United Kingdom) (Bruce Cowan)
  - Esperanto (Kristjan SCHMIDT)
  - Finnish (Jiri Grönroos)
  - French (Lucien)
  - Galician (Fran Diéguez)
  - Georgian (Ekaterine Papava)
  - German (Jürgen Benvenuti)
  - Greek, Modern (1453-) (Efstathios Iosifidis)
  - Hebrew (Yaron Shahrabani)
  - Hungarian (Balázs Úr)
  - Icelandic (Sveinn í Felli)
  - Japanese (小山田 純 - Oyamada Jun)
  - Kazakh (Baurzhan Muftakhidinov)
  - Korean (Seong-ho Cho)
  - Lithuanian (Aurimas Aurimas Černius)
  - Nepali (Pawan Chitrakar)
  - Occitan (post 1500) (Quentin PAGÈS)
  - Persian (Danial Behzadi)
  - Polish (Adam Lewicki)
  - Portuguese (Hugo Carvalho)
  - Portuguese (Brazil) (Rafael Fontenelle)
  - Romanian (Antonio Marin)
  - Russian (Artur S0)
  - Serbian (Марко Костић)
  - Serbian (Latin script) (Милош Поповић)
  - Slovenian (Martin)
  - Spanish (Daniel Mustieles)
  - Swedish (Anders Jonsson)
  - Thai (Aefgh Threenine)
  - Turkish (Sabri Ünal)
  - Uighur (Abduqadir Abliz)
  - Ukrainian (Yuri Chornoivan)


========================================
  epiphany
========================================

51.0 - September 10, 2026
=========================

* Bugs fixed:
  - #2617 session: Append closed tab at end if recorded position is out of bounds
    (John Cardullo)
  - #2897 (CVE-2026-18487) Address Bar / Host Spoofing via userinfo in
    ephy_uri_get_decoded_host (Michael Catanzaro)
  - #2931 Code Injection via ephy_web_view_get_best_web_app_icon in `data:` URI
    (Michael Catanzaro)
  - #2934 `data` URI prettification returns invalid domain (Michael Catanzaro)
  - !2144 Some fixes for EphyHistoryDialogRow (Michael Catanzaro)

* Translation updates:
  - Basque (Asier Saratsua Garmendia)
  - Danish (Alan Mortensen)
  - English (United Kingdom) (Bruce Cowan)
  - French (Guillaume Bernard)
  - Hungarian (Balázs Úr)
  - Korean (ChangSeok Oh)
  - Norwegian Bokmål (Kjartan Maraas)
  - Serbian (Марко Костић)
  - Spanish (Daniel Mustieles García)
  - Turkish (Emin Tufan Çetin)

51.rc - August 27, 2026
=======================

* Bugs fixed:
  - #2898 Invalid bookmark import crashes browser (Fernando Muñoz)
  - #2903 XSS/HTML injection in error page (Michael Catanzaro)
  - #2921 (CVE-2026-77682) Autofill JS Code Injection via CSS Selector (Michael
    Catanzaro)
  - #2922 (CVE-2026-77679) WebExtension XPI Path Traversal ZIPSLIP (Fernando
    Muñoz)
  - #2928 Link clicked in another app opens in the fullscreen window during
    fullscreen video (Semen Fomchenkov)
  - #2929 Caret in the address bar jumps to the start when I switch keyboard
    layout (Semen Fomchenkov)
  - #2938 "Not Secure" label in the address bar is truncated and glued to the
    domain in translated locales (Semen Fomchenkov)
  - #2940 Epiphany offers to save a password that it just autofilled itself
    (after CSV import) (Semen Fomchenkov)
  - !2145 Update to highlight.js 11.2.0 (Michael Catanzaro)
  - !2148 web-process-extension: Target active frame when generating password
    from context menu (John Cardullo)
  - !2152 Canary: Fix WebKitGTK injected bundle path (Philippe Normand)
  - !2159 Do not trigger downloads on missing MIME type or failed HTTP responses
    (John Cardullo)

* Translation updates:
  - Bulgarian (Alexander Alexandrov Shopov)
  - Catalan (Xavi Ivars)
  - Chinese (Taiwan) (Chao-Hsiung Liao)
  - Finnish (Jiri Grönroos)
  - Kazakh (Baurzhan Muftakhidinov)
  - Lithuanian (Aurimas Aurimas Černius)
  - Portuguese (Brazil) (Luiggi Cardoso)
  - Romanian (Antonio Marin)
  - Swedish (Anders Jonsson)
  - Uighur (Abduqadir Abliz)

51.beta - August 10, 2026
=========================

* Bugs fixed:
  - #1671 Colons in URL for Epiphany's app mode are converted to "A" (John
    Cardullo)
  - #2892 Compile failures against libnettle 4.0 (Fernando Muñoz)
  - #2901 Memory leak in the core string utility function ephy_string_shorten()
    (Michael Catanzaro)
  - #2902 Out-of-bounds crash/assert failure in
    ephy_json_array_get_string_with_default (Michael Catanzaro)
  - #2904 Invalid view-source: crashes browser (John Cardullo)
  - !2079 CI: Add gobject-linter (Jan-Michael Brummer)
  - !2109 add pinning support for URLs in history and overview model (John
    Cardullo)
  - !2110 window: update message when saving a password (Michael Catanzaro)
  - !2111 Remove incorrect use of G_GNUC_CONST for get_type() functions (Michael
    Catanzaro)
  - !2112 Update highlight.js to 11.11.2 (Michael Catanzaro)
  - !2113 Add libpwquality to Canary manifest (Michael Catanzaro)
  - !2114 history-service: use G_SOURCE_REMOVE (Michael Catanzaro)
  - !2117 fix: check for invalid icon (Fernando Munoz)
  - !2121 Fix code style check (Michael Catanzaro)
  - !2125 Adjust Reader Mode Line Spacing (John Cardullo)
  - !2130 view-source-handler: fix crash when loading invalid URI (jcardullo)
  - !2134 Fix CI failures (Jan-Michael Brummer)
  - !2136 Canary: Disable WebRTC for now (Philippe Normand)
  - !2138 Reland property registration code style changes (Michael Catanzaro)
  - !2139 ci: move check-potfiles to lint stage (Michael Catanzaro)
  - !2140 ci: ignore blueprint-compiler failures during style check (Michael
    Catanzaro)
  - !2141 Canary: Re-enable WebRTC (Philippe Normand)

* Translation updates:
  - Basque (Asier Saratsua Garmendia)
  - Belarusian (Vasil Pupkin)
  - Bulgarian (twlvnn kraftwerk)
  - Catalan (Xavi Ivars)
  - Chinese (China) (luming zh)
  - Czech (Daniel Rusek, Patrik Sivek)
  - Dutch (Nathan Follens)
  - Galician (Francisco Diéguez Souto)
  - Georgian (Ekaterine Papava)
  - German (Christian Kirbach)
  - Hebrew (Yaron Shahrabani)
  - Indonesian (Andika Triwidada)
  - Italian (Davide Ferracin)
  - Kazakh (Baurzhan Muftakhidinov)
  - Norwegian Bokmål (Kjartan Maraas)
  - Occitan (post 1500) (Quentin PAGÈS)
  - Persian (Danial Behzadi)
  - Romanian (Antonio Marin)
  - Russian (Artur S0)
  - Slovenian (Martin)
  - Ukrainian (Yuri Chornoivan)

51.alpha - June 25, 2026
========================

* Bugs fixed:
  - #2712 Crash when opening preferences dialog after deleting default search
    engine (Michael Catanzaro)
  - #2769 [Feature Request] Keyboard shortcut to copy the current page URL
    (Aygyun)
  - #2834 Search engine suggestions in addressbar autocompletion dropdown are
    visually overloading due to their URLs being shown (ARAKHNID)
  - #2868 Addressbar URL prettification does not understand IPv6 addresses
    (Achu94)
  - #2875 Editing password username creates duplicate entries (Michael
    Catanzaro)
  - !1987 webextension: Replace EphyWebExtension with WebKitWebExtension (Jamie
    Murphy)
  - !2052 Firefox sync OAuth token flow (Dyego Aurélio)
  - !2077 Use libportal API to detect sandbox (ARAKHNID)
  - !2082 window-commands: improve notification when failing to install (Simon
    Pena)
  - !2085 Change default adblock filters back to bnema (Michael Catanzaro)
  - !2086 window: Set devel CSS also for Canary builds (Philippe Normand)
  - !2089 canary: Disable Vulkan support (Philippe Normand)
  - !2090 site-menu-button: add rudimentary debug logging (Michael Catanzaro)
  - !2091 password-manager: fix crash when deleting password record (Michael
    Catanzaro)
  - !2094 Quote command line input before passing to shell (Michael Catanzaro)
  - !2098 password-manager: avoid duplicate record when changing username
    (Michael Catanzaro)
  - !2099 Fix crash when opening preferences dialog after deleting a search
    engine (Michael Catanzaro)
  - !2100 bookmark-props: Save bookmark on Ctrl + Enter (Zoey Ahmed)
  - !2101 bookmark-props: Select tag when row is clicked on (Zoey Ahmed)
  - !2102 web-view: fix memory corruption caused by previous memory corruption
    fix (Michael Catanzaro)
  - !2103 docs: clarify HiDPI snapshot sizing requirements and refactor
    about.css for readability (IGS_GIT)
  - !2104 Fix crash after adding a new OpenSearch engine (Michael Catanzaro)
  - !2105 feat: add undo functionality to overview item removal via toast
    notifications (IGS_GIT)
  - !2106 site-menu-button: remove unused function (Michael Catanzaro)
  - !2107 shortcuts: document F6 shortcut (YukiCodepth)
  - !2108 Allow user to generate secure passwords with libpwquality (Michael
    Catanzaro, IGS_GIT, John Cardullo)

* Translation updates:
  - Belarusian (Vasil Pupkin)
  - Czech (Patrik Sivek)
  - Lao (Saikeo Kavhanxay)
  - Persian (Danial Behzadi)
  - Polish (Victoria Niedzielska)
  - Romanian (Antonio Marin)
  - Slovak (Jose Riha)
  - Slovenian (Martin)
  - Thai (Aefgh Threenine)

50.4 - April 23, 2026
=====================

* Bugs fixed:
  - #2851 No way to "not" quit a webapp through keyboard shortcuts when "Run in
    background" is enabled (ARAKHNID)
  - #2857 adw_tab_view_get_page: assertion 'child_belongs_to_this_view (self,
    child)' failed (Michael Catanzaro)
  - #2858 Crash when passing invalid command line option (Michael Catanzaro)
  - #2859 URLs containing various characters cannot be deleted from history
    (Michael Catanzaro)
  - #2862 ephy_site_menu_button_update_search_engine_item crash on 32 bit
    (Michael Catanzaro)
  - #2863 Epiphany 49.7 crashes at launch (Michael Catanzaro)
  - !2073 Fix failure to delete URLs from history (Michael Catanzaro)
  - !2076 shell: keep going until all windows are destroyed (Michael Catanzaro)
  - !2083 Fix more problems in the filters manager, including crash on startup
    (Michael Catanzaro)

* Translation updates:
  - Dutch (Reinout van Schouwen)
  - German (Christian Kirbach)
  - Polish (Victoria Niedzielska)
  - Slovak (Jose Riha)
  - Turkish (Emin Tufan Çetin)

50.3 - March 24, 2026
=====================

This release reverts back to the original adblock filters used before 50.rc.

* Bugs fixed:
  - #2848 Regression in site compatibility due to adblocking (Michael Catanzaro)
  - !2065 ci: Remove workflow:rules (Jordan Petridis)
  - !2067 filters-manager: fix disabling adblocker (Michael Catanzaro)
  - !2068 Switch back to easylist-downloads.adblockplus.org (Michael Catanzaro)

50.2 - March 20, 2026
=====================

* Bugs fixed:
  - #2847 Crash in ephy_window_set_active_tab() (ARAKHNID)
  - !2059 Add 15 second timeout when fetching adblock filters (Michael
    Catanzaro)
  - !2063 shell: fix crash when invalid URL passed on command line (Michael
    Catanzaro)
  - !2064 Many fixes for the adblocker (Michael Catanzaro)

* Translation updates:
  - Occitan (post 1500) (Quentin PAGÈS)

50.1 - March 18, 2026
=====================

* Bugs fixed:
  - !2060 Remove ublock filter rules (Michael Catanzaro)

* Translation updates:
  - Italian (Davide Ferracin)
  - Occitan (post 1500) (Quentin PAGÈS)
  - Serbian (Марко Костић)

50.0 - March 12, 2026
=====================

* Bugs fixed:
  - #2175 When closing a newly created tab, focus is reset to the last tab,
    instead of the previously focused tab (ARAKHNID)
  - #2825 Bugs may cause session state to be deleted (Michael Catanzaro)
  - #2838 epiphany-browser 49.2 build error against Nettle 4.0 (Michael
    Catanzaro)
  - #2842 Outdated comment for translators (ARAKHNID)
  - #2843 UI Bug: Imported bookmarks only show one link per tag (stacked on top
    of each other) & Drag-and-Drop is broken (ARAKHNID)
  - #2844 Allow web apps to run in the background, with configurable toggle and
    quit action, even when not sandboxed by flatpak (ARAKHNID)
  - !2048 Fix crash when opening javascript: URLs in new tab (Michael Catanzaro)
  - !2049 Fix -Wdiscarded-qualifiers warnings (Michael Catanzaro)
  - !2050 web-view: fix security status when restoring pages from session state
    (Michael Catanzaro)
  - !2053 session: refuse to save window without tabs (Michael Catanzaro)
  - !2058 Revert "Fetch locale specific adlock list" (Michael Catanzaro)

* Translation updates:
  - Catalan (Jordi Mas)
  - Danish (Alan Mortensen)
  - English (United Kingdom) (Bruce Cowan)
  - Occitan (post 1500) (Quentin PAGÈS)
  - Polish (Victoria)
  - Uighur (Abduqadir Abliz)


========================================
  evolution-data-server
========================================

Evolution-Data-Server 3.62.0 2026-09-11
---------------------------------------

Bug Fixes:
	I#660 - GOA EWS: Do not require OABUrl in autodiscover
	I#662 - EBackend: Document how OAuth2 sources should ask to be authenticated (Tobias Mueller)
	I#665 - CalDAV: Ignore Bad Request (400) on overwrite
	M!243 - ESourceRegistry: Name the credentials source in failed-lookup debug message (Tobias Mueller)

Translations:
	Alan Mortensen (da)
	Aurimas Černius (lt)
	Balázs Úr (hu)
	Baurzhan Muftakhidinov (kk)
	Emin Tufan Çetin (tr)
	Juliano de Souza Camargo (pt_BR)
	Kjartan Maraas (nb)

Evolution-Data-Server 3.61.3 2026-08-28
---------------------------------------

Bug Fixes:
	I#1 - Use gnome-shell-calendar-server for Reminders in GNOME
	I#602 - IMAPx: Sometimes removes message from local summary in error
	I#633 - NNTP: Add an option to disconnect on idle
	I#648 - IMAPx: Use CHANGEDSINCE for UID FETCH with QRESYNC
	M!236 - Camel: Add NNTP unit tests
	M!240 - Camel: Add POP3 provider unit tests
	M!241 - OAuth2: Always set GError when getting an access token fails (David Woodhouse)
	M!242 - tests: Harden backend close on the factory side
	ews-I#344 - ESoupSession: Set timeout for error body read

Miscellaneous:
	SetupBuildFlags.cmake: Add `-Wunused-function`
	IMAPx: Refresh folder in single-client mode on message count mismatch
	NNTP: Enhance unit tests to optionally run also during `make test`
	IMAPx: Add STARTTLS/TLS connection tests to the unit tests
	IMAPx: Fix a memory leak
	ECalBackendFile: Improve tracking of backend's 'writable' state
	ESource: Claim ESource changed when D-Bus interfaces were added/removed
	Correct some gtk-doc warnings in the developer comments

Translations:
	Anders Jonsson (sv)
	Asier Saratsua Garmendia (eu)
	Aurimas Černius (lt)
	Ekaterine Papava (ka)
	Guillaume Bernard (fr)
	Martin (sl)
	Yuri Chornoivan (uk)

Evolution-Data-Server 3.61.2 2026-07-31
---------------------------------------

Bug Fixes:
	I#104 - LDAP: Support Simple Paged Results Control (RFC 2696) (John Cardullo)
	I#132 - Implement IMAP4 Multimailbox SEARCH Extension (John Cardullo)
	I#650 - Camel: Real junk folder does not count unread junk-marked messages
	I#651 - e_cal_util_init_recur_task_sync: Due date incorrectly reset
	I#653 - camel-lock-helper: No follow symlink on lock time change
	M!227 - Correct some issues found by static analyzer (Federico Mena Quintero)
	M!230 - Fix memory leaks detected by LeakSanitizer in CI
	M!231 - CI: Run IMAPx tests also under Cyrus server
	M!232 - CI: Make the sanitizer job fail on errors (Federico Mena Quintero)
	M!233 - e-ms-oapc: fix prt_sso_request (Benedikt Niedermayr)
	M!235 - e-ms-oapxbc: Microsoft Identity Broker v3 fixes (Konrad Schwarz)
	evo-I#2142 - ESourceSelectable: Add 'groups' property (IGS_GIT)
	evo-I#3345 - source-registry: Deadlock when setting up m365 GOA account

Miscellaneous:
	Camel: Fix a memory leak after folder unsubscribe/deletion
	IMAPx: Fix a memory leak in imapx_update_store_summary()
	camel: Add IMAPx provider integration tests
	ESource: Schedule D-Bus object change signal notification in idle
	camel-iconv: Treat "gb2313" charset as "gb18030"

Translations:
	Aurimas Aurimas Černius (lt)
	Baurzhan Muftakhidinov (kk)
	burns (pt_BR)
	Marcel Mrówka (pl)
	Martin (sl)
	Sabri Ünal (tr)

Evolution-Data-Server 3.61.1 2026-06-26
---------------------------------------

Bug Fixes:
	I#143 - WebDAV: Implement sync-collection (RFC 6578)
	I#220 - Allow message body indexing for local accounts again
	I#510 - goa: Fix a race when reading accounts after start
	I#630 - nntp: Chunk OVER requests with adaptive retry and auto-reconnect (Mikhail Gavrilov)
	I#632 - nntp: Fix GSocket ref leak in stream timeout helpers (Mikhail Gavrilov)
	I#634 - Maildir: Prevent creating folders of a similar name
	I#637 - IMAPx: Sent folder reverts to default with iCloud email and Quick Resync
	I#643 - Camel: Clean up provider conf entries definitions
	I#644 - Maildir: Prefer flags from the file name (externally modified)
	I#645 - OAuth2: Correct when using collection ESource for child sources
	I#647 - Calendar: Atomic write breaks .ics file change monitoring
	M!207 - camel: Use XDG_DATA_HOME for nssdb path (André)
	M!222 - Make CMAKE_BUILD_TYPE enumeration for cmake-gui (Дилян Палаузов)
	M!223 - CI: Avoid extra path in cmake invocation (Дилян Палаузов)
	M!224 - Remove unneeded GLIB_CHECK_VERSION macros (Дилян Палаузов)
	evo-I#538 - GOA: Change how GOA accounts have set OAuth2 support
	evo-I#2624 - Add per-account composer mode property to ESourceMailComposition
	evo-I#3302 - Truncated file stored in the (mail) cache
	evo-I#3322 - IMAP: Add "Manage subscriptions" into "Receiving options"
	evo-I#3344 - ECredentialsPrompter: Inherit modality from the parent window

Miscellaneous:
	nntp: Rename nntp_get_stream_socket() to nntp_ref_stream_socket()
	ESoupSession: Correct e_soup_session_get_authentication_requires_credentials()
	Remove function declarations with no implementation (Corentin Noël)
	e-gdata-session: Ensure soup message body is filled on retry
	CamelStoreSearch: Remove dead code (Corentin Noël)
	CamelStreamProcess: Handle the errno before doing other system calls (Corentin Noël)
	CamelSmtpTransport: Fix a potential double-free error (Corentin Noël)
	camel: Add documentation (Corentin Noël)
	camel: Fix DIGEST-MD5 setting authenticated on rspauth mismatch
	camel: Fix off-by-one OOB read in RFC 2047 quoted_decode
	e-oauth2-service: Do not log secret contents on JSON parse failure
	camel: Fix shell command injection in NTLM SASL authentication
	pop3: Add maximum line buffer size to prevent unbounded memory growth
	smtp: Sanitize ENVID parameter to prevent SMTP command injection
	pop3: Reject credentials containing CRLF to prevent command injection
	smtp: Fix heap out-of-bounds read in smtp_decode_status_code
	ESoupSession: Reject HTTPS-to-HTTP redirects
	camel: Add MIME nesting depth limit to prevent stack exhaustion
	e-oauth2-service: Add state parameter to OAuth2 authorization requests
	camel: Add size limits on MIME header blocks and body parts
	carddav: Validate photo/logo URI origin to prevent SSRF
	e-ms-oapxbc: Simplify error handling in MS-OAPXBC OIDC extension (Felix Moessbauer)
	e-ms-oapxbc: Fix error handling of broker response (Felix Moessbauer)
	e-ms-oapxbc: Align D-Bus parameters with sso-mib (Felix Moessbauer)
	e-ms-oapxbc: Add support for broker versions > 2.0.1 (Felix Moessbauer)
	Fix some compiler warnings
	docs: Remove all "Contains only private data…" from structure comments (Corentin Noël)
	docs: Put Camel documentation into a subfolder (Corentin Noël)
	Do not lock SExp object in data book/cal views start
	e-book-meta-backend: Handle data: URI-s in PHOTO/LOGO
	Calendar: Use icaldurationtype_as_utc_seconds() for libical 4.x (Antonio Rojas)
	Convert license/copyright comments into SPDX notation
	OAuth2: Use its own error domain and add camel_util_is_network_error()
	camel: Add atomic write API to CamelDataCache and convert all providers
	POP3: Remove sentinel bytes and migrate existing cache files
	camel: Recognize all G_TLS_ERROR codes as network errors
	camel: Clean up test files and convert them to glib test API
	CI: Add a job to produce a test coverage report (Federico Mena Quintero)
	CI: add a job for static analysis with scan-build (Federico Mena Quintero)
	CI: Add a job to run the tests with address and undefined-behavior sanitizers (Federico Mena Quintero)
	camel: Test substring body search with and without index
	Camel: Move search with index from the store search to a common place
	camel: Fix CamelCertDB leak in camel_shutdown()
	Camel: Add GSETTINGS_SCHEMA_DIR into the tests
	Camel: Reorganize tests directories
	Use "--output-on-failure" for ctest in "make test"
	docs/index.html: Provide links to the coverage and static analysis reports (Federico Mena Quintero)
	Make the scan-build page's title prettier (Federico Mena Quintero)
	Calendar: Do not use persistent refresh thread in the 'file' backend
	tests: Flush main context when finishing server tests
	Drop optional gtk+ code from background processes

Translations:
	Aurimas Aurimas Černius (lt)
	Ekaterine Papava (ka)
	Emin Tufan Çetin (tr)
	Juliano de Souza Camargo (pt_BR)
	Kjartan Maraas (nb)
	Kristjan ESPERANTO (eo)
	Марко Костић (sr)
	Martin (sl)
	Yuri Chornoivan (uk)

Evolution-Data-Server 3.60.0 2026-03-13
---------------------------------------

Bug Fixes:
	I#489 - Backends: Do not block views' start by slow connection

Miscellaneous:
	Correct ICalGLib reference in gir when building against version 4
	docs: Update libical-glib online documentation link

Translations:
	Asier Saratsua Garmendia (eu)
	Aurimas Aurimas Černius (lt)
	Balázs Úr (hu)
	Baurzhan Muftakhidinov (kk)
	Bruce Cowan (en_GB)
	Daniel Rusek (cs)


========================================
  foundry
========================================

Foundry 1.2.0
=============

This stable release completes the 1.2 series with debugger fixes, API
annotation polish, improved GitLab CI shells, and broader translation coverage.

**Debugger**
 * Improve DAP thread, stop, continue, and stack-frame state tracking
 * Synchronize DAP source breakpoints, preserve breakpoint objects across
   partial updates, and roll back rejected breakpoint changes
 * Propagate DAP adapter, stack-trace, and waiter errors more reliably
 * Handle adapter termination and pending breakpoint disposal more robustly
 * Add DAP debugger regression tests

**API and Build**
 * Fix compilation as C++
 * Fix FoundryUnixFDMap destination FD reporting
 * Improve introspection annotations for arrays, nullable values, out
   parameters, and ownership transfer across public APIs
 * Fix JSON-RPC message reads that span multiple stream reads or UTF-8
   character boundaries
 * Fix JSON serialization buffer ownership and a JSON-RPC leak found by LSAN

**Command Line, Plugins, and UI**
 * Fix `foundry ci shell` interactive terminal handling under Podman
 * Set a user-agent header for GitLab requests
 * Smooth line-change gutter rendering with merged rounded runs
 * Delay on-type diagnostics slightly to reduce churn while editing
 * Correct the Gom branch in the Flatpak example manifest

**Translations**
 * New: Czech, Indonesian, Italian, Karbi
 * Updated: Basque, Bulgarian, Catalan, Chinese (China), Danish, Esperanto,
   French, Galician, Georgian, German, Hebrew, Kazakh, Korean, Lithuanian,
   Persian, Brazilian Portuguese, Serbian, Slovenian, Spanish, Swedish,
   Turkish, Ukrainian

Foundry 1.2.beta
================

This beta adds local GitLab CI execution, expands the public CI and Git APIs,
and improves command-line help and interactive terminal handling.

**Continuous Integration**
 * Add public abstractions for CI providers, pipelines, jobs, runs, run options,
   and artifacts
 * Add `foundry ci list`, `run`, `shell`, and `clean` commands
 * Add a GitLab CI provider that resolves includes, inheritance, variables,
   rules, stages, dependencies, needs, artifacts, and common execution policies
 * Run GitLab CI jobs locally in Podman with artifact collection
 * Support Flatpak CI jobs, uncommitted and untracked worktree content, and
   interactive shells inside supported jobs

**Version Control**
 * Add bindable amend support and changed-file listing to
   FoundryGitCommitBuilder
 * Load commit templates and filter configured comment lines from commit
   messages
 * Add convenience APIs to stash all changes or discard worktree changes
 * Fix amended commits updating HEAD, UTF offset calculation, unchanged staged
   deltas, and a baseline commit leak

**Command Line and Platform**
 * Generate root, intermediate, and leaf command help from the command tree
 * Improve command synopses, shell completion, and the foundry manual
 * Preserve inherited controlling terminals so interactive shells retain job
   control
 * Use the default build PTY for incremental Meson test work

**API and Build**
 * Add FoundryContext:title-with-fallback
 * Improve YAML parsing and error handling for Flatpak manifests and GitLab CI
 * Stop exposing private dependencies to Meson subproject consumers
 * Fix pkg-config dependencies for libfoundry-gtk and libfoundry-adw
 * Link libfoundry-adw and the progress icon test against libm

**GTK and UI**
 * Fix terminal cursor handling when a palette uses fallback colors
 * Add missing tweak sections and category titles

**Translations**
 * New: Belarusian
 * Updated: Catalan, Chinese (China), Georgian, Kazakh, Norwegian Bokmal,
   Slovenian, Ukrainian

Foundry 1.2.alpha
=================

**Version Control**
 * Add FoundryVcsGraph and FoundryVcsGraphEntry abstractions for repository
   graph rendering
 * Add Git-backed graph generation and helper APIs
 * Add FoundryGitLanes GTK widget for drawing git-style commit lanes
 * Move git blame updates and clone operations onto worker threads
 * Existing git thread use has been condensed to DexThreadPool
 * Add Sysprof trace marks around git operations

**Tracing and Diagnostics**
 * Add a private Foundry tracing abstraction backed by sysprof-capture when
   available
 * Add optional sysprof build support
 * Add tracing around Flatpak manifest loading and libflatpak integration
 * Give fibers more useful names across the codebase

**API**
 * Add FoundryFutureItem for presenting a future-backed object in model APIs
 * Add foundry_file_canonicalize() DexFuture wrapper
 * Add JSON-RPC await helper for completion notifications
 * Add FoundryContext helpers for per-context local state
 * Add foundry_git_oid_dup_string() helper

**GTK and Editor Integration**
 * Implement apply_edit() for GtkSourceBuffer
 * Fix source-buffer property names and documentation typos
 * Fix Clang warnings in libfoundry-gtk

**Bug fixes**
 * foundry: call dex_init() at startup
 * libfoundry/jsonrpc: fix read_upto() return type and inverted error check
 * libfoundry/build: check optional vfuncs before calling them
 * libfoundry/git: fix an erroneous NULL check
 * plugins/devhelp: deduplicate .devhelp2 files by realpath()
 * plugins/gitlab: improve request error handling
 * testsuite: properly gate ACP tests
 * subprojects: use an older Gom revision for compatibility
 * CI: disable goblint

**Translations**
 * New: French, Hebrew, Kabyle, Lao, Norwegian Bokmal, Persian, Slovak, Thai
 * Updated: Chinese (China), Persian, Slovenian, Thai

Foundry 1.1.1
=============

 * Fix GNOME CI release issue around metainfo and rc/beta/alpha tags.

Foundry 1.1.0
=============

This release completes the 1.1 cycle with a few fixes and expanded
translation coverage since 1.1.rc.

**Bug fixes**
 * plugins/flatpak: fix dup_environ() for flatpak manifests
 * libfoundry-adw: fix possible critical on bound title property
 * libfoundry/cli: remove unimplemented/commented lines
 * plugins/qemu: fix translator comment

**API**
 * libfoundry/flatpak: add getter for "env" style fields

**Translations**
 * New: British English, Chinese (China), Danish, Esperanto, Hungarian,
   Korean, Nepali, Portuguese, Serbian, Spanish, Turkish
 * Updated: Catalan, German


========================================
  gcr
========================================

gcr 4.4.1:
- gcr: Support zero mtime
- gcr: Fix memory leak in GcrSystemPrompt call closure
- docs: Fix a method reference in gcr_prompt_set_choice_label()
- Updated translations


========================================
  gdk-pixbuf
========================================

2.44.8
======

- glycin: Support x-/y-dpi options for png, tiff and jpeg
- Translation updates

2.44.7
===

- xpm: Fix loading the xpm module if built-in
- glycin: Fix the build on 32bit
- glycin: Use fwrite to avoid problems with saving
- glycin: Add signature for webp
- glycin: Make filename tricks work in pid namespaces
- Translation updates

2.44.6
===

- build: Add a legacy_xpm option to build the old xpm loader
- xpm: Rename the old xpm loader to legacy-xpm, and use it
  for gdk_pixbuf_new_from_xpm_data if it is available.
  Note that the old loader will only be used for this purpose.
  xpm files still get loaded with glycin
- jpeg: Reject data with an unsupported number of components
- Update contribution guidelines
- glycin: Fix an issue with looping animations
- Do not accidentally query loaders from the host

- glycin: Add support for xpm and xbm.
  Note that xpm+xbm support is new in glycin 2.1
- Translation updates

========================================
  gdm
========================================

51.0
====

* Fixed some memory leaks
* Correctness improvements to GDM's PAM extensions
* Fixes to remote login with Kerberos
* Translation updates

Also of note: in GNOME 51, we've changed the behavior of the fingerprint sensor to
only function during re-authentication. The user can no longer log into their system
with a fingerprint sensor alone. This is done both for security reasons, and because
various parts of the system (like the keyring) are broken when logging in via fingerprint.

51.rc
=====

* Follow-up bugfix for $GDM_AUTH_SESSION_ID
* Follow-up bugfix for redone PAM service loading logic
* Follow-up bugfix for pam_gdm keyring buffer bounds check
* Fixed a couple crashes and memory leaks
* Introduced pre-authenticated remote displays, for Kerberos authentication
  in gnome-remote-desktop
* Updated Fedora's PAM rules to include support for oo7 instead of gnome-keyring
* Translation updates

51.beta
=======

* Fixed autologin bypass where a compromised greeter could request autologin
  for any local account by sending arbitrary usernames via BeginAutoLogin
* Dropped unused `enable-web-authentication` and `enable-passkey-authentication`
  gsettings keys from the `org.gnome.login-screen` schema
* Introduced PAM substack safety net, such that authentication cannot by bypassed
  on systems where authselect hasn't configured a PAM service file for a specific
  authentication method (i.e. `gdm-switchable-auth`)
* Fixed double-free in session worker
* Reworked build script for installing PAM service files into modern search path
* Redid PAM service loading logic in GDM, to introduce meaningful error messages
  whenever PAM services aren't found
* Fixed memory leaks in PAM extensions
* Fixed denial of service where an invalid session name from the greeter would
  cause the entire daemon to exit, terminating all active sessions
* Adjusted D-Bus object path generation for /org/gnome/DisplayManager/Displays/*
  to fix ASLR leak
* Fixed input sanitation when forwarding unknown usernames to audit subsystem
* Fixed passphrase handling in pam_gdm to wipe cached plaintext passwords
  before freeing and to bound the keyring buffer walk preventing out-of-bounds
  reads
* Fixed path traversal vulnerability where a compromised greeter could load
  arbitrary .desktop files via SelectSession, potentially executing
  attacker-controlled commands as the authenticated user
* Introduced $GDM_AUTH_SESSION_ID environment variable, which communicates the
  logind session ID of the caller that requested authentication. This will be used
  for smartcard redirection for remote sessions

51.alpha
========

* Compatibility with kmsconvt
* Add checks to make sure PAM plugins don't drop fsuid privilges and break GDM
* CI improvements
* Reworked the way GDM constructs XDG_DATA_DIRS for its launch environment, so
  that it will no longer hard-code /usr/share at a higher priority than
  /usr/local/share. This behavior would prevent people from locally hacking
  on gnome-shell with --prefix=/usr/local without also having to rebuild GDM
  with the same prefix
* Reworked conflicting session logic to use logind for enumeration. Previously,
  GDM would only look for sessions it started itself, but that would cause it
  to miss conflicting sessions started externally, such as those from ThinLinc
  or TigerVNC
* Fixed bug where plymouth never quit on headless or no-monitor systems, which
  would prevent the system from ever reaching graphical.target
* Added setting to change the fallback session. This is the session that gets
  used whenever a user doesn't have a preferred session selected, or their
  preferred session is unusable. Sysadmins can use this setting to change the
  selected session for users that have never logged into the system before
* Fixed bug where GDM would start X11 sessions with XDG_SESSION_TYPE=wayland
* Fixed PAM handling code to notify PAM modules when we've switched user and
  are about to exec the session leader. This fixes PAM modules like pam_cap.so
  in its `defer` mode
* Removed unnecessary `SetRemoteId` method from the remote display DBus API
* Added setting to turn off local greeter sessions, for headless-only systems
* Removed unused settings
* Documented remote display DBus API
* Documented GDM's settings
* Dropped dconf override of org.gnome.desktop.session.session-name, and instead
  gnome-session is now explicitly told to launch the GDM login screen UI even if
  dconf overrides fail to get applied
* Addressed warnings from Fedora's static analyzer
* Fixed bug where the kernel's VT cursor may flicker during the transition
  between graphical sessions (i.e. at log out)
* Dropped ancient GDM docs, which have been out of date for a very long time and
  are entirely inaccurate now.
* Fixed some more misc. bugs: memory leaks, crashes, etc
* Translation updates

NOTE: In the previous 50.X release series, we removed GDM's ability to execute
the various PreSession/PostSession/etc scripts as part of the X11 removal.
However, it turned out that some people were using these hook points on Wayland,
despite their limited functionality there. Still, the feature is gone for good,
and I wanted to make sure it's listed in the changelog. See the issue for more
details and context: https://gitlab.gnome.org/GNOME/gdm/-/work_items/1059

50.0
====

* With systemd v260+, remote desktop sessions and local sessions in the background
  will be granted access to the GPU. This allows remote sessions to have accelerated
  graphics on distros that restrict the permissions on the GPU's device nodes (i.e.
  Debian and its derivatives)
* Translation updates


========================================
  gexiv2
========================================

gexiv2 0.16.2 - 5 Aug 2026 (stable)

 * Fix crash when opening files without preview images

Bugs fixed in this release:
 - https://gitlab.gnome.org/GNOME/gexiv2/issues/92

All contributors to this release:
 - Jacob Boerema <jgboerema@gmail.com>

gexiv2 0.16.1 - 27 Jun 2026 (stable)

 * Fix issue with GIR missing correct package name
 * Fix memory leak in regression test
 * Add missing assert in GPS test

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - correctmost <136447-correctmost@users.noreply.gitlab.gnome.org>
 - Daniel P. Berrangé <berrange@redhat.com>


========================================
  gjs
========================================

Version 1.90.0
--------------

- First release in the GNOME 51 series. The only change since the release
  candidate 1.89.90 is a build fix.

- Closed bugs and merge requests:
  * build failure: tests don't specify dependency on sysprof_capture [#750,
    !1114, Philip Chimento]

Version 1.89.90
---------------

- This is the release candidate for GNOME 51. This release brings primarily
  minor bug fixes and internal type-safety improvements.

- Backwards-incompatible change: Gio.DBus.makeProxyWrapper() returns a class
  expression, which should be called as a constructor, not as a function.
  Calling it as a function still works, but will print a deprecation warning.
  To migrate your code, just add `new`.

- Backwards-incompatible change: Don't use the `GJS_ALWAYS_INLINE` macro from
  gjs/macros.h. It was not meant to be public and will print a deprecation
  warning if used.

- Closed bugs and merge requests:
  * Various maintenance [!1102, !1108, Philip Chimento]
  * Maps are terribly slow when planning for a route [#742, !1104, Marcus
    Lundblad]
  * Check for char* returns of ambiguous ownership using clang-tidy [!1105,
    Philip Chimento]
  * testConsole fails if source directory contains + [#745, !1106, Simon
    McVittie]
  * Revert "Gio: Rewrite _makeProxyWrapper as a class expression" and print a
    deprecation warning instead [!1107, Philip Chimento]

Version 1.89.2
--------------

- This is the beta release for the GNOME 51 cycle. There are no notable changes
  since 1.89.1, only minor bug fixes.

- Closed bugs and merge requests:
  * Various maintenance [!1097, Philip Chimento]

Version 1.89.1
--------------

- This is the alpha release for the GNOME 51 cycle.

- Cairo.Context has gained a fontExtents() method, which returns a property bag
  with properties corresponding to the fields of `cairo_font_extents_t`, and a
  textPath() method, which renders text as a path. Also, getFontMatrix() and
  setFontMatrix() which return and accept property bags corresponding to the
  fields of `cairo_matrix_t`. All of these are thanks to Daniel Wood.

- Gtk.Widget has gained static methods add_binding(), add_binding_action(), and
  add_binding_signal() (GTK 4 only), for conveniently adding keyboard shortcuts
  to call a function, invoke a Gtk.ShortcutAction, or emit a signal. Florian
  Müllner added these.

- Some work-in-progress has been merged, making GNOME platform objects more
  transparent to the JS garbage collector so that it can make better choices
  about when to collect. This has the additional bonus of making the info from
  System.dumpMemoryInfo (visible in Sysprof or dumped to a JSON file) more
  accurate.
  Tim Chevalier implemented this work, which is being sponsored by Igalia and is
  a prerequisite for removing the Big Hammer workaround.

- Backwards-incompatible change: Creating a GObject.Interface no longer installs
  its methods as unbound static methods on the constructor. This was based on an
  old, nonstandard custom of "generic methods" from the old Mozilla days and
  modern JS doesn't work like that.
  Additionally, this never worked as you might expect: `Interface.method(obj)`
  would not call obj's implementation of the interface method, but Interface's
  default implementation, which might do nothing or throw NotImplementedError.
  The only thing it was good for was slightly shorter syntax when chaining up to
  the default implementation. If you were using it that way, here's how to
  migrate your code:

      class MyClass extends GObject.Object {
          static [GObject.Implements] = [MyInterface];
          static { GObject.registerClass(MyClass); }
          myMethod() {
              return MyInterface.myMethod(this);  // OLD
              return MyInterface.prototype.myMethod.call(this);  // NEW
          }
      }

- Closed bugs and merge requests:
  * Track memory usage for object prototypes [!1072, Tim Chevalier]
  * Add Cairo font extents [!1073, Daniel Wood]
  * More accurate memory usage statistics for Cairo and GdkPixbuf types [!1075,
    Tim Chevalier]
  * Various maintenance [!1076, !1077, !1084, !1085, !1086, !1087, !1090, !1091,
    Philip Chimento]
  * Cairo/text path [!1080, Daniel Wood]
  * profiler: Write last value of memory counters [!1081, Philip Chimento]
  * testCommandLine's non UTF8 file names test fails on ZFS with utf8only=on
    [#733, !1088, Marisa]
  * Cairo/fontMatrix [!1089, Daniel Wood]
  * overrides/Gtk: Support add_binding*() class methods [!1092, Florian Müllner]
  * More accurate memory usage statistics for GBytes type [!1093, Tim Chevalier]
  * function: Avoid heap-allocating small argument arrays [!1094, Andre Nijman]
  * Arguments to `Gio.Application.run()` dropped by `runAsync()` wrapper [#738,
    !1096, Philip Chimento]

Version 1.88.1
--------------

- Closed bugs and merge requests:
  * Breaking change introduced in 1.87.1 [#730, !1082, Philip Chimento]
  * maint: Check for NULL before dereferencing error_out pointer [!1083, Daniel
    van Vugt]

Version 1.88.0
--------------

No changes since 1.87.90, only maintenance for CI.


========================================
  glib
========================================

Overview of changes in GLib 2.90.0, 2026-09-09
==============================================

* Bugs fixed:
  - #4038 G_DEFINE_TYPE parent_class variable trips clang 23's -Wunused-but-set-
    global (Sunil Dora)
  - #4040 `-Wtypedef-redefinition` warnings from `GDBusActionGroup` when
    building 2.89.4 with clang (Hyunsik Parker)
  - !5311 fix: handle long filenames in trash by truncating from front
  - !5319 Update Norwegian Bokmål translation
  - !5325 Update Polish translation
  - !5326 Update Czech translation
  - !5327 Update Hebrew translation
  - !5328 tests: allocate an adequate alternate signal stack
  - !5329 Update Turkish translation
  - !5331 Update French translation
  - !5333 Update Uighur translation
  - !5334 Update Korean translation
  - !5339 Update Russian translation
  - !5342 Update Serbian translation
  - !5343 Update Hungarian translation
  - !5344 Update Danish translation
  - !5346 gtestutils: Mark a TLS variable as not really a leak
  - !5347 goutputstream: Fix an unused-variable warning with G_DISABLE_ASSERT

* Translation updates:
  - Czech (Daniel Rusek)
  - Danish (Ask Hjorth Larsen)
  - French (Guillaume Bernard)
  - Hebrew (Yaron Shahrabani)
  - Hungarian (Balázs Úr)
  - Korean (Changwoo Ryu)
  - Norwegian Bokmål (Kjartan Maraas)
  - Polish (Victoria Niedzielska)
  - Russian (Artur S0)
  - Serbian (Марко Костић)
  - Turkish (Emin Tufan Çetin)
  - Uighur (Abduqadir Abliz)


Overview of changes in GLib 2.89.4, 2026-08-23
==============================================

 - Improve support for nanosecond source timeouts (#4012, #4018, #4025,
   GNOME/mutter#4994, work by Benjamin Otte)

 - Fix installed service file containing build path (#4011, work by
   Jaipaul Cheernam)

 - Support clicking notification icons on Windows (!5019, work by otaxhu)

 - Improve stream splice performance by increasing buffer size (!5316, work by
   Christian Hergert)

* Bugs fixed:
  - #1936 Potentially enable gbitlock USE_ASM_GOTO with clang9+ ? (Luca Bacci)
  - #3359 1bit-emufutex test fails under ASAN / TSAN (Luca Bacci)
  - #3695 TSan data race in gobject / binding test (Luca Bacci)
  - #3836 filenamecompleter test fails on Hurd (Philip Withnall)
  - #3992 (CVE-2026-16118) (#YWH-PGM9867-233) Heap Overflow on GLib through
    _xdg_mime_magic_parse_magic_line() in gio/xdgmime/xdgmimemagic.c via
    Incorrect Byte-Swap Pointer Arithmetic on MIME magic content in user-
    writable XDG data location
  - #4003 GDesktopAppInfo should validate desktop file path snippets (Philip
    Withnall)
  - #4011 gio/tests/services: Installed service file contains build path after
    !5259 (Jaipaul Cheernam)
  - #4012 glib:monotonic-time-ns/similar random failures on riscv64 (Benjamin
    Otte)
  - #4018 mainloop test fails with test_timeouts_ns() assertion failure
    (Benjamin Otte)
  - #4019 documentportal test fails on Hurd as g_unix_fd_query_path() is not
    supported (Kashyap Ekbote)
  - #4020 ‘TLS callback not invoked’ error on msys2-clang64 CI job (Luca Bacci)
  - #4023 pollable test fails on FreeBSD (Ting-Wei Lan)
  - #4025 tests/monotonic-time: test_similar is racy under scheduling jitter
    (Benjamin Otte)
  - GNOME/mutter#4994 Test timeout: core+mutter/backends/native - mutter:thread
    (Benjamin Otte)
  - !5019 gnotification-win32: Handling notification icon click
  - !5022 gnotification-backend: Setting application as a GObject property
  - !5260 docs: Update path to information about installing GLib
  - !5263 Minor test and GKeyFile fixes
  - !5266 docs: Fix gio gi-docgen docs_url
  - !5267 build: fix grab-gio-dll-paths.py invocation in case glib is a
    subproject
  - !5268 Update Czech translation
  - !5269 Update Georgian translation
  - !5270 glocalfile: Honour x-gvfs-trash/x-gvfs-notrash from fstab mount points
  - !5271 Update Ukrainian translation
  - !5272 Update Chinese (China) translation
  - !5274 Update Slovenian translation
  - !5275 Update Georgian translation
  - !5276 Update Ukrainian translation
  - !5277 ci: Add a ubsan job
  - !5280 Update Chinese (China) translation
  - !5281 Update Romanian translation
  - !5282 Update Persian translation
  - !5284 Update Occitan translation
  - !5288 Update Basque translation
  - !5290 Update Brazilian Portuguese translation
  - !5291 Update Catalan translation
  - !5293 Update Galician translation
  - !5294 Update Lithuanian translation
  - !5295 Update Hebrew translation
  - !5296 fix a potentially quadratic-time regex to be linear.
  - !5297 Fix utils-isolated test failure when running as root
  - !5299 Update Belarusian translation
  - !5301 localfileinfo: Fix swapped selinux context symlink logic
  - !5305 Update Bulgarian translation
  - !5308 build: Some test dependencies fixes
  - !5309 Handle some thread sanitizer races
  - !5310 gbsearcharray: Fix a -Wsign-conversion warning in
    G_BSEARCH_UPPER_POWER2
  - !5312 mkenums: remove use of deprecated os.path.commonprefix()
  - !5313 docs: Remove Jonathan Matthew as a co-maintainer
  - !5315 Update Kazakh translation
  - !5316 gio/outputstream: increase splice buffer size
  - !5317 Update Occitan translation
  - !5318 Update Swedish translation

* Translation updates:
  - Basque (Asier Saratsua Garmendia)
  - Belarusian (Vasil Pupkin)
  - Bulgarian (Alexander Alexandrov Shopov)
  - Catalan (Xavi Ivars)
  - Chinese (China) (luming zh)
  - Czech (Daniel Rusek)
  - Galician (Francisco Diéguez Souto)
  - Georgian (Ekaterine Papava)
  - Hebrew (Yaron Shahrabani)
  - Kazakh (Baurzhan Muftakhidinov)
  - Lithuanian (Aurimas Černius)
  - Occitan (post 1500) (Quentin PAGÈS)
  - Persian (Danial Behzadi)
  - Portuguese (Brazil) (Luiggi Cardoso)
  - Romanian (Antonio Marin)
  - Slovenian (Martin)
  - Swedish (Anders Jonsson)
  - Ukrainian (Yuri Chornoivan)


Overview of changes in GLib 2.89.3, 2026-07-29
==============================================

* Support systemd-style UAPI file masking and drop-ins for `GKeyFile` (#3622,
  work by Stefan Schubert)

* Add some string and date convenience API, `g_string_free_deep()` and
  `g_set_date_time()` (!4919, !5193, work by Peter Eisenmann)

* Add some convenience API to `GUnixFDList` (!5233, work by Sebastian Wick)

* Bugs fixed:
  - #3622 Support UAPI file masking and drop-ins in GKeyFile
  - #3994 gio/tests: iptosmessage does not compile on Solaris
  - #3999 fd leak in `g_file_set_contents_full()` on error? (Kondor Dániel)
  - #4007 gio-tool: crash (assertion failed) when running 'gio help help' (Jose
    Carlos Leiva)
  - !4919 Add g_string_free_deep
  - !5193 datetime: Add g_set_date_time
  - !5230 giostream: Clarify is_closed() method docs for streams
  - !5233 gunixfdlist: Add g_unix_fd_list_append_take, g_unix_fd_list_peek,
    g_unix_fd_list_lookup, g_unix_fd_list_lookup_peek
  - !5246 gtestutils: Fix a minor typo in a documentation comment
  - !5248 tests: Minor compiler warning fixes for GCC16
  - !5249 build: Fix a deprecation warning from Meson 1.12
  - !5251 docs: Use dedicated docblocks for new enum members
  - !5252 docs: Annotate callbacks rather than user_data
  - !5254 Add finer accuracy g_timeout APIs
  - !5255 gdbusnameowning: Don't print any logs when connection is closed
  - !5257 Avoid reserved identifiers in public macros


Overview of changes in GLib 2.89.2, 2026-07-14
==============================================

* Fix potential miscompilation with GCC 17 with `G_GNUC_CONST` on `get_type()`
  functions (#3984, work by Sam James)

* Update toolchain requirement to C11; previously this was just strongly
  recommended (!3574, work by Emmanuele Bassi)

* Bugs fixed:
  - #2931 GMemoryMonitor should have a backend for systemd MEMORY_PRESSURE_WATCH
    API (Kate Hsuan)
  - #3719 gspawn-win32-helper-console.exe fails on Windows with UNC path (Andrew
    Ziem)
  - #3984 G_GNUC_CONST vs get_type comes home to roost (Sam James)
  - #3985 Security report: GDBusServer pre-authentication DoS via unbounded SASL
    line buffering (Philip Withnall)
  - #3986 GDBusActionGroupClass failure (Philip Withnall)
  - !3574 Update toolchain requirement to C11
  - !5222 GNetworkMonitor: Stop pulling route table on sd-networkd hosts
  - !5224 gquark: Fix an incorrect G_GNUC_CONST annotation on
    g_quark_to_string()
  - !5226 fuzzing: Skip build if oss-fuzz and tests are both omitted
  - !5232 gnetworkmonitornetlink: Performance improvements by following iproute2
    behavior
  - !5234 gmain: fix poll.h include order on AIX
  - !5235 tests: Fix gi-inspect-typelib.py on Visual Studio
  - !5236 gio/tests: skip unsupported IP TOS tests on AIX
  - !5237 gdbus-serialization.c: Avoid g_autofree
  - !5238 gpoll: Correctly zero-out heap-allocated fd_sets on macOS
  - !5244 Update Romanian translation
  - !5245 Update Slovenian translation
  - !5247 gdbusnameowning: Downgrade ReleaseName warning on closed connection to
    debug

* Translation updates:
  - Romanian (Antonio Marin)
  - Slovenian (Martin)


Overview of changes in GLib 2.89.1, 2026-06-25
==============================================

* Bugs fixed:
  - #3972 g_thread_yield() may not yield control to another thread as expected
    on Linux.
  - !5086 gio: gmemorymonitordbus: Fix fallback backends can't be properly
    loaded when...
  - !5184 gregex: Remove "array length" annotations
  - !5190 win32-build.md: Update Visual Studio build info
  - !5191 Don't use slow content type for icons when only fast content is
    queried
  - !5192 Update Romanian translation
  - !5195 Update Slovenian translation
  - !5196 Performance improvements to GVariant/GDBusMessage
  - !5197 docs: fix wrong reference to gint16 for gint32 types in glib/types.md
  - !5198 Add missing finish-func annotations
  - !5199 gregex: g_match_info_fetch_pos() and g_match_info_fetch_all() will now
    work after partial matches as well
  - !5200 gdatetime: Clarify docs around comparisons across time zones
  - !5201 docs: GI annotation fixes for GCancellable
  - !5202 Update Slovenian translation
  - !5205 tests: Fix various leaks spotted by ASAN
  - !5206 docs + tests: fix docs and add unit test about g_try_new with zero
    n_structs
  - !5207 Update Romanian translation
  - !5209 CI: Set msys2-clang64 as default job for merges
  - !5210 docs: add missing reference to g_rc_box_new0 and g_atomic_rc_box_new0
    and others in Reference Counting page
  - !5211 gutf8: Eliminate redundant double-traversal in g_utf8_substring
  - !5213 gsocket: Improve docs for g_socket_get_fd()
  - !5214 gerror: Add missing introspection annotations
  - !5216 Use dlopen to access environ on FreeBSD
  - !5218 gvariant: Check for overflow in g_variant_new_fixed_array()
  - !5221 meson: Override girepository-2.0 when glib is used as subproject

* Translation updates:
  - Romanian (Antonio Marin)
  - Slovenian (Martin)


Overview of changes in GLib 2.89.0, 2026-05-20
==============================================

* Fix miscompilation with GCC 16 due to GLib’s use of the wrong function
  attribute (!5145, work by Sam James)

* Integrate better with the System Trash on macOS (#1161, work by Byoungchan Lee)

* Add `g_set_strv()`, `g_set_strv_take()` and `g_set_str_take()` convenience
  functions (#3907, !5118, work by Christian Hergert and Philip Withnall)

* Fix flag confusion security issue when using `GRegex` with `G_REGEX_RAW` which
  can result in unbounded out-of-bounds heap reads off the start of a regex
  input string (#3919, work by linhlhq)

* Fix various minor (low severity) security issues, typically one-to-five-byte
  out-of-bounds reads (#3915, #3916, #3917, #3918, #3930) or ones relying on
  very specific (and unlikely) API calls (#3925) or ones relying on
  discouraged P2P D-Bus configurations (#3931, #3933) (work by linhlhq)

* Add support for `GTypeInstance`-derived types in generic marshaller (#3954,
  work by Christian Hergert)

* Change `g_get_num_processors()` to report number of performance cores, rather
  than number of performance+low-power cores on macOS (!5153, work by John Cupitt)

* Add support for `XDG_PROJECTS_DIR` special directory (!5141, work by
  Emmanuele Bassi and Jakub Steiner)

* Bugs fixed:
  - #1161 g_file_trash() Files not moved to System Trash on Mac OSX
  - #1853 DBus activated GApplications and G_APPLICATION_HANDLES_OPEN (Guido
    Günther)
  - #2173 g_ascii_strtod() spec doesn't match C99/C11 standard for underflow
    behavior (depuc8)
  - #3069 gio/trash test fails on macOS
  - #3791 g_error causes -Wanalyzer-infinite-loop warnings in downstream code
    (correctmost)
  - #3854 GRegex uses int for string length (Philip Withnall)
  - #3907 Add g_set_strv() helper similar to g_set_str() (Christian Hergert)
  - #3911 GMarkup chokes on BOM
  - #3915 (#YWH-PGM9867-190) Buffer Over-read on GLib through glib/gvariant-
    serialiser.c:1253 via gvs_tuple_is_normal() (Philip Withnall)
  - #3916 (#YWH-PGM9867-187) OOB Read on GLib through
    glib/gmarkup.c:g_markup_escape_text() via
    glib/gmarkup.c:append_escaped_text() (Philip Withnall)
  - #3917 (#YWH-PGM9867-191) OOB Read on GLib through
    glib/gdatetime.c:g_date_time_get_ymd via invalid `GDateTime` (Philip
    Withnall)
  - #3918 (#YWH-PGM9867-193) Buffer Over-read on GLib's g_regex_replace()
    through glib/gregex.c:string_append() via g_utf8_next_char() (Philip
    Withnall)
  - #3919 (#YWH-PGM9867-194) Buffer Over-read on GLib through
    glib/gregex.c:g_regex_split_full() via glib/gutf8.c:g_utf8_prev_char()
    (Philip Withnall)
  - #3925 (#YWH-PGM9867-199) Buffer Over-read on GLib through glib/giochannel.c
    via "g_io_channel_read_line_backend" (Philip Withnall)
  - #3930 (#YWH-PGM9867-200) Off-by-one Error on GLib through glib/gkeyfile.c
    via "g_key_file_get_locale_string_list" (Philip Withnall)
  - #3931 (#YWH-PGM9867-203)  Path Traversal on GLib DBus through
    glib/gio/gdbusauthmechanismsha1.c via keyring_lookup_entry,
    mechanism_client_data_receive (COOKIE_SHA1 Client Authentication) leads to
    Arbitrary File Read (Philip Withnall)
  - #3932 (#YWH-PGM9867-204) Integer Underflow (CWE-191) on GLib through
    gio/gdbusintrospection.c via "g_dbus_node_info_new_for_xml" (Philip
    Withnall)
  - #3933 Integer overflow in g_dbus_message_bytes_needed() bypasses 128 MiB
    size check (pre-auth DoS on P2P connections) (Philip Withnall)
  - #3954 Generic marshaller lacks support for GTypeInstance derived types
    (Christian Hergert)
  - #3958 FTBFS for vs2019-arm64 in libcharset due to undefined _CountOneBits64
  - !4990 gdbusauthmechanismsha1: Ignore G_DBUS_COOKIE_SHA1_KEYRING_DIR when
    suid
  - !5094 gtestdbus: Keep config file around until bus daemon exits
  - !5099 liststore: Micro-optimize no-op bulk operations
  - !5101 Update Serbian translation
  - !5102 g_base64_decode_step: fix documented type of in
  - !5103 gdbusmessage: Documentation improvements
  - !5105 docs: Expand docs for GLIB_VERSION_MAX_ALLOWED
  - !5106 gmarkup: Add api to get attribute locations
  - !5107 gmessages: Remove incorrect callback annotations
  - !5110 gmarkup: fix type of length parameter of text_validate()
  - !5111 Update Russian translation
  - !5112 docs: Clarify default/user signal handlers
  - !5113 Update Polish translation
  - !5114 docs: Remove myself from CODEOWNERS
  - !5115 build: Post-release version bump
  - !5116 Update Slovenian translation
  - !5117 fuzzing: Add a fuzz test for g_markup_escape_text()
  - !5118 gstrfuncs: Add g_set_str_take() helper function
  - !5119 tests: Check that g_markup_escape_text() returns something parseable
  - !5120 Update Chinese (China) translation
  - !5121 gio: Apply property accessor annotations to GDBus types
  - !5123 Update Romanian translation
  - !5124 gvariant: Tweak GVariantIter heap allocation casting
  - !5125 gregex: Fix some missing Markdown formatting in docs
  - !5126 Add missing annotations
  - !5127 libffi: don't build testsuite when building as subproject
  - !5128 gmarkup: Swap the argument order for g_realloc_n()
  - !5136 docs: Clarify UTF-8 validity for functions which accept a length
  - !5138 Update Slovenian translation
  - !5140 Update Romanian translation
  - !5141 Support XDG_PROJECTS_DIR
  - !5142 gsocketconnection: Fix annotations for get_socket()
  - !5145 gvarianttype: use pure attribute, not inappropriate const
  - !5146 gmessages: Add missing stdlib.h include for abort()
  - !5148 registrysettingsbackend: Chain up vfuncs
  - !5149 gtype: Improve G_DEFINE and G_DECLARE docs
  - !5153 g_get_num_processors(): on macOS, report n_pcore
  - !5155 Update German translation
  - !5157 Update Dutch translation
  - !5158 gsocket: Fix g_socket_new_from_fd() on unbound sockets on windows
  - !5159 gvariant: Tweak GVariantIter heap allocation size
  - !5161 [docs] Gio.MenuModel: Fix bulleted list
  - !5162 gvariant: Match allocation size of g_slice_new to g_slice_free
  - !5163 gvariant test: Fix a leak
  - !5164 tests: Avoid undefined signed left-shift in bitlock test
  - !5167 docs: Add docs for G_GNUC_FLAG_ENUM
  - !5176 gnulib: Fix unused flags variable warning
  - !5177 gio/tests/pollable.c: Fix test on FreeBSD
  - !5180 meson: Add valgrind suppression file to VALGRIND_OPTS in devenv
  - !5182 Meson: Don't hardcode FFI_STATIC_BUILD / G_INTL_STATIC_COMPILATION
  - !5183 gio/tests/pollable.c: Conditionalize on FreeBSD version in the
    /dev/null test case
  - !5185 gio/gdesktopappinfo: Add precondition assertions
  - !5187 Add safety documentation regarding use of g_shell_quote()
  - !5188 Improve performance of g_array_maybe_expand()

* Translation updates:
  - Chinese (China) (luming zh)
  - Dutch (Nathan Follens)
  - German (Christian Kirbach)
  - Polish (Victoria Niedzielska)
  - Romanian (Antonio Marin)
  - Russian (Artur S0)
  - Serbian (Марко Костић)
  - Slovenian (Martin)


Overview of changes in GLib 2.88.0, 2026-03-16
==============================================

* Bugs fixed:
  - !5097 gslice: Factor out a size helper macro and stop using MAX in a public
    header


Overview of changes in GLib 2.87.5, 2026-03-12
==============================================

* Brown paper bag release to attempt to fix the dist-job in CI; this caused it
  to be impossible to build a release archive for 2.87.4

* Bugs fixed:
  - !5096 ci: Force a git clone and update the index when running dist-job


Overview of changes in GLib 2.87.4, 2026-03-12
==============================================

* Avoid installing broken symlinks as part of the test data for the gdatetime
  tests (!5054, work by Alessandro Astone)

* Fix `g_file_set_contents()` with non-ASCII filenames on Windows (#3873, work
  by Lukas K.)

* Bugs fixed:
  - #3688 Documentation issue with g_slice_new and g_slice_new0 (Philip
    Withnall)
  - #3730 Unclear assertion failure message when `G_PARAM_CONSTRUCT` and
    `G_PARAM_CONSTRUCT_ONLY` are both specified (depuc8)
  - #3814 vs2019-arm64 CI fails with ninja error (Philip Withnall)
  - #3873 g_file_set_contents broken on windows for non-ASCII filenames
  - #3885 Documentation of g_file_info_get_is_backup() doesn’t define what a
    backup file is (depuc8)
  - #3897 GLocalFileInfo's set_symlink() is backwards (Philip Withnall)
  - #3905 Memory leak in g_desktop_app_info_launch_uris_with_spawn (correctmost)
  - !5030 gsocketconnection: Set an error when closed if no address is cached
  - !5037 minor doc fixes
  - !5047 i18n: Update and correction for Occitan
  - !5048 ci: Install gi-docgen in the Fedora CI image
  - !5049 Update Serbian translation
  - !5050 Update Swedish translation
  - !5051 Update French translation
  - !5052 Update Bulgarian translation
  - !5053 Update Romanian translation
  - !5054 tests: Create unix_localtime root directory structure at runtime
  - !5055 Update Chinese (China) translation
  - !5056 Update Japanese translation
  - !5057 Update Korean translation
  - !5058 Update Georgian translation
  - !5059 Update Ukrainian translation
  - !5060 Update Lithuanian translation
  - !5061 Update French translation
  - !5062 Update Hungarian translation
  - !5064 Update Portuguese translation
  - !5065 Update Nepali translation
  - !5066 i18n: Update for Occitan
  - !5068 Update Turkish translation
  - !5069 Update Brazilian Portuguese translation
  - !5070 Update Galician translation
  - !5071 Update Kazakh translation
  - !5075 Update Polish translation
  - !5076 Update Catalan translation
  - !5077 Update Slovenian translation
  - !5078 gio-tool-launch: Fix a filename leak
  - !5080 Update Catalan translation
  - !5081 Update Danish translation
  - !5082 Update Polish translation
  - !5084 Update British English translation
  - !5085 Update Georgian translation
  - !5087 Update Nepali translation
  - !5088 tests: Fix a minor memory leak in the socket test
  - !5089 ci: Drop workaround for GitLab submodule checkout bug
  - !5090 Prevent iptosmessage test failures on FreeBSD and Hurd
  - !5091 gobject: Disable new construct property check with G_DISABLE_CHECKS

* Translation updates:
  - Bulgarian (Alexander Alexandrov Shopov)
  - Catalan (Victor Dargallo, Jordi Mas)
  - Chinese (China) (luming zh)
  - Danish (Ask Hjorth Larsen)
  - English (United Kingdom) (Bruce Cowan)
  - French (Guillaume Bernard)
  - Galician (Francisco Diéguez Souto)
  - Georgian (Ekaterine Papava)
  - Hungarian (Balázs Úr)
  - Japanese (Makoto Sakaguchi)
  - Kazakh (Baurzhan Muftakhidinov)
  - Korean (Changwoo Ryu)
  - Lithuanian (Aurimas Aurimas Černius)
  - Nepali (Pawan Chitrakar)
  - Occitan (post 1500) (Mejans)
  - Polish (Victoria)
  - Portuguese (Hugo Carvalho)
  - Portuguese (Brazil) (Rafael Fontenelle)
  - Romanian (Antonio Marin)
  - Serbian (Miloš Popović)
  - Slovenian (Martin)
  - Swedish (Anders Jonsson)
  - Turkish (Emin Tufan Çetin)
  - Ukrainian (Yuri Chornoivan)



========================================
  glib-networking
========================================

2.90.0 - September 10, 2026
===========================

* Bugs fixed:
  - !286 meson: Remove version checks that are always true (correctmost)

* Translation updates:
  - Bulgarian (Alexander Alexandrov Shopov)
  - Catalan (Xavi Ivars)
  - Chinese (China) (luming zh)
  - Czech (Daniel Rusek)
  - Danish (Ask Hjorth Larsen)
  - Dutch (Nathan Follens)
  - French (Guillaume Bernard)
  - Galician (Francisco Diéguez Souto)
  - Georgian (Ekaterine Papava)
  - Hebrew (Yaron Shahrabani)
  - Hungarian (Balázs Úr)
  - Kazakh (Baurzhan Muftakhidinov)
  - Korean (Changwoo Ryu)
  - Lithuanian (Aurimas Černius)
  - Occitan (post 1500) (Quentin PAGÈS)
  - Persian (Danial Behzadi)
  - Portuguese (Brazil) (burns)
  - Russian (Artur S0)
  - Serbian (Марко Костић)
  - Spanish (Daniel Mustieles)
  - Swedish (Anders Jonsson)
  - Thai (Aefgh Threenine)
  - Turkish (Emin Tufan Çetin)
  - Uighur (Abduqadir Abliz)
  - Ukrainian (Yuri Chornoivan)

2.90.alpha - June 25, 2026
==========================

* Bugs fixed:
  - #222 test fails with openssl 3.4.x (Michael Catanzaro)
  - #226 (CVE-2025-60018) (#YWH-PGM9867-106) Out of Bond Reads on glib-
    networking through tls/openssl/gtlscertificate-openssl.c via
    "g_tls_certificate_openssl_get_property()" due to Incorrect BIO_write Return
    Value Validation in Certificate PEM Export (Michael Catanzaro)
  - #228 (CVE-2026-2574) (#YWH-PGM9867-150) OOB Read on glib-networking through
    tls/openssl/gtlsclientconnection-openssl.c via
    g_tls_client_connection_openssl_get_property() (Michael Catanzaro)
  - #231 (CVE-2026-10028) (#YWH-PGM9867-278) Infinite loop in certification path
    building (Michael Catanzaro)
  - !261 meson: Introduce option for enable/disable tests (Leonid Zaburunov)
  - !263 openssl: check return value of g_tls_bio_alloc() and BIO_new() (Michael
    Catanzaro)
  - !265 openssl: delete support for OCSP stapling (Michael Catanzaro)
  - !268 Fix file database and PKCS11 test failures and update CI! (Michael
    Catanzaro)
  - !270 Fix miscellaneous safety issues reported by bug hunters (Michael
    Catanzaro)
  - !271 Delete gtlshttp (Michael Catanzaro)
  - !272 Fix connection test reusing a GError (Michael Catanzaro)
  - !273 openssl: fix error code confusion (Michael Catanzaro)
  - !274 ci: add catch for reporting stack traces (Michael Catanzaro)
  - !277 Require OpenSSL 1.1.1 or newer (Michael Catanzaro)
  - !280 Some fixes found with kiro (Ignacio Casal Quinteiro)
  - !281 Fix various memory leaks (Michael Catanzaro)
  - !283 openssl: refactor error handling code (Michael Catanzaro)
  - !284 openssl: use ERR_clear_error() all over the place (Michael Catanzaro)
  - !285 gnutls: always notify accepted-cas property after handshake (Michael
    Catanzaro)

* Translation updates:
  - Arabic (Ahmed Najmawi)
  - Basque (Asier Saratsua Garmendia)
  - Belarusian (Vasil Pupkin)
  - Cornish (Flynn Peck)
  - Esperanto (Kristjan SCHMIDT)
  - Greek, Modern (1453-) (Efstathios Iosifidis)
  - Japanese (Takayuki Kusano)
  - Lao (Saikeo Kavhanxay)
  - Romanian (Antonio Marin)
  - Slovak (Jose Riha)
  - Slovenian (Martin)
  - Thai (Aefgh Threenine)
  - Uighur (Abduqadir Abliz)
  - Uzbek (Baxrom Raxmatov)


========================================
  glibmm
========================================

2.90.0 (stable) 2026-09-13

API is identical to glibmm 2.89.1.

Meson build:
* Fix missing dependencies, making it possible to build with
  https://github.com/michaelforney/samurai instead of ninja.
  (syntheticsweet) Merge request !79


2.89.1 (unstable) 2026-08-26

Glib:
* SignalTimeout: Add connect_ns(), connect_ns_once().
* Source: Add get_time_ns().
  (Kjell Ahlstedt)

Gio:
* ApplicationCommandLine: Add property_is_remote().
* DesktopAppInfo: Add property_filename().
* UnixFDList: Add peek(), lookup(), append_take().
  (Kjell Ahlstedt)

Build:
* Require glib >= 2.89.4
  (Kjell Ahlstedt)


2.89.0 (unstable) 2026-08-10

* Drop G_GNUC_CONST as in GLib.
  Merge request !77 (Sam James)

Glib:
* Markup::ParseContext: Add get_attribute_position().
  (Kjell Ahlstedt)

Gio:
* Emblem and DBus::ActionGroup: Don't derive gtkmm__Gxxx types.
  The underlying C classes are final types since GLib 2.89.2.
  (Kjell Ahlstedt)

Documentation:
* Remove duplicate of Glib::MarkupError documentation.
  (Kjell Ahlstedt)

Build:
* Require glib >= 2.89.0
  (Kjell Ahlstedt)


2.88.1 (stable) 2026-06-28

Documentation:
* NMake Makefiles: Update build info again
  (Chun-wei Fan) Merge request !73
* README.win32.md: Update info and use UNIX line endings
  (Chun-wei Fan) Merge request !76

gmmproc:
* Add mmgir, which generates .defs files from GIR files
  generated by GObject-introspection
  (Daniel Gao) Merge request !71
* Add scripts that generate .defs files with mmgir
* Small fixes here and there to adapt to .defs files generated by mmgir
  (Kjell Ahlstedt)
* mmgir: Fix compiling parse_gir.cc on Windows
  (Chun-wei Fan) Merge request !72
* Improve detection of enum and flags in documentation
  (Kjell Ahlstedt)

Build:
* Meson build: Add the build-mmgir option
* Autotools build: Distribute tools/mmgir
  (Kjell Ahlstedt)
* meson.build: Ignore C4018 warnings
  (Chun-wei Fan) Merge request !72
* NMake Makefiles:
  - More consolidations
  - Update gmmproc install location
  (Chun-wei Fan) Merge request !73
* NMake Makefiles:
  - Build the mmgir tool if requested
  - Build generate_defs_[glib|gio]
  (Chun-wei Fan) Merge request !76


2.88.0 (stable) 2026-03-18:

Glib:
* Markup::ParseContext: Add get_offset() and get_tag_start().
  (Kjell Ahlstedt)

Gio:
* Application: Handle empty description in add_main_option_entry().
  (Kjell Ahlstedt) Issue #124 (Tobias)

Documentation:
* Gio::File: Note where g_free() shall be called.
  (Kjell Ahlstedt)
* README.win32.md: Mention Visual Studio 2026, update build info
  (Chun-wei Fan) Merge request !69

gmmproc:
* tools/defs_gen/docextract: Improve extraction of enum enumerators.
  Fix the case when no enumerator is documented the old way
  in the enum block.
* tools/defs_gen/enumextract.py, h2def.py: Ignore G_GNUC_FLAG_ENUM
  before the name of an enum definition.
  (Kjell Ahlstedt)

Build:
* Require glib >= 2.87.3
* Meson build: Don't require the 'dot' command when creating
  documentation with Doxygen.
  (Kjell Ahlstedt)
* Meson build: Make Visual Studio 2026 builds distinct
* NMake Makefiles:
  - Make Visual Studio 2026 builds distinct
  - Reorganize, fix, and clean up a bit
  - Make m4 detection more flexible and robust
  - Make build process more robust
  (Chun-wei Fan) Merge request !69



========================================
  glycin
========================================

## 2.2.1 (2026-09-15)

This release contains the following new component versions:

- glycin-utils 5.0.1

### Fixed

- Don't mmap already write sealed memfds as shared. This is only supported since
  Linux 6.7 <https://lkml.indiana.edu/2310.1/06395.html>.

## 2.2.0 (2026-09-09)

This release contains the following new component versions:

- glycin-common 2.0.0
- glycin-core 4.0.0
- glycin-heif 2.2.0
- glycin-image-rs 2.2.0
- glycin-jxl 2.2.0
- glycin-raw 2.2.0
- glycin-svg 2.2.0
- glycin-test 2.2.0
- glycin-thumbnailer 2.2.0
- glycin-utils 5.0.0
- glycin 4.0.0
- glycin-builtin 4.0.0
- glycin-external 4.0.0
- libglycin-gtk4-rebind 0.2.0
- libglycin-gtk4-rebind-sys 0.2.0
- libglycin-rebind 0.2.0
- libglycin-rebind-sys 0.2.0
- libglycin 2.2.0
- libglycin-gtk4 2.2.0

### Fixed

- - glycin/sandbox: Fix compilation on 32 bit architectures

## 2.2.beta.1 (2026-08-21)

This release contains the following new component versions:

- glycin-core 4.0.0-beta.1
- glycin-heif 2.2.0-beta.1
- glycin-image-rs 2.2.0-beta.1
- glycin-jxl 2.2.0-beta.1
- glycin-raw 2.2.0-beta.1
- glycin-svg 2.2.0-beta.1
- glycin-test 2.2.0-beta.1
- glycin-thumbnailer 2.2.0-beta.1
- glycin 4.0.0-beta.1
- glycin-builtin 4.0.0-beta.1
- glycin-external 4.0.0-beta.1
- libglycin 2.2.0-beta.1
- libglycin-gtk4 2.2.0-beta.1

### Fixed

- Libglycin relied on the Gio.File async API working when used via it's sync
  API. However, consumers like GNOME Shell, gdk-pixbuf, and Nautilus are
  exhausting the GTask thread pool via spawning a lot of threads via
  `g_task_run_in_thread()` blocking on libglycin. Since libglycin can't make any
  progress on opening or loading files, this leads to a deadlock. While the
  practice of exhausting GTasks is considered bad practice, there are too many
  library consumers relying on this behavior to work. Libglycin now uses the
  sync GIO operations when the sync API is used.
- Work around memory leak in gtk-rs <https://github.com/gtk-rs/gtk-rs-
  core/issues/2011> #314

## 2.2.beta (2026-07-31)

This release contains the following new component versions:

- glycin-common 2.0.0-beta
- glycin-core 4.0.0-beta
- glycin-heif 2.2.0-beta
- glycin-image-rs 2.2.0-beta
- glycin-jxl 2.2.0-beta
- glycin-raw 2.2.0-beta
- glycin-svg 2.2.0-beta
- glycin-test 2.2.0-beta
- glycin-thumbnailer 2.2.0-beta
- glycin-utils 5.0.0-beta
- glycin 4.0.0-beta
- glycin-builtin 4.0.0-beta
- glycin-external 4.0.0-beta
- libglycin-gtk4-rebind 0.2.0-beta
- libglycin-gtk4-rebind-sys 0.2.0-beta
- libglycin-rebind 0.2.0-beta
- libglycin-rebind-sys 0.2.0-beta
- libglycin 2.2.0-beta
- libglycin-gtk4 2.2.0-beta

### Added

- glycin: API to disable conversion of frames with ICC profile to sRGB.
- glycin: Creator::set_transform_memory_format allows to automatically transform
  frame textures to a memory format supported by the image format.
- image-rs: Support XMP in GIF, TIFF, and WebP
- libglycin: Expose API to disable conversion to sRGB from ICC profile and for
  obtaining the ICC profile.

## 2.2.alpha.7 (2026-07-17)

This release contains the following new component versions:

- glycin-core 4.0.0-alpha.7
- glycin-heif 2.2.0-alpha.7
- glycin-image-rs 2.2.0-alpha.7
- glycin-jxl 2.2.0-alpha.7
- glycin-raw 2.2.0-alpha.7
- glycin-svg 2.2.0-alpha.7
- glycin-test 2.2.0-alpha.7
- glycin-thumbnailer 2.2.0-alpha.7
- glycin 4.0.0-alpha.7
- glycin-builtin 4.0.0-alpha.7
- glycin-external 4.0.0-alpha.7
- libglycin 2.2.0-alpha.7
- libglycin-gtk4 2.2.0-alpha.7

### Added

- Add "test_disable_sandbox" option to disable use of sandbox while running
  tests.
- Cross compilation should now work out of the box and not require any patches.
- Setting `GLYCIN_DISABLE_SANDBOX=i-know-the-risks` will disable the sandbox if
  `SandboxSelector::Auto` is used.
- Support conversion of pixel densities between different units.

### Fixed

- Don't report JPEG 2000 images as format name ICO.
- libglycin: Build errors on Windows MSVC and macOS. Builds unter Windows GNU
  are still not completely working.

### Changed

- The pixel density is now provided as it's own object. This is a breaking
  change towards the previous alpha version.
- sandbox: Use seccomp blocklist instead of allowlist.      The allowlist has
  repeatedly caused issues because it's not clear when new syscalls need to be
  added. Since seccomp is a second line of defence on top of namespaces anyway,
  this should be totally fine. Don't block socket calls for now since it's a bit
  complicated and they were allowed before.  This also fixes issues where
  multiarch setups would run into a second arch not being properly handled by
  seccomp. #269

## 2.2.alpha.6 (2026-07-09)

This release contains the following new component versions:

- glycin-common 2.0.0-alpha.1
- glycin-core 4.0.0-alpha.1
- glycin-heif 2.2.0-alpha.6
- glycin-image-rs 2.2.0-alpha.6
- glycin-jxl 2.2.0-alpha.6
- glycin-raw 2.2.0-alpha.6
- glycin-svg 2.2.0-alpha.6
- glycin-test 2.2.0-alpha.6
- glycin-thumbnailer 2.2.0-alpha.6
- glycin-utils 5.0.0-alpha.1
- glycin 4.0.0-alpha.1
- glycin-builtin 4.0.0-alpha.1
- glycin-external 4.0.0-alpha.1
- libglycin 2.2.0-alpha.6
- libglycin-gtk4 2.2.0-alpha.6

### Added

- Glycin now supports pixel density (like DPI) in the internal Frame API. This
  allows to retrive and set the pixel density for PNG, JPEG, and TIFF images.
  The feature is also accessible via the libglycin API.
- image-rs: Support for the Radiance HDR format

### Changed

- image-rs: Use custom openexr loader. This allows to load f16 images as half
  format. It also fixes loading openexr u32 images.

## 2.2.alpha.5 (2026-06-30)

### Fixed

- Let distribution script update the Cargo.lock file.

## 2.2.alpha.4 (2026-06-26)

This release contains the following new component versions:

- glycin-common 2.0.0-alpha
- glycin-core 4.0.0-alpha
- glycin-heif 2.2.0-alpha
- glycin-image-rs 2.2.0-alpha
- glycin-jxl 2.2.0-alpha
- glycin-raw 2.2.0-alpha
- glycin-svg 2.2.0-alpha.2
- glycin-test 2.2.0-alpha
- glycin-thumbnailer 2.2.0-alpha
- glycin-utils 5.0.0-alpha
- glycin 4.0.0-alpha
- glycin-builtin 4.0.0-alpha
- glycin-external 4.0.0-alpha
- libglycin 2.2.0-alpha.4
- libglycin-gtk4 2.2.0-alpha.4

### Added

- Added support for specifying in configs how to detect the images of a type
  instead of relying on global mime-type database. This is faster, more
  reliable, and works on systems like Windows out of the box.
- Give proper error messages when processors panic instead of waiting for
  results forever.
- Glycin can now be built with compiled-in (builtin) processors. In that case,
  loaders don't have to be available as separate binaries. While this mode
  doesn't provide sandboxing and extendability, it supports non-Linux systems
  like macOS and Windows. This mode will be used automatically when not built on
  Linux.
- heif: Add animation support for AVIF and HEIC files
- image-rs: The loaders and editors now use gufo 0.5. This brings support for
  more metadata extraction like key-value medata from PNGs and `<metadata>`
  entries from SVGs. For editing, this now supports changing the orientation of
  images with a broken Exif orientation tag.
- svg: Load XMP metadata

### Changed

- svg: Don't limit the size of elements in the SVG #279

## 2.1.6 (Unreleased)

### Added

- Recognize image/vnd.ms-dds as DDS that is used starting with shared-mime-info
  2.5.

### Changed

- Require image-extras 0.1.1 to fix xpm loading issue #290

## 2.1.5 (2026-06-25)

This release contains the following new component versions:

- glycin-image-rs 2.1.5

### Fixed

- image-rs/jpeg: Support RGB for editing. There are actually images that don't
  use ycbcr. #274

## 2.1.1 (2026-03-23)

This release contains the following new component versions:

- glycin-image-rs 2.1.1

### Fixed

- Bump gufo to 4.0.1. This fixes optaining key-value pairs potentially
  containing nul-characters, which is not allowed per PNG standard and can't be
  transmitted as String via D-Bus. Fixes #276

## 2.1.0 (2026-03-13)

This release contains the following new component versions:

- glycin-common 1.0.4
- glycin-heif 2.1.0
- glycin-image-rs 2.1.0
- glycin-jxl 2.1.0
- glycin-raw 2.1.0
- glycin-svg 2.1.0
- glycin-thumbnailer 2.1.0
- glycin-utils 4.1.0
- glycin 3.1.0
- libglycin-gtk4-rebind 0.1.0
- libglycin-gtk4-rebind-sys 0.1.0
- libglycin-rebind 0.1.0
- libglycin-rebind-sys 0.1.0
- libglycin 2.1.0
- libglycin-gtk4 2.1.0

### Fixed

- thumbnailer: Remove padding if stride is longer than row data, avoiding broken
  scaling. This manly affects AVIF and HEIC. #259


========================================
  gnome-app-list
========================================

2026.08
=======
* Update app list
* Fix fetching data from GNOME GitLab
* CI: disable unnecessary C-specific jobs

Contributors:
  Milan Crha, Allan Day


========================================
  gnome-autoar
========================================

Major changes in 0.5.0:
* format-filter: Add zstd to supported formats (Balló György)
* compressor: Don't use wildcard query string (Khalid Abu Shawarib)
* Remove gnome-autoar-gtk (Emmanuele Bassi, Peter Eisenmann)
* doc: migrate to gi-docgen (Iñigo Martínez, Corey Berla)
* ci: Use CI Fedora template (Peter Eisenmann)
* ci: Publish online documentation (Corey Berla)
* build: Rename docs option (Peter Eisenmann)
* Various CI fixes until it worked again (Peter Eisenmann)
* Add release script (Peter Eisenmann)
* ci: Use release-service (Peter Eisenmann)


========================================
  gnome-backgrounds
========================================

=================
 Version 51.0
=================
 Version 51.beta
=================
- Curvaturingster - nice shapes, terrible name
- default - shape interest in the top right corner, requested by Tobias
- pcolor, scolor adjustments 

====================
 Version 51.alpha.0
====================
- updated default, 'Roundhex' -- emphasized edges, saturation
- Glass Stripes -- refraction, stripes, what's not to love?
- Tubes - minor shading / shape tweaks

=================
 Version 50.0
=================
 Version 50.rc
=================
- default tweaks
- Tubes - extra dark wallpaper
- Glass chip - same name, new design


========================================
  gnome-bluetooth
========================================

ver 47.2:
This version adds mnemonics to some buttons, fixes a couple memory leaks, makes
it possible to run the tests with pygobject >= 3.52, and updates translations.



========================================
  gnome-boxes
========================================

50.0 - Mar 14, 2026
+===================
+
+Changes since 49.1
+
+  - Added/updated/fixed translations


========================================
  gnome-builder
========================================

# GNOME Builder 50.0

 * Translation updates


========================================
  gnome-calculator
========================================

Overview of changes in gnome-calculator 51.0
    * Updated translations

Overview of changes in gnome-calculator 51.rc
    * Updated translations

Overview of changes in gnome-calculator 51.beta
    * Updated translations
    * Show exponent in the current base #536 (Lukáš Tyrychtr)
    * Update and remove some currencies !464 (Jake Dane)
    * Persist calculation history across sessions !469 (Eric Friedman)
    * Report the name entry as invalid on the a11y layer !471 (Lukáš Tyrychtr)
    * Keep rational arithmetic exact (using gmp) !470 (Bruno Gonçalves)
    * Fixed compile warnings !472 (Lukáš Tyrychtr)

Overview of changes in gnome-calculator 51.alpha
    * Updated translations
    * Improve search provider (Christian Hergert)
    * Style fixes (fcusr)
    * Set imaginary component to +0*i when inverting a real number (Weijia Wang)
    * Fixed help not opening #534 (Robert Roth)
    * Fixed compile issues #520 (Tete17)

Overview of changes in gnome-calculator 50.0
    * Updated translations

Overview of changes in gnome-calculator 50.rc
    * Updated translations


========================================
  gnome-calendar
========================================

Major Changes in 51.0:
* Preparations for further keyboard navigation improvements
* Show a support URL in the About dialog
* Minor code cleanups
* Updated translations

Major Changes in 51.rc:
* Improve drag and drop behavior on the Month view. You can now drop events
  on top of other events.
* More keyboard navigation improvements in the Month view.
  When an event is focused, pressing Ctrl+Tab focuses the month cell behind it.
  When a month cell is focused, pressing Shift+Tab focuses the first event
  in front of it.
* Fix a rare crash in the Month view when scrolling
* Be a little more permissive with the headers of remote iCalendar files.
  Files with LF line breaks are now accepted. These files are not technically
  compliant with RFC 5545, but some files are formatted like this in the wild
  and other calendaring applications accept them without problem.
* Fix event popover showing outside the window when the left mouse button is
  released outside the window
* Fix inverted Ctrl+Scroll zoom direction in the Week view
* Updated translations

Major Changes in 51.beta:
* Fix sparodically disappearing horizontal line separators in the month view
* Fix the event editor not saving changes to event durations
* Fix a crash in the week view that would occur for multiple overlapping events
* Don't show the tooltip for the month cell's overflow button if the button is invisible
* Updated translations

Major changes in 51.alpha:
* Completely rework the internals of GNOME Calendar to be based on GListModel.
  Notably, GcalTimeline and GcalTimelineSubscriber all operate on GListModels,
  and so do the views (week, month, and agenda).
* A number of performance improvements and rendering optimizations to the Month
  view and to event widgets
* Vastly reduce amount of data exchanged by Calendar and Evolution Data Server
* Support the maps URI for opening locations
* Use a better month name formatting in various places
* Make the Week view work with the high-contrast setting
* Cleanup and improve the event editor dialog
* Adapt CSS to the latest libadwaita and GTK standards
* Don't change the refresh interval during startup. This avoids changing values
  set by the user in Evolution.
* Explicitly state when app is not contained inside Flatpak in the About dialog
* Cleanup the Flatpak manifest
* Add support for Teams links
* Visual improvements to the Notes section of the event editor dialog
* Updated translations

Major changes in 50.0:
* Updated screenshots
* Focus adjacent cell when pressing Ctrl+Tab in the Month view
* Refreshing calendars also updates collections now. This makes new remote
  calendars appear when refreshing.
* Fix an untranslatable string
* Updated translations

* Make Page Up and Page Down shortcuts jump to first day of month

========================================
  gnome-characters
========================================

51.0
====
* New translations:
  - Maori

51.rc
=====
* meson: Add check parameter to run_command
* Stop using G_GNUC_CONST in _get_type functions
* flatpak: Disable gnome-desktop's qr feature
* New translations:
  - Lao
  - Norwegian Bokmål
* Translation updates:
  - Belarusian
  - Catalan (Valencian)
  - Cornish
  - Dutch
  - German
  - Icelandic
  - Indonesian
  - Italian
  - Kabyle
  - Norwegian Nynorsk
  - Persian
  - Polish
  - Santali
  - Serbian
  - Slovak

50.0
====
* Flatpak builds use the noto-emoji from the Freedesktop SDK
* Switch to search results when the search entry is activated
* Don't restore selection when deactivating search on mobile
* Correctly show sidebar after finishing a search
* Strip whitespaces in bundled GResources
* Add --version cli option
* Add captions to app screenshots
* Translations updates:
  - Basque
  - Bulgarian
  - Catalan
  - Chinese (China)
  - Cornish
  - Czech
  - Danish
  - English (United Kingdom)
  - Finnish
  - French
  - Galician
  - Georgian
  - Greek, Modern (1453-)
  - Hebrew
  - Hungarian
  - Interlingua
  - Japanese
  - Kazakh
  - Korean
  - Lithuanian
  - Nepali
  - Norwegian Bokmål
  - Occitan (post 1500)
  - Polish
  - Portuguese
  - Portuguese (Brazil)
  - Romanian
  - Russian
  - Slovenian
  - Spanish
  - Swedish
  - Turkish
  - Uighur
  - Ukrainian


========================================
  gnome-clocks
========================================

gnome-clocks 51.0
=================
* Translation updates

gnome-clocks 51.rc
==================
* meson: Require meson 1.7
* flatpak: Disable gnome-desktop's qr and systemd features
* Translation updates

gnome-clocks 50.0
=================
* gresources: Use preprocess=xml-stripblanks
* build: use oggenc from vorbis-tools instead of ffmpeg
* Translation updates


========================================
  gnome-connections
========================================

51.0 - 14 Sep, 2026
====================

Changes since 51.rc.1

  - Added/Updated translations:
     - Hungarian
     - Spanish
     - Russian
     - Korean
     - Danish
     - Norwegian-Nynorsk

51.rc.1 - 1 Sep, 2026
====================

Changes since 51.rc

  - Fixed Flatpak build

  - Added/Updated translations:
     - Serbian

51.rc - 31 Aug, 2026
====================

Changes since 51.beta2

  - Added/Updated translations:
     - Basque
     - Brazilian-Portuguese
     - Bulgarian
     - Catalan
     - Catalan
     - Dutch
     - Finnish
     - French
     - Galician
     - German
     - Lithuanian
     - Norwegian Bokmål
     - Persian
     - Swedish
     - Turkish
     - Uighur

51.beta2 - 3 Aug, 2026
====================

Changes since 50.0

  - Fixed focus chain of authentication dialog
  - Added captions to app screenshots
  - Fixed propagation of cursor changes
  - Enabled h264 in flatpak
  - Self-build libhandy
  - Fixed connection to IPv6 URIs
  - Actualized descriptions of protocols in assistant
  - Handle NULL Common Name in RdpConnection
  - Do not remove POINTER_MOTION_MASK
  - Do not store already stored connections
  - Updated gtk-frdp

  - Added/Updated translations:
     - Belarusian
     - Chinese
     - Cornish
     - Czech
     - Georgian
     - Hebrew
     - Kazakh
     - Norwegian Bokmål
     - Occitan
     - Romanian
     - Serbian
     - Slovak
     - Slovenian
     - Ukrainian

50.0 - 13 Mar, 2026
====================

Changes since 50.rc

  - Added/Updated translations:
     - Danish


========================================
  gnome-console
========================================

Version 51.0
~~~~~~~~~~~~

New Translations
 * Maori  (Arlewatyerre Tuhoro-Bell)

Updated Translations
 * Danish  (Ask Hjorth Larsen)
 * French  (Guillaume Bernard)
 * Hungarian  (Balázs Úr)
 * Korean  (DaeHyun Sung)
 * Russian  (Artur S0)
 * Spanish  (Daniel Mustieles)

Version 51.rc
~~~~~~~~~~~~~

New Translations
 * Norwegian Nynorsk  (Bjørn Mørkedal)

Updated Translations
 * Basque  (Asier Saratsua Garmendia)
 * Czech  (Patrik Sivek)
 * French  (Guillaume Bernard)
 * Galician  (Francisco Diéguez Souto)
 * Hebrew  (Yaron Shahrabani)
 * Kazakh  (Baurzhan Muftakhidinov)
 * Lithuanian  (Aurimas Aurimas Černius)
 * Polish  (Victoria Niedzielska)
 * Serbian  (acey dot)
 * Swedish  (Anders Jonsson)
 * Turkish  (Emin Tufan Çetin)

Version 51.beta
~~~~~~~~~~~~~~~

This cycle has seen a focus on stability with our ever expanding testsuite
helping us iron out some rough edges, alongside tackling issues found in the
wild, all whilst keeping pace with developments in the wider platform.

Thanks to Inochi Amaoto, Maximiliano, and Harald Hoyer, for their patches!

New Translations
 * Lao  (Saikeo Kavhanxay)

Updated Translations
 * Belarusian  (Vasil Pupkin)
 * Brazilian Portuguese  (burns)
 * Bulgarian  (Alexander Alexandrov Shopov)
 * Catalan  (Xavi Ivars)
 * Chinese (China)  (Luke Na, luming zh)
 * Cornish  (Flynn Peck)
 * Dutch  (Nathan Follens)
 * Georgian  (Ekaterine Papava)
 * Italian  (Davide Ferracin)
 * Norwegian Bokmål  (Kjartan Maraas)
 * Occitan  (Quentin PAGÈS)
 * Persian  (Danial Behzadi)
 * Polish  (Victoria Niedzielska)
 * Romanian  (Antonio Marin)
 * Serbian  (Марко Костић)
 * Slovak  (Jose Riha)
 * Slovenian  (Martin)
 * Thai  (Aefgh Threenine)
 * Ukrainian  (Yuri Chornoivan)
 
Version 50.0
~~~~~~~~~~~~

Updated Translations
 * Thai  (Aefgh Threenine)

Version 50.rc
~~~~~~~~~~~~~

Our various translator communities have been very busy this cycle, much
thanks to all of them, as well as to Automeris naranja, Hari Rana, luzpaz,
Maximiliano, metamuffin, nina, and Patrick Griffis, for the patches they
provided.

New Translations
 * Cornish  (Flynn Peck)
 * Uighur  (Abduqadir Abliz)

Updated Translations
 * Basque  (Asier Saratsua Garmendia)
 * Brazilian Portuguese  (Juliano de Souza Camargo)
 * British English  (Bruce Cowan)
 * Bulgarian  (twlvnn kraftwerk)
 * Catalan  (Victor Dargallo)
 * Chinese (China)  (luming zh)
 * Chinese (Taiwan)  (Chao-Hsiung Liao, Yi-Jyun Pan)
 * Czech  (Daniel Rusek)
 * Danish  (Ask Hjorth Larsen)
 * Dutch  (Nathan Follens)
 * Finnish  (Jiri Grönroos)
 * French  (Julien Humbert, Lucien Ouoba)
 * Galician  (Fran Diéguez)
 * Georgian  (Ekaterine Papava)
 * German  (Froschi, Lenny Angst)
 * Greek  (Dimitris Spentzos, Efstathios Iosifidis)
 * Hebrew  (Yaron Shahrabani)
 * Hungarian  (Balázs Úr)
 * Indonesian  (Andika Triwidada)
 * Japanese  (小山田 純 - Oyamada Jun)
 * Kazakh  (Baurzhan Muftakhidinov)
 * Korean  (DaeHyun Sung)
 * Lithuanian  (Aurimas Aurimas Černius)
 * Nepali  (Pawan Chitrakar)
 * Occitan  (Quentin PAGÈS)
 * Persian  (Danial Behzadi)
 * Polish  (Victoria)
 * Portuguese  (Hugo Carvalho)
 * Romanian  (Antonio Marin)
 * Russian  (Artur S0)
 * Slovenian  (Martin)
 * Spanish  (Daniel Mustieles)
 * Swedish  (Anders Jonsson)
 * Turkish  (Emin Tufan Çetin, Sabri Ünal)
 * Ukrainian  (Yuri Chornoivan)

========================================
  gnome-control-center
========================================

==========
Version 51
==========

- Various translation updates

Main Window
- Revert "reparent sidebar on small screens" since it broke sub page animations

Remote Desktop
- Add translation comments to "Verify Fingerprint" string

===============
Version 51.rc.1
===============

- Various translation updates

Build
- Bump dependency on gsettings-desktop-schemas to 51.beta

Main Window
- Move focus to the panel content when activating item in the sidebar

Accessibility
- Fix "Configure Screen Reader" button not launching Orca settings
- Fix segfault when launching "Sound" settings from "Hearing" page

Apps
- Add drop-shadow style to default app combo icons
- Fix a11y of default app combo items (so screen readers can read it)
- Request global-shortcuts portal to rebind shortcuts on removal

Color
- Improve keyboard navigation of devices list (a11y)

Fingerprints
- Fix margings in dialog status page
- Fix critical for packing verify button in AdwPreferencesPage directly

Keyboard
- Fix crash when removing key combos for global shortcuts

Mobile Networks
- Align no-sim status page vertically
- Port APN selection dialog to AdwDialog

Notifications
- Hide apps not set for the current desktop environment (.desktop OnlyShowIn)

Users
- Fix changing user avatar not updating visible page
- Rename fingerprint row title


===============
Version 51.beta
===============

- Various translation updates

Build
- Require libgnome-desktop >= 51.alpha

About
- Add button to open GNOME release notes
- Show "GNOME Shell Version" instead of "GNOME Version"

Apps
- Show icons in the default-apps drop down options

Accessibility
- Add setting to disable focus timeout

Date and Time
- Disable ellipzation for one AdwComboRow

Global shortucts
- Add "ConfigureShortcuts"

Graphic Tablets (Wacom)
- Modernize the button mapping fallback dialog

Network
- Hide automatic DNS and route toggle in Manual mode

Main Window (Shell)
- Rework the navigation view and loading of panel pages

Users
- Add new fingerprint management interface
- Disable keeping user data if deleting a homed user
- Disable auto-login for homed users

Wi-Fi
- Fix visible overflow on the Wi-Fi list widget

================
Version 51.alpha
================

- Various translation updates
- Remove Flatpak build support
- Merge all panels CSS files into a single global stylesheet
- Apply clang-format globally and update coding style
- Drop "development" profile

Build
- Post-release version bump
- Make style check mandatory in CI
- Switch CI to GNOME OS

Accessibility
- Add description to the screen reader settings button
- Add semantic accessible names to cursor sizes
- Fix keyboard navigation between cursor sizes
- Give CcSplitRow's radio group a label and role

About (System Details)
- Remove Windowing System field
- Reorder "Software/Hardware" information groups
- Merge system details into toplevel about page
- Port "Copy" button to AdwButtonRow

Applications
- Call GNOME Software via D-Bus instead of CLI
- Define GNOME Software desktop id only once

Color
- Avoid dead nested assignment

Date & Time
- Use GtkEnumList

Display
- Add "Auto Rotate" row for devices with accelerometer
- Add center-aligned snapping for horizontal edges
- Don't allow disabling if it's the last display available
- Update cursor styles for hover and drag interactions

Keyboard
- Fix compose key 'á' example
- Don't update shortcuts when closing dialog
- Improve "Press Esc to cancel [...]" hint
- Drop only the colliding combo when rebinding shortcuts
- Turn CcKeyboardShortcutDialog into a subpage
- Drop nested navigation view in shortcuts page
- Port GtkShortcutLabel to AdwShortcutLabel

Mouse
- Add ability to disable a touchpad while a mouse is plugged in
- Remove superfluous "Touchpad" string from Disable While Typing

Network
- Add DNS domain search settings
- Use GNOME QR Code Widget for WiFi sharing
- Drop WEP support
- Fix confusing proxy descriptions
- Fix WireGuard peer reference ownership
- Fix "Wired" section appearing broken when empty
- Cache the VPN plugin list
- Port WiFi Hotspot dialog to AdwDialog and AdwToolbarView
- Always recreate hotspot dialog

Power
- Use @bg_color in battery levels
- Remove dead nested assignment for time string

Printers
- Make "samba" dependency optional
- Use AdwPreferencesPage/Group

Privacy
- Fix adding location sub page
- Fit Device Security in mobile view
- Port Device Dialog to AdwToolbarView and AdwDialog
- Add mnemonics to device dialog action buttons
- Allow device dialog height to expand
- Do not leak AppInfo and time in location/camera pages
- Manage reference counts properly in light of duplicates

Region
- Initialize locale variables

Remote Desktop
- Set page description on AdwPreferencesPage
- Correctly handle nullable error from secret_collection_for_alias_sync

Remote Login
- Support both sshd service and socket systemd units
- Add option to support SSH socket servers

Sharing
- Port Media Sharing dialog to a subpage
- Port File Sharing dialog to a subpage
- Save media sharing folder list whenever they change
- Add tooltip to the remove button in sharing-networks
- Use a GtkListBox placeholder widget

Global Shortcuts Provider
- Relax app-id validation
- Adjust to libgxdp init API change

Sound
- Set pa_stream sink monitor for input rows
- Order device name and origin correctly for RTL locales
- Expose selected device name to accessibility
- Improve accessibility label of volume slider

Users
- Ensure newly added user have set an avatar
- Remove nested navigation view
- Justify title label of fingerprint empty state
- Set wrapping of fingerprint empty state title label
- Make select fingerprint popup scroll

Wacom
- Append the serial number to the tool description
- Remove an xf86-input-wacom-specific hack
- Fix -Wcast-align errors with clang

Wellbeing
- Fit into mobile width

WWAN
- Use early returns in APN data and EPS bearer getters

=============
Version 50.0
=============

- Various translation updates
- Match old app ID for backwards compatibility in metainfo/appdata
- Close visible toplevels and dialogs when loading other panels

Accessibility
- Improve keyboard navigation in Reduced Motion setting
- Fix Reduced Motion setting not applying due to type mismatch
- Mark hotspot dialog error labels for a11y

Power
- Rework logic to show power button action
- Various inhibitor fixes


========================================
  gnome-desktop
========================================

================
Version 51.0
================

* Translation updates:
  - Basque (Asier Saratsua Garmendia)
  - Belarusian (Vasil Pupkin)
  - Danish (Alan Mortensen)
  - Dutch (Nathan Follens)
  - Finnish (Jiri Grönroos)
  - Galician (Francisco Diéguez Souto)
  - Hebrew (Yaron Shahrabani)
  - Hungarian (Balázs Úr)
  - Japanese (小山田 純 - Oyamada Jun)
  - Karbi (Jor Teron)
  - Korean (Changwoo Ryu)
  - Maori (Arlewatyerre Tuhoro-Bell)
  - Norwegian Bokmål (Miika Brenna Jarsve)
  - Norwegian Nynorsk (Miika Brenna Jarsve)
  - Persian (Danial Behzadi)
  - Serbian (Марко Костић)
  - Spanish (Daniel Mustieles)
  - Swedish (Anders Jonsson)
  - Vietnamese (Phan Quang Khánh)

================
Version 51.alpha
================

* New API to generate qr codes. See gnome-qr.h and gnome-qr-gtk.h
  for details of the api. The new apis are installed as separate
  shared libraries (libgnome-qr-4.so and libgnome-qr-gtk-4.so).
  To use in your code, use the pkg-config files gnome-qr-4.pc
  and gnome-qr-gtk-4.pc.

* Bugs fixed:
  - !185 Introduce gnome-qr library (Joan Torres Lopez, Marco Trevisan
    (Treviño))
  - !188 build: Enable tests again (Marco Trevisan (Treviño))
  - !193 thumbnail: Fix overly broad path check in can_thumbnail (Arecsu)

* Translation updates:
  - Bulgarian (Alexander Alexandrov Shopov)
  - Catalan (Victor Dargallo)
  - Chinese (China) (luming zh)
  - Cornish (Flynn Peck)
  - Czech (Daniel Rusek)
  - French (Julien Humbert)
  - Georgian (Ekaterine Papava)
  - German (Christian Kirbach)
  - Kazakh (Baurzhan Muftakhidinov)
  - Lithuanian (Aurimas Aurimas Černius)
  - Norwegian Bokmål (Kjartan Maraas)
  - Norwegian Nynorsk (Bjørn Mørkedal)
  - Occitan (post 1500) (Quentin PAGÈS)
  - Polish (hoek)
  - Portuguese (Hugo Carvalho)
  - Portuguese (Brazil) (Juliano de Souza Camargo)
  - Romanian (Antonio Marin)
  - Russian (Julia Dronova, Artur S0, Антон Афонин)
  - Serbian (Марко Костић)
  - Slovak (Jose Riha)
  - Slovenian (Martin)
  - Turkish (Emin Tufan Çetin)
  - Uighur (Abduqadir Abliz)
  - Ukrainian (Yuri Chornoivan)
  - Uzbek (Baxrom Raxmatov)

========================================
  gnome-font-viewer
========================================

GNOME Font Viewer - 50.0
-------------------------------------------------------------------------------
Fonts 50.0 comes with the following improvements:

 * Redesigned font preview grid that has a consistent preview size (Khaid Abu Shawarib)
 * Search entry moved to the headerbar to be always visible, and with automatic key stroke
   forwarding to the entry and Esc for clearing search. (Automeris naranja,
   Khaid Abu Shawarib)
 * Reorganized font information page (Automeris naranja)
 * Enhance application metadata (Maximiliano, Daniel Rusek)
 * Plug multiple memory leaks (Maximiliano)
 * Correctly claim to open font collection files (Gregor)

This version brings translation updates for the following locales:
 * Arabic (Khaid Abu Shawarib)
 * Chinese (Taiwan) (Chao-Hsiung Liao)
 * Cornish (Flynn)
 * Norwegian Bokmål (Kjartan Maraas)
 * Santali (Prasanta Hembram)
 * Serbian (Latin) (Miloš Popović)
 * Thai (Aefgh Threenine)
 * Uighur (Abduqadir Abliz)


========================================
  gnome-initial-setup
========================================

51.0
----

Translation updates

- Danish (Ask Hjorth Larsen)

51.rc
-----

* Require accountsservice >= 26.12.8 for act_user_uses_homed
* Require meson >= 0.60.0
* Migrate realm manager from GSimpleAsyncResult to GTask
* Fix potential command injection in keyboard preview
* Zeroise Kerberos password before freeing
* Fix markup injection in privacy policy URL
* Various CI fixes

Translation updates

- Basque (Asier Saratsua Garmendia)
- Brazilian Portuguese (Luiggi Cardoso)
- Bulgarian (Alexander Alexandrov Shopov)
- Catalan (Xavi Ivars)
- Chinese (China) (luming zh)
- Dutch (Nathan Follens)
- Finnish (Jiri Grönroos)
- French (Lucien)
- Galician (Francisco Diéguez Souto)
- Greek (Efstathios Iosifidis)
- Hebrew (Yaron Shahrabani)
- Hungarian (Balázs Úr)
- Interlingua (Emilio Sepúlveda)
- Korean (Seong-ho Cho)
- Lithuanian (Aurimas Aurimas Černius)
- Norwegian Bokmål (Miika Brenna Jarsve)
- Norwegian Nynorsk (Miika Brenna Jarsve)
- Persian (Danial Behzadi)
- Polish (Marcel Mrówka)
- Russian (Artur S0)
- Serbian (acey dot)
- Swedish (Anders Jonsson)
- Turkish (Emin Tufan Çetin)
- Uighur (Abduqadir Abliz)

51.beta
-------

* Initial support for systemd-homed accounts [Adrian; !239]
* Fix crash crash when ssid gets freed (network page) [Kean; b38a95e34f]
* Add error indications and a11y states for enterprise user accounts [Lukáš, !335]
* Stop marking non-const fns as const [Maximiliano, !336]

Contributors:
  Adrian Vovk, Kean Ren, Lukáš Tyrychtr, Maximiliano Sandoval

Translation updates:

- Belarusian (Vasil Pupkin)
- Chinese (China) (luming zh)
- Czech (Daniel Rusek)
- Georgian (Ekaterine Papava)
- Kazakh (Baurzhan Muftakhidinov)
- Occitan (Quentin PAGÈS)
- Romanian (Antonio Marin)
- Slovenian (Martin)
- Ukrainian (Yuri Chornoivan)

51.alpha
--------

* network: Prevent crash when object-paths are gone [Felipe; !331]
* account: Port error dialog to AdwAlertDialog [nmontero; !328]
* account: Port full name and username entries to AdwEntryRows [Felipe; !317]
* summary: Quit when there's no GDM connection [Guido; !296]
* Make header buttons width match [nmontero; !319]
* account: Fall back to g_str_to_ascii when iconv TRANSLIT is unavailable [Clayton, 310]
* Fix Keyboard page search not showing matching layouts immediately [nmontero; !314]
* Get distro logo from os-release [nmontero, !320]
* Various goblint (gobject linter) fixes [Jordan, !326]

Contributors:
  Clayton Craft, Felipe Borges, Guido Günther, Jordan Petridis, Lukáš Tyrychtr,
  Michael Catanzaro, nmontero

Translators:
  Abduqadir Abliz [ug], 小山田 純 - Oyamada Jun [ja], Victoria Niedzielska [pl],
  Ask Hjorth Larsen [da], Bruce Cowan [en_GB], Flynn Peck [kw], Miika Brenna Jarsve [nn, nb],
  Nathan Follens [nl], Jose Riha [sk], Aefgh Threenine [th], Vasil Pupkin [be],
  Марко Костић [sr]

50.0
----

Translators:
  Abduqadir Abliz [ug], 小山田 純 - Oyamada Jun [ja], Victoria [pl],
  Ask Hjorth Larsen [da], Bruce Cowan [en_GB], Марко Костић [sr]


========================================
  gnome-logs
========================================

GNOME Logs 50.0
===============

* Logs are now exported in ascending order
* Fix help dialog inside sandboxes
* Updates to Bulgarian, Catalan, Kazakh, Norwegian Bokmål, Serbian (Latin),
  Serbian, Slovenian, and Uighur


========================================
  gnome-maps
========================================

51.0 - Sep 11, 2026
=========================

Changes since 51.rc
 - Fix showing secondary icon for recent and favorite places in initial
   search results

Added/updated/fixed translations
 - Norwegian Bokmål
 - British English
 - Hungarian
 - Brazilian Portuguese
 - German
 - Russian
 - Spanish
 - Korean
 - Serbian
 - Italian
 - French

All contributors to this release
Artur S0 <arturios05@bk.ru>
Balázs Úr <balazs@urbalazs.hu>
Bruce Cowan <bruce@bcowan.me.uk>
burns <ahoradocafezinho@gmail.com>
Christian Kirbach <christian.kirbach@gmail.com>
Corentin Noël <corentin.noel@collabora.com>
Daniel Mustieles <daniel.mustieles@gmail.com>
Davide Ferracin <davide.ferracin@icloud.com>
Jeeyong Um <conr2d@gmail.com>
Kevin <archer_m-i-a.turbofan684@passmail.net>
Kjartan Maraas <kjartan.maraas@gmail.com>
Marcus Lundblad <ml@dfupdate.se>
Марко Костић <marko.m.kostic@gmail.com>

51.rc - Aug 29, 2026
=========================

Changes since 51.beta
 - Update appdata screenshots
 - Update highway shields from OpenStreetMap-Americana
 - Update OpenStreetMap POI types
 - Update to use v6 of the MOTIS /plan endpoint for public transit routing

Added/updated/fixed translations
 - Turkish
 - Lithuanian
 - Danish
 - Galician
 - Portuguese
 - Norwegian Nynorsk
 - Norwegian Bokmål
 - Swedish
 - Finnish
 - Bulgarian
 - Uighur
 - Indonesian
 - Dutch
 - Catalan
 - Hebrew
 - Chinese (China)
 - Persian
 - Basque
 - Occitan
 - Romanian
 - Belarusian

All contributors to this release
Abduqadir Abliz <sahranbay@gmail.com>
Alan Mortensen <oversaet@proton.me>
Alexander Alexandrov Shopov <ash@kambanaria.org>
Anders Jonsson <anders.jonsson@norsjovallen.se>
Andika Triwidada <atriwidada@gnome.org>
Antonio Marin <gnmer.6qxyg@slmail.me>
Asier Saratsua Garmendia <asiersarasua@ni.eus>
Aurimas Černius <aurimas.cernius@mailo.com>
Bjørn Mørkedal <gnome@morkedal.com>
Danial Behzadi <dani.behzi@ubuntu.com>
Emin Tufan Çetin <etcetin@gmail.com>
Francisco Diéguez Souto <frandieguez@gnome.org>
Hugo Carvalho <hugokarvalho@hotmail.com>
Jan-Michael Brummer <jan.brummer@tabos.org>
Jiri Grönroos <jiri.gronroos@iki.fi>
Kjartan Maraas <kjartan.maraas@gmail.com>
luming zh <lumingzh@qq.com>
Marcus Lundblad <ml@dfupdate.se>
Nathan Follens <nfollens@gnome.org>
Quentin PAGÈS <pages_quentin@hotmail.com>
Vasil Pupkin <3abac@3a.by>
Xavi Ivars <xavi.ivars@gmail.com>
Yaron Shahrabani <sh.yaron@gmail.com>

51.beta
=========================

Changes since 51.alpha
 - Moved settings for showing scale, user location, and mesaurement systems
   from menus to the preference dialog
 - Change shortcut for toggling showing the scale to avoid confusion with
   other usages of ctrl+s (typically save operations in other apps)
 - Show shortcut for showing preferences in shortcuts overview
 - Skip going-to animations for larger distances
 - Allow public transit routing to places further from a routable walking path
   (increased distance from 25 to 250 meters, to match behavior in MOTIS web app)
 - Show walking durations in public transit iteneraries overview
 - Increase font size for place name in sidebar/bottom sheet to better match
   the new pill-style buttons
 - Updated icon for tombs

Added/updated/fixed translations
 - Persian
 - Kazakh
 - Georgian
 - Czech
 - Slovenian
 - Ukrainian
 - Romanian
 - French
 - Norwegian Bokmål

All contributors to this release
Antonio Marin <gnmer.6qxyg@slmail.me>
Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Brayden Rischke <braydenrischke30@gmail.com>
Danial Behzadi <dani.behzi@ubuntu.com>
Daniel Rusek <mail@asciiwolf.com>
Ekaterine Papava <papava.e@gtu.ge>
Guillaume Bernard <associations@guillaume-bernard.fr>
Jakub Steiner <jimmac@gmail.com>
John Cardullo <john@jcarmedia.org>
Kjartan Maraas <kjartan.maraas@gmail.com>
Marcus Lundblad <ml@dfupdate.se>
Martin <miles@filmsi.net>
Yuri Chornoivan <yurchor@ukr.net>

51.alpha
=========================

Changes since 50.0
 - Add offline map download support
 - Add custom overrides for German Autobahn and Bundesstrße highway shields
 - Show departures and arrivals in the place information for public transit
   places (stations and stops) when available from Transitious
 - Show delays and track information for public transit itineraries (when available from provider)
 - Avoid focus route start entry when selecting a place (avoids show OSK on
   touch)
 - Use star icon for favorites menu
 - Move goto current location button to overlay zoom buttons ground and re-arrange
   headerbar buttons (move route button to the left and layers button to the right)
 - Add bicycle shops category to POI search interface

Added/updated/fixed translations
 - Polish
 - Belarusian
 - Cornish
 - Romanian
 - Slovenian
 - Occitan
 - Norwegian Bokmål
 - Persian
 - Dutch
 - Slovak
 - Russian

All contributors to this release
Antonio Marin <gnmer.6qxyg@slmail.me>
Artur S0 <arturios05@bk.ru>
Danial Behzadi <dani.behzi@ubuntu.com>
Flynn Peck <cirilla@tuta.io>
James Westman <james@jwestman.net>
Jose Riha <jose1711@gmail.com>
Kjartan Maraas <kjartan.maraas@gmail.com>
Luiggi R. Cardoso <luiggicardoso@outlook.com>
Marcus Lundblad <ml@dfupdate.se>
Martin <miles@filmsi.net>
Nathan Follens <nfollens@gnome.org>
Quentin PAGÈS <pages_quentin@hotmail.com>
Rein Fernhout <me@levitati.ng>
Timuçin Boldt <git@tboldt.de>
Vasil Pupkin <3abac@3a.by>
Victoria Niedzielska <victorian@gnome.org>
Марко Костић <marko.m.kostic@gmail.com>


========================================
  gnome-music
========================================

Overview of changes in 50.0
• Drop Grilo and use LocalSearch directly
• Add volume controls accelerators
• Refactor Repeat Mode Button into a separate class
• Misc gstplayer refactoring
 Icon is missing in «Add to Playlist» dialog (#668)

Thanks to our contributors this release:
 Gabriele Ricciardi
 Marinus Schraal
 Tau Gärtli

========================================
  gnome-online-accounts
========================================

Overview of changes in 3.58.1
=============================
* Bugs fixed:
  - !391 google: Use #ifdef for GOA_GOOGLE_FILES_ENABLED

* Translation updates:
  - Serbian (Марко Костић)
  - Slovak (Jose Riha)

Overview of changes in 3.58.0
=============================
* Bugs fixed:
  - #453 SMTP server without password cannot be configured (Milan Crha)
  - Remove unneeded SMTP password escaping
  - !384 build: Disable google provider Files feature (Ondrej Holy)
  - !385 MS365: Fix mail address and name (Jan-Michael Brummer)
  - !386 Google: Set mail name to presentation identity (Jan-Michael Brummer)

* Translation updates:
  - Arabic (Ahmed Najmawi)
  - Basque (Asier Saratsua Garmendia)
  - Catalan (Victor Dargallo, Jordi Mas)
  - Chinese (China) (luming zh)
  - Czech (Daniel Rusek)
  - Danish (Ask Hjorth Larsen)
  - English (United Kingdom) (Bruce Cowan)
  - Finnish (Jiri Grönroos)
  - French (Lucien Ouoba)
  - Galician (Fran Diéguez)
  - German (Jürgen Benvenuti)
  - Greek, Modern (1453-) (Efstathios Iosifidis)
  - Hebrew (Yaron Shahrabani)
  - Hungarian (Balázs Úr)
  - Japanese (小山田 純 - Oyamada Jun)
  - Kazakh (Baurzhan Muftakhidinov)
  - Korean (Seong-ho Cho)
  - Lithuanian (Aurimas Aurimas Černius)
  - Persian (Danial Behzadi)
  - Polish (Victoria)
  - Portuguese (Hugo Carvalho)
  - Romanian (Antonio Marin)
  - Russian (Artur S0)
  - Spanish (Daniel Mustieles)
  - Swedish (Anders Jonsson)
  - Turkish (Sabri Ünal)
  - Uighur (Abduqadir Abliz)


========================================
  gnome-remote-desktop
========================================

51.0
====
* Fix pid reuse vulnerability in the smartcard redirection [Jonas; !426]
* Add smartcard redirection documentation [Joan; !427]
* Signal full range BT.709 in the AVC bitstreams [Pavel; !421]
* Misc bug fixes & cleanups [Pavel, Jonas; !422, !428, !429]

Contributors:
  Jonas Ådahl, Joan Torres Lopez, Roy-Magne Mo, Pavel Shilin

Translators:
  Kjartan Maraas [nb], Roy-Magne Mo [nn]

51.rc
=====
* Add support for Kerberos multi user remote login [Jonas; !411, !414, !418]
* Fix Vulkan image allocation [Pavel; !419]
* Fix building on 32 bit architectures [Jonas; !416]
* Misc bug fixes & cleanups [Pavel, Pascal; !420, !423]

Contributors:
  Jonas Ådahl, Pascal Nowack, Pavel Shilin

51.beta
=======
* Fix video corruption when using VA-API [Pavel; !412]
* Add support for smartcard redirection [Joan; !406]
* Misc bug fixes & cleanups [Jonas; !413]

Contributors:
  Jonas Ådahl, Joan Torres Lopez, Pavel Shilin

Translators:
  Kjartan Maraas [nb], Aefgh Threenine [th]

51.alpha
========
* Simplify GDM remote display handling [Joan; !400]
* Fix and enable hardware acceleration for amdgpu [Pascal; !401]
* Fix failure to reconnect [Jonas; !402]

Contributors:
  Joan Torres Lopez, Pascal Nowack, Jonas Ådahl

Translators:
  Nathan Follens [nl], Jose Riha [sk], Danial Behzadi [fa], Vasil Pupkin [be],
  Antonio Marin [ro], Flynn Peck [kw], Christian Kirbach [de],
  Victoria Niedzielska [pl]

50.1
====
* Test improvements [akallabeth, Pascal; !391, !392]
* Misc bug fixes & cleanups [Pascal; !395, !397]
* Fix black screen on some NVIDIA GPUs [Pascal; !394]

Contributors:
  akallabeth, Pascal Nowack

Translators:
  Flynn Peck [kw], Марко Костић [sr], Artur S0 [ru], Sveinn í Felli [is],
  Victoria Niedzielska [pl], Andika Triwidada [id], Salvatore Cocuzza [it]

50.0
====
* Improve GDM remote display interoperability [Joan; !386]
* Improve hardware acceleration compatibility [Pascal; !388]
* Wait for GDM before initializing system daemon startup [Pascal; !387]

Contributors:
  Joan Torres Lopez, Pascal Nowack

Translators:
  Emin Tufan Çetin [tr], Abduqadir Abliz [ug], Hugo Carvalho [pt],
  Ask Hjorth Larsen [da], Daniel [pl], Bruce Cowan [en_GB]


========================================
  gnome-session
========================================

============
Version 51.0
============

- Fixed bug where oo7-daemon.service never starts by default
- Translation updates

=============
Version 51.rc
=============

- Switched to dbus for looking up logind graphical session
- Downgraded logout inhibitors from strong to weak, as a stop-gap fix for
  buggy inhibitor behavior
- Translation updates

===============
Version 51.beta
===============

- Added `SessionIsLocked` and `SessionClass` properties on D-Bus
- Updated mimeapps.list: removed Shaper, since it was split out of GTK into its
  own app
- Fixed regression in screen blanking / idle handling
- Translation updates

================
Version 51.alpha
================

- Enabled use of oo7-portal as the implementation of the Secret portal
- Updated mimeapps.list for removal of gcr3, and expansion of Loupe's supported
  mime types
- Applied various code cleanups from gobject linter
- Fixed a double-free bug
- Translation updates

============
Version 50.0
============

- No changes since 50.rc, just a version number bump and re-release!


========================================
  gnome-settings-daemon
========================================

============
Version 51.0
============
- Translation updates

=============
Version 51.rc
=============
- Translation updates
- CI improvements

Power:
- Avoid overlap between panel dimming and idle sleep notification

===============
Version 51.beta
===============
- Translation updates

Usb-protection:
- Refactors and improvements
- Rely on newer gnome-session for active session tracking

================
Version 51.alpha
================
- Translation updates
- Update gnome-volume-control dependency

Housekeeping:
- Fix launching baobab
- Fix use-after free

Power:
- Make temporary unidle play well with inhibitors

============
Version 50.1
============
- Build improvements for systemd-less systems

============
Version 50.0
============
- Translation updates

Media-keys:
- Ignore suspend inhibitors on explicit actions


========================================
  gnome-shell
========================================

51.0
====
* Don't duplicate locale keyboard layout [Yan; !4256]
* Fix activating network items in quick settings [Carlos; !4391]
* Improve lock/login screen styling [Marco; !4355]
* Cancel mount password dialogs when locking screen [Florian; !4393]
* Validate serilized image data before creating pixbuf [Florian; !4418]
* Fixed crash [Sebastian; !4401]
* Plugged leaks [Sebastian, Florian, Marco; !4385, !4383, !4381, !4203,
  !4397, !4398, !4422, !4426]
* Misc. bug fixes and cleanups [Florian, Marco, Sebastian, Carlos, Daniel;
  !4382, !4384, !4360, !4379, !4387, !4361, !4392, !4395, !4396, !4375, !4270,
  !4389, !4405, !4402, !4400, !4419, !4421, !4420, !4423]

Contributors:
  Marco "Capypara" Köpcke, Carlos Garnacho, Sebastian Keller, Florian Müllner,
  Daniel Nylander, Yan Pas, Marco Trevisan (Treviño)

Translators:
  Марко Костић [sr], Daniel Mustieles [es], Artur S0 [ru],
  Jor Teron [mjw], Balázs Úr [hu], Ask Hjorth Larsen [da], Hazel L [el],
  Bruce Cowan [en_GB], Roy-Magne Mo [nn]

51.rc
=====
* Fix glitch when switching workspaces with direct scanout [Sebastian; !4320]
* Use glycin to load and cache background images [Bilal; !4134]
* Support building with libical4 [Xi; !4215]
* Refuse to unlock screen after screen time limit was reached [Florian; !4321]
* Fix blocking when toggling wireless toggle [PolyMeilex; !4323]
* Continue port from raw event handlers to controllers [Carlos; !4330, !4304]
* Fix focusing calendar app from reminder notification [Sebastian; !4327]
* Don't show busy cursor when activating actions [Sebastian; !4325]
* Fix race condition that prevents password prompt from showing [Adrian; !4336]
* Fix glitch when cancelling lock screen prompt with Esc [Joaquín; !4326]
* Track magnifier mouse position without polling [Kacper; !4344]
* Limit parallel texture loading operations [Georges; !4349]
* Focus first menu item when opened via keyboard [Sergio; !4189]
* Fix race condition when enabling extensions [Sergio; !3640]
* Open windows created via new-window action on correct workspace
  [Sebastian; !4071]
* Plugged leak [Michel; !4337]
* Misc. bug fixes and cleanups [rayjonesjay, Florian, DaPigGuy, Joan, Javad,
  Michel, Sebastian, Marco, Maximiliano, Carlos, Joan, Milan; !4313, !4332,
  !4340, !4342, !4335, !4338, !4329, !4345, !4346, !4339, !4348, !4354, !4341,
  !4358, !4357, !4356, !4362, !4368, !4366, !4369, !4371, !4374, !4373, !4377,
  !4376]

Contributors:
  Georges Basile Stavracas Neto, Sergio Costas Rodriguez, Milan Crha, DaPigGuy,
  Michel Dänzer, Bilal Elmoussaoui, Carlos Garnacho, Prasanta Hembram, Kacper,
  Sebastian Keller, Florian Müllner, PolyMeilex, Javad Rahmatzadeh,
  rayjonesjay, Xi Ruoyao, Maximiliano Sandoval, Joan Torres Lopez,
  Marco Trevisan (Treviño), Arlewatyerre Tuhoro-Bell, Joaquín Vacas Verísimo,
  Adrian Vovk

Translators:
  Flynn Peck [kw], Zeqian Sun [zh_CN], Asier Saratsua Garmendia [eu],
  Antonio Marin [ro], Yuri Chornoivan [uk], Brage Fuglseth [nb],
  twlvnn kraftwerk [bg], Prasanta Hembram [sat], Davide Ferracin [it],
  burns [pt_BR], Yaron Shahrabani [he], Andika Triwidada [id],
  Francisco Diéguez Souto [gl], Nathan Follens [nl], Xavi Ivars [ca],
  小山田 純 - Oyamada Jun [ja], Abduqadir Abliz [ug], Jiri Grönroos [fi],
  Baurzhan Muftakhidinov [kk], Aurimas Aurimas Černius [lt],
  Anders Jonsson [sv], Marcel Mrówka [pl], Lucien [fr], Emin Tufan Çetin [tr],
  Changwoo Ryu [ko], Arlewatyerre Tuhoro-Bell [mi], Jor Teron [mjw]

51.beta
=======
* Fix glitch when switching to minimized window on another workspace
  [Florian; !4199]
* Add initial support for 'reduced-motion' setting [Florian; !4208]
* Explicitly disallow async disable() methods in extensions [Marco; !4276]
* Add SVG-based cursor implementations [Carlos; !4278]
* Continue port from raw event handlers to controllers [Carlos; !4248]
* Improve keyboard navigation of screenshot area selection [Zoey; !4013]
* Support COPY, CUT and PASTE action keys in entries [Yaacov; !4257]
* Fix miscaled magnified cursor on HiDPI [Daniel; !4290]
* Fix sound glitch when pushing redundant volume changes [Andre; !4302]
* Refine auth prompt UX [Joan, Ray; !4306]
* Add support for web login and unified auth mechanism [Ray, Joan, Marco; !3212]
* Handle event reminder notifications [Milan, Florian; !1064]
* Fix removing arbitrary provider when removing unregistered search provider
  [htrex; !4308]
* Misc. bug fixes and cleanups [Jonas, Florian, Alessandro B., Alessandro A.,
  Carlos, Adarsh, Marco, Sergio, Sebastian, Jakub, Bilal, Joan; !4249, !4193,
  !4275, !4261, !4281, !4292, !4293, !4288, !4294, !4296, !4297, !4303, !4305,
  !4301, !4283, !4117, !4082, !4314, !4312]

Contributors:
  Zoey Ahmed, Yaacov Akiba Slama, Alessandro Astone, Alessandro Bono,
  Sergio Costas Rodriguez, Milan Crha, Andre Eikmeyer, Bilal Elmoussaoui,
  Adarsh G M, Carlos Garnacho, htrex, Sebastian Keller, Florian Müllner,
  Jakub Steiner, Ray Strode, Joan Torres Lopez, Marco Trevisan (Treviño),
  Daniel van Vugt, Jonas Ådahl

Translators:
  Victoria Niedzielska [pl], Baurzhan Muftakhidinov [kk], Daniel Rusek [cs],
  Yuri Chornoivan [uk], luming zh [zh_CN], Ekaterine Papava [ka], Martin [sl],
  Antonio Marin [ro], Yaron Shahrabani [he], Danial Behzadi [fa],
  Quentin PAGÈS [oc], Vasil Pupkin [be]

51.alpha
========
* Fix extending screenshot area selection to monitor edges [Ramez; !4158]
* Fix faulty German translations of several date/time formats
  [Andre K.; Translation/de#88]
* Don't notify dash elements twice to screen reader [Sergio; !4182]
* Add rate control to VA-API H.264 screencast pipelines [Mikhail; !4171]
* Fix showing “Install Updates” checkbox in power-off/restart dialog
  [Milan; !4185, !4188]
* Fix autorun notification for connected USB drives Sebastian K.; !4187]
* Fix spinner resetting on each key press in overview search [Vicente; !4191]
* Fix reapplying layout on `xkb-options` changes [Sebastian K.; !4205]
* Fix wiggle feedback on non-password auth failures [Joan; !4209]
* Expose slow-down-factor in looking glass [Florian; !4211]
* Improve app grid accessibility [Sergio; !4110, !4111]
* Support touch scrolling in ScrollView [Lorenzo; !4138]
* Use custom sound effects instead of sound theme [Jakub; !4154]
* Open session/a11y menu on login screen on either button [Florian; !4225]
* Use more readable St.ButtonMask values [Florian; !4224]
* Save and restore monitor brightness [Sebastian W.; !4006]
* Only show audio input icon when actually recording [Herman; !4218]
* Support elogind as libsystemd provider [Swagtoy; !4233]
* Prevent workspaces from being removed mid-animation [Tony; !4014]
* Support version 2 of text_input_v3 protocol [Carlos; !4008]
* Improve UI for conflicting sessions on login screen [Joan; !4081]
* Announce search result description to screen readers [Lukáš; !4251]
* Improve animation when expanding app grid label [Daniel; !4247]
* Replace GLSLEffect with ClutterShaderEffect [Bilal; !4241]
* Fix spacing in lock screen media notifications [Florian; !4217]
* Add support for start/end text-align [Florian; !4204]
* Pass params object to popupMenu open()/close() methods [Florian; !4240]
* Split extensions-app into its own repository [Florian; !4267]
* Plugged leak [Alessandro; !4258]
* Misc. bug fixes and cleanups [Bilal, fthx, Marco, Florian, Bilal,
  Sebastian K., Liam, Monster, Achill, Andre N., Alessandro; !4176, !4077,
  !4183, !4184, !4180, !4135, !4194, !4197, !4201, !4198, !4210, !4220, !4195,
  !3255, !3257, !4163, !4222, !4226, !4228, !4221, !4234, !4243, !4250, !4253,
  !4260, !4133, !4266]

Contributors:
  Vicente Bertolotti, Alessandro Bono, Tony Chen, Sergio Costas Rodriguez,
  Milan Crha, Bilal Elmoussaoui, Herman Fries, fthx, Carlos Garnacho,
  Mikhail Gavrilov, Achill Gilgenast, Lorenzo Ianotto, Saikeo Kavhanxay,
  Sebastian Keller, Ramez Medhat, Monster, Florian Müllner, Andre Nijman,
  Liam Rust, Jakub Steiner, Swagtoy, Joan Torres Lopez,
  Marco Trevisan (Treviño), Lukáš Tyrychtr, Daniel van Vugt, Sebastian Wick

Translators:
  Andre Klapper [de], Kjartan Maraas [nb], Nathan Follens [nl], Jose Riha [sk],
  Saikeo Kavhanxay [lo], luming zh [zh_CN], Bjørn Mørkedal [nn],
  Flynn Peck [kw], Vasil Pupkin [be], Yuri Chornoivan [uk], Martin [sl],
  Emin Tufan Çetin [tr], Antonio Marin [ro], Kristjan ESPERANTO [de],
  Ryo Nakano [ja], Davide Ferracin [it], Artur S0 [ru], Cas Pascal [vi],
  Victoria Niedzielska [pl], Luiggi R. Cardoso [pt_BR]

50.1
====
* Use triangular noise shape for dithering lightbox vignette [Michel; !4137]
* Fix glitch in quick settings with wrapped text in menu [Sebastian; !4136]
* Fit on-screen keyboard better on very small screens [Sebastian; !4156]
* Enable network agent on lock screen [Mitchell; !4160]
* Add basic zoom support to captive portal [Florian; !4159]
* Plugged leak [Sebastian; !4168]
* Misc. bug fixes and cleanups [Daniel, Florian, DaPigGuy, Sebastian, Peter,
  rayjonesjay, Jonas, Bilal, Mohamed; !4139, !4141, !4142, !4143, !4146, !4148,
  !4151, !4152, !4155, !4148, !4151, !4150, !4162, !4165, !4169, !4153]

Contributors:
  Mohamed Abdulla, Mitchell Augustin, DaPigGuy, Michel Dänzer,
  Bilal Elmoussaoui, Peter Hutterer, Sebastian Keller, Florian Müllner,
  rayjonesjay, Daniel van Vugt, Jonas Ådahl

Translators:
  Марко Костић [sr], Flynn Peck [kw], Antonio Marin [ro],
  Victoria Niedzielska [pl], Ryo Nakano [ja], Jordi Mas [ca], Jose Riha [sk]

50.0
====
* Improve accessibility of app folders [Sergio; !4109, !4116]
* Also respect --force-animation flag in remote sessions [Florian; !4118]
* Fix logout action showing up erroneously [Sebastian; !4121]
* Fix keyboard layout changing after leaving password entry [Maksim; !4101]
* Misc. bug fixes and cleanups [Sebastian, Florian, Daniel; !4113, !4114,
  !4119, !4120, !4128]

Contributors:
  Sergio Costas Rodriguez, Sebastian Keller, Maksim Mazko, Florian Müllner,
  Daniel Rusek

Translators:
  Victoria [pl], Bruce Cowan [en_GB], Ask Hjorth Larsen [da],
  Christian Kirbach [de]


========================================
  gnome-software
========================================

Version 51.0
~~~~~~~~~~~~
Released: 2026-09-10

This is a stable release with updated translations:
 * Basque (Asier Saratsua Garmendia)
 * Danish (Alan Mortensen)
 * French (Guillaume Bernard)
 * German (Jürgen Benvenuti)
 * Hungarian (Balázs Úr)
 * Karbi (Jor Teron)
 * Norwegian Nynorsk (Roy-Magne Mo)
 * Portuguese (Brazil) (Luiggi Cardoso)
 * Romanian (Antonio Marin)
 * Russian (Artur S0)
 * Santali (Prasanta Hembram)
 * Serbian (Марко Костић)
 * Spanish (Daniel Mustieles)
 * Uighur (Abduqadir Abliz)

Version 51~rc
~~~~~~~~~~~~~
Released: 2026-08-28

This is an unstable release with the following changes:
 * Various user interface fixes

This release also updates translations:
 * Basque (Asier Saratsua Garmendia)
 * Belarusian (Vasil Pupkin)
 * Bulgarian (Alexander Alexandrov Shopov)
 * Burmese (zay yar lwin)
 * Catalan (Victor Dargallo, Xavi Ivars, Jordi Mas)
 * Chinese (China) (luming zh)
 * Chinese (Taiwan) (Cheng-Chia Tseng)
 * Czech (Patrik Sivek)
 * Dutch (Nathan Follens)
 * Finnish (Jiri Grönroos)
 * French (Lucien)
 * Galician (Francisco Diéguez Souto)
 * Georgian (Ekaterine Papava)
 * Hebrew (Yaron Shahrabani)
 * Indonesian (Andika Triwidada)
 * Kazakh (Baurzhan Muftakhidinov)
 * Korean (Seong-ho Cho)
 * Lithuanian (Aurimas Černius)
 * Norwegian Bokmål (Kjartan Maraas)
 * Norwegian Nynorsk (Bjørn Mørkedal)
 * Occitan (post 1500) (Quentin PAGÈS)
 * Persian (Danial Behzadi)
 * Portuguese (Brazil) (burns)
 * Russian (Artur S0)
 * Slovenian (Martin)
 * Swedish (Anders Jonsson)
 * Thai (Aefgh Threenine)
 * Turkish (Emin Tufan Çetin)
 * Uighur (Abduqadir Abliz)
 * Ukrainian (Yuri Chornoivan)

Version 51~beta
~~~~~~~~~~~~~~~
Released: 2026-07-31

This is an unstable release with the following changes:
 * Improve performance of icons loading
 * Improve performance of PackageKit repositories refine
 * Change statistical approach for average rating scores

This release also updates translations:
 * Chinese (China) (luming zh)
 * Czech (Daniel Rusek)
 * Georgian (Ekaterine Papava)
 * Hebrew (Yaron Shahrabani)
 * Kazakh (Baurzhan Muftakhidinov)
 * Polish (Victoria Niedzielska)
 * Romanian (Antonio Marin)
 * Slovenian (Martin)
 * Ukrainian (Yuri Chornoivan)

Version 51~alpha
~~~~~~~~~~~~~~~~
Released: 2026-06-26

This is an unstable release with the following changes:
 * Extend Flatpak file permissions list
 * Warn before installing end-of-life apps
 * Add tooltips to icon-only buttons in narrow mode
 * Reuse cached AppStream data on start-up to improve performance
 * Fixed few memory leaks

This release also updates translations:
 * Belarusian (Vasil Pupkin)
 * Czech (Daniel Rusek)
 * Dutch (Nathan Follens)
 * Kabyle (BoF ButterflyOfFire)
 * Lao (Saikeo Kavhanxay)
 * Norwegian Bokmål (Brage Fuglseth, Kjartan Maraas)
 * Persian (Danial Behzadi)
 * Polish (Victoria Niedzielska, Łukasz Horodecki)
 * Romanian (Antonio Marin)
 * Russian (Artur S0)
 * Serbian (Марко Костић)
 * Slovenian (Martin)
 * Thai (Aefgh Threenine)
 * Turkish (Emin Tufan Çetin)
 * Uzbek (Muhammad Ganiyev)
 * Vietnamese (phmqXPD)

Version 50.0
~~~~~~~~~~~~
Released: 2026-03-13

This is a stable release with updated translations:
 * Danish (Alan Mortensen)
 * English (United Kingdom) (Bruce Cowan)
 * Japanese (小山田 純 - Oyamada Jun)
 * Occitan (post 1500) (Quentin PAGÈS)
 * Polish (Victoria)
 * Portuguese (Hugo Carvalho)


========================================
  gnome-system-monitor
========================================

New in 51.0 - 11 September 2026

* Updated translations

New in 51.rc - 29 August 2026

* Updated translations

New in 51.beta - 1 August 2026

* Updated translations
* Fixed summary units in process table (Jithendiran)
* Improve code of systemd/selinux/cgroups (Zander Brown)
* Improved process actions wording (Jeff Fortin)
* Use correctly translatable disk read/write rate units #376 (Robert Roth)
* Fixed multiple Icon text on preferences #373 (Robert Roth)
* Improve cgroups performance (Zander Brown)
* Fixed compile failure #378 (Funda Wang)

New in 50.0 - 14 March 2026

* Updated translations

New in 50.rc - 6 March 2026

* Updated translations


========================================
  gnome-text-editor
========================================

# Text Editor 51.0

* Fix tooltip for subtitle when using document portal
* Translation updates

# Text Editor 51.beta

 * Fix high-contrast CSS properties
 * Accessibility fix for preferences switch
 * Allow move-next and previous when search bar is closed
 * Build/CI updates
 * Minor code cleanups
 * Translation updates

# Text Editor 50.0

 * Translation updates


========================================
  gnome-tour
========================================

gnome-tour 50.0
===============
* Translations updates


========================================
  gnome-user-docs
========================================

51.0
====
* Updated translations:
  cs        (Patrik Sivek)
  de        (Christian Kirbach)
  el        (Efstathios Iosifidis)
  eo        (Kristjan ESPERANTO)
  eu        (Asier Saratsua Garmendia)
  fa        (Danial Behzadi)
  fr        (Mathis Joussemet)
  hu        (Balázs Úr)
  id        (Andika Triwidada)
  pt        (Hugo Carvalho)
  pt_BR     (Rafael Coelho Costa)
  ru        (Artur S0)
  sr        (Мирослав Николић)
  sv        (Anders Jonsson)

51.beta
=======
* Updates to GNOME Help (Petr Kovář, activus)
* Updated translations:
  it        (Davide Ferracin)
  kk        (Baurzhan Muftakhidinov)
  sr        (Марко Костић)
  uk        (Yuri Chornoivan)

51.alpha
====
* Port to Meson, and remove Autotools
* Updated translations:
  ba        (Asier Saratsua Garmendia)
  eo        (Kristjan ESPERANTO)
  it        (Davide Ferracin)
  pt_BR     (Samuel Schlemper)
  se        (Марко Костић)

50.0
====
* Updated translations:
  ca        (Jordi Mas)
  de        (Christian Kirbach)
  fi        (Jiri Grönroos)
  fr        (Jean-Marc TISSIERES)
  hu        (Balázs Úr)
  ja        (小山田 純 - Oyamada Jun)
  kk        (Baurzhan Muftakhidinov)
  sv        (Anders Jonsson)


========================================
  gnome-user-share
========================================

This is gnome-user-share 48.3, a system for easy sharing of user files.

Major changes since 48.2:
- Removed the translatable string of realm that caused client authentication errors with passwords
- A translation update

========================================
  gnome-weather
========================================

50.0
====
Weather 50.0 comes with the following translation updates for the following
locales:
  - Basque
  - Bulgarian
  - Catalan
  - Chinese (China)
  - Cornish
  - Czech
  - Danish
  - English (United Kingdom)
  - Finnish
  - French
  - Galician
  - Georgian
  - German
  - Greek, Modern (1453-)
  - Hebrew
  - Hungarian
  - Interlingua (International Auxiliary Language Association)
  - Japanese
  - Kazakh
  - Korean
  - Lithuanian (Aurimas Aurimas Černius)
  - Occitan (post 1500)
  - Polish
  - Portuguese
  - Portuguese (Brazil)
  - Romanian
  - Russian (Artur S0)
  - Slovenian
  - Spanish
  - Swedish
  - Turkish (Sabri Ünal)
  - Uighur
  - Ukrainian


========================================
  gsettings-desktop-schemas
========================================

Major changes in 51.0
=====================
- Translation updates

Major changes in 51.rc
======================
- Added setting for custom pointer acceleration profile
- Remove gconf schema migration files
- Translation updates

Major changes in 51.beta
========================
- Add setting to configure the focus ring visibility timeout
- Add 'orientation-lock' setting to take over the g-s-d setting
- Translation updates

Major changes in 51.alpha
=========================
- Translation updates
- Add scroll speed setting for touchpads
- Add the ability to enable button scrolling on a mouse
- Increase default maximum thumbnail cache from 512MB to 2GB

Major changes in 50.1
=====================
- Translation updates

Major changes in 50.0
=====================
- Translation updates


========================================
  gssdp
========================================

1.6.6 (stable)
==============

 - Fix binding to unicast sockets (Regression introduced by 1.6.5)

All contributors to this release:
 - Jens Georg <mail@jensge.org>

1.6.5 (stable)
=============
 - Block corresponding TCP socket when allocating UDP socket

Bugs fixed in this release:
 - https://gitlab.gnome.org/GNOME/gssdp/issues/31

All contributors to this release:
 - Jens Georg <mail@jensge.org>


========================================
  gst-thumbnailers
========================================

## 1.1.0

- Update dependencies

## 1.1.alpha

- Update dependencies

## 1.0.0

- Update dependencies


========================================
  gtk
========================================

Overview of Changes in 4.24.0, 11-09-2026
=========================================

* Bugs fixed:
  - #8195 Animated SVG frequently disappears (Matthias Clasen)
  - #8307 drop-performed class handlers read a phantom timestamp and send it in
    XdndDrop (Simeon Maxein)
  - #8313 macos: No gtk-macos-special equivalent for the Edit menu ("Start
    Dictation" / "Emoji & Symbols" missing with custom menubar)
  - #8354 GtkColumnView: sortable column headers expose no AT-SPI action, so
    sorting is unreachable for assistive technology
  - #8382 Media queries are not respected (Matthias Clasen)
  - #8390 svg: if the only animations in an svg are visibility animations
    elementa stay at initial value (Matthias Clasen)
  - #8400 Crash triggered by gtk_text_accessible_text_get_extents() (Matthias
    Clasen)
  - #8402 CUPS Secret Service authentication causes use-after-free in
    lookup_auth_info_cb() (Patrick Lambein)
  - !10132 Fix mismatches between parameters in four signal declarations and the
    corresponding class slots (Simeon Maxein)
  - !10245 gtkaccesskitcontext: Expose GActions as custom actions (Lukáš
    Tyrychtr)
  - !10265 macos: Default entries in Edit menu (Arjan Molenaar)
  - !10322 android: Remove empty_frame implementation (Benjamin Otte)
  - !10323 gtk: Repair action muxer subscriptions (Christian Hergert)
  - !10324 gsk: Allow conics with weight zero (Matthias Clasen)
  - !10328 CI: Switch glib CI back to a release (Benjamin Otte)
  - !10329 Update CI to be less likely to break (Benjamin Otte)
  - !10330 docs: Update release howto (Matthias Clasen)
  - !10331 Update Russian translation
  - !10333 Update Occitan translation
  - !10334 Update Norwegian Bokmål translation (Kjartan Maraas)
  - !10336 vulkan: Always update global buffer descriptor set (Benjamin Otte)
  - !10337 Update Serbian translation
  - !10338 Update French translation
  - !10339 svg: Fix run mode discrete (Matthias Clasen)
  - !10341 Update Basque translation (Asier Saratsua Garmendia)
  - !10343 ci: Download glib before configuring on MSYS2 (u9g)
  - !10344 Update Brazilian Portuguese translation
  - !10345 Update Spanish translation
  - !10346 memoryconvert: Pass the correct pointer address (Benjamin Otte)
  - !10349 Update Hungarian translation
  - !10350 Update Danish translation
  - !10353 Update Romanian translation
  - !10356 Update British English translation
  - !10359 curve: Add gsk_curve_get_extrema (Matthias Clasen)
  - !10360 Update Norwegian Nynorsk translation
  - !10361 Some frame clock fixes (Matthias Clasen)
  - !10365 gdkclipboard-x11: don't call a NULL converter (Marc-Antoine Perennou)

* Translation updates:
  - Basque (Asier Saratsua Garmendia)
  - Danish (Ask Hjorth Larsen)
  - English (United Kingdom) (Bruce Cowan)
  - French (Guillaume Bernard)
  - Hungarian (Balázs Úr)
  - Norwegian Bokmål (Kjartan Maraas)
  - Norwegian Nynorsk (Roy-Magne Mo)
  - Occitan (post 1500) (Quentin PAGÈS)
  - Portuguese (Brazil) (Rafael Coelho Costa)
  - Romanian (Antonio Marin)
  - Russian (Artur S0)
  - Serbian (Марко Костић)
  - Spanish (Daniel Mustieles García)

Overview of Changes in 4.23.4, 01-09-2026
=========================================

* Bugs fixed:
  - #7879 AT-SPI attempts to use /org/a11y/atspi/cache before it is ready w/gtk
    4 apps (Mike Gorse)
  - #8137 GtkListView misses items (Sergey Bugaev)
  - #8263 MacOS:  GMainContext uses stale poll array after re-entrant GPollFunc
  - #8293 macos: Drop to GTK4 app is not handled instantly
  - #8320 Issue: Fix Memory Leaks and Potential Crashes in GTK Components
    (Matthias Clasen)
  - #8330 GtkConstraintLayout: non-required inequality constraints release an
    error variable twice (Emmanuele Bassi)
  - #8334 Wayland: SIGSEGV in text_input_preedit_hint() when using IBus Chewing
    in GTK 4 applications (Takao Fujiwara)
  - #8343 macOS: Massive memory leak when unfocusing a window with an open popup
  - #8351 (GtkTextView) Cutting, pasting, or deleting text does not reset
    virtual cursor position (Greg Beauchesne)
  - #8355 GtkText's input interceptor logic is too eager (Carlos Garnacho)
  - #8357 gtk4-demo empty context menu on tabs (Matthias Clasen)
  - #8359 The menu bar focusing with F10 is wrong
  - #8360 GtkAccessibleTextInterface mismatch between interface documentation
    and its implementations (Matthias Clasen)
  - #8362 `gtk_test_init` docs incorrect about locale (Matthias Clasen)
  - #8367 Shortcut labels in menus started showing keypad/numpad keys instead of
    regular ones (Sebastian Keller)
  - !6178 Enable ubsan in the sanitizers CI build (Matt Turner)
  - !9639 rendernode: Add bilevel opacity flag (Benjamin Otte)
  - !9778 listbase: Sanity-check alignment values (Sergey Bugaev)
  - !9982 inspector: Add a frametime overlay (Benjamin Otte)
  - !10049 gsk/vulkan: put the globals in a UBO instead of push constant
    (Ampernic)
  - !10120 macos: Instantly react to dropped content (Arjan Molenaar)
  - !10183 demos/gtk-demo: Drop nonexistent session-id property (Harsh Verma)
  - !10190 android/contentfile: Return NOT_SUPPORTED for foreign copy sources
    (Zhou Qiankang)
  - !10193 Update glib and GStreamer deps and move Fedora CI to F45 (Benjamin
    Otte)
  - !10212 Update Romanian translation
  - !10214 svg: Make symbolic rendering opt-in (Matthias Clasen)
  - !10215 svg: Add tests for symbolic rendering (Matthias Clasen)
  - !10216 macos(dnd): Use thread default context for populating the pastboard
    (Arjan Molenaar)
  - !10217 svg: Avoid a crash (Matthias Clasen)
  - !10219 Update Bulgarian translation
  - !10220 svg: Serialize gpa:rendering (Matthias Clasen)
  - !10221 svg: Serialize gpa:rendering (Matthias Clasen)
  - !10222 Update Persian translation
  - !10223 placesview: Small cleanup (Matthias Clasen)
  - !10226 Update Basque translation
  - !10231 Update Chinese (China) translation
  - !10232 Update Chinese (China) translation
  - !10233 Update Catalan translation
  - !10234 Update Catalan translation
  - !10235 various fixes (Benjamin Otte)
  - !10236 gsk: Fix a typo in quad printing (Matthias Clasen)
  - !10240 Update Galician translation (Francisco Diéguez Souto)
  - !10241 Update Hebrew translation
  - !10243 build: Fix static linking on Windows (Matthias Clasen, Christoph
    Reiter)
  - !10244 gsk/gpu: avoid GPU draw ops for zero-ink glyphs (Matthias Clasen)
  - !10247 Update Brazilian Portuguese translation
  - !10248 rendernodeparser: Allow naming paths (Benjamin Otte)
  - !10249 svg: Fix some state handling mishaps (Matthias Clasen)
  - !10250 icons: Add folder-projects-symbolic (g.willems)
  - !10251 adjustment: Respect the reduced-motion setting (g.willems)
  - !10252 gdkcontentserializer: close the string serializer's converter stream
    (Marc-Antoine Perennou)
  - !10253 color scale: Make vertical alpha scales work (Matthias Clasen)
  - !10260 svg: Avoid unnecessary rendering work (Christian Hergert)
  - !10261 macos: fix ungrab when popovers are open (Arjan Molenaar)
  - !10266 Add a setting for accent color (Matthias Clasen)
  - !10267 color scale: Make vertical alpha scales work (Matthias Clasen)
  - !10268 shortcutswindow: Allow documenting clicks (Matthias Clasen)
  - !10269 testutils: Small docs updates (Matthias Clasen)
  - !10270 Updated Lithuanian translation
  - !10271 various cleanups (Benjamin Otte)
  - !10275 svg: Be more careful (Matthias Clasen)
  - !10276 Update Swedish translation
  - !10277 Update Norwegian Bokmål translation
  - !10278 svg: Really apply states if animation is off (Matthias Clasen)
  - !10279 Update Korean translation
  - !10280 Update Chinese (China) translation
  - !10281 Update Slovenian translation
  - !10282 Update Kazakh translation
  - !10283 svg: Make svg_element_get_rect more robust (Matthias Clasen)
  - !10284 Update Georgian translation
  - !10285 Update Occitan translation
  - !10286 android: Expose gtk-accent-color XSetting (Florian "sp1rit"​)
  - !10287 gdk/wayland: Set app_id on xdg-activation token (Sergey Bugaev)
  - !10288 Update Ukrainian translation
  - !10289 Update Persian translation
  - !10291 Update Galician translation
  - !10292 Update Catalan translation
  - !10293 Update Bulgarian translation
  - !10294 Update Czech translation
  - !10295 Fix pomenubar behavior to match Gtk 3 (Lukáš Tyrychtr)
  - !10298 Update Hebrew translation
  - !10299 Update Hebrew translation
  - !10300 Add svg_element_get_polyline (Matthias Clasen)
  - !10301 Update Turkish translation
  - !10302 gtksettings: Add missing Since annotation (Maximiliano Sandoval)
  - !10303 label: Ensure the layout before computing accessible text extents
  - !10307 Update French translation
  - !10308 Update Uighur translation
  - !10309 Update Korean translation
  - !10310 Update Lithuanian translation
  - !10312 Update Basque translation
  - !10315 array: Assert that added items don't point into array (Benjamin Otte)

* Translation updates:
  - Basque (Asier Saratsua Garmendia)
  - Bulgarian (Alexander Alexandrov Shopov)
  - Catalan (Xavi Ivars)
  - Chinese (China) (luming zh)
  - Czech (Daniel Rusek)
  - French (Guillaume Bernard)
  - Galician (Francisco Diéguez Souto)
  - Georgian (Ekaterine Papava)
  - Hebrew (Yaron Shahrabani)
  - Kazakh (Baurzhan Muftakhidinov)
  - Korean (Changwoo Ryu)
  - Lithuanian (Aurimas Černius)
  - Norwegian Bokmål (Kjartan Maraas)
  - Occitan (post 1500) (Quentin PAGÈS)
  - Persian (Danial Behzadi)
  - Portuguese (Brazil) (Rafael Fontenelle)
  - Romanian (Antonio Marin)
  - Slovenian (Martin)
  - Swedish (Anders Jonsson)
  - Turkish (Emin Tufan Çetin)
  - Uighur (Abduqadir Abliz)
  - Ukrainian (Yuri Chornoivan)


Overview of Changes in 4.23.3, 02-08-2026
=========================================

* GTK supports the ext-background-effect Wayland protocol to allow
  blurred background behind windows

* The visible focus timeout can be changed with the new
  gtk-keyboard-focus-visible-timeout setting

* The GDK frameclock has been reworked to improve precision and reduce
  frame drops

* Support for the CSS font-width property has been added

* Session save/restore functionality has been deferred to 4.26

* Bugs fixed:
  - #223 Remove notebook->focus_tab (John Cardullo)
  - #6493 X11 selection clipboard consumes excessive CPU over time (Alexey
    Lukashov)
  - #8195 Animated SVG frequently disappears (John Cardullo)
  - #8287 Shaper: more state woes (Matthias Clasen)
  - #8288 Shaper: patch attachment properties aren't reflected in the sidebar
    (Matthias Clasen)
  - #8290 gdk_cairo_error_quark() failure (Matthias Clasen)
  - #8291 Type to search broken in Epiphany dialogs (Carlos Garnacho)
  - #8302 Change to GdkWaylandTopLevel breaks API (Matthias Clasen)
  - #8303 GLArea leaks memory on unrealize (Matthias Clasen)
  - #8304 Css text-decoration rule requires a resize to take effect (regression)
    (Matthias Clasen)
  - #8322 Setting tooltips on visible but unmapped widgets blocks on X11 (Tim
    Wright)
  - #8325 GtkSvg assertion failure on Remmina-symbolic.svg (Matthias Clasen)
  - #8329 application menu items with more than one shortcuts don't show any
    (Matthias Clasen)
  - #8335 GtkPicture dispose leaves self->paintable dangling, a second dispose
    steals a reference or unrefs freed memory (Melroy van den Berg)
  - !9648 gdk/wayland: Add support for wl_fixes.ack_global_remove (Vlad
    Zahorodnii)
  - !10071 events: Always collect motion history (Benjamin Otte)
  - !10089 widget: Allow to disable the visible focus timeout (Sergio Costas
    Rodriguez, Sergio Costas)
  - !10099 css: Support font-width (Matthias Clasen)
  - !10100 docs: Update orca developer tips link (Guido Günther)
  - !10102 Fix stroke bounds for circles (Matthias Clasen)
  - !10103 gtkimcontextquartz: Convert (again) IM cursor location to global
    coords (Carlos Garnacho)
  - !10104 svg: Avoid some criticals (Matthias Clasen)
  - !10106 Update Turkish translation
  - !10107 gpu: Don't scale caches too far (Benjamin Otte)
  - !10108 More frameclock work (Benjamin Otte)
  - !10110 gsk: Work a little harder to classify transforms (Matthias Clasen)
  - !10111 pathparser: various fixes (Benjamin Otte)
  - !10113 transformnode: Fix a typo (Matthias Clasen)
  - !10114 gtk/searchentry: Unset capture widget on dispose instead of finalize
    (Carlos Garnacho)
  - !10116 gdk: Use modern boilerplate (Matthias Clasen)
  - !10119 Revert "gtkpopover: Always set focus to a child during show"
    (g.willems)
  - !10121 svg: Handle text chunks better (Matthias Clasen)
  - !10122 frameclockidle: Fix deadlock due to underflow (Benjamin Otte)
  - !10123 svg: Small fixes for blur filters (Matthias Clasen)
  - !10124 svg: Small fixes for blur filters (Matthias Clasen)
  - !10126 x11: Don't update completed frames (Benjamin Otte)
  - !10127 svg: Fix cloning animateMotion (Matthias Clasen)
  - !10137 Update French translation
  - !10138 Update French translation
  - !10139 rendernodeparser: More flexible path parsing (Matthias Clasen)
  - !10141 frameclock: Redo predicted presentation time (Benjamin Otte)
  - !10143 wayland: Get rid of POPUP_STATE_WAITING_FOR_FRAME (Benjamin Otte)
  - !10144 Fix newest gobject-linter warnings (Benjamin Otte)
  - !10145 Add support for ext-background-effect (Benjamin Otte)
  - !10146 gdk/wayland: Avoid destroying toplevel icon buffers twice (Sterling-
    Ash)
  - !10147 Drop the shaper demo (Matthias Clasen)
  - !10149 svg: Add more private api (Matthias Clasen)
  - !10150 Improve rendernode-tool (Benjamin Otte)
  - !10151 svg: Fix new api (Matthias Clasen)
  - !10156 Update Slovenian translation
  - !10157 svg: list models (Matthias Clasen)
  - !10158 Pass GSK rendernode to GDK surface (Benjamin Otte)
  - !10159 svg: Add more private api (Matthias Clasen)
  - !10160 svg: Fully clear state when reloading (Matthias Clasen)
  - !10162 svg: Fix list model updates (Matthias Clasen)
  - !10163 textview: cache pixel height of X (Christian Hergert)
  - !10164 Some fixes for the new shape tree in shaper (Matthias Clasen)
  - !10166 wayland: Fix munmap() of the wrong pointer in the dmabuf format table
    (Andrew Gaspar)
  - !10167 svgwidget: Make resource loading repeatable (Matthias Clasen)
  - !10168 svg: Fix an oversight (Matthias Clasen)
  - !10169 build: Set hidden visibility via meson properties (Benjamin Otte)
  - !10170 Link our internal tests dynamically if we can
  - !10172 Some new SVG apis (Matthias Clasen)
  - !10173 Bump the meson dep (Matthias Clasen)
  - !10176 svg: Drop an unused function (Matthias Clasen)
  - !10177 ci: Use mold for linking (Matthias Clasen)
  - !10178 android/contentfile: Accept plain content URIs in from_uri (Zhou
    Qiankang)
  - !10180 Revert "Add a test for leaked symbols" (Matthias Clasen)
  - !10181 ci: Drop icon-editor related jobs (Matthias Clasen)
  - !10182 svg: Rename a function (Matthias Clasen)
  - !10185 svg: Fix svg_elmeent_delete (Matthias Clasen)
  - !10186 svg: Short-circuit setting specified values (Matthias Clasen)
  - !10187 Add a SvgElement::changed signal
  - !10189 svg: Make svg_value_equal NULL-safe (Matthias Clasen)
  - !10191 svg: Export more api for shaper (Matthias Clasen)
  - !10192 svg: Better approach to deps in shaper (Matthias Clasen)
  - !10195 svg: Fix linked list handling (Matthias Clasen)
  - !10196 application: Drop public save/restore API (Adrian Vovk)
  - !10197 input: Treat Super and Hyper as no-text modifiers (Matthias Clasen)
  - !10199 svg: Tweak the api (Matthias Clasen)
  - !10200 svg: Avoid a crash (Matthias Clasen)
  - !10204 build: Add a missing files() incantation (Matthias Clasen)
  - !10205 various small fixes (Benjamin Otte)
  - !10206 Update Czech translation
  - !10207 Update Slovenian translation
  - !10208 Update Georgian translation
  - !10209 Update Ukrainian translation

* Translation updates:
  - Czech (Daniel Rusek)
  - French (Guillaume Bernard)
  - Georgian (Ekaterine Papava)
  - Slovenian (Martin)
  - Turkish (Emin Tufan Çetin)
  - Ukrainian (Yuri Chornoivan)


Overview of Changes in 4.23.2, 27-06-2026
=========================================

* GTK now respects the reduced motion setting in various places
  and avoids animations (GtkSpinner, GtkStack, GtkRevealer)

* New GtkShortcutTrigger functions it easier to handle synonymous
  keys (in particular keypad keys). The new functions are
  gtk_alternative_trigger_newv,
  gtk_shortcut_trigger_create_with_aliases and
  gtk_shortcut_trigger_create_for_menu

* Type-to-search (in particular interaction with input methods)
  has been redone, switching from a "pull" to a "push" approach.
  See gtk_editable_set_input_interceptor for more details.
  As part of this, gtk_event_controller_key_forward has been
  deprecated.

* The first part of ongoing frameclock work has landed, improving
  our ability to deliver frames on time

* A number of GtkList/Grid/ColumnView size allocation issues
  have been addressed. Please let us know if you spot any remaining
  or new problems.

* GtkSvg:
 - Support feTurbulence
 - Improved text handling, including baseline-shift, whitespace
   handling, text-decoration, proper fill+stroke, and more

* Build:
 - The pango dependency has been bumped to 1.58.0

* Bugs fixed:
  - #8230 GtkMenuButton with an autohide=false popover does not focus the
    popover when showing
  - !9906 Fix Gtk.ListView/Gtk.GridView measure with for_size != -1 (Vladimir
    Romanov)
  - !9958 Logically focus IM context in type-to-search (Carlos Garnacho)
  - !10001 columnview layout (Sergey Bugaev)
  - !10023 gtkpopover: Always set focus to a child during show (Lukáš Tyrychtr)
  - #8075 Tooltips unminimize windows unexpectedly
  - #8187 EventControllerLegacy macos: one-pixel difference between position of
    button press and release events
  - #8194 Blurry text regression in 4.23.0
  - #8223 New svg spinner rendering issues
  - #8229 The accessible parent of the application should not be null
  - #8235 Inspector crashes with CSS with malformed inline svg effects (Matthias
    Clasen)
  - #8241 Shaper: wrong tooltip for created icon (Matthias Clasen)
  - #8244 Shaper: Weight now only affects the active icon (Matthias Clasen)
  - #8246 Shaper: crash on changing visibility for states
  - #8248 Shaper: Changing the state from "Display Settings" does not change it
    in the sidebar (Matthias Clasen)
  - #8249 Shaper: Problem with "Overlaps" icon (Matthias Clasen)
  - #8250 Shaper: Doesn't ask for saving changes when loadinga file or an
    example (Matthias Clasen)
  - #8258 Shaper: cannot add states (Matthias Clasen)
  - #8259 Crash when transitioning between filter: none and filter: url()
    (Matthias Clasen)
  - #8262 svg: animateTransform doesn't work for specific file (Matthias Clasen)
  - #8264 svg: fractional values for repeatCount don't work (Matthias Clasen)
  - #8265 Coordinates for turbulence seem computed wrong (Matthias Clasen)
  - #8268 Shaper: XML changes reset the state to 0 (Matthias Clasen)
  - #8270 Shaper: Invalid changes to XML, related to shape geometry, crash it
    (Matthias Clasen)
  - #8278 GtkRevealer uses too much space (g.willems, Matthias Clasen)
  - #8279 Shaper: 'empty' state doesn't get saved (Matthias Clasen)
  - #8280 Shaper: state management issues (Matthias Clasen)
  - !9569 macos: unmap window when minimized (Arjan Molenaar)
  - !9890 gdk/macos: Convert mouse event coordinates consistently (Dario Marino
    Saccavino)
  - !9990 Add GtkActivateTrigger (Matthias Clasen)
  - !9991 Improvements for the filebrowser demo (g.willems)
  - !9992 spinner: Debug things (Matthias Clasen)
  - !9993 doc: input-handling: fix link to event controllers (Peter Shkenev)
  - !9995 Fix the build with tracker (Matthias Clasen)
  - !9996 Fix parsing of conic-gradient() CSS (Benjamin Otte)
  - !9998 Fix various issues with svg animations (Matthias Clasen)
  - !9999 Update Romanian translation
  - !10000 svg: Fix handling of transform-origin (Matthias Clasen)
  - !10002 Update Slovenian translation
  - !10003 spinner: Respect reduced motion (Matthias Clasen)
  - !10004 various cleanups (Benjamin Otte)
  - !10005 frameclock: Rename (un)inhibit_freeze to start/stop and clean up
    (Benjamin Otte)
  - !10006 gdk/wayland: Make clipboard and primary selection updates less racy
    (Vlad Zahorodnii)
  - !10007 gtk4-demo: Tweak the error states demo (Matthias Clasen)
  - !10009 gtkatspiroot: Return the desktop as its parent (Lukáš Tyrychtr)
  - !10015 shortcuttrigger: Expand docs a little (Matthias Clasen)
  - !10016 inspector: Be robust against far out errors (Matthias Clasen)
  - !10017 css: Fix a thinko (Matthias Clasen)
  - !10018 svg: Allow file:// urls in hrefs (Matthias Clasen)
  - !10019 Fix another few crashes in GtkSvg (Matthias Clasen)
  - !10020 svg: Fix rendering of some wikipedia examples (Matthias Clasen)
  - !10021 svg: Use correct namespace (Guido Günther)
  - !10024 Cosmetic fixes (Matthias Clasen)
  - !10025 Support turbulence (Matthias Clasen)
  - !10027 gtk: Fix shortcuts regressions (g.willems)
  - !10028 entry: Avoid blank leftovers when removing icons (g.willems)
  - !10029 frameclock: More cleanup (Christian Hergert, Benjamin Otte)
  - !10031 docs: Add missing nodes to the node format docs (Matthias Clasen)
  - !10032 Assorted svg fixes (Matthias Clasen)
  - !10033 Some icon editor fixes (Matthias Clasen)
  - !10035 Next FrameClock refactoring step (Benjamin Otte)
  - !10040 icon editor: Clean up one example (Matthias Clasen)
  - !10042 Drop an erroneous file (Matthias Clasen)
  - !10046 display: Add gdk_display_get/set_prefer_vulkan() (Benjamin Otte)
  - !10048 gsk: fix GskTransform leak in gsk_gpu_render_pass_push_transform
    (Ampernic)
  - !10052 svg: Add a missing turbulence test (Matthias Clasen)
  - !10058 rendernode-tool: Make info tool deal better with recursive nodes
    (Benjamin Otte)
  - !10059 testsuite: Add a test that causes lots of globals (Benjamin Otte)
  - !10061 docs: fix typo in node-format.md (John Bampton)
  - !10062 Fix mipmap sampling for dmabufs (Benjamin Otte)
  - !10064 icon editor: Preserve state when swapping svgs (Matthias Clasen)
  - !10065 memoryformat: Add missing GDK_MEMORY_ABGR2101010_PREMULTIPLIED docs
    (Sebastian Dröge)
  - !10067 Update Slovenian translation
  - !10070 revealer: Respect the reduced motion setting (Matthias Clasen)
  - !10072 Shaper: Set foreground color for demo5 (Jakub Steiner)
  - !10074 svg: Handle details for text decoration (Matthias Clasen)
  - !10075 svg: Rework text rendering (Matthias Clasen)
  - !10079 Revert "filechooserutils: Stop using pixbufs"
  - !10082 Update Polish translation (Victoria Niedzielska)
  - !10083 Fix the build against pango main (Matthias Clasen)
  - !10084 icon editor: Handle states a bit better (Matthias Clasen)
  - !10085 Center state names in state editor (Urtsi Santsi)
  - !10087 stack: Avoid resizing animation in reduce-motion mode (g.willems)
  - !10090 gl: Actually report partial damage (Benjamin Otte)
  - !10091 gsk: Account for render offset when snapping glyphs (Alessandro
    Astone)
  - !10093 android: Fix timestamp unit (Benjamin Otte)
  - !10094 svg: Redo whitespace handling (Matthias Clasen)
  - !10096 application-x11: Fix saved state ownership (Alessandro Astone)
  - !10097 svg: More whitespace handling (Matthias Clasen)

* Translation updates:
  - Polish (Victoria Niedzielska)
  - Romanian (Antonio Marin)
  - Slovenian (Martin)

Overview of Changes in 4.23.1, 29-05-2026
=========================================

* Snapping: GTK can now snap contents to device pixel boundaries,
  for better control of rendering with fractional scales

* SVG:
 - Support the dominant-baseline attribute for text
 - Support media queries in CSS
 - Fix priority order of styles and animations

* Touch:
 - Long press on entries opens the touch menu

* Android:
 - Frame timing is now aligned with vsync

* Bugs fixed:
  - #3542 Window dragging doesn't work with touch on X11 (Alessandro Astone)
  - #4529 Popover cannot be closed after opening a child popover (Carlos
    Garnacho)
  - #5610 Unable to move windows by dragging the title bar on GTK4 Xorg with
    touchscreens (Alessandro Astone)
  - #5890 X11 drag-and-drop failure not communicated to source, unlike Wayland
    (Will Warner)
  - #7508 In X11, touchscreen double tap requires very precise input (Alessandro
    Astone)
  - #7515 X11 touchscreen events are handled as mouse events (Alessandro Astone)
  - #7657 Nautilus and other GTK4 applications crash when writing in a text box
    using the on-screen keyboard (Carlos Garnacho)
  - #8034 MacOS: Clipboard: Pasting url from safari cannot be decoded with
    text/uri-list
  - #8138 android: use Choreographer for vsync-aligned frame timing
  - #8140 Accessibility: GTK4 TextView reports wrappet lines incorrectly to Orca
  - #8142 svg: Shadow dom issues (Matthias Clasen)
  - #8146 Snapshot with too small an angle shift freezes (Matthias Clasen)
  - #8153 android: Text handles within popups are wrongly positioned (Florian
    "sp1rit"​)
  - #8156 svg: Fix priority order of animations and styles (Matthias Clasen)
  - #8159 Properties never installed
  - #8168 Application looses focus after selecton of GtkComboBoxText (Carlos
    Garnacho)
  - #8170 wayland: Don't send v2 text_input content hints when v1 is bound
    (Matthias Clasen)
  - #8175 Android builder needs meson 1.11 (Florian "sp1rit"​)
  - #8177 Shaper: crash on load (Matthias Clasen)
  - #8178 Symbolic icons rendering in wrong style (Matthias Clasen)
  - #8179 Shaper: UI for fill/stroke doesn't seem to have any effect
  - #8184 Zoomed image in Loupe makes hardware renderer glitch (Benjamin Otte)
  - #8186 GTK4 TextView doesn't emit object:text-selection-changed events when
    it should (and does when it shouldn't)
  - #8189 GskGpuCache causing FD exhausting for HDR video playback on lavapipe
    (Benjamin Otte)
  - #8191 DragSource race condition leads to corrupted memory (Khalid Abu
    Shawarib)
  - #8193 Conditional jump on uninitialized value in SVG parser (Matthias
    Clasen)
  - #8196 Shaper: launches light when in dark mode. (Matthias Clasen)
  - #8203 GtkConstraintVflParser parser doesn't allow underscores in VFL view
    identifiers (Emmanuele Bassi)
  - #8210 non-Linux build fix
  - #8216 Add a way to dump the inspector info for bug reports into a text file
    (Matthias Clasen)
  - !6480 gtklabel: Queue a draw after changing the focused link (Philip
    Withnall)
  - !8827 fontdialog: update font-dialog-set-language API to set an initial
    language filter (Sudip Shil)
  - !8906 Add GdkAppLaunchContextWin32 (Luca Bacci)
  - !8951 X11 backend touchscreen fixes (Alessandro Astone)
  - !9523 macos: Add support for pasting url's as text/uri-list (Arjan Molenaar)
  - !9579 Report mnemonic shortcuts through a11y (Lukáš Tyrychtr)
  - !9614 gtk: unrealize window if backing surface got destroyed (Florian
    "sp1rit"​)
  - !9715 fix incorrect baseline calculation for vertical boxes (Max Bachmann)
  - !9760 widget: Handle coordinate translation failure (Sergey Bugaev)
  - !9784 popover: Don't set GDK_ANCHOR_RESIZE_{X,Y} when we can't be resized
    (Sergey Bugaev)
  - !9790 Use named enum values instead of 0 (Maximiliano Sandoval)
  - !9798 Use G_PARAM_STATIC_NAME on properties
  - !9799 win32: Fix public symbol not being exported (Sergey Bugaev)
  - !9802 Stop exporting various private symbols (Sergey Bugaev)
  - !9807 svg: Fix use of alternative views (Matthias Clasen)
  - !9808 svg: Move the renderer to a separate file (Matthias Clasen)
  - !9809 gtkfilelauncher/android: Pass correct pointer as URL (Florian
    "sp1rit"​)
  - !9810 glsl: Add snapping APIs to GLSL (Benjamin Otte)
  - !9812 Fix copy-pasted doc blocks in GtkSvgWidget (Emmanuele Bassi)
  - !9813 gtkpango: Don't land on a single char of a wrapped line twice (Lukáš
    Tyrychtr)
  - !9814 svg: Avoid a compiler warning (Matthias Clasen)
  - !9815 wayland: Fix underlining of preedit (Matthias Clasen)
  - !9818 gtk-demo: Fix the images demo (Matthias Clasen)
  - !9819 android: use Choreographer for vsync-aligned frame timing (Kristjan
    ESPERANTO)
  - !9822 Small misc fixes (Theo de Raadt, Florian "sp1rit"​)
  - !9823 Update German translation (Christian Kirbach)
  - !9825 print dialog: Fix GTask lifecycle management (Matthias Clasen)
  - !9829 svg: Make shadow trees work properly (Matthias Clasen)
  - !9830 gtk: Rework text handles (Florian "sp1rit"​)
  - !9831 theme: Fix context menus in grid views (Alice Mikhaylenko)
  - !9832 testsuite: Change the font in a compare test (Benjamin Otte)
  - !9835 add language filtering to font picker (Sudip Shil)
  - !9838 android: Expose accent-color property in Gdk.AndroidDisplay (Florian
    "sp1rit"​)
  - !9839 Misc fixes (Matthias Clasen)
  - !9842 icons: Sync with icon devkit (Jakub Steiner)
  - !9843 Only activate osk on touch (Matthias Clasen)
  - !9844 API: Add snapping (Matthias Clasen, Benjamin Otte)
  - !9845 android/popup: fix position of cascaded popups (Florian "sp1rit"​)
  - !9846 application: Fix a memory leak (Matthias Clasen)
  - !9849 gdk/event: Document timestamp being in milliseconds (Florian
    "sp1rit"​)
  - !9850 android: attempt to restore toplevel identifier from save-state
    (Florian "sp1rit"​)
  - !9857 selectionmodel: Amend the docs (Matthias Clasen)
  - !9858 gpu: Don't double-clip gradients (Benjamin Otte)
  - !9859 colormatrixnode: Make the bounds explicit (Benjamin Otte)
  - !9860 win32: Convert GetSystemMetrics results to logical units (Sergey
    Bugaev)
  - !9861 svgwidget: Fix activate signal parameter count (Liu Jinchang)
  - !9863 popoverbin: Point to the center of the widget when popping up (Hari
    Rana)
  - !9864 printdialog: Fix a crash (Matthias Clasen)
  - !9865 popoverbin: Improve keyboard placement (Matthias Clasen)
  - !9868 svg: support dominant-baseline (Florian "sp1rit"​)
  - !9870 icons: Fix up media-record-symbolic (Matthias Clasen)
  - !9871 gsk: Avoid cache explosion in 3D
  - !9872 icons: Remove compat classes (Matthias Clasen)
  - !9873 Add a some details about MRs (Matthias Clasen)
  - !9874 gpu: Don't override fields already marked as modified (Benjamin Otte)
  - !9875 android: drop explicit fontconfig master dependency (Florian
    "sp1rit"​)
  - !9878 Revert !9875 & ci: bump meson to 1.11.1 (Florian "sp1rit"​)
  - !9879 Update Persian translation
  - !9881 widgets: Add missing GDK_KEY_KP_Space for activation (Sergio Costas
    Rodriguez)
  - !9882 svg: Clean up some private apis (Matthias Clasen)
  - !9883 Redo the transform demo (Matthias Clasen)
  - !9884 Various snapshot & rendernodeparser fixes (Benjamin Otte)
  - !9885 tools: Add a "cut" rendernode filter (Benjamin Otte)
  - !9887 Update Romanian translation
  - !9888 tools: Add simplify filter (Benjamin Otte)
  - !9889 Add more content to the rotating sphere benchmarks (Matthias Clasen)
  - !9894 Update Slovenian translation
  - !9895 Rework GDK grabs (Carlos Garnacho)
  - !9896 Fix memory leak when focused widget is hidden before being unparented.
    (Ben Mather)
  - !9897 text: Open touch menu on long press
  - !9899 editable: Fix typo in example (Guido Günther)
  - !9900 android: Scale bounds of AndroidMonitor (Florian "sp1rit"​)
  - !9903 gpu: Trigger cache GC from dmabuf downloading code (Benjamin Otte)
  - !9907 various fixes (Benjamin Otte)
  - !9908 textview: Sync touch behavior (Matthias Clasen)
  - !9909 docs: Fix CSS examples (Evangelos Paterakis)
  - !9910 svg: Cosmetics (Matthias Clasen)
  - !9911 inspector: Handle Unicode more carefully (Matthias Clasen)
  - !9914 gtk-demo: No session saving in special modes (Matthias Clasen)
  - !9915 svg: Fix a compiler warning (Matthias Clasen)
  - !9920 Clarify how to acquire environment information in `Bug.md`. (Mr.
    Beedell, Roke Julian Lockhart (RJLB))
  - !9921 android/ime: get surface when needed instead in set_client_widget
    (Florian "sp1rit"​)
  - !9923 icon editor: Avoid a crash (Matthias Clasen)
  - !9924 Add a gobject-linter job (Jordan Petridis, Benjamin Otte)
  - !9925 gi: Various since annotations fixes (Bilal Elmoussaoui)
  - !9926 svg: Handle media queries (Matthias Clasen)
  - !9927 Complete pspec fixes from previous MRs (Benjamin Otte)
  - !9930 miscellaneous fixes and cleanups (Matthias Clasen)
  - !9931 Remove GTK_PARAM_READABLE/WRITABLE/READWRITE (Benjamin Otte)
  - !9932 Move private functions into private header (Benjamin Otte)
  - !9933 docs: Make docs for GtkAlign match reality (Matthias Clasen)
  - !9936 gtktextview: Send selection changed signal when we should (Lukáš
    Tyrychtr)
  - !9937 constraint: Fix VFL parsing of view names (Emmanuele Bassi)
  - !9938 widget: Move ::has-default notify into set_has_default() (Benjamin
    Otte)
  - !9939 examples: fix bloatpad missing icons (g.willems)
  - !9940 dropdown: Add missing a11y control relation (g.willems)
  - !9943 More paramspec improvements (Benjamin Otte)
  - !9944 icon editor: Remove some leftover code (Matthias Clasen)
  - !9946 gdk: Fix checking NULL portal usage (Peter Eisenmann)
  - !9947 Lots of simple fixes (Benjamin Otte)
  - !9948 Fix issues with G_BEGIN/END_DECLS (Benjamin Otte)
  - !9949 Use g_clear_*() (Benjamin Otte)
  - !9952 Header renaming and autoptr addition (Benjamin Otte)
  - !9953 win32: Remove gdkwin32cursor.h from the public API (Benjamin Otte)
  - !9954 icon editor: More catching up (Matthias Clasen)
  - !9957 testsuite: fix non-Linux wayland build. (Thomas Klausner)
  - !9959 icon editor improvements (Matthias Clasen)
  - !9960 Add a way to dump general info (Matthias Clasen)
  - !9961 Update Romanian translation
  - !9962 treednd: use a proper flexible array member (Alyssa Ross)
  - !9963 vulkan: fix descriptor sets for masks (Benjamin Otte)
  - !9964 macos: don't show test processes in the dock (Johan Dahlin)
  - !9966 macos: fix URL encoding regression in pasteboard file URIs (Roberto
    Moura)
  - !9967 icon editor: stylesheet editing (Matthias Clasen)
  - !9969 Update Georgian translation
  - !9971 Various fixes (Benjamin Otte)
  - !9974 svg: Don't write out gpa attributes if not doing gpa (Matthias Clasen)
  - !9975 ci: Save the ASAN testsuite artifacts (Benjamin Otte)
  - !9976 svg: Work on test coverage (Matthias Clasen)
  - !9977 inspector: Avoid a needless roundtrip (Matthias Clasen)
  - !9978 icon editor: Handle <style> media attributes (Matthias Clasen)
  - !9979 Fix sporadic svg crashes (Matthias Clasen)
  - !9981 gsk: Tweak some doc images (Matthias Clasen)
  - !9983 Update Slovenian translation
  - !9986 Unify GTK native rendering code in gtknative.c (Benjamin Otte)
  - !9987 svgwidget: Add a private paintable getter (Matthias Clasen)

* Translation updates:
  - Georgian (Ekaterine Papava)
  - German (Christian Kirbach)
  - Persian (Danial Behzadi)
  - Romanian (Antonio Marin)
  - Slovenian (Martin)


Overview of Changes in 4.23.0, 14-04-2026
=========================================

* SVG:
 - GtkSvgWidget is a widget to display SVG, with some support
    for interactive aspects of SVG
 - We now handle <a>, <view>, <title> and <desc>
 - Problems with recoloring of symbolic icons have been fixed
 - GtkSvg is now used for all SVG icons
 - GtkSpinner is using GtkSvg

* Wayland:
 - Version 3.2 of the text protocol is supported
 - xdg-session-management-v1 is used

* Session saving:
 - The session saving support is back

* GSK:
 - A number of 10bit image formats are supported
 - The cache allocator has been rewritten
 - We are now using clip masks to reduce the number of offscreens

* The Android backend has been ported to SDK 36

* The gtk4-encode-symbolic tool for producing symbolic
  png icons has been dropped. If you were using it,
  just ship the symbolic svg icons instead

* Bugs fixed:
  - #6071 FileDialog filter becomes (None) when navigating via top bar
  - #7567 Black borders around windows in Windows (Dan Yeaw)
  - #7833 Input panel misplaced when typing with an input method in a GTKPopover
    widget (cdbg)
  - #8081 po/README.translators should be updated or removed (Matthias Clasen)
  - #8087 Drop Shadows Make Transparent Textures Significantly Darker (Benjamin
    Otte)
  - #8090 Gtk.IconPaintable SVG fallback wrong color (Matthias Clasen)
  - #8092 Shaper: changing state name doesn't mark file as "changed" (Matthias
    Clasen)
  - #8094 Devel style class is broken by SVG changes (Matthias Clasen)
  - #8096 Shaper: don't add countless states
  - #8098 Crashes with SIGSEGV in `gdk_wayland_toplevel_remove_from_session()`
    (Philip Withnall)
  - #8099 Documentation: Gtk Switch page is missing switch-state.png image
    (Matthias Clasen)
  - #8100 GtkSvg: Switching states quickly in Shaper doesn't work (Matthias
    Clasen)
  - #8101 Shaper: issue with weight (Matthias Clasen)
  - #8103 gtk3 refresh_rate calculation overflows on 32-bit targets (Alberto
    Garcia)
  - #8105 Shaper: Inkscape to Shaper breaks format (Matthias Clasen)
  - #8106 Some symbolic icons seems to not be recolored correctly (Matthias
    Clasen)
  - #8107 Unbalanced Snapshot.{save,restore} calls in libadwaita (Florian
    "sp1rit"​)
  - #8108 Shaper: cannot set stroke color to Foreground (Matthias Clasen)
  - #8111 a11y: PreferencesGroup isn't being described as container of
    ActionRows
  - #8125 svg: Animating hrefs does not work (Matthias Clasen)
  - #8139 A layout manager invoking a Cairo bug (Benjamin Otte)
  - !6922 Implement version 2 of text_input_v3 protocol (Carlos Garnacho)
  - !9016 spinner: Use an animated icon (Matthias Clasen)
  - !9184 filechooser: Fix filters being removed when navigating via the bar
    path (Jules Maselbas)
  - !9380 Iterate on save/restore support (Adrian Vovk)
  - !9411 text: Add option to include preedit as part of text (Florian
    "sp1rit"​)
  - !9437 The big renderer refactor (Benjamin Otte)
  - !9459 Use GtkSvg for all icons (Matthias Clasen)
  - !9505 Add clip masks (Benjamin Otte)
  - !9533 Add a new atlas allocator and rework caching APIs (Benjamin Otte)
  - !9545 memoryformat: Add packed 10bit formats (Benjamin Otte)
  - !9552 A bunch of fixes and speedups for 4.24 (Benjamin Otte)
  - !9557 CI: use native git in msys2 + remove base-devel (Christoph Reiter)
  - !9582 Update Polish translation
  - !9583 Update Polish translation
  - !9584 Update Chinese (China) translation
  - !9586 Fix typo (Urtsi Santsi)
  - !9588 Drop the gtk4-encode-symbolic tool (Matthias Clasen)
  - !9589 Drop po/README.translators (Matthias Clasen)
  - !9590 vulkan: fix GDK_VULKAN_FEATURE_SWAPCHAIN_MAINTENANCE check (Christoph
    Reiter)
  - !9591 icon paintable: Don't load unsupported SVG (Matthias Clasen)
  - !9597 Update macOS runner (René de Hesselle)
  - !9602 svg: parse `<style>` (Matthias Clasen)
  - !9605 icons: Fix process-working (Jakub Steiner)
  - !9606 testsuite: Limit size of clip test to 4096x4096 (Benjamin Otte)
  - !9609 Avoid a critical (Matthias Clasen)
  - !9611 Update French translation
  - !9616 Small svg cleanups (Matthias Clasen)
  - !9617 svg: Some refactoring (Matthias Clasen)
  - !9619 svg: Add a workaround for traditional symbolics (Matthias Clasen)
  - !9621 Update Hungarian translation
  - !9622 svg: Make get_state_names() more robust (Alice Mikhaylenko)
  - !9623 Revert save/restore API removal (Adrian Vovk)
  - !9624 reftests: Fix an icon (Matthias Clasen)
  - !9625 svg: Small optimization (Matthias Clasen)
  - !9626 icon editor: Various grouping-related fixes (Matthias Clasen)
  - !9627 application8: Don't use space in meson generated filename (Zoltán
    Böszörményi)
  - !9629 Update French translation
  - !9630 Update Hungarian translation
  - !9632 svg: Add a testcase for units (Matthias Clasen)
  - !9634 Update Turkish translation
  - !9635 icon editor: Some comfort (Matthias Clasen)
  - !9636 Update Romanian translation
  - !9638 renderpass: Fix wrong clip mask opacity tracking (Benjamin Otte)
  - !9640 vulkan: Fix invalid read by requerying variable (Benjamin Otte)
  - !9641 print portal: Plug leak of backend modules (Alessandro Astone)
  - !9644 Add a test for the color-matrix optimization (Matthias Clasen)
  - !9645 icon editor: Add a compat class checkbox (Matthias Clasen)
  - !9650 Some icon editor improvements (Matthias Clasen)
  - !9651 roaring: remove/merge bswap_64() guard for FreeBSD (Charlie Li)
  - !9652 gesturestylus: Output empty backlog when there is none (Sergey Bugaev)
  - !9654 Make clip paths work in shaper (Matthias Clasen)
  - !9655 hlg: Convert from scene-referred to display light (Kenny Levinsen)
  - !9657 Update Slovenian translation
  - !9659 Various Vulkan fixes (Benjamin Otte)
  - !9661 icon editor: Small cleanup (Matthias Clasen)
  - !9662 fontchooser: Cosmetics (Matthias Clasen)
  - !9663 vulkan: Generate new SPIRV for shaders with clip mask (Benjamin Otte)
  - !9664 inspector: Display more information about GStreamer (Benjamin Otte)
  - !9666 svg: Update the docs (Matthias Clasen)
  - !9668 gdk: Remove GDK_MEMORY_U8_SRGB (Benjamin Otte)
  - !9672 svg: Support the `<a>` element (Matthias Clasen)
  - !9673 testsuite: Add dmabuf compare tests to needs-udmabuf suite (Benjamin
    Otte)
  - !9674 gtkgstsink.c: Fix build on Visual Studio (Chun-wei Fan)
  - !9675 demos: Make build reproducible. (Maxim Cournoyer)
  - !9679 dmabuf: Support dmabufs with fewer fds than planes (Benjamin Otte)
  - !9680 Rewrite the svg renderer test (Matthias Clasen)
  - !9683 Update Galician translation
  - !9684 Replace outdated freedesktop.org Window Manager spec links (balooii
    balooii)
  - !9686 Update Romanian translation
  - !9687 icon editor: Restore metadata (Matthias Clasen)
  - !9688 Update Kabyle translation
  - !9689 icon editor: Restore metadata (Matthias Clasen)
  - !9690 svg: Fix quick state changes (Matthias Clasen)
  - !9692 gtk/emojichooser: Select first result on Enter (Zoey Ahmed)
  - !9693 gtk/emojichooser: Fix typos in docs (Zoey Ahmed)
  - !9694 Write down AI contribution guidelines (Matthias Clasen)
  - !9695 renderer: Render clip mask in device grid (Benjamin Otte)
  - !9696 print: Fix listing printers with synchronous backends (Alessandro
    Astone)
  - !9697 svg: Handle color a bit better (Matthias Clasen)
  - !9698 Properly apply reduced-motion portal setting (stupidduos)
  - !9702 Update Turkish translation
  - !9703 icon editor: Add an xml view (Matthias Clasen)
  - !9705 Clean  up error handling in GtkSvg (Matthias Clasen)
  - !9714 Add font rendering tests (Matthias Clasen)
  - !9717 Tweak the movingtext demo (Matthias Clasen)
  - !9720 inspector: Add an svg page (Matthias Clasen)
  - !9722 accessibility: Fix regression (Sergio Costas Rodriguez)
  - !9723 ci: Fix msys2-clang64 errors (Sergio Costas Rodriguez)
  - !9724 media: Don't leak URI (Guido Günther)
  - !9725 widget: Explain minimum and natural size in the docs (Logan Rathbone)
  - !9727 svg: The big split, part one (Matthias Clasen)
  - !9728 bookmarklist: Document `standard::file` attribute (Arun Mani J)
  - !9730 New syntax for state change conditions (Matthias Clasen)
  - !9731 Janitorial (Matthias Clasen)
  - !9733 svg: More splitting (Matthias Clasen)
  - !9735 svg: Fix invalidation (Matthias Clasen)
  - !9737 wayland/toplevel: Set fallback wm capabilities on old xdg_wm_base
    (Jonas Ådahl)
  - !9738 Fix the build (Matthias Clasen)
  - !9740 Misc warnings fixes (g.willems)
  - !9742 wayland: Accept cursor-shape v1 (Matthias Clasen)
  - !9745 gskvulkanimage: fix building on 32-bit (oreo639)
  - !9746 atcontext: remove unneeded signal definition (Sergio Costas Rodriguez)
  - !9747 gtkcheckbutton: Recalculate a11y label on use-underline change (Lukáš
    Tyrychtr)
  - !9749 Update Polish translation
  - !9750 icon editor: Avoid a crash (Matthias Clasen)
  - !9751 Update Czech translation
  - !9752 svg: Improve error reporting (Matthias Clasen)
  - !9753 gtk-demo: Make --autoquit work again (Benjamin Otte)
  - !9756 application-wayland: Add NULL check on gtk_accessible_get_at_context
    (Alessandro Astone)
  - !9757 Update Georgian translation
  - !9758 Add GtkEnumList (Matthias Clasen)
  - !9759 android: Target SDK 36 (Florian "sp1rit"​)
  - !9761 cssprovider: Fix gtk-application-prefer-dark-theme setting (Florian
    "sp1rit"​)
  - !9762 inspector: update keyboard device layouts on property notify (Juan
    Pablo Ugarte)
  - !9764 Add gtk_svg_set_stylesheet (Matthias Clasen)
  - !9765 build: Require wayland-protocols 1.48 (Matthias Clasen)
  - !9766 Wayland: Port to xdg-session-management-v1 (Matthias Clasen)
  - !9767 css: Make this code easier to manage (Matthias Clasen)
  - !9769 icon editor: Drop some wrappers (Matthias Clasen)
  - !9771 Update Romanian translation
  - !9772 accessiblehypertext: Remove non-ISO C semicolon (Stuart Hayhurst)
  - !9773 svg: Support 3D transforms (Matthias Clasen)
  - !9774 Add a GtkSvgWidget (Matthias Clasen)
  - !9776 Update Slovenian translation
  - !9777 svgutils: Plug bytes leak at parser_new_for_string (Maximiliano
    Sandoval)
  - !9779 android: expose gtk-interface-color-scheme XSetting (Florian
    "sp1rit"​)
  - !9782 gpu: Add GSK_GPU_DISABLE=damage (Benjamin Otte)
  - !9783 Assorted small fixes and cleanup (Matthias Clasen)
  - !9785 svg: Move serialization code to a separate file (Matthias Clasen)
  - !9786 surface: Adjust how we decide whether to flip popups (Sergey Bugaev)
  - !9787 Small refactoring (Matthias Clasen)
  - !9788 svg: Misc fixes (Matthias Clasen)
  - !9789 Fix missing dispose and finalize chain-ups (Maximiliano Sandoval)
  - !9792 Some memory leak fixes (Matthias Clasen)
  - !9793 testsuite/diff: fix memory leak in diffreg (Florian "sp1rit"​)
  - !9795 Misc svg fixes (Matthias Clasen)
  - !9796 Add a demo for GtkSvgWidget (Matthias Clasen)
  - !9800 gtkatspitext: Correct for inclusivity differences (Lukáš Tyrychtr)
  - !9801 gpu: Handle scale being too small (Benjamin Otte)
  - !9804 svg: Detect circular \<use\> again (Matthias Clasen)

* Translation updates:
  - Chinese (China) (luming zh)
  - Czech (Patrik Sivek)
  - French (Guillaume Bernard)
  - Galician (Francisco Diéguez Souto)
  - Georgian (Ekaterine Papava)
  - Hungarian (Balázs Úr)
  - Kabyle (BoF ButterflyOfFire)
  - Polish (Victoria, Victoria Niedzielska)
  - Romanian (Antonio Marin)
  - Slovenian (Martin)
  - Turkish (Emin Tufan Çetin)


Overview of Changes in 4.22.0, 06-03-2026
=========================================

* Bugs fixed:
  - #8037 Regression: DropTarget's ::leave signal is no longer emitted when a
    drop is finished (Matthias Clasen)
  - #8079 Issues in the dnd demo in gtk4-demo (Matthias Clasen)
  - #8080 Gtk program writes a "foo.png" file to current folder (Marco Trevisan
    (Treviño))
  - !9428 demos: Avoid main() from returning due to GApplication.quit (Florian
    "sp1rit"​)
  - !9455 win32: Drop the global inhibition counter (g.willems)
  - !9547 Make WAYLAND_SOCKET handling more reliabe (Jonas Ådahl)
  - !9553 svg: Allow unsetting values (Matthias Clasen)
  - !9554 Update Japanese translation
  - !9555 Update Korean translation
  - !9556 Update Georgian translation
  - !9558 accessiblehypertext: Fix doc formatting (Jamie Gravendeel)
  - !9559 Update Georgian translation
  - !9560 toplevel-wayland: Free a11y properties on finalize (Maximiliano
    Sandoval)
  - !9561 Update Hungarian translation
  - !9563 svg: drop some api (Matthias Clasen)
  - !9564 svg: Make the gpa:states condition more flexible (Matthias Clasen)
  - !9565 svg: Add state names (Matthias Clasen)
  - !9567 Update Portuguese translation (Hugo Carvalho)
  - !9568 drop target: Emit the leave signal again (Matthias Clasen)
  - !9570 Drop accidental files (Matthias Clasen)
  - !9571 testsuite: Skip gestures if running with no seat (Alessandro Astone)
  - !9572 droptarget: Fix unconditional leave on cross out (Niklas Wimmer)
  - !9574 Update Bulgarian translation (Alexander Shopov)
  - !9575 gtkcheckbutton: Don't use raw label for a11y purposes (Lukáš Tyrychtr)
  - !9576 icons: Update from devkit (Jakub Steiner)
  - !9577 wayland: Reset pending offset in Vulkan path (Matthias Clasen)

* Translation updates:
  - Bulgarian (Alexander Shopov)
  - Georgian (Ekaterine Papava)
  - Hungarian (Balázs Úr)
  - Japanese (Makoto Sakaguchi)
  - Korean (Changwoo Ryu)
  - Portuguese (Hugo Carvalho)



========================================
  gtk+-3
========================================

Overview of Changes in GTK+ 3.24.52, 22-03-2026
===============================================

Note: We are going to decrease the frequency of GTK3
releases and limit changes to important bug and crash
fixes, going forward. The next GTK3 release is expected
in March 2027.

* Bugs fixed:
  - #6306 [GTK3] Zlib required when broadway is enabled. (Dmytro Meleshko)
  - #7796 [GTK 3] Invalid a11y events when calling `gtk_tree_view_set_cursor` on
    an unfocused GtkTreeView (Michael Weghorn)
  - #7976 Firefox crashes at gdk_wayland_drag_context_manage_dnd() when missing
    toplevel wl_surface (Matthias Clasen)
  - #8103 gtk3 refresh_rate calculation overflows on 32-bit targets (Alberto
    Garcia)
  - #8114 Images for recolored icons are constantly being reloaded (Sebastian
    Keller)
  - GNOME/gimp#14901 Wild strobing in multi window mode (Lukas Oberhuber)
  - GNOME/gimp#15480 GIMP does not focus on dialogue boxes on Mac (Lukas
    Oberhuber)
  - !7332 quartz: add automagic uti<->mime conversion for clipboard (Friedrich
    Beckmann)
  - !8216 Fix position of child tooltips in GTK3 custom windows (Ingo Brückl)
  - !9005 a11y: Don't send focus-related events for unfocused treeview
  - !9012 quartz: gtkwindow - fix windows fighting focus (Lukas Oberhuber)
  - !9022 gtkmenu: Await more motion events before deactivating on release
    (Carlos Garnacho)
  - !9044 wayland: Handle XKB initialization failures gracefully
  - !9067 gdk/win32: Add missing EGL conditional compilation guard (Dan Yeaw)
  - !9098 gdk: do not run gdk_wayland_window_export_handle() callback when
    window is already destroyed. (Jehan)
  - !9119 Declare an explicit dependency on zlib when broadway is enabled
    (Dmytro Meleshko)
  - !9141 [GTK 3] wayland: Try to open the display even if XDG_RUNTIME_DIR is
    unset (Ludovico de Nittis)
  - !9155 [gtk3] emoji: Update data to CLDR 48 (Jeremy Bícha)
  - !9214 display/wayland: Gracefully handle dispose being called twice (Jonas
    Ådahl)
  - !9284 gdk/wayland: Map stylus buttons for BTN_BACK and BTN_FORWARD (Peter
    Hutterer)
  - !9322 [Quartz] Fix dialog keyboard focus while preventing focus fighting
    (Lukas Oberhuber)
  - !9344 Fix a couple of leaks (Jonas Ådahl)
  - !9394 gdk/wayland: Map stylus buttons for BTN_BACK and BTN_FORWARD
  - !9397 wayland: Avoid a crash (Matthias Clasen)
  - !9600 Replace outdated freedesktop.org Window Manager spec links (balooii
    balooii)
  - !9676 x11: fix overflow in refresh_rate calculation on 32-bit systems
    (Alberto Garcia)
  - !9706 cssimage: Store and reuse icon info for recolored images (Sebastian
    Keller)
  - !9707 wayland: Fix uninitialized value when no cursor (Robert Ancell)
  - !9708 fontchooser: Fix signedness of axes count (Robert Ancell)
  - !9709 fontchooser: Remove const on float return values (Robert Ancell)
  - !9710 print: Remove unused variable (Robert Ancell)

* Translation updates:
  - Basque (Asier Saratsua Garmendia)
  - Bokmål, Norwegian (Kjartan Maraas)
  - Occitan (post 1500) (Quentin PAGÈS)
  - Uighur (Abduqadir Abliz)



========================================
  gtk-doc
========================================

GTK-Doc 1.36.1, 2026-04-10
==========================
- scangobj: fix compilation warnings.
- Some documentation updates.
- Translation updates.

GTK-Doc 1.36.0, 2026-03-10
==========================

GTK-Doc can no longer be built with the Autotools:
  - You need to use Meson in order to build GTK-Doc.
  - Note that buildsystems/autotools/ is still there for GTK-Doc integration in
    projects using the Autotools.

Meson:
  - Fix test-gobject-mkhtml unit test.
  - A few improvements.

GTK-Doc integration in projects using CMake: support CMake 4.0.

Some documentation updates.
Translation updates.


========================================
  gtkmm
========================================

4.24.0 (stable) 2026-09-14

Gdk:
* KeymapKey: New class.
* Add Display::map_keyval()
  (Ben Corby) Merge request !104

Gtk:
* Add Settings::property_gtk_accent_color().
  (Kjell Ahlstedt)

Build:
* Require glibmm >= 2.89.0
* Require gtk >= 4.23.4
  (Kjell Ahlstedt)
* Meson build: Fix missing dependencies, making it possible to build with
  https://github.com/michaelforney/samurai instead of ninja.
  (Kjell Ahlstedt) Merge request glibmm!79 (syntheticsweet)


4.23.2 (unstable) 2026-08-09

Identical to 4.23.1.
No gtkmm 4.23.1 tarball has been stored at download.gnome.org.
The CI pipeline in GitLab failed to make that tarball.


4.23.1 (unstable) 2026-08-09

Some unstable API has been removed.
The corresponding API was removed in gtk 4.23.3.

* Drop G_GNUC_CONST as in glib
  (Kjell Ahlstedt) Merge request glibmm!77 (Sam James)

Gdk:
* Graphene::Point: Add Point(cobst Vec2& src), distance(), interpolate().
* Graphene::Size: Add scale(), interpolate().
* Add Graphene::Vec2.
  (Kjell Ahlstedt) Issue #172 (Ben Corby)
* Graphene::Rect: Add get_vertices(), join(), intersection(), offset(),
  inset(), round_extents(), interpolate(), expand(), scale().
* Don't derive gtkmm__GdkXxx GTypes from final types and internal types.
  Such declarations have been added to many GdkXxx classes.
* Add enum FrameResult.
* FrameTimings: Add get_result().
  (Kjell Ahlstedt)

Gsk:
* tools/m4/enum.m4: Flags operators are constexpr also in namespace Gsk.
  (Kjell Ahlstedt) Issue #153 (PBS)
* Add classes Path, PathBuilder, PathMeasure, PathPoint, Stroke.
* Add enums LineCap, LineJoin, PathDirection.
  (Kjell Ahlstedt) Issue #172 (Ben Corby)

Gtk:
* Rename EnumList to EnumListBase, add template EnumList.
  (Kjell Ahlstedt)
* Snapshot: Add push_fill(), push_stroke(), append_fill(), append_stroke().
  (Kjell Ahlstedt) Issue #172 (Ben Corby)
* Deprecate EventControllerKey::forward().
  (Kjell Ahlstedt)
* Application: Remove save(), forget(), property_support_save(),
  property_autosave_interval(), signal_restore_window(), signal_save_state(),
  signal_restore_state().
* ApplicationWindow: Remove signal_save_state().
* Remove enum RestoreReason.
  (Kjell Ahlstedt)
* ATContext: Add property_realized().
* Editable: Add set/unset/get/property_input_interceptor(),
  signal_input_intercepted().
* Settings: Add property_gtk_keyboard_focus_visible_timeout().
* ShortcutTrigger: Add ShortcutTrigger::create_with_aliases(),
  create_for_menu().
* SvgWidget: Add property_svg().
  (Kjell Ahlstedt)

Documentation:
* Gtk::AlternativeTrigger: Update class description.
  (Kjell Ahlstedt)

Demos:
* DropDown demo: Add a DropDown using EnumList.
  (Kjell Ahlstedt)

Build:
* Meson: Don't export Vulkan as an installed dependency.
  (Lukas Schmelting) Merge request !101
* Require gtk4 >= 4.23.3
  (Kjell Ahlstedt)


4.23.0 (unstable) 2026-06-09

Gdk:
* contentformats.[ccg|hg]: Add Glib::Value wrapper for GdkFileList.
  Add Value<std::vector<Glib::RefPtr<Gio::File>>> specialization.
  (Zephyr Lykos) Merge request !100

Gtk:
* Gtk::AccelKey: include <gdk/gdk.h>.
  Since gtk 4.23.0 it's not possible to include only gdk/gdkkeysyms.h.
* Application: Add save(), forget(), property_support_save(),
  property_autosave_interval(), signal_restore_winodw(), signal_save_state(),
  signal_restore_state().
* Editable: Add get/property_complete_text().
* Add enum RestoreReason
* Settings: Deprecate property_gtk_application_prefer_dark_theme(),
  property_gtk_shell_shows_app_menu(), property_gtk_shell_shows_menubar(),
  property_gtk_shell_shows_desktop().
* Svg: Add set/get/property_overflow(), set/get/property_stylesheet(),
  set_settings().
* SvgErrorExtra: Add get_input().
* Window: Add signal_force_close().
* New classes: EnumList, EnumListItem, SvgWidget
  (Kjell Ahlstedt)

Documentation:
* Gtk::Application: Update the class description.
  (Kjell Ahlstedt)

gmmproc:
* Add scripts that generate defs files with mmgir
* Small fixes here and there to adapt to defs files generated by mmgir
* The .defs files have been generated with glibmm/tools/mmgir.
  (Kjell Ahlstedt)

Build:
* Require gtk4 >= 4.23.1
  (Kjell Ahlstedt)


4.22.0 (stable) 2026-03-12

Some unstable API has been removed.
The corresponding API was removed in gtk 4.22.0.

Gtk:
* Add TryExpression.
* FileFilter: Add add_mime_types().
* SearchEntry2: Add property_key_capture_widget().
* Svg: Add get_state_names(). Remove get_n_states().
  (Kjell Ahlstedt)

Documentation:
* Gtk::GestureClick: Improve the class description.
  (Kjell Ahlstedt) Issue #168 (gkv311)

Tests:
* Add test of Gtk::TryExpression.
  (Kjell Ahlstedt)

Build:
* Require gtk4 >= 4.22.0
* Fix build with build-deprecated-api=false.
  (Kjell Ahlstedt)



========================================
  gtksourceview
========================================

News in 5.21.0, 2026-07-11
--------------------------

This is an unstable release for GNOME 51.alpha

 * GtkSourceFileLoader now rejects non-regular files before opening
 * GtkSourceFileLoader now bounds expanded input size, including
   decompressed input, and reports oversized loads cleanly
 * GtkSourceFileLoader now unwinds buffer output streams on load failure
 * Fix gutter and gutter lines leaks
 * Break a circular reference when line numbers are enabled
 * Improve Vim emulation for repeated commands, r, cw/cW, +, X, gu, gU,
   g~, Ctrl-A, Ctrl-X, and :set aliases
 * Fix vertical alignment when jumping to iters
 * Improve context engine and search context performance
 * Use canonical property names and static strings for properties
 * Translation updates, including new Lao translation

News in 5.20.0, 2026-03-16
--------------------------

This is a stable release for GNOME 50.0

 * No changes since 5.19.0

News in 5.19.0, 2026-02-23

========================================
  gupnp
========================================

1.6.10 (stable)

Require GSSDP >= 1.6.5

- Context: Reuse allocated TCP socket from GSSDP Client
  for web server
- Context: Do not leak GError in ACL handler
- Fix IPv6 host header validation

Bugs fixed in this release:
 - https://gitlab.gnome.org/GNOME/gupnp/issues/91

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Valeria <valeria.petrov@spinetix.com>


========================================
  gupnp-av
========================================

0.14.5 (stable)

- Fix missing chain-up in SearchCriteriaParser

All contributors to this release:
 - Jens Georg <mail@jensge.org>


========================================
  gvfs
========================================

Major changes in 1.62.0
=======================
* CVE-2026-88924: admin: Set socket ownership before creation (Ondrej Holy)

Major changes in 1.61.91
========================
* trash: Fix metadata handling when restoring or emptying (Liu Zhangjian)
* trash: Honour x-gvfs-trash/x-gvfs-notrash from fstab mount points (Nick)
* dav: Fix response body leaks to prevent hangs (Miroslav Prasil, Ondrej Holy)
* Some other fixes (Ladislav Michl, correctmost)
* Translation updates (luming zh, Vasil Pupkin)

Major changes in 1.61.90
========================
* admin/computer/http/network/recent/trash: Enable auto-unmount (Ondrej Holy)
* daemon: Add auto-unmount support for idle backends (Ondrej Holy)
* build: Drop G_GNUC_PURE from *_get_type() functions (Philip Withnall)
* afp/dav/ftp/mtp/sftp: Harden input validation (Ondrej Holy)
* common: Clear password strings from memory before freeing (Ondrej Holy)
* mtp/onedrive/smb: Fix crashes in onedrive, mtp, and smb backends (Ondrej Holy)
* Some other fixes (Ondrej Holy, Anders Jonsson)
* Translation updates (GNOME Translation Project contributors)

Major changes in 1.61.1
=======================
* udisks2: Add build option to select busy-processes command (Guido Falsi, Ondrej Holy)
* smb: Fix authentication fallback broken with Samba 4.24 (Ondrej Holy)
* build: Mark AFP and archive backends as deprecated (Ondrej Holy)
* build: Remove burn backend and deprecated apis (Ondrej Holy)
* udisks2: Fix multi-seat drive filtering (Edgar Makarov)
* trash: Various fixes and performance improvements (Ondrej Holy)
* dav: Fix redirect handling to prevent HTTPS downgrade and credential leakage (luxluth)
* Some other fixes (Ondrej Holy, John D. Blair, Maximiliano Sandoval, correctmost, Alynx Zhou)
* Translation updates (GNOME Translation Project contributors)

Major changes in 1.60.0
=======================
* CVE-2026-28296: ftp: Reject paths with CR/LF in g_vfs_ftp_file_new_from_ftp (Ondrej Holy)
* monitor: Do not load monitors when GIO_USE_VFS=local (Ondrej Holy)


========================================
  gweather-locations
========================================

GWeather Locations 2026.2
=========================

- Remove missing METAR stations
- Translation updates


========================================
  libadwaita
========================================

==============
Version 1.10.0
==============

- AdwAnimation
  - Fix AdwCallbackAnimationTarget annotations
- AdwActionRow
  - Ensure :use-markup property is set in constructed()
- AdwStatusPage
  - Stop using :last-child in styles
- AdwSidebar/AdwViewSwitcherSidbar
  - Document how to display suffix at the bottom
- AdwTabBar/AdwTabGrid
  - Clear a dangling idle callback in dispose
- Build
  - Fix release builds requiring sassc
  - Depend on glib 2.89.3
- Stylesheet
  - Support .flat and .raised for GtkDropDown
- Update icons from devkit
- Translation updates
  - Basque
  - Bosnian
  - Brazilian Portuguese
  - Bulgarian
  - Catalan
  - Chinese (China)
  - Danish
  - Dutch
  - Finnish
  - French
  - Galician
  - Hebrew
  - Hungarian
  - Korean
  - Lithuanian
  - Persian
  - Polish
  - Serbian
  - Spanish
  - Swedish
  - Uighur

===================
Version 1.10.beta.1
===================

- Build
  - Ministream-related fixes
- AdwAboutDialog
  - Fix a bug with deselecting text in the legal section
  - Animate showing/hiding the title on the main page
- AdwActionRow
  - Don't emit signals in dispose
- AdwPreferencesRow
  - Warn when placed
- AdwSidebarItem
  - Add :prefix
- AdwSidebarSection
  - Add :suffix
- AdwTabOverview
  - Make sure we don't round corners in adaptive preview
- AdwWindow/AdwApplicationWindow
  - Fix false minimum size warnings in adaptive preview
- Update internal icons
- Docs
  - Use more detailed placeholder comments in examples
- Translation updates
  - Chinese (China)
  - Czech
  - Georgian
  - Kazakh
  - Norwegian Bokmål
  - Occitan
  - Ukrainian

==================
Version 1.10.alpha.1
==================

Include ministream sources into release tarballs.

- Translation updates
  - Turkish

==================
Version 1.10.alpha
==================

- Add translation comments across the project
- Add AdwCssClassBinding
- Deprecate AdwEnumListModel; switch everything to GtkEnumList
- Build
  - Require GTK 4.23.1
  - Depend on ministream instead of appstream
  - Make it possible to build on Android
  - Include prebuilt styles again
  - Resolve locale directory at runtime on Windows
- Adaptive preview
  - Try to contain window styles within the preview
  - Collapse the sidebar on small sizes
  - Fix casing in a message
  - Don't make device model names and Phosh names translatable
- AdwAboutDialog
  - Add :other-apps-title
- AdwAboutDialog and AdwAboutWindow
  - Speed up adding legal sections
  - Speed up adding credit sections
- AdwAlertDialog
  - Fix a crash when chaining up in response()
  - Fix the Since annotation on get_prefer_wide_layout()
- AdwApplication
  - Speed up initial style loading
- AdwBreakpointBin
  - Fix initial focus
- AdwButtonRow
  - Fix availability annotation
- AdwClampScrollable
  - Implement GtkScrollable.get_border()
- AdwEntryRow
  - Fix clicking edit icon
  - Reduce the number of notify::opacity emissions on children
- AdwNavigationView
  - Fix swipe direction
- AdwOverlaySplitView
  - Add a unique style class to the overlay sidebar
- AdwShortcutLabel
  - Use a more natural modifier ordering
  - Improve key labels on macOS
- AdwSidebar
  - Add :prefix and :suffix
  - Set tab behavior to 'item'
  - Fix adding multiple sections at once
  - Fix a crash when removing multiple items at once
- AdwSpinnerPaintable
  - Support icon weight
- AdwStyleManager
  - Implement Android settings backend
  - Use default timeout when talking to the settings portal
  - Fix gtk-application-prefer-dark-theme warnings with newer GTK
  - Speed up initial loading
- AdwSwipeTracker
  - Ignore mostly orthogonal touchpad scrolls
- AdwTabView
  - Fix a deprecation
- AdwViewSwitcherSidebar
  - Add :prefix and :suffix
  - Fix a leak
- Demo
  - Adjust shortcuts on macOS
- Examples
  - Fix a build error
- Stylesheet
  - Reduce icon weight for large icons
  - Improve popover shadow
  - Fix svg asset rendering with newer GTK
  - Adapt to GtkSpinner changes in newer GTK
  - Fix bottom padding with .navigation-sidebar
  - Fix a copypaste error
- Update internal icons
- Various cleanups
- Translation updates
  - Belarusian
  - Chinese (Taiwan)
  - Cornish
  - Czech
  - Dutch
  - Filipino
  - Kabyle
  - Norwegian Bokmål
  - Persian
  - Polish
  - Romanian
  - Russian
  - Serbian
  - Slovak
  - Slovenian

=============
Version 1.9.0
=============

- Fix build with certain GLib configurations
- Adaptive preview
  - Disable window controls by default
- AdwSidebar
  - Fix grab_focus()
  - Add a screenshot to :mode docs
- AdwViewSwitcherSidebar
  - Add a screenshot to :mode docs
- Translation updates
  - British English
  - Danish
  - Polish
  - Portuguese


========================================
  libdex
========================================

libdex 1.2.0
============

 * Testsuite additions to validate implementation

libdex 1.2.beta
===============

This is a beta release for the upcoming GNOME 51.

 * DexStateMachine transition callbacks now use
   DexStateTransitionContext, allowing callbacks to inspect transition edges,
   publish intermediate states, and continue directly through another edge
 * Add dex_state_machine_wait_for_state(),
   dex_state_machine_get_requested_state(), and cooperative transition
   interruption with dex_state_machine_interrupt() and
   dex_state_transition_context_wait_for_interrupt()
 * Rework thread-pool work stealing so idle workers can sleep instead of
   continuously scanning their peers, while improving work distribution and
   fixing queue sizing and worker-set lifetime issues
 * Fix using libdex as a Meson subproject with GDBus code generation enabled
 * Remove incorrect G_GNUC_CONST annotations for compatibility with newer GCC
 * Expand state-machine, scheduler, and thread-pool documentation and tests


libdex 1.2.alpha
================

This is an alpha release for the upcoming GNOME 51.

 * Dropped the gconstructor for `dex_init()` which means applications must
   call `dex_init()` at startup themselves from `main()`.
 * New DexLimiter API for bounded concurrency with explicit
   acquire/release, automatic permit management while running fibers, and
   close/reject behavior for queued work
 * New timeout wrappers for futures: dex_future_with_timeout(),
   dex_future_with_timeout_msec(), dex_future_with_timeout_seconds(), and
   dex_future_with_deadline()
 * Additional GFile async wrappers for temporary directories, copy with
   progress, trash, append, partial content loading, byte loading,
   filesystem info queries, default handler lookup, enclosing mount lookup,
   display-name changes, read/write open/create/replace variants, string
   content replacement, and symbolic link creation
 * Additional GIO async wrappers for GAppInfo, GDataInputStream,
   GOutputStream, GSocketClient, GSocketConnection, GTlsConnection,
   GDtlsConnection, GResolver, GNetworkMonitor, GProxy, GProxyResolver,
   GSubprocess, GTlsDatabase, GTlsInteraction, GPermission, and
   GUnixConnection
 * New DexCoroutine stackless future type with helpers for suspending on
   pending futures, plus dex_scheduler_spawn_coroutine()
 * New DexTaskGroup API for structured concurrency with close, cancel, and
   cancel-on-error behavior
 * New DexThreadPool API for bounded threaded work queues
 * New dex_limiter_run_on_pool(), dex_limiter_run_coroutine(), and
   dex_limiter_close_after_drain()
 * New dex_aio_open() and dex_aio_close()
 * New dex_fiber_yield()
 * New DEX_DEFINE_CLOSURE_TYPE() helper for closure-like state structs
 * New dex_set_object() helper and DexObject property support for DexFuture
   values
 * New dex_promise_resolve_enum()
 * New DexStateMachine API to simplify asynchronous state machines with fibers
   providing a simple API to track state machine transitions, including
   in-fiber transition continuations with DexStateTransitionContext and
   requested state tracking.
 * Future debug names are now enabled by default when compiling with GCC and
   fibers emit Sysprof marks for their duration
 * Fix DexObject weak-reference retargeting to avoid a possible lock
   inversion during finalization
 * Fix DexChannel receive_all() to unblock queued senders after draining
   bounded channel capacity
 * Fix DexDelayed chaining so release waits for the wrapped future in the
   correct direction
 * DexPosixAioBackend now delays threadpool startup until the first work item
   is enqueued.
 * Make DexSemaphore user-space only
 * Build system fixes for gio-unix dependency propagation
 * Fix clang testsuite compatibility around atomic addition
 * Documentation additions for limiters, timeout-gated futures, coroutines,
   task groups, thread pools, schedulers, debugging, and GIO wrappers
 * Testsuite additions for limiters, timeout passthrough behavior, delayed
   futures, channel receive_all(), weak-reference retargeting, GIO wrappers,
   AIO, coroutines, fibers, task groups, thread pools, DexObject, and
   DexTest helpers


libdex 1.1.0
============

This is a stable release for GNOME 50.

 * No changes since 1.1.rc


========================================
  libgsf
========================================

libgsf 1.14.58

Morten:
	* Fix gsf_infile_msole_child_by_index

--------------------------------------------------------------------------
libgsf 1.14.57

Morten:
	* Fix problems with ole files bigger than 4G.  [#45]
	* Document property fix.
	* Introspection fixes.
	* Make gzip, bzip, zip handle 4G+ writes.
	* Make gzip, bzip, zip handle 4G+ reads.
	* Improve testing.
	* Ole performace improvements with loads of children.

--------------------------------------------------------------------------
libgsf 1.14.56

liren:
	* Fix problems with ole files using codepage 1200 (unicode). [#44]

Morten:
	* Restore check for ole cycles accidentally removed in fixing #43.

--------------------------------------------------------------------------

========================================
  libgweather
========================================

GWeather 4.6.0 (stable)

- No functional changes.


========================================
  librsvg
========================================

Version 2.63.0
==============

librsvg crate version 2.63.0

librsvg-rebind crate version 0.3.0

- #1220 and #1224 - Limit the depth of files that reference other
  files, via XML XInclude, inter-document references, and CSS
  includes.  The Rust API has a new
  ImplementationLimit::MaximumFileNestingDepthExceeded error variant
  to surface this to the loading functions.

- #1142: Fix blurry embeded SVG images by rasterizing them at 
  device resolution (Dylan Sechet).

- #1093 - Remove loading limits from image-rs.  This means that raster
  images, when embedded in SVG documents, have no limits for their
  size or memory consumption.  The idea, for now, is that
  security-sensitive applications that use librsvg should do their own
  sandboxing if they want to impose memory limits.

- #1224 - Raise the maximum nesting depth of layers for glibc systems.
  The maximum on glibc is now 500 nested layers; the maximum for musl
  systems remains at 50 layers.  This is due to the amount of stack
  space required, since musl has a reduced default stack compared to
  glibc.  Please see the comments in that bug if you would like to
  help with the musl situation.


Version 2.62.91
===============

librsvg crate version 2.63.0-beta.1

librsvg-rebind crate version 0.3.0

- #1237: Update test suite for change in how Pango renders underline/overline.

- Update Rust dependencies.

- Update C dependencies in the CI.


Version 2.62.90
===============

librsvg crate version 2.63.0-beta.0

librsvg-rebind crate version 0.3.0

- #1220 and #1224 - Limit the depth of files that reference other
  files, via XML XInclude, inter-document references, and CSS
  includes.  The Rust API has a new
  ImplementationLimit::MaximumFileNestingDepthExceeded error variant
  to surface this to the loading functions.

- #1142: Fix blurry embeded SVG images by rasterizing them at 
  device resolution (Dylan Sechet).

- #1093 - Remove loading limits from image-rs.  This means that raster
  images, when embedded in SVG documents, have no limits for their
  size or memory consumption.  The idea, for now, is that
  security-sensitive applications that use librsvg should do their own
  sandboxing if they want to impose memory limits.

- #1229: Fix build when gobject-introspection is enabled but
  gdk-pixbuf is disabled.

- Fix the logic for whether gdk-pixbuf-query-loaders should be run
  during cross-compilation.  Native builds can of course use it; cross
  builds can use it if they can run host binaries *and* an executable
  wrapper has been set *and* the target sysroot contains the
  corresponding gdk-pixbuf-query-loaders executable (Ross Burton).

- #1231 - Document the crate's feature flags.

- Update the Rust dependencies.


Version 2.62.1
==============

librsvg crate version 2.62.1

librsvg-rebind crate version 0.3.0

- There are no changes from 2.62.0, just an update of the image-rs
  crate to align it with the rest of GNOME 50's versions for
  dependencies.



========================================
  libsecret
========================================

0.21.8.2
 * Release to bump meson.build version

0.21.8.1
 * Make secret_item_load_secrets_sync match async behavior [!180]

0.21.8
 * Allow the content type to have additional parameters [#114, !175]
 * Support individually encrypted items [!174]
 * Ensure we return chained up GTask [!179]
 * Ensure length of DH shared secret match length of prime on GnuTLS [!170]
 * file-backend: Add thread safety and file-based locking to prevent concurrent write races [!171]
 * file-backend: Fix possible memory leak in error path of secret_file_backend_real_search() [!173]
 * file-collection: Fix memory leaks on repeated calls [!173]
 * Replace some SecretSync with a sync implementation [!108]
 * Add linker version script to hide private symbols [#70, !159]
 * Stop using CONST annotations on non-const fns [!176]
 * secret-tool: align behavior for collection option [!164]
 * secret-tool: document --collection option [#31, !164]
 * meson: Put test setup behind a feature option [#101, !162]
 * Several test and CI improvements [!172, !177, !178]
 * Updated translations


========================================
  libshumate
========================================

===================
Version 1.7.0
===================
 - No changes since 1.7.0

===================
Version 1.7.rc
===================
 - No changes since 1.7.beta

===================
Version 1.7.beta
===================
 - Deselect markers before removing from layer
 - Stop using G_GNUC_CONST in _get_type functions
 - gi-docgen: List more dependencies

===================
Version 1.7.alpha
===================
 - Added new APIs to refresh and get refresh notifications for map sources
 - Added missing translation text domains

===================
Version 1.6.0
===================
 - No changes since 1.6.rc


========================================
  libsoup
========================================

Changes in libsoup from 3.7.2 to 3.7.3:

* Add `soup_message_set_compression_dictionary_id()` and `soup_message_get_compression_dictionary_id()` to send the `Dictionary-ID` header alongside `Available-Dictionary` [Patrick Griffis]
* Add `soup_websocket_extension_process_incoming_message_with_limit()` so extensions can bound how much they decompress [Zayd Rajab]
* Harden WebSocket handling:
    * Bound decompressed message size during inflation (CVE-2026-15709) [Zayd Rajab]
    * Reject oversized control frames (CVE-2026-15711) [Zayd Rajab]
    * Cap incoming frame payloads, message reassembly, and outgoing frames at what the underlying buffer can hold [Patrick Griffis]
    * Bound outgoing permessage-deflate buffer growth [Patrick Griffis]
    * Cap the number of queued unsolicited pongs [Patrick Griffis]
    * Emit `SoupWebsocketConnection::pong` with a `GBytes`, as declared [Patrick Griffis]
    * Store accepted WebSocket extensions per message rather than per handler [Felix Nilsson]
* Harden authentication and caching:
    * Do not send `Proxy-Authorization` through an established CONNECT tunnel (CVE-2026-66339) [Patrick Griffis]
    * Scope cached proxy credentials to the proxy they came from (CVE-2026-12547) [Patrick Griffis]
    * Reject caching authenticated responses in shared caches (CVE-2026-15713) [Milan Crha]
* Tighten HTTP parsing and validation:
    * Reject CRLF injection in the HTTP method (CVE-2026-3633) [Milan Crha, Patrick Griffis]
    * Fix `Range` parsing overflows and coalescing cost, and validate `Content-Range` when parsing it [Patrick Griffis]
    * Keep duplicate `Content-Length` headers when they are identical [Patrick Griffis]
    * Fix an out-of-bounds read in case of an excessively long multipart boundary [Mike Gorse]
    * Do not treat base64 data URI content as a NUL-terminated string [Patrick Griffis]
* http2:
    * Never send more body bytes than nghttp2 requested (CVE-2026-85534) [Patrick Griffis]
    * Keep the message alive across `io_run_until()` in `run_until_read()` [Patrick Griffis]
    * Do not assume that `GOAWAY` opaque data is NUL-terminated [Mike Gorse]
* server: Report the resource length in 416 responses [Patrick Griffis]
* session: Do not send a message cancelled while being queued [Patrick Griffis]
* cookie: Annotate constants' values [Maximiliano Sandoval]

Changes in libsoup from 3.7.1 to 3.7.2:

* Add support for compression dictionaries:
  * Support the dcb and dcz encodings [Patrick Griffis]
  * Add new `soup_message_set_compression_dictionary_hash()`, `SoupMessage::request-compression-dictionary`, and `SoupCompressionDictionaryRequest` APIs [Patrick Griffis]
* Remove color codes from http2 debug logs [Patrick Griffis]
* Add missing autoptr defines for `SoupMessageBody` [Patrick Griffis]
* http2: Fix content-sniffer running while message is paused [Patrick Griffis]
* http2: Consume buffered response body before cancel [Dominik Schnitzer]
* http2: Fix requeuing failed messages when connection is not reusable [Pablo Saavedra]
* soup-body-input-stream: Limit buffer read to the received content [Milan Crha]

Changes in libsoup from 3.6.6 to 3.7.1:

* Add support for the `zstd` content encoding [Patrick Griffis]
* Add `SoupWebsocketConnection:max-total-message-size` to limit incoming WebSocket message sizes [Ignacio Casal Quinteiro, Michael Catanzaro]
* Harden cookie and cookie jar handling:
    * Ignore cookies impersonating prefixed cookies, as well as cookies with empty names and values [Patrick Griffis]
    * Annotate `SoupCookieJar::changed` arguments as nullable [Corentin Noël]
    * Add `SoupCookieJarDB:max-size` to limit the file size of the database [Filipe Norte]
    * Expose `SoupCookieJarDB` construction failures via `GInitable`, and rename `SoupCookieJarDBError` to `SoupCookieJarError` [Patrick Griffis]
    * Avoid sending cookies to HTTP proxies for HTTPS requests [Carlos Garcia Campos]
* Tighten HTTP parsing and validation:
    * Reject multiple `Content-Length` headers and tighten `Content-Length` validation [Carlos Garcia Campos, Samuel Dainard]
* websocket: Fix an out-of-bounds read when reading an unmasked frame, and make `Sec-WebSocket-Protocol` matching case-sensitive [Mike Gorse, Diego Pino Garcia]
* http2: Fix graceful `GOAWAY` handling and several crashes and read/write edge cases [Carlos Alberto Lopez Perez, Eugene Mutavchi, Carlos Garcia Campos, Patrick Griffis, Michael Catanzaro]
* auth: Drop unused automatic NTLM auth and reject excessively long NTLM passwords [Michael Catanzaro, Mike Gorse]
* http1: Improve chunked request parsing [Carlos Garcia Campos]


========================================
  localsearch
========================================

NEW in 3.12.0 - 2026-08-31
==========================
  * Sandbox fixes for musl libc
  * Fix "localsearch index --remove" applying the configuration
  * Memory leak fixes
  * Add "localsearch list" alias to "localsearch search"

Translations: da, es, hu, sr

NEW in 3.12.rc - 2026-08-31
===========================
  * Fix situations where files would be needlessly re-extracted
  * Improve test coverage of CLI tools
  * Improve test coverage of writeback service

Translations: bg, ca, eu, fa, fr, gl, ko, lt, nb, nl, pt_BR, ru, sv, tr, ug

NEW in 3.12.beta - 2026-08-03
=============================
  * Handle soft page breaks correctly in ODF documents
  * Cleanups to the control daemon
  * Internal refactors to keep "common" code between processes minimal
  * Increased test coverage

Translations: be, cs, he, ka, kk, oc, pl, ro, sl, uk, zh_CN

NEW in 3.12.alpha - 2026-06-29
==============================
  * Fix possible crash when deleting a directory recursively
  * Fix `localsearch status --follow` output while extracting metadata
  * Fix potential metadata extractor stalls with many files resulting in
    extraction errors
  * New audio/video metadata extractor based on MediaInfo, it will
    eventually supersede the libav extractor.
  * Drop use of GMarkup for XML parsing, replaced with libxml2
  * Extract `nie:title` for album discs
  * Refactors of indexer internals
  * Fixes to Coverity warnings
  * Improved checks for files remaining to have a pass through the
    metadata extractor
  * Cleanup leftover album/disc/artist metadata
  * Improvements and fixes to XMP metadata extraction
  * Preserve indexed data on unmounts of parent folders, e.g. '/'

Translations: be, de, it, kab, lo, nb, nl, sk, th

NEW in 3.11.0 - 2026-03-15
==========================
  * Memory leak fixes
  * Stability fixes
  * Fixes to tv series/season extraction from video files

Translations: ca, da, en_GB, pl

Notable changes since 3.10.0:
  * Default configuration change, the user home directory will now be indexed
    recursively as a whole, instead of XDG folders
  * Major change in handling of removable devices. When enabled, removable
    devices will get a `.localsearch3` folder with a self-contained database
    for the removable device indexed data, instead of being included in the
    main database in the user home folder. The setting default remains off.
  * The set of dependencies was modernized and sanitized. GExiv2 is now used
    for more metadata, libzip is now used for bundled files.


========================================
  loupe
========================================

## 51.0 (2026-09-09)

## 51.rc (2026-09-01)

### Fixed

- After editing a file and pressing cancel, ask for saving the image instead of waiting for closing the global window.
- After editing a file, unsaved changes were still reported after using the "Save as…" feature.

## 51.beta (2026-07-31)

### Added

- Show ICC profile description or generated CICP description if applicable.

## 51.alpha (2026-06-29)

### Added

- Show creator, copyright information, camera lens, and used software in image metadata.

### Fixed

- Don't accumulate delays during animations. !596
- Don't keep showing saving overlay after error. !597

## 50.0 (2026-03-13)

### Changed

- Updated dependencies


========================================
  manuals
========================================

Manuals 50.1
============

 * Fix issue with GNOME CI and metainfo rc/beta/alpha tags

Manuals 50.0
============

 * Translation updates


========================================
  mm-common
========================================

mm-common 1.0.8 (2026-07-01)

* doc-reference.am: Distribute .svg files from the HTML directory
  (Kjell Ahlstedt)

Skeletonmm:
* Add skeletonmm/tools/generate_from_gir.sh
  (Kjell Ahlstedt)

Meson build:
* Allow -Duse-network=if-no-local-tag-file (new default value)
  (Kjell Ahlstedt)

Additions to version 1.0.7 news (added 2026-07-01)

Documentation:
* Replace gtkmm.org by gtkmm.gnome.org.
  (Kjell Ahlstedt)

Skeletonmm and Meson build:
* Require meson >= 0.62.0
  (Kjell Ahlstedt)



========================================
  msgraph
========================================

0.3.5 - Aug 27, 2026
===========================
- drive: fall back to /me/drive when /me/drives is denied
- doc: update URLs


========================================
  mutter
========================================

51.0
====
* Fix giving some X11 clients a wrong empty input mask [Jonas; !5296]
* Return correct xdg-shell error for illegal size requests [cfmc30; !5303]
* Improve backlight detection [Sebastian, W.; !5258]
* Fix dma-buf screencasting with primary GPU FBO path [Michel; !5277]
* Support custom acceleration profiles [Dallas; !4296]
* Add builtin key controller to handle binding pools [Carlos; !5304]
* Fix background blur in offscreen and clone paints [Jonas, Kristof; !5220]
* Fix invisible cursor when magnified [Carlos; !5311]
* Fix assigning some X11 clients a wrong initial size [Jonas; !5290]
* Fix partial unmaximization [Aleksandr, Jonas; !5314]
* Make WindowConfig maximize flag setters public [Aleksandr; !5323]
* Fixed crashes [Pavel, Jonas; !5298, !5316, !5324]
* Plugged leaks [Michel, Sebastian K.; !5285, !5275]
* Misc. bug fixes and cleanups [Michel, Pavel, Renjith, Conn, Jonas, Florian,
  Olivier, Sebastian W.; !5292, !5274, !5294, !5278, !5297, !5286, !5283,
  !5310, !5312, !5317, !5301, !5319, !5313, !5315, !5320, !5327]

Contributors:
  cfmc30, Michel Dänzer, Olivier Fourdan, Carlos Garnacho, Prasanta Hembram,
  Kristof Imeri, Sebastian Keller, Aleksandr Mezin, Florian Müllner,
  Conn O'Griofa, Pavel Ondračka, Renjith Pananchikkal, Dallas Strouse,
  Sebastian Wick, Jonas Ådahl

Translators:
  Salvatore Cocuzza [it], Artur S0 [ru], acey dot [sr], Balázs Úr [hu],
  Daniel Mustieles [es], Ask Hjorth Larsen [da], Prasanta Hembram [sat],
  Roy-Magne Mo [nn]

51.rc
=====
* Hook up stylus eraser button configuration [Peter; !4819]
* Fix using hardware cursor for SVG cursors [Michel; !5217]
* Do not require EDID to generate device color profile [Christian; !4961]
* Fix auto-rotate on phones without tablet mode switch [Christian; !4962]
* Decouple timelines from expected presentation times [Michel; !5157]
* Add background effect policy [Kristof; !5160]
* Prevent modifier release from stopping key repeat [muzaffarmhd; !4974]
* Align drag icon coordinates to pixel grid [Juan; !5212]
* Handle cross GPU buffer scanout [Tyler; !5219]
* Fix multiple monitors being reported as primary [liuyingjie; !5228]
* Fix desaturated SDR content in HDR mode [Boogie61; !5230]
* Add primary GPU rendering path using FBOs [Michel; !4921]
* Remove clutter_get_default_backend() [Bilal; !4981]
* Fix offscreen effect glitches on resource scale changes [Victor; !5233]
* Fix hang on external monitor hotplug [Michel; !5255]
* Throttle timelines that don't produce a frame every cycle [Michel; !5252]
* Consider key alias for binding pool bindings [Sebastian K.; !5268]
* Allow overriding client initial config [Jonas; !5033]
* Fix direct scanout handling for captures without dma-buf [Michel; !5276]
* Make binding pool key activation case-insensitive [DaPigGuy; !5264]
* Support Night Light on hardware without GAMMA_LUT [onetr1ck; !5205]
* Fix listing all supported fallback resolutions [Yella; !5238]
* Make software cursor overlay visibility per-view [Victor; !5207]
* Fixed crashes [onetr1ck, Jonas, Michel; !5216, !5028, !5226, !5242]
* Plugged leaks [Sebastian K., Jonas, Toluwaleke, Michel, mohansur, Nathan,
  Gamblit; !4934, !5225, !5235, !5237, !5239, !5222, !5041, !5197]
* Misc. bug fixes and cleanups [Sebastian W., Bilal, Michel, Carlos, Jonas,
  Tyler, Marco, onetr1ck, Renjith, Nicolas; !5208, !4980, !5201, !5142, !5229,
  !5240, !5218, !5246, !5136, !5250, !5253, !5256, !5243, !5148, !5261, !5269,
  !5270, !5281, !5257, !5280]

Contributors:
  Boogie61, Victor C., DaPigGuy, Michel Dänzer, Bilal Elmoussaoui,
  Nicolas Fella, Gamblit, Carlos Garnacho, Christian Glombek, Peter Hutterer,
  Kristof Imeri, Sebastian Keller, liuyingjie, mohansur, muzaffarmhd,
  Toluwaleke Ogundipe, onetr1ck, Juan Pablo Ugarte, Renjith Pananchikkal,
  Yella Ramya Krishna, Nathan Saslavsky, Tyler Schicke,
  Marco Trevisan (Treviño), Sebastian Wick, Jonas Ådahl

Translators:
  luming zh [zh_CN], Yuri Chornoivan [uk], Martin [sl], Ekaterine Papava [ka],
  Quentin PAGÈS [oc], Antonio Marin [ro], Yaron Shahrabani [he],
  Danial Behzadi [fa], Asier Saratsua Garmendia [eu], burns [pt_BR],
  Xavi Ivars [ca], Nathan Follens [nl], Francisco Diéguez Souto [gl],
  Aurimas Černius [lt], Abduqadir Abliz [ug], Alexander Alexandrov Shopov [bg],
  Jiri Grönroos [fi], Baurzhan Muftakhidinov [kk], Anders Jonsson [sv],
  Emin Tufan Çetin [tr], Patrik Sivek [cs], Guillaume Bernard [fr]

51.beta
=======
* Allow to get last input device from backend [Sergio; !5084]
* Send sprite object with grab-op-begin signal [Alessandro; !5135]
* Hook up disable-while-typing timeout setting [Peter; !4795]
* Hide cursor while input capture is active [KoljaFrahm; !5113]
* Add ext-background-effect-v1 blur support [Kristof; !5071]
* Fix blurred rendering with non-pixel-aligned monitors [James; !5115]
* Use staging xdg_session_management_v1 protocol [Carlos; !4806]
* Allow for button scrolling on mice [Peter; !4993]
* Allow external cursor implementations [Carlos; !5104]
* Do not add unsuported fallback monitor modes [ramyayella; !5110]
* Improve frame scheduling [Michel; !5138, !5131, !5183, !5167, !5156]
* Add dedicated "input panel" group [Carlos; !5171]
* Fix reapplying shader snippet after resize/scale operations [Kristof; !5165]
* Fill in mastering display metadata for HDR output [Boogie61; !5199]
* Add transition-removed signal on ClutterActor [Joan; !4925]
* Fix invalid redraw clips on rotated monitors [Marco; !5203]
* Avoid using cairo in public screenshot API [Bilal; !4172]
* Split experimental features into separate settings [Sebastian K.; !4893]
* Use MetaWindowConfig to process window state changes [Jonas; !4988]
* Allow global shortcut inhibitors to inhibit a11y shortcuts [Lukáš; !4926]
* Fixed crashes [Jonas, Carlos, Sundeep, Michel; !5143, !5153, !5151,
  !5163, !5169, !5170]
* Misc. bug fixes and cleanups [Jonas, Daniel, Toluwaleke, Carlos, Michel,
  Bilal, Florian, Cleo, Maximiliano, Sergio, Sebastian W.; !4711, !5152, !5141,
  !5014, !5121, !5056, !5137, !5166, !5159, !5168, !5164, !5106, !5173, !5184,
  !5187, !5162, !5193, !5176, !5158, !5206, !5175, !4991, !5145, !5209, !5210]

Contributors:
  AnonymouX47, Alessandro Astone, Boogie61, Sergio Costas Rodriguez,
  Michel Dänzer, Bilal Elmoussaoui, Carlos Garnacho, Peter Hutterer,
  Kristof Imeri, Sebastian Keller, KoljaFrahm, Sundeep Mediratta,
  Cleo Menezes Jr., Florian Müllner, Toluwaleke Ogundipe, James Railton,
  ramyayella, Maximiliano Sandoval, Joan Torres Lopez,
  Marco Trevisan (Treviño), Lukáš Tyrychtr, Daniel van Vugt, Sebastian Wick,
  Jonas Ådahl

Translators:
  Emin Tufan Çetin [tr], Vasil Pupkin [be], Daniel Rusek [cs],
  Baurzhan Muftakhidinov [kk], Yuri Chornoivan [uk], luming zh [zh_CN],
  Ekaterine Papava [ka]

51.alpha
========
* Fix size increases when quickly unmaximizing window by drag [Jonas; !4856]
* Fix cursor position hint for Xwayland if scaling is used [Olivier; !4989]
* Fix fullscreening of edge tiled windows [Jonas; !4960]
* Scale the hotspot location for tablet tool cursors [Olivier; !5026]
* Fix moving maximized windows to another monitor via keyboard [Jonas; !4852]
* Fix alt-tab with sloppy/mouse focus [Jonas; !5036]
* Allow input capture portal to integrate with clipboard [Jonas; !4767]
* Implement support for version 2 of text_input_v3 protocol [Carlos; !3600]
* Fix DND data offers on touch [Alessandro; !5057]
* Ignore repeated events for double click counting [Lukáš; !4883]
* Fix broken switch-monitor mapping on stylus buttons [Peter; !5073]
* Do not unfullscreen fullscreened window on unmaximize [Zhiyi; !5069]
* Add format-aware window_actor_paint_to_content() variant [Christopher; !5077]
* Make DND with tablets work across surfaces [Carlos; !5043]
* Ensure preferred_scale event is sent to clients [Michel; !5103]
* Remove support for legacy NVIDIA drivers [Jonas; !5079]
* De-prioritize focusing desktop windows [Marco; !5016]
* Minimize stage paints and buffer copies in screencasts [Michel; !5046, !5119]
* Remove CoglProgram/Shader API [Bilal; !5094]
* Fix erroneous stack order changes on workspace switches [AnonymouX47; !4992]
* Allow creating Devkit monitors from the command line [Jonas; !4975]
* Fix triggering OSK for text_input_v3 version 1 clients [Sebastian K.; !5117]
* Fixed crashes [Marco, Carlos, Jonas, Michel, Zander; !5038, !5064, !5063,
  !5074, !5072, !5061, !5076, !5097, !5107]
* Misc. bug fixes and cleanups [Jonas, Marco, Gert-dev, Denis, Sebastian K.,
  AnonymouX47, Bilal, Zhiyi, Christian, Michel, Florian, Vasiliy, Sebastian W.,
  Michael, Daniel, Alessandro, Carlos, Andre, Abderrahim, Marius; !5027, !4984,
  !5037, !5025, !5034, !4998, !5015, !5035, !5011, !5054, !5052, !5053, !4963,
  !5060, !5062, !4853, !4866, !5040, !4751, !4814, !5070, !5012, !4875, !4949,
  !5101, !5102, !5080, !5075, !4977, !5096, !4995, !5082, !5108, !5081, !5105,
  !5013, !5112, !5116, !5114, !5058, !5124, !5128, !5127, !5118, !5048, !5085,
  !5139, !5107, !5140, !5126, !5134]

Contributors:
  AnonymouX47, Alessandro Astone, Zander Brown, Michael Catanzaro,
  Marius Cirsta, Michel Dänzer, Bilal Elmoussaoui, Olivier Fourdan,
  Denis Garaev, Carlos Garnacho, Gert-dev, Christian Glombek, Peter Hutterer,
  Saikeo Kavhanxay, Sebastian Keller, Abderrahim Kitouni, Florian Müllner,
  Andre Nijman, Christopher Snowhill, Vasiliy Stelmachenok,
  Marco Trevisan (Treviño), Lukáš Tyrychtr, Daniel van Vugt, Sebastian Wick,
  Zhiyi Zhang, Jonas Ådahl

Translators:
  Nathan Follens [nl], Jose Riha [sk], Danial Behzadi [fa],
  Saikeo Kavhanxay [lo], Christian Kirbach [de], Aefgh Threenine [th],
  Kjartan Maraas [nb], Davide Ferracin [it], Cas Pascal [vi],
  Victoria Niedzielska [pl], Martin [sl], Antonio Marin [ro]

50.1
====
* Allow setting paint debug flags from environment [Jonas; !4973]
* Fix applying pango scale attributes to text [AnonymouX47; !4964]
* Fix moving minimized maximized windows to a different monitor [Jonas; !4958]
* Configure primary GPU in headless mode if it does't support KMS [Vivek; !4561]
* Use fewer buffers for screencast streams [Georges; !4983]
* Only queue clipped redraws when mapped [Sebastian; !4990]
* Fix XReconfigureWMWindow() resizing window when not requested [Robert; !5010]
* Fix DND sometimes failing with reused data sources [Sebastian; !5009]
* Fix performance regression with some nvidia driver versions [Michel; !5018]
* Use modifiers for secondary GPU FBOs [Michel; !5019]
* Fix freeze with nvidia driver [Michel; !5021]
* Fixed crash [Jonas; !4982]
* Misc. bug fixes and cleanups [Carlos, Daniel, Jonas, Florian, Bilal, Naveen,
  Sebastian; !4976, !4985, !4979, !4978, !4987, !5004, !5005, !5006, !5003,
  !5017]

Contributors:
  AnonymouX47, Georges Basile Stavracas Neto, Robert Brown, Michel Dänzer,
  Bilal Elmoussaoui, Carlos Garnacho, Vivek Kasireddy, Sebastian Keller,
  Naveen Kumar, Florian Müllner, Daniel van Vugt, Jonas Ådahl

Translators:
  Марко Костић [sr], Baptiste Darthenay [eo], Artur S0 [ru],
  Christian Kirbach [de]

50.0
====
* Ensure DnD cursor offset is applied correctly [Carlos; !4947]
* Introduce API to get window min/max sizes [Cleo; !4917]
* Add simple "controller" API for common patterns [Carlos; !4943]
* Fixed crashes [Michel, Sebastian, cong, Jonas; !4941, !4945, !4950,
  !4938, !4918, !4956]
* Misc. bug fixes and cleanups [Carlos, Sebastian, Michel, Nicolas, Jonas;
  !4944, !4942, !4939, !4948, !4936, !4954, !4957, !4959, !4969]

Contributors:
  cong, Michel Dänzer, Nicolas Fella, Carlos Garnacho, Sebastian Keller,
  Cleo Menezes Jr., Jonas Ådahl

Translators:
  Baurzhan Muftakhidinov [kk], Rafael Fontenelle [pt_BR],
  Francisco Diéguez Souto [gl], Seong-ho Cho [ko],
  Asier Saratsua Garmendia [eu], Victor Dargallo [ca], Victoria [pl],
  Guillaume Bernard [fr], Yaron Shahrabani [he], Efstathios Iosifidis [el],
  Ask Hjorth Larsen [da], Bruce Cowan [en_GB], Sabri Ünal [tr],
  Emin Tufan Çetin [tr]


========================================
  nautilus
========================================

Major Changes in 51.0.1
=======================
* Bugfixes:
- Fix metainfo release description syntax (Peter Eisenmann)

Major Changes in 51.0
=====================
* Bugfixes:
- Fix a possible crash when changing app defaults after closing the app chooser (Khalid Abu Shawarib)

* Cleanups:
- Adjust to renamed sushi devel name (Peter Eisenmann)

* Translation updates (GNOME Translation Project contributors)

Major Changes in 51.rc
======================
* Enhancements:
- Add Santali translation (Prasanta Hembram)
- Add tests for image, files-view, properties (Khalid Abu Shawarib)
- Add shortcut to focus file chooser filename entry (Peter Eisenmann)
- Delay clearing of the view for smoother navigation (Peter Eisenmann)
- Add rename, trash and folder opening functionality to previewer (Peter Eisenmann)
- Use type-to-search pattern in app-chooser (Peter Eisenmann)
- Mark network address entry invalid on the a11y layer when appropriate (Lukáš Tyrychtr)
- Announce feedback text to screen readers in filename entries (Felipe Borges)

* Bugfixes:
- Fix tab overview behavior with single tab (Khalid Abu Shawarib)
- Fix empty list state in app-chooser (Peter Eisenmann)
- Only show apps in one section in app-chooser (Peter Eisenmann)
- Show parent folder row when properties dialog is detached (Hanzala Sohrab)
- Fix memory trimming on window closure (Peter Eisenmann)
- Correctly fix non-keypad shortcuts in menus (Peter Eisenmann)
- Close app when only property windows are left (Peter Eisenmann)
- Restore focus and selection if a file gets removed (Lukáš Tyrychtr)

* Cleanups:
- Drop view-related context menu entries (Peter Eisenmann)
- Add and use recursive directory iterator helper (Peter Eisenmann)
- Attempt using any sushi version (Peter Eisenmann)

* Translation updates (GNOME Translation Project contributors)

Major Changes in 51.beta
========================
* Enhancements:
- Use AdwTabOverview in narrow mode (Automeris naranja)
- Open locations from other apps in new tabs (Corey Berla)
- Add an empty document menu entry in case of empty templates directory (Khalid Abu Shawarib)
- Ignore most duplicate app entries in the app chooser (Khalid Abu Shawarib)
- Add gobject-linter CI job (Khalid Abu Shawarib)
- Move search focus to higher relevance result (pagarao)
- Use AdwComboRow for open action preference (Khalid Abu Shawarib)
- Hide redundant 'Open Parent Folder' properties row (Hanzala Sohrab)
- Use dedicated symbolic for Projects bookmark icon (Lorenzo Ubaldi)
- Adjust sidebar width limit (Programejt)
- Don't duplicate loading locations (Peter Eisenmann)

* Bugfixes:
- Show non-keypad shortcuts in menus (Peter Eisenmann)
- Handle timed dialogs being destroyed before their timeout (Khalid Abu Shawarib)
- Put g_set_date_time behind a guard (Maximiliano Sandoval)
- Fix memory leak in action_create_links_in_place (Programejt)
- Correctly position related apps in the app chooser (Peter Eisenmann)

* Cleanups:
- Apply gobject-linter fixes (Khalid Abu Shawarib)
- Clean up NautilusWindowSlot internals (Peter Eisenmann)

* Translation updates (GNOME Translation Project contributors)

Major Changes in 51.alpha
=========================
* Enhancements:
- Show selected items count badge while dragging multiple files (Aaryan Dadu)
- Combine '.' and '..' name errors in validators (pagarao)
- Hide parent folder for mount root children (Krish)
- Don't show placeholder trashed info for multiple files or the Trash in properties (Khalid Abu Shawarib)
- Add a tooltip to properties detach window button (Lukáš Tyrychtr)
- Show either an unreadable or read-only emblem (Peter Eisenmann)
- Show symbolic link emblem before read-only/unreadable  (Peter Eisenmann)
- Adjust non-indexed search description in info popover (parzival)
- Advertise notification categories for file and mount/unmount operations (Khalid Abu Shawarib)
- Slightly enhance view reloading performance  (Khalid Abu Shawarib)
- Add more tests for bookmarks list, icon-info, image widget, file creation, and thumbnailing (Khalid Abu Shawarib)

* Bugfixes:
- Show the correct starred status and normal features of properties in Recents (Khalid Abu Shawarib)
- Don't unselect when right clicking the view's background (Khalid Abu Shawarib)
- Don't override manual selection with file operation results (Khalid Abu Shawarib)
- Fix a bug where copied files are not selected after the operation has ended (Khalid Abu Shawarib)
- Removed several usages of blocking IO in the main thread (Khalid Abu Shawarib)
- Fixed "Window is ready" notification when other apps call "Open location" instead of raising the window (Khalid Abu Shawarib)
- Fix Escape not closing the app chooser dialog when the entry is focused (Peter Eisenmann)
- Fix accessibility label and description of view mode button (Sergio Costas)
- Fix thumbnail not being updated while loading is some cases (Khalid Abu Shawarib)
- Fixed leaks (Khalid Abu Shawarib)
- Remove redundant bookmark list updates signals (Khalid Abu Shawarib)
- Fix loading getting stuck while thumbnailing in flatpak (Khalid Abu Shawarib)
- CI fixes (Khalid Abu Shawarib, Peter Eisenmann)

* Cleanups:
- Various dead code removals and simplifications (Peter Eisenmann, Khalid Abu Shawarib)
- Reduce the usage of deprecated APIs (Khalid Abu Shawarib, Peter Eisenmann)
- Fix gdbus commands in CONTRIBUTING.md (Lynn)
- Renable compilation of localsearch test but keeep skipping them (Khalid Abu Shawarib)
- Use newer image widget for previews in properties and conflict dialog (Khalid Abu Shawarib)
- Use libgxdp for the file chooser window attachment and remove the local copy (Khalid Abu Shawarib, Peter Eisenmann)
- Moved thumbnails test to display suite (Khalid Abu Shawarib)

* Translation updates (GNOME Translation Project contributors)

Major Changes in 50.2.2
=======================
* Bugfixes:
- Fix app chooser breaking translation domains (Khalid Abu Shawarib)

Major Changes in 50.2
=====================
* Enhancements:
- Add Lao translation (Saikeo Kavhanxay)
- Flush search results based on time instead of file count (Khalid Abu Shawarib)
- Allow opening multiple files with different extensions (pagarao)

* Fixed regressions:
- Added search entry to applicaton chooser (Khalid Abu Shawarib, Peter Eisenmann)

* Bugfixes:
- Fix app staying in the background after properties windows are closed (Khalid Abu Shawarib)
- Fix possible crash with properties window (Khalid Abu Shawarib)
- Fix thumbnails not appearing in remote locations (Khalid Abu Shawarib)
- Fix fallback icons not changing size with zoom level (Khalid Abu Shawarib)
- Fix duplicate conflict dialog when moving files across volumes (Kristóf Széles)
- Handle trailing '.' character for FAT volumes (iwasMateo)
- Fix search recursion for directories with no ID (Khalid Abu Shawarib)
- Fix off-by-one insertion of bookmarks (eric)
- Fix templates unique naming with a file extension (Khalid Abu Shawarib)
- Fix a thin line of checker pattern appearing in thumbnails (Khalid Abu Shawarib)
- Fix opening files with nautilus itself (Khalid Abu Shawarib)
- Avoid potential crash in list view (Khalid Abu Shawarib)

* Cleanups:
- Don't create trash monitor when not needed (Ondrej Holy)
- Correctly clear name-cell callbacks on disposal (Marc Rendiet)

* Translation updates (GNOME Translation Project contributors)

Major Changes in 50.1
=====================
* Bugfixes:
- Fix a crash on empty MIME type (Khalid Abu Shawarib)
- Fix read-only/not accessible emblems (Peter Eisenmann)
- Assure view item deduplication on slow machines (Ondrej Holy)
- Fix error icon size (Khalid Abu Shawarib)
- Restore default focus for permanent delete dialog (Peter Eisenmann)
- Autocomplete folders with trailing slash again (Peter Eisenmann)
- Fix opening folder with many custom icons (Khalid Abu Shawarib)
- Fix showing properties for encrypted partition (Khalid Abu Shawarib)
- Fix image rounding (Khalid Abu Shawarib)

* Cleanups:
- Don't allow editing custom icons for trash or trashed files (Khalid Abu Shawarib)
- Use GIcon for launch context (Khalid Abu Shawarib)

* Translation updates (GNOME Translation Project contributors)

Major Changes in 50.0
=====================
* Enhancements:
- More thumbnailing tests (Khalid Abu Shawarib)
- Add ARM64 CI pipeline (Khalid Abu Shawarib)

* Bugfixes:
- Correctly handle canceling archive extraction (Khalid Abu Shawarib)

* Cleanups:
- Remove last remaining bits of eel library (Khalid Abu Shawarib)
- Make archive operation tests run reliably (Khalid Abu Shawarib)

* Translation updates (GNOME Translation Project contributors)


========================================
  orca
========================================

51.0 - 14 September 2026

Web:

* Fix combining lines incorrectly due to Gecko scaling bug.

* Fix missing "leaving blockquote" announcement.

* Fix several issues related to presentation of ARIA tree and treegrid.

* Handle user agents failing to use the correct role for ARIA switch.

* Treat focusable ARIA separators/splitters as focus-mode widgets.

* Prevent Say All from interrupting page summary after load complete.

* Fix presentation of link role for links whose contents is in
  presentable descendants.

General:

* Fix on-the-fly changes related to the non-global voice set.

* Fix not speaking a newly-shown terminal line after scrolling.

* Fix presentation not working after interrupted Say All.

* Fix several "chattiness" issues.

* Don't interrupt speech for focus changes if an announcement was
  just made (e.g. GTK toasts).

* Fix app-specific dictionary entries not appearing in word list.

New and updated translations (THANKS EVERYONE!!!):

  bg              Bulgarian                 Alexander Alexandrov Shopov
  da              Danish                    Alan Mortensen
  de              German                    Christian Kirbach
  en_GB           British English           Bruce Cowan
  es              Spanish                   Daniel Mustieles
  es              Spanish                   Daniel Mustieles García
  fi              Finnish                   Jiri Grönroos
  fr              French                    Jean-Marc TISSIERES
  fr              French                    Kevin
  hr              Croatian                  Zvonimir Stanečić
  nb              Norwegian Bokmål          Kjartan Maraas
  nn              Norwegian Nynorsk         Roy-Magne Mo
  pt_BR           Brazilian Portuguese      Diego Luz
  pt_BR           Brazilian Portuguese      Rafael Coelho Costa
  sr              Serbian                   Марко Костић
  tr              Turkish                   Emin Tufan Çetin

=========

51.rc - 1 September 2026

MathCAT:

* Bump version to 7.6-rc.3

Extensions:

* Add support to get Atspi version from the currently-running Orca.

Web:

* Give assertive live regions a higher priority in the event manager's
  queue so they reach the live region presenter sooner.

* Improve presentation after dead/replaced-object recovery.

General:

* Implement support (behind a flag) for Orca-controlled text selection.
  This will make it possible for app and browser developers to fix bugs
  before this new Orca feature goes live in the v52 release.

* Fix several issues related to Orca controlling the caret in non-web
  content.

* Improve performance related to ancestor lookup.

* Handle timeout from GPaste during clipboard presenter activation.

* Fix some terminal chattiness issues.

* Fix Say All line repetition in GTK4 text views.

* Fix several issues related to presentation of GTK3 comboboxes.

New and updated translations (THANKS EVERYONE!!!):

  be              Belarusian                Vasil Pupkin
  ca              Catalan                   Xavi Ivars
  cs              Czech                     Patrik Sivek
  de              German                    Christian Kirbach
  eu              Basque                    Asier Saratsua Garmendia
  fa              Persian                   Danial Behzadi
  gl              Galician                  Francisco Diéguez Souto
  id              Indonesian                Andika Triwidada
  lt              Lithuanian                Aurimas Černius
  nl              Dutch                     Nathan Follens
  sv              Swedish                   Anders Jonsson
  ug              Uighur                    Abduqadir Abliz
  zh_CN           Chinese (China)           luming zh

=========

51.beta - 3 August 2026

Extensions:

* Add support for localized strings.

* Fix persistence of set_current_voice().

* Add more lifecycle hooks.

Web:

* Respect aria-busy when presenting (or not) live regions.

* Fix multiple issues related to table presentation.

* Fix presentation of Chrome's history table.

* Don't present the value as a percent when the widget has the
  "indeterminate" state.

General:

* Fix regression in presenting name of Orca's color-chooser buttons.

* Report the number of available items in list boxes (as opposed to
  an unchecked count).

* Fix false positive which triggered flat review reset in terminals.

New and updated translations (THANKS EVERYONE!!!):

  cs              Czech                     Daniel Rusek
  de              German                    Christian Kirbach
  hu              Hungarian                 Attila Hammer
  ka              Georgian                  Ekaterine Papava
  kk              Kazakh                    Baurzhan Muftakhidinov
  sl              Slovenian                 Martin
  uk              Ukrainian                 Yuri Chornoivan

=========

51.alpha - 20 July 2026

New Features:

* Orca now supports user extensions/plugins.

* Orca now uses MathCAT for its MathML presentation.

* Orca now has options to announce formatting changes when reading to
  make proofreading easier.

* Language-specific voice sets can now be created and activated via
  command.

* Sleep mode can now be enabled automatically for specific applications.

* What flat review tracks can now be configured.

* Orca+F double-clicked displays all font/formatting information in a
  window for easier review.

* Orca now supports speech inflection configuration.

Bug Fixes and Other Improvements:

* Add structural navigation option to skip unlabeled images.

* Add unbound command to announce the current state of the modifier
  keys.

* Add UI to support Insert/KP_Insert and CapsLock as modifiers at the
  same time.

* Announce misspelled words when navigating by line.

* Fix multiple bugs in the areas of automatic-language switching,
  braille panning, web presentation, and terminal presentation.

* Restrict structural navigation, Ctrl+Home/End in document viewers
  inside web applications like VS Code.

* Fix chattiness in response to VS Code's artificial-page repaints.

* Improve performance by reducing AT-SPI calls where there is no
  cached value.

* Where Am I: Present error message for text role like we do for entry.

* Learn mode: Include all commands in the list shown when F2 is pressed.

* Present font attributes of flat review location when in flat review.

New and updated translations (THANKS EVERYONE!!!):

  be              Belarusian                Vasil Pupkin
  cs              Czech                     Daniel Rusek
  de              German                    Christian Kirbach
  eo              Esperanto                 Kristjan ESPERANTO
  eu              Basque                    Asier Saratsua Garmendia
  fa              Persian                   Danial Behzadi
  fr              French                    Guillaume Bernard
  hu              Hungarian                 Attila Hammer
  it              Italian                   Davide Ferracin
  kk              Kazakh                    Baurzhan Muftakhidinov
  lt              Lithuanian                Aurimas Aurimas Černius
  nb              Norwegian Bokmål          Kjartan Maraas
  pl              Polish                    Victoria Niedzielska
  ro              Romanian                  Antonio Marin
  ru              Russian                   Sergej A.
  sk              Slovak                    Jose Riha
  sl              Slovenian                 Martin
  sr              Serbian                   Марко Костић
  th              Thai                      Aefgh Threenine
  uk              Ukrainian                 Yuri Chornoivan
  zh_CN           Chinese (China)           luming zh

=========

50.2 - 26 May 2026

Web:

* Fix repetition of previous line when leaving blockquotes.

* Handle traceback triggered by Chromium crash.

* Fix double-presentation when flat-reviewing Chromium content.

Preferences:

* Fix table-navigation-enabled state for app settings.

* Fix orphaned key grab.

General:

* Don't present ancestors in basic where am I.

New and updated translations (THANKS EVERYONE!!!):

  fa              Persian                   Danial Behzadi
  nb              Norwegian Bokmål          Kjartan Maraas
  ro              Romanian                  Antonio Marin
  sk              Slovak                    Jose Riha
  th              Thai                      Aefgh Threenine

=========

50.1 - 14 April 2026

Web:

* Fix presentation of multiline-text web combo boxes.

* Fix presentation of link file size.

* Fix double-presentation of "focus mode" when page load completes.

* Fix say all looping in content, and eliminate some chattiness.

Preferences:

* Fix preferences saving to old profile path after rename.

* Fix bug preventing restoration of default voice values.

* Fix left-over JSONism that prevented spiel from being saved as the
  speech server.

* Handle TypeError resulting from speech synthesizer crashing during
  prefs save.

New and updated translations (THANKS EVERYONE!!!):

  de              German                    Christian Kirbach
  eu              Basque                    Asier Saratsua Garmendia
  fr              French                    Guillaume Bernard
  it              Italian                   Davide Ferracin
  pl              Polish                    Victoria Niedzielska
  ru              Russian                   Danil
  ru              Russian                   Sergej A.

=========

50.0 - 14 March 2026

Bug fixes and other improvements:

* Refactor mouse review to use the new AtspiDevice API when available.

* Fix multiple issues related to settings and the preferences window.

* Fix presentation when using Google Docs' native navigation.

* Fix caret navigation sticking on named links with broken hypertext
  offsets.

* Don't toggle browse/focus modes when using the table navigator.

* Fix presentation of characters when automatic language switching is
  enabled.

* Attempt to use the action interface when synthesizing a right click.

* Fix flat review braille panning viewport jump.

* Fix presentation of autoinsertions of one character.

* Include the new value when changing rate, pitch, or volume on the fly.

* Add per-layout Orca modifier key settings so preferred modifiers are
  remembered when switching layouts.

* Add another workaround for https://bugreports.qt.io/browse/QTBUG-128558
  so that Mumble status cells are presented.

* Fix on-screen speech display not initially focused on MATE.

New and updated translations (THANKS EVERYONE!!!):

  ca              Catalan                   Victor Dargallo
  da              Danish                    Alan Mortensen
  en_GB           British English           Bruce Cowan
  oc              Occitan                   Quentin PAGÈS
  pl              Polish                    Victoria
  pt_BR           Brazilian Portuguese      Juliano de Souza Camargo
  ug              Uighur                    Abduqadir Abliz

=========

* There is new option to read chat room messages from the active room
* Fix several issues related to preferring the TableCell interface
 * Attempt to be smarter about the default contraction table, preferring
 * Correctly update caret position when Page Up/Down used in editable text
 * Ensure the expanded state of tree rows is announced
 * Do not suppress presentation of locking keys in password fields
 * Work around unfortunate event order when switching page tabs in Gecko
  * Remove the old "inaccessible" metacity/marco hack
  * Create Browse and Focus modes to make access to web content and web
  * Significant work and progress on profile-based, on-the-fly language
  * Fix for bug 693159 - Orca doesn't echo words in gnome-terminal
    preferences it should not
  * Additional fix for bug #609900 - Speech page speechdispatcher
  * Fix for bgo#619949 - Attributes in oowriter are not being presented
  it can not be launched
  NOTE TO USERS: the standard toolkit method for bringing up a tooltip

========================================
  pango
========================================

Overview of changes in 1.58.2, 05-08-2026
=========================================

* No changes

Overview of changes in 1.58.1, 03-08-2026
=========================================

* Require harfbuzz 11
* Require glib 2.88
* CoreText: Support variations
* CoreText: Support font features from descriptions
* Renderer: Keep over/under/through lines in sync
* Fixes for undefined behavior

Overview of changes in 1.58.0, 26-06-2026
=========================================

* PangoFontDescription has a new width attribute, which
  is like stretch, but allows intermediate values

* PangoRenderer has gained the ability to render only certain
  components of a layout (such overlines, underlines, text,...)

Overview of changes in 1.57.1, 22-03-2026
=========================================

* Bugs fixed:
  - #867 Bad font substitution causes application crashes
  - #869 MacOS: subprojects/cairo/meson.build:1:0: ERROR: Value "gnu11,c11" (of
    type "string") (sid)
  - #870 MacOS: subprojects/pango/utils/viewer-cocoa.m:23:10: fatal error:
    'cairo/cairo.h' file not found (sid)
  - #871 gtk4-widget-factory crashes with pango error on macOS when an emoji is
    entered into a text field
  - #876 Inconsistency between documentation and code in
    pango_context_set_font_description (Matthias Clasen)
  - #882 The hex box characters generated in PDF can not be copied
  - #885 warning: assignment discards 'const' qualifier from pointer target type
    [-Wdiscarded-qualifiers]
  - !884 Revert "meson: Rework introspection handling"
  - !890 Update the code to support Unicode 17.0.0
  - !892 Include fcfreetype.h where needed
  - !893 meson: Update freetype2 wrap to fix ci warnings
  - !894 Respect explicit language attribute when itemizing
  - !895 Fix some subproject woes
  - !896 meson: Add support for cross-compiling using Apple subsystems
  - !897 (break.c) pass sentences to handle_sentences
  - !898 add support for g_autoptr(PangoScriptIter)
  - !900 fontmap: Mark get_family as nullable



========================================
  pangomm
========================================

2.56.2 (stable) 2026-06-25

Documentation:
* Remove obsolete FSF (Free Software Foundation) address
  (Kjell Ahlstedt)
* README.win32.md: Mention Visual Studio 2026
* Visual Studio builds: Update build information
  (Chun-wei Fan) Merge request !25

Meson build:
* Use the Python installation that Meson uses.
  See merge request glibmm!67
  (Kjell Ahlstedt)
* Meson and NMake builds: Distinguish Visual Studio 2026 builds
  from Visual Studio 2022 builds
* NMake Makefiles: Consolidate items and improve flexibility
* NMake Makefiles: Make build process more robust
  (Chun-wei Fan) Merge request !25
* NMake Makefiles: Update .m4 installation location
  (Chun-wei Fan) Merge request !28
* Don't require the 'dot' command to build the documentation
  (Kjell Ahlstedt)



========================================
  pyatspi
========================================

What's new in pyatspi 2.58.2:

* Fix building the tests with at-spi2-core 2.60.0.


========================================
  pygobject
========================================

3.58.0 - 2026-08-27
-------------------

* Stable release

3.57.1 - 2026-08-14
-------------------

* Add extra checks around construction of object destroy notifier :mr:`560`
* `GLib.Pid` should be a number with a special `close` method :mr:`556`
* Use `PathLike` objects for `Gtk.Template` :mr:`555`
* Fast marshalling of `bytearray` to `GBytes` :mr:`558`
* Prevent crashes where `GValue` is `NULL` :mr:`559`

3.57.0 - 2026-07-20
-------------------

* doc: Update tutorial and examples :mr:`536` :mr:`537` :mr:`538`
* Fix memory leak when initializing GTK templates :mr:`526`
* Fix potential buffer overflow errors where the C API exposes `GArray`'s :mr:`540` :mr:`550`
* gio: Support creating `GFile` child with slash operator, similar to `pathlib.Path` :mr:`539`
* Refactor memory management for marshaller cache :mr:`490` :mr:`517`
* Add missing msg argument to asyncio cancel() :mr:`541`
* Fix deprecation warning for register_object :mr:`542`
* Find libraries automatically on Windows :mr:`415`
* Fix crash when `user_data` is defined before callback :mr:`554`
* Avoid extraneous deprecation warnings :mr:`545`
* Support generic annotations on `Async` :mr:`547`
* fix: Simplify string prefix handling :mr:`548`
* doc: Use gobject-linter for linting GObject code :mr:`543` :mr:`551` :mr:`552`

3.56.2 - 2026-03-25
-------------------

* ci: drop obsolete mingw environments, add UCRT64 and clang64 (backport) :mr:`533`
* Leave floating state intact for get/set property (backport) :mr:`534`
* Only call do_dispose if it's implemented on the class (backport) :mr:`531`

3.56.1 - 2026-02-27
-------------------

* Fix `do_dispose` for floating objects :mr:`527`
* Updates and fixes for Windows documantation :mr:`525`


========================================
  rygel
========================================

46.0
====

 - Translation updates

All contributors to this release:
 - Roy-Magne Mo <rmo@sunnmore.net>
 - Alan Mortensen <oversaet@proton.me>
 - burns <ahoradocafezinho@gmail.com>
 - Daniel Mustieles <daniel.mustieles@gmail.com>
 - Balázs Úr <balazs@urbalazs.hu>
 - acey dot <aceydot@proton.me>
 - Asier Saratsua Garmendia <asiersarasua@ni.eus>
 - Changwoo Ryu <cwryu@debian.org>

Added/updated translations:
 - da.po, courtesy of Alan Mortensen
 - es.po, courtesy of Daniel Mustieles
 - eu.po, courtesy of Asier Saratsua Garmendia
 - hu.po, courtesy of Balázs Úr
 - ko.po, courtesy of Changwoo Ryu
 - nn.po, courtesy of Roy-Magne Mo
 - pt_BR.po, courtesy of Álvaro Burns
 - sr.po, courtesy of aceydot

46.rc.0
=======

 - No functional change, bump g-e-s to 1.28.6 for flatpak CI
   pipeline and force python3 module rebuild

46.rc
=====

- Translation updates

All contributors to this release:
 - Emin Tufan Çetin <etcetin@gmail.com>
 - Kjartan Maraas <kjartan.maraas@gmail.com>
 - Anders Jonsson <anders.jonsson@norsjovallen.se>
 - Aurimas Aurimas Černius <aurimas.cernius@mailo.com>
 - Lucien <luiz01luciano04@gmail.com>
 - Baurzhan Muftakhidinov <baurthefirst@gmail.com>
 - Patrik Sivek <sivekpatrik@gmail.com>
 - Alexander Alexandrov Shopov <ash@kambanaria.org>
 - Abduqadir Abliz <sahranbay@gmail.com>
 - Francisco Diéguez Souto <frandieguez@gnome.org>
 - Vasil Pupkin <3abac@3a.by>
 - Nathan Follens <nfollens@gnome.org>
 - Xavi Ivars <xavi.ivars@gmail.com>
 - Yaron Shahrabani <sh.yaron@gmail.com>
 - Artur S0 <arturios05@bk.ru>
 - Danial Behzadi <dani.behzi@ubuntu.com>

Added/updated translations:
 - be.po, courtesy of Yuras Shumovich
 - bg.po, courtesy of Alexander Shopov
 - ca.po, courtesy of Jordi Mas i Hernàndez
 - cs.po, courtesy of Patrik Sivek
 - fa.po, courtesy of Danial Behzadi
 - fr.po, courtesy of Julien Humbert
 - gl.po, courtesy of Fran Dieguez
 - he.po, courtesy of Yaron Shahrabani
 - kk.po, courtesy of Baurzhan Muftakhidinov
 - lt.po, courtesy of Aurimas Černius
 - nb.po, courtesy of Kjartan Maraas
 - nl.po, courtesy of Nathan Follens
 - ru.po, courtesy of Artur So
 - sv.po, courtesy of Anders Jonsson
 - tr.po, courtesy of Emin Tufan Çetin
 - ug.po, courtesy of Abduqadir Abliz

46.beta
=======

Docs:
 - Add missing "dlnaprofile" description for GstLaunch
 - Fix rendering issues for web docs

Server:
 - Add Reciva devices to seek hack

Renderer:
 - Fix crash if address families mismatch

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Yuri Chornoivan <yurchor@ukr.net>
 - Antonio Marin <gnmer.6qxyg@slmail.me>
 - Quentin PAGÈS <pages_quentin@hotmail.com>
 - Ekaterine Papava <papava.e@gtu.ge>
 - luming zh <lumingzh@qq.com>
 - Martin <miles@filmsi.net>
 - Anders Jonsson <anders.jonsson@norsjovallen.se>

Added/updated translations:
 - ka.po, courtesy of Ekaterine Papava
 - ro.po, courtesy of Antonio Marin
 - sl.po, courtesy of Martin Srebotnjak
 - uk.po, courtesy of Yuri Chornoivan
 - zh_CN.po, courtesy of lumingzh

46.alpha
========

New and updated dependencies:
 - pyyaml
 - sphinx + furo theme for building the website
 - meson >= 1.8.0
 - rst2man

All:
 - Remove RUIH implementation

Core:
 - Allow proper boolean settings through environment variables
 - Align list definition through environment with config file
 - Remove BasicManagement and EnergyManagement

Docs:
 - Host website inside repository

Bugs fixed in this release:
 - https://gitlab.gnome.org/GNOME/rygel/issues/83

All contributors to this release:
 - Jens Georg <mail@jensge.org>
 - Jose Riha <jose1711@gmail.com>
 - Baurzhan Muftakhidinov <baurthefirst@gmail.com>
 - Jordan Petridis <jpetridis@gnome.org>
 - Saikeo Kavhanxay <kavhanxay@hotmail.com>
 - Aefgh Threenine <aefgh39622@gmail.com>
 - Davide Ferracin <davide.ferracin@icloud.com>
 - Andi Chandler <andi@gowling.com>
 - Alexander Alexandrov Shopov <ash@kambanaria.org>
 - Andika Triwidada <atriwidada@gnome.org>

Added/updated translations:
 - bg.po, courtesy of twlvnn kraftwerk
 - en_GB.po, courtesy of Andi Chandler
 - id.po, courtesy of Kukuh Syafaat
 - it.po, courtesy of Gianvito Cavasoli
 - kk.po, courtesy of Baurzhan Muftakhidinov
 - lo.po, courtesy of FULL NAME
 - sk.po, courtesy of Dušan Kazik
 - th.po, courtesy of Akom Chotiphantawanon


========================================
  simple-scan
========================================

Overview of changes in simple-scan 50.0
~~~~~~~~~~~~~~
Released: 2026-04-02

  * Update cursor names to be correctly displayed on Wayland.
  * Fix scanner selection disappearing after failed scan
  * Use AdwToggleGroup in preferences dialog
  * Bump minimum libadwaita version
  * Show in-app notification after export with open folder action
  * Fix if multiple pages in book-view the horizontal scroll bar is not shown, except a resize event occurs.

========================================
  snapshot
========================================

## 51.0 2026-09-14
- Update gettext-rs to 0.8.0

## 51.beta 2026-08-08
- Inhibit idle while the viewfinder is active
- Remove glycin build dependencies from meson.build
- Update rust crates
- Updated translations

## 51.alpha 2026-06-28
- Minor improvements
- Updated translations

## 50.0 - 2026-03-11
- Updated translations


========================================
  sushi
========================================

51.0
====
- Handle corrupted pdf documents (Peter Eisenmann)
- Handle strings as errors from plugins (Peter Eisenmann)
- Use ".Devel" suffix for the nightly version (Peter Eisenmann)
- Add app icon (Jakub Steiner, Peter Eisenmann)
- Fix papers dependency version (Marco Trevisan (Treviño))

- Translation updates (GNOME Translation Project contributors)

51.rc
=====

Enhancements:
- Add Rename (`F2`) and Trash (`Del`) shortcuts (Peter Eisenmann)
- Add `O` as a shortcut to open a file (Peter Eisenmann)
- Open folders in currently previewed nautilus window (Peter Eisenmann)
- Add play/pause (`P`) shortcut for audio and video (Peter Eisenmann)
- Use dark background for videos (Peter Eisenmann)
- Add foundry config (Tau Gärtli)
- Resize window on changed scale factor (Tau Gärtli)

Bug Fixes:
- Fix playing animated images using glycin (Tau Gärtli)
- Fix re-attaching dialog to nautilus after previously closing the window (Corey Berla)
- Ignore errors from stopped/cancelled renderers (Tau Gärtli)
- Fix HTML renderer without WebKit availability (Corey Berla)
- Fix attaching open-with portal dialogs (Tau Gärtli)
- Fix and rework user resizing detection (Tau Gärtli)
- Avoid resizes on opening of window (Tau Gärtli)
- Fix width/height ratio of image renderer (Tau Gärtli)
- Don't scale up small images (Tau Gärtli)
- Prefer Glycin over Papers to handle loading TIFF files (Tau Gärtli)
- Fix long filenames making the window too wide (Tau Gärtli)

Plugins:
- Add example with UI file and shortcuts (Peter Eisenmann)
- Add action group setup helper (Peter Eisenmann)
- Add relative path resolving helper (Peter Eisenmann, Tau Gärtli)
- Rename markReady/markInitialized API functions (Tau Gärtli)
- Add explicit markFailed error API (Peter Eisenmann)
- Remove ResizePolicy.CUSTOM, use ResizePolicy.SCALED instead (Tau Gärtli)

Backend Changes:
- Create RendererWrapper that handles overlays and GTK window size geometry (Tau Gärtli)
- Use SignalGroup for renderer signals (Peter Eisenmann)
- Add cyclic heap dumping development mechanism (Peter Eisenmann)
- Rework content type matching, remove legacy generated type list (Peter Eisenmann)
- Report (some) video stream errors (Peter Eisenmann)
- Separate out LibreOffice conversion logic from pdf renderer (Peter Eisenmann)
- Only initialize PapersDocument on demand (Peter Eisenmann)
- Add an abstraction over GLib sources and connections (Tau Gärtli, Peter Eisenmann)
- Fix various signal-related leaks (Peter Eisenmann, Tau Gärtli)
- Port text UI to blueprint (Tau Gärtli)
- Make private renderer fields inaccessible to renderers (Tau Gärtli)
- Use correct wrap mode in text renderer (Corey Berla)
- Improve error handling (Tau Gärtli)
- Improve reactivity for large text files (Tau Gärtli)

- Translation updates (GNOME Translation Project contributors)

51.beta
=======

UI changes:
- Show a loading spinner when loading a file takes longer (Peter Eisenmann)
- Ensure legibility of icons in statuspage (Nokse)
- Clamp MediaControls to limit width (Nokse)
- Wrap lines in text viewer (Peter Eisenmann)
- Handle single- and double-click in video viewer (Peter Eisenmann)
- Add double-click to fullscreen support to image viewer (Peter Eisenmann)
- Enable context menu in HTML viewer (Tau Gärtli)
- Prompt user before loading remote resources in HTML viewer (Tau Gärtli)
- Improve loading states (Peter Eisenmann)
- Tweak toolbar and headerbar (Peter Eisenmann)
- Fix title for tagless files (Peter Eisenmann)
- Always use integrated artwork (Peter Eisenmann)
- Hide headerbar in fullscreen (Peter Eisenmann)
- Use icon for file open button (Peter Eisenmann)
- Preserve aspect ratio when showing images (Tau Gärtli)

Known regressions:
- Only the first frame of animated GIFs is shown

Backend changes:
- Add more mime types to the LibreOffice viewer (Nicolas Palix)
- Add ESLint (Tau Gärtli)
- Replace use of deprecated GJS APIs with their suggested replacements (Tau Gärtli)
- Use Blueprint (Peter Eisenmann)
- Handle XHTML mime type (Tau Gärtli)
- Cancel pending operations when file is switched (Peter Eisenmann)
- Plug memory leaks (Peter Eisenmann)
- Overhaul plugin API and introduce a system-wide plugin path (Peter Eisenmann, Tau Gärtli)
- Document plugin API (Peter Eisenmann)
- Promisify async calls (Peter Eisenmann)
- Rework hovering (Peter Eisenmann)
- Improve handling of renderer sizing (Peter Eisenmann)
- Use fast-content-type as fallback (Peter Eisenmann)

Translations:
- Translation updates (GNOME Translation Project contributors)

51.alpha
========

Epic:
- Port to GTK 4 (Corey Berla)

UI changes:
- Support auto dark theme for text (Corey Berla)
- Improve audio, error and fallback renderers (Peter Eisenmann, Tau Gärtli, Nokse)
- Allow to fullscreen independent of file type (Peter Eisenmann)
- Animate window size changes (Nokse)
- Keep window size unchanged once scaled by user (Peter Eisenmann)
- Use at most a quarter of the current screen (Peter Eisenmann)
- Show images at their real size (Tau Gärtli)
- Use flat headerbars for some file types (Nokse)
- Rework toolbar overlays (Nokse)
- Modernize media controls with Gtk.MediaControls (Nokse)
- Support custom icons (Tau Gärtli)
- Balance headerbar buttons (Peter Eisenmann)
- Correct window sizing (Tau Gärtli, Peter Eisenmann)

Known regressions:
- LibreOffice documents are rendered into PDFs, as the previous method is not compatible with GTK4

Backend changes:
- Adopt GtkPicture and GtkVideo (Corey Berla)
- Port Evince to Papers (Corey Berla, Tau Gärtli)
- Use libadwaita (Nokse, Corey Berla)
- Replace GdkPixbuf with Glycin (Tau Gärtli)
- Add metadata discoverer (Corey Berla)
- Port to ES Modules (Tau Gärtli)
- Use Blueprint (Peter Eisenmann, Tau Gärtli)
- Add CI checks for meson, Blueprint and potfiles (Tau Gärtli)
- Add editorconfig (Tau Gärtli)
- Use fribidi for text direction (Peter Eisenmann)
- Document how to run Sushi (Tau Gärtli)
- Various code cleanups and simplifications (Corey Berla, Peter Eisenmann, Tau Gärtli)
- Stop renderer when window is closed (Tau Gärtli)

Translations:
- Add Lao translation (Saikeo Kavhanxay)
- Translation updates (GNOME Translation Project contributors)

50.0
====

- Fix a typo (Danial Behzadi)
- Translation updates


========================================
  sysprof
========================================

Overview of changes in Sysprof 51.0
===================================

 * Translation updates

Overview of changes in Sysprof 51.rc
=======================================

 * Fix running sysprof-cli with --no-sysprofd and --no-perf
 * Various optimizations to libsysprof
 * Fix a warning when disposing some widget
 * Translation updates

Overview of changes in Sysprof 51.alpha
=======================================

 * Various optimizations to libsysprof-capture

Overview of changes in Sysprof 50.0
===================================

 * Translation updates


========================================
  tecla
========================================

NEW in 51.0
===========
- Translation updates

NEW in 51.beta
==============
- Translation updates

NEW in 50.0
===========
- No changes


========================================
  template-glib
========================================

==============
Version 3.40.0
==============

Stable release for GNOME 50.0


========================================
  tinysparql
========================================

NEW in 3.12.0 - 2026-09-13
==========================
  * No changes

NEW in 3.12.rc - 2026-08-31
===========================
  * Fix potential memory leaks in JSON-LD serializer
  * Fix possible memory leaks in SPARQL parser

NEW in 3.12.alpha - 2026-06-29
==============================
  * Performance improvements to ICU full-text search tokenizer
  * Fix potential leaks with malformed ontology definitions
  * Test suite changes to cater for SQLite >= 3.53.1

NEW in 3.11.1 - 2026-04-14
==========================
  * Fixes to memory leaks and issues spotted by ASAN
  * Make lifetime of some mutexes explicit

NEW in 3.11.0 - 2026-03-15
==========================
  * Fixes to issues spotted by Coverity and OSS Fuzz

Translations: en_GB

Notable changes since 3.10:
  * Added tracker_sparql_connection_new_from_rdf() family of constructors
    to specify the defining ontology as an input stream, instead of a set
    of files


========================================
  totem-pl-parser
========================================


3.26.7:
- Fix uninitialized variable error in plparser
- Add itunes genre support for podcast RSS feeds
- Split podcast tests
- Fix deprecation warnings
- Fix return value from cancelled plparser calls
- Fix TotemPlParserMetadata in plparser bindings
- Use gitlab.gnome.org for bug-database in doap
- Use apps.gnome.org for homepage in doap
- Update podcast test for server changes
- Fix guard return type in plparser
- Add release CI elements
- Remove duplicate dependency in CI
- New and updated translations

========================================
  vala
========================================

Vala 0.56.19
============
 * Various improvements and bug fixes:
  - codegen: Minor refactoring of TypeRegisterFunction and its subclasses
  - codegen: Use G_TYPE_FLAG_NONE when targetting glib >= 2.74
  - codegen: Use g_once_init_{enter,leave}_pointer when targetting glib >= 2.80
  - codegen: Propagate default_value_on_error from parent struct
  - codegen: Return default_value_on_error on precondition failures
  - gdbus: Avoid unused variables in method call and properties getter/setter
  - gdbus: Allow GLib.VariantDict for a{sv}
  - gdbus: Do not provide unintended read/write access to properties
  - parser: Fix statement error recovery [#1590]
  - vala: Use reference-transfer as needed when transforming
    conditional-expression [#1648]
  - girwriter: Don't use instance-parameter inside function elements [#1606]
  - girwriter: Add the doc:format argument in the .gir file
  - libvaladoc: Do not error-out on doc:format
  - libvaladoc: Add compat layer for gvRenderData to cope with API break [#1621]

 * Bindings:
  - glib-2.0: allow FileUtils.open_tmp's first argument to be null
  - posix: add UTIME_{NOW,OMIT} constants for utimensat
  - gsl: Deprecate gsl_linalg_cholesky_decomp in favour of
    gsl_linalg_cholesky_decomp1 [#1602]
  - libxml-2.0: Add more fields to ParserCtxt
  - gobject-2.0: Set default_value{,_on_error} for GType
  - glib-2.0: Fix *.add_once () callbacks [#1556]
  - gobject-2.0: Fix return type
  - gobject-2.0: Add Type.to_string ()
  - gstreamer-1.0: Fix ownership of Caps.full*() parameters [#1628]
  - glib-2.0: fix a typo in a parameter name
  - gtk4: Update to 4.21.6+83716767
  - gtk4: Make all Gsk.RenderNode and Gsk.Renderer shadow their parent type
  - gtk4: Fix CursorGetTextureCallback declaration


========================================
  xdg-desktop-portal-gnome
========================================

Changes in 51.0
=================
- Update CI to use the gnomeos-basic-ci component

Changes in 51.rc
=================
- Various fixed to the Global Shortcuts portal
- Stop using G_GNUC_CONST in _get_type functions
- Fix input-only Remote Desktop sessions
- Translation updates

Changes in 51.alpha
=================
- Add support for session persistence in the Input Capture portal
- Use newer GLib APIs to simplify code
- Various small code cleanups
- Translation updates

Changes in 50.0
=================
- Make the Clipboard portal return errors instead of succeeding
- Fix a bug in the Print portal where it was accidentally closing fd 0
- Translation updates


========================================
  yelp
========================================

49.2
====
* Fixed build issue caused by direct inclusion of a GDK header [!79]
* Fixed typo in the metainfo data [!81]
* Fixed compiler warning caused by unused return value [!75]
* Removed a duplicate key in the Flatpak manifest
* Updated translations:
  be    (Vasil Pupkin)
  it    (Davide Ferracin)
  pl    (Victoria Niedzielska)

49.1
====
* Fixed issue that could allow remoate access to local files
* Updated translations:
  bg    (Alexander Alexandrov Shopov, twlvnn kraftwerk)
  de    (Froschi)
  el    (Efstathios Iosifidis)
  eo    (Kristjan SCHMIDT)
  fr    (Irenee THIRION)
  fur   (Fabio Tomat)
  id    (Andika Triwidada)
  kk    (Baurzhan Muftakhidinov)
  kw    (Flynn Peck)
  nb    (Kjartan Maraas)
  oc    (Quentin PAGÈS)
  ro    (Antonio Marin)
  sk    (Jose Riha)
  sr    (Милош Поповић)
  th    (Aefgh Threenine)
  tr    (Sabri Ünal)
  ug    (Abduqadir Abliz)


========================================
  zenity
========================================

Zenity 4.2.2
  Bugfix release for Zenity 4.2.x.

  Changes and fixes since 4.2.1:
  - colview: Actually hide header via --hide-header when possible (Logan
    Rathbone) (!58)


