4.21.0 (2025-03-23)
======
- build: Automate copyright year management
- meson-build: Add missing function checks
- meson-build: Use SPDX license expression
- meson-build: Add tests option
- meson-build: Use 'pkgconfig_define' in dep.get_variable()
- meson-build: Use 'dependencies' in cc.alignment()
- meson-build: Update debug/optimization flag management
- meson-build: Add missing gir prefixes
- meson-build: Use path builder and fs instead of literal '/'
- Add meson build
- tests: Always cleanup xfconfd process
- tests: Enable t-list-channels test
- tests: Fix test failure because of xfconfd not running
- Migrate to xdt-gen-visibility and xdt-check-abi
- channel: Complete and harmonize docs of get_string_list()/get_arrayv()
- channel: Warn in case of failure in get_string_list()
- channel: Fix get_arrayv() return value
- Translation Updates:
  Albanian, Slovak

4.20.0 (2024-12-15)
======

- Translation Updates:
  Romanian

4.19.5 (2024-12-01)
======
- Fix FakeGdkRGBA and FakeGdkColor leaks
- tests: Fix D-Bus error reporting when xfconfd is not auto-started
- Translation Updates:
  Czech, Galician, Polish

4.19.4 (2024-11-01)
======
- xfconf-query: print array property values when -lv


4.19.3 (2024-10-18)
======
- Safer/better way to find GdkColor/GdkRGBA GTypes in the unified API
- Mark xfconf_g_property_bind_gdkcolor/gdkrgba() as deprecated
- Allow calling xfconf_g_property_bind() with GdkColor or GdkRGBA types
- Clean up how GdkColor/GdkRGBA GTypes are initialized
- build: Bump requirements for Xfce 4.20
- tests: Report D-Bus error when xfconfd is not auto-started
- tests: Fix xfconf_channel_get_string leak
- cache: Fix leaks in xfconf_cache_handle_property_changed
- ci: Update references for autotools/meson split
- Apply .clang-format file
- Preliminary cleanup
- Sort includes
- clang-format: Add file
- Clarify xfconf_channel_set_string() API docs
- channel: Fix get_string() return value
- cache: Fix leak in xfconf_cache_prefetch
- xfconf-query: Fix GOptionContext memory leak
- Add a systemd user unit corresponding to the D-Bus session service
- gcc-analyzer: Fix -Wanalyzer-null-dereference
- scan-build: Add false positive file
- ci: Fix jobs extending .distcheck
- build: Use AM_DISTCHECK_CONFIGURE_FLAGS
- channel: Fix get_properties()
- channel: Warn if queried type does not match property type
- Add missing GIR annotations
- Translation Updates:
  Asturian, Polish

4.19.2 (2024-02-29)
======
- Update copyright year
- xml-backend: Bump XML version to 1.1 in written files
- xml-backend: Escape whitespaces when writing file to disk
- I18n: Update po/LINGUAS list
- Fix memory leaks around xfconf_gvariant_to_gvalue()
- Fix memory management of xfconf arrays
- cache: Fix overwritten error
- cache: Fix uncached value
- Translation Updates:
  Estonian

4.19.1 (2023-10-17)
======
- Cache property-not-found responses in XfconfCache
- Don't reset scheduled save timer on every write
- xfconf-query: Sort channel list (-l or -m alone)
- docs: Fix transfer type of xfconf_list_channels()
- docs: Add clarification about bindings
- I18n: Update po/LINGUAS list
- I18n: Update po/LINGUAS list
- Translation Updates:
  Catalan

4.19.0 (2023-04-17)
======
- Update copyright year
- build: Use m4_defined min versions and cleanup
- build: Use XDT_CHECK_PACKAGE_BINARY
- build: Use XDT_VERSION_INIT and get rid of configure.ac.in
- build: Switch from intltool to gettext
- xfconfd: Lower warning level
- docs: Fix xfconf_channel_get() transfer annotation
- Update bug report address
- docs: Fix unused declarations warning
- docs: Properly enable GI docs
- xfconfd: Fix check for "/" when building property name
- xfconfd: Make xml backend case sensitive for channel names
- Translation Updates:
  Albanian, Armenian (Armenia), Basque, Belarusian, Bulgarian, Catalan,
  Chinese (China), Chinese (Hong Kong), Chinese (Taiwan), Croatian,
  Czech, Danish, Dutch, Eastern Armenian, English (Australia), English
  (Canada), English (United Kingdom), Finnish, French, Galician,
  German, Greek, Hebrew, Hindi, Hungarian, Icelandic, Indonesian,
  Italian, Japanese, Kazakh, Korean, Lithuanian, Malay, Norwegian
  Bokmål, Occitan (post 1500), Polish, Portuguese, Portuguese
  (Brazil), Romanian, Russian, Serbian, Slovak, Slovenian, Spanish,
  Swedish, Thai, Turkish, Ukrainian

4.18.0 (2022-12-15)
======
- build: Bump requirements for Xfce 4.18
- xfconf: Prevent Use-After-Free in GClosureNotify

4.17.2 (2022-11-30)
======
- Bump Libxfce4util to 4.17.3
- xfconf-query: Remove ENABLE_NLS ifdefs

4.17.1 (2022-11-09)
======
- Update copyright year
- Create per-channel config directory if it does not exist (#20, !15)
- xfconfd: Locale independent writing of floating point values (#33, !26)
- xfconfd: Silence GLib deprecation warning
- Use `I_` from Libxfce4util
- Update `.gitignore`
- Fix "release" stage in CI

4.17.0 (2022-11-01)
======
- Bump GObject Introspection minimum version to 1.66
- Allow to choose an alternative service name prefix
- ci: Upload artifacts on failure without specifying a directory
- ci: Store tests results
- Add a lifecycle manager to xfconfd
- Replace GTimeVal with gint64 epoch time
- Remove memset() overhead
- Argument to g_strv_length() must not be NULL
- Silent `-Wcast-align` from Clang
- automake: Enable subdir-objects
- xfconf-query: Improve help string for 'verbose'
- Merge branch 'skunnyk/xfconf-revamp_doc'
- Revamp the documentation to modernize and uniformize accross 
components
- Merge branch 'olh/xfconf-C99'
- configure.ac: use AC_PROG_CC_C99
- Translation Updates:
  Albanian, Arabic, Armenian (Armenia), Basque, Belarusian, Bengali,
  Bulgarian, Catalan, Chinese (China), Chinese (Hong Kong), Chinese
  (Taiwan), Croatian, Czech, Danish, Dutch, Eastern Armenian, English
  (Australia), English (Canada), English (United Kingdom), Finnish,
  French, Galician, German, Greek, Hebrew, Hindi, Hungarian, Icelandic,
  Indonesian, Italian, Japanese, Kabyle, Kazakh, Korean, Latvian,
  Lithuanian, Malay, Norwegian Bokmål, Norwegian Nynorsk, Occitan
  (post 1500), Polish, Portuguese, Portuguese (Brazil), Romanian,
  Russian, Serbian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish,
  Ukrainian, Urdu, Urdu (Pakistan), Uyghur

4.16.0
======
- Don't use shebang for bash completion file
- Remove GLIB_CHECK_VERSION IFDEFs which are obsolete after glib bump
- bump glib (and gio, gthread, etc) minimum to 2.50.0
- remove last traces of xfconf-perl
- Fix make distcheck and enable it on gitlab CI
- Add README.md to EXTRA_DIST
- Post release autoconf git revision


4.15.1
======
- Fix stray double-quote in bash-completion PKG_CONFIG invocation
- Disable parallelism on all tests
- Adds new README.md and updates AM_INIT_AUTOMAKE
- xfconf-cache: Fix access to freed data (#16)
- Translation Updates: oc, he, hu, hy_AM, lt, sk, sq, ug, tr.

4.15.0
======
- Implement custom test driver
- Use 'gsettings' as a common channel name for the GSetting backend
- Bug #14789 Fix GSettings backend assertion error, when probed but not used
- Enable GSettings backend build by default
- Add Bash completion for xfconf-query
- Bug #15960: Add some missing xfconf_shutdown() in xfconf-query
- Bug #15951: Fix 'xfconf_get_error_quark' introspecting warning
- Remove perl bindings
- Fix vala binding in dist tarball
- Translation Updates: be, da, el, es, he, hr, hu, hye, gl, nl,
  sl, sq, zh_CN, zh_HK, zh_TW

4.14.1
======

Release rebuild for libxfconf-0.deps

4.14.0
======

- Translation Updates:
  Czech, Galician, Norwegian Bokmål, Portuguese

4.13.8
======

- Add support for GObject introspection and vala
- Tests: Explicitly handle error reply from Ping method call
- Disable perl bindings by default
- Translation Updates: Danish, Armenian (Armenia)

4.13.7
======
- Bump glib version
- Bug #15122: xfconf: disable gsettings backend by default
- Fix compiler error -Wcast-function-type (GCC 8)
- Fix this use of "defined" may not be portable
- Update .gitignore
- Fix warnings reported by GCC 8 (Bug #15112)
- Added gdbus binding to gitignore, add post release git tag
- Translation updates: Basque, Belarusian, Bulgarian, Catalan, Czech, Danish,
  English (Australia), Icelandic, Italian, Lithuanian, Portuguese (Brazilian),
  Romanian, Slovak, Swedish

4.13.6
======
- Added .NOTPARALLEL to property change test (bug #13840)
- Implement an optional GSettings backend

4.13.5
======
- Fix make distcheck, (bug #14082)
- Handle empty arrays by initializing the GValue to G_TYPE_PTR_ARRAY (bug #13780)

4.13.4
======
- Fix segfault in xfconf_cache_set_property_reply_handler when
  multiple calls are made (bug #13825)
- Allow to store empty arrays (bug #13791)
- Fix a path in xfconf_cache_set where the mutex isn't locked (bug #13790)

4.13.3
======
- Flush gdbus connection on xfconf_shutdown
- Correctly use xfconf_shutdown in xfconf-query
- Check for invalid GPtrArrays in the conversion
  from GValue to GVariant.
- Fix some build issues in AM subdir-objects
- Fix some autogen.sh warnings
- Better documentation processing.

4.13.2
======
- Fix cache corruption due to a wrong g_value_unset call.
- Update API gtk documentation

4.13.1
======
- Revert the bump of libxfconf version from 0 to 1,
  to avoid massive changes in all xfce's components.

4.13.0
======
- Port xfconf to gdbus
- Bump libxfconf version from 0 to 1.

4.12.1
======
- Add support for binding to GdkRGBAs (required for migration to gtk3)
- Translation updates: ast, ca, el, eu, gl, he, hu, lt, nn, oc, ru, sk, sv

4.12.0
======
- Allow :.,[]{} characters in property and channel names (bug #11021)
- Fix make check when including perl bindings in the build (bug #9556)
- Remove unneeded files.
- Drop deprecated g_type_init() function.
- Simplify checks.
- Autotools updates.
- Use new glib 2.32 mutex api.
- Translation updates: ar, ast, bg, bn, ca, cs, da, de, el, en_AU,
  en_GB, es, eu, fi, fr, gl, hr, hu, id, is, it, ja, kk, ko, lv, ms,
  nb, nl, oc, pl, pt, pt_BR, ro, ru, sk, sr, sv, th, tr, ug, uk, ur,
  ur_PK, zh_CN, zh_TW.

4.10.0
======
- Don't emit property-changed on cancelled calls.
- Accept NULL as a string value (bug #8726).
- Check abicheck.sh to be more portable (bug #8702).
- Fix more deprecated g_value_set_char (bug #8690).
- Explicitly link against gthread (bug #8713).
- Drop deprecated g_mapped_file_free.
- Translation updates: English (United Kingdom), Korean, Dutch
  (Flemish), Portuguese, Romanian, Turkish, Chinese (China).

4.9.1
=====
- Use LT_PREREQ and LT_INIT.
- UTF-8 check xfconf strings.
- Do not dup strings in xfconf_channel_set_string.
- Bump package dependency versions.
- Fix comment in perl package info (bug #8661).
- Don't use deprecated g_value_set_char (bug #8690).
- Translation updates: German, Greek, Japanese, Korean, Dutch
  (Flemish), Polish, Portuguese, Turkish.

4.9.0
=====
- Use sh as interpreter in tests.
- Add hook to skip the xfconf tests.
- Make the abicheck work on Solaris and PPC64 (bug #7416).
- Fix licenses and use new FSF address.
- Fix compiler warnings on Solaris.
- Avoid GCC 4.6 compiler warning.
- Add toggle option to xfconf-query.
- Remove unusable import and export options from xfconf-query.
- Translate all error strings in xfconf-query.
- Cleanup Makefile.am files a bit.
- Improve --version output in xfconf-query.
- Cleanup #includes.
- Drop usage of the G_CONST_RETURN macro.
- Translation updates: ar, ast, bn, ca, cs, da, de, el, en_GB, es,
  eu, fi, fr, gl, he, hr, hu, id, is, it, ja, kk, ko, lt, lv, ms,
  nb, nl, nn, pa, pl, pt, pt_BR, ro, ru, si, sk, sv, te, tr, ug, uk,
  ur, ur_PK, zh_CN, zh_TW.

4.8.1
=====
- Fix double free crash (bug #8169).
- Fix compiler warnings on solaris.
- Avoid gcc 4.6 compiler warning.
- Allow installation of the helpers in a custom location.
- Updated translations: hr, is, ko, ms, nl, ru, sk, te, tr, zh_CN.

4.8.0
=====
- Updated translations: Arabic, Greek, Polish, Romanian.

4.7.5
=====
- Updated translations: he, nb, en+GB, pt, ar.

4.7.4
=====
- Don't enable options with --disable-<option> (bug #6820).
- Updated translations: ug, sk, pt.


4.7.3
=====
- Use G_GSIZE_FORMAT in the DBG message.
- Add doc module to fixxref options (bug #6304).
- Link the gtkdoc scanner to GObject and Glib (bug #6407).
- Check for perl outside bindings option for alias script (bug #6481).
- Move xfconfd from $libexecdir to $libdir.
- Updated translations: kk, bn, uk, si, it, sk, fr, id, zh_TW, de.


4.7.2
=====
- Disable cache singletons and improve some code now we know the
  tree is always empty during prefetch. This is only a disadvantage
  when creating multiple new channels with the same name, but
  in that case channels singletons should be used.
- Lots of memory leaks plugged. Valgrind log is clean now.
- Fix memory corruption during file loading and use mmap.
- Properly handle dirty channels in the daemon and avoid excessive
  saving of channels.
- Disable unimplemented code in the properties cache.
- Steal values during cache prefetch to avoid a lot of copying.
- Updated translations: hu.

4.7.1
=====
- Remove dangling nodes from the tree after a recursive remove.
- Use a seconds timeout to reduce system wakeups.
- Only print debug messages when compiled with debugging.
- Merge xml files in reversed order (bug #6079).
- Use g_strcmp0 for comparing strings.
- Bump glib depenency to 2.18.
- Silent the build.
- Updated translations: pt_BR, nl, gl, fi, ru.

4.7.0
=====
- Add prefetching and caching support to XfconfChannel. Should speed
  things up a bit on app startup, and avoid blocking waiting on DBus
  in other cases.
- New simpler (internal) handling of property bindings.
- Use new xdt macros, this requires xfce-dev-tools 4.7.2.
- New tests for object bindings.
- Updated translations: es, kk, ca, sv, hu, ro, gl, ja, cs, lv, ast,
  zh_CN, ur, ur_PK, da, eu, pt.


4.6.2
=====
- Fix compilation using Sun cc (bug 5477).


4.6.1
=====
- Be a bit safer when writing out channel xml files: flush data to disk
  using fdatasync()/fsync() before renaming over the old file.
- Updated translations: pl, es, it, gl, pl, pt, uk


4.6.0
=====
- Remove unimplemented --import and --export functions from xfconf-query
- Fix encoding bug with xfconf-query input (Bug #4622)
- Updated translations: ba, ca, cs, da, de, en_GB, es, fr, gl, hu, id, it, ja,
  nb, pl, pt_PT, sv, tr, zh_CN


4.5.99.1
========
- Don't translate "true" and "false" in the xfconf-query output.
- Updated translations (cs, da, fi, fr, nl, pt_BR, sv, zh_CN)


4.5.93
======
- Install xfconfd to $(libexecdir) instead of $(bindir).
- Fix perl bindings link order on Cygwin (bug 4735).
- Allow passing arbitrary options to the perl bindings' Makefile.PL
  generation script (bug 4735).
- Updated translations: Michal Várady (cs), SZERVÁC Attila (hu),
  Daniel Nylander (sv), Terje Uriansrud (nb), Carles Muñoz Gorriz (ca),
  Abel Martín (es), Maximilian Schleiss (fr), Og Maciel (pt_BR),
  Eren Turkay (tr)


4.5.92
======
- Add xfconf_channel_new_with_property_base() to restrict a channel
  to a subset of the property tree.
- Add a dbus message filter to xfconfd that catches dbus daemon
  disconnect signals and flushes channels before xfconfd gets
  killed (bug 4487).
- Change libxfconf GObject bindings API slightly to use gulong IDs
  for each binding to be used when removing bindings.  Extend the
  unbind functions a bit.
- Bump libxfconf interface version due to incompatible change.
- Add libxfconf perl bindings.
- Remove xfconf_channel_remove_property() and
  xfconf_channel_remove_properties().
- Only treat the XML file under $XDG_CONFIG_HOME as a "user" file,
  and treat all others as system files.  This fixes the problem where
  Xfce-installed defaults get read *after* the user's config when
  Xfce is installed to a user-writable prefix (bug 4592).
- Fix build on Cygwin and other platforms that actually care about
  library link order (bug 4559).


4.5.91
======
- Remove xfsettingsd (moved to xfce4-settings package).  This removes
  xfconf's gtk+ dependency entirely.
- Add xfconf_channel_get() which returns an XfconfChannel singleton
  object that lives until calling xfconf_shutdown().
- Add xfconf_channel_reset_property(), which is a replacement for the
  'remove' functions.  This more accurately describes what 'remove'
  actually does in the presence of locked properties and/or properties
  that have system-wide defaults.
- Deprecate xfconf_channel_remove_property() and
  xfconf_channel_remove_properties().
- Change D-Bus interface to reflect above two changes.
- Add IsPropertyLocked() to the D-Bus interface, as well as a
  corresponding xfconf_channel_is_property_locked() libxfconf function,
  which allows clients to query whether or not a property can be
  modified.
- Don't send out a PropertyChange signal if a property is set to the
  value it already held.
- Fix daemon crash when resetting properties recursively.
- Fix daemon sending incorrect property names in the PropertyRemoved
  signal when removing multiple properties at once.
- For GObject property bindings, if the bound xfconf property is
  removed from the config store, try to reset the GObject property
  to the default value specified in its GParamSpec.
- Add -R option to xfconf-query which causes the -r option (reset) to
  operate recursively to include all properties under the specified
  property.
- Add -a option to xfconf-query which forces setting a property as an
  array even if the array only has one element.
- Fix xfconf_channel_get_property() so it properly converts the value
  fetched from the config store into the type that the caller
  requested (if any).


4.5.90
======
- Initial release.  There are bugs, and the API and ABI are not frozen.
