Changes in dconf 0.40.0
=======================

 - common: Add missing G_BEGIN/END_DECLS to allow use of headers from C++
   code (Philip Withnall, !67)


Changes in dconf 0.39.1
=======================

 - build: improve libdconf visible symbols (Inigo Martinez, Daniel Playfair
   Cal, !59)
 - engine: do not emit optimistic change notifications unless the local value
   is different (Daniel Playfair Cal, !2)
 - build: minor fixes to bash completion script (Philip Withnall, !64)
 - service: add a systemd unit for D-Bus activation (Simon McVittie, !63)

Changes in dconf 0.38.0
=======================

 - build: Install bash-completion relative to datadir (Jan Trojnar, !58)
 - client: add `dconf compile` to shell autocomplete (Andreas Polnas, !60)

Changes in dconf 0.36.0
=======================

 - No changes since 0.35.1

Changes in dconf 0.35.1
=======================

 - Writer service: avoid writing to disk and emitting changed signals
   when write requests do not result in changes to the database (Daniel
   Playfair Cal, !3)
 - build: Drop redundant `install` key from `configure_file()` (Philip
   Withnall, !53)
 - build: Update abicheck.sh script to work with GCC 9 (Diego
   Escalante Urello, !55)
 - build: Update use of link_whole for meson-0.52 (Diego Escalante
   Urello, !54)

Changes in dconf 0.33.2
=======================

 - Drop references to GDBusConnection objects when D-Bus connections are closed
   (Andre Magalhaes, #51)

Changes in dconf 0.33.1
=======================

 - Factor out a common method to route completion of D-Bus methods through
   (Cosimo Cecchi, #29)
 - build: Use weak bindings in gvdb to fix linking with LLD
   (Ting-Wei Lan, #28)

Changes in dconf 0.32.0
=======================

 - No changes since 0.31.92

Changes in dconf 0.31.92
========================

 - bin: Add an option to ignore changes to locked keys during load
   (Tomasz Miąsko; #1; !43)

 - tests: Use more concise key and value (Tomasz Miąsko; #1; !43)

 - tests: shm: fix pwrite wrapper with -D_FILE_OFFSET_BITS=64 (Ben Wolsieffer; !37)

 - tests: replace usage of dlsym with separate modules containing functions that need to be mocked out
   (Daniel Playfair Cal; !37)

 - tests: Avoid using real system bus during tests
   (Tomasz Miąsko; #51; !45)

Changes in dconf 0.31.2
=======================

 - Bin: rewrite dconf utility in C. Updates are no longer conditional on
   the mtime of the database directory and files. Help information is shown
   on erroneous usage, but not otherwise. (Tomasz Miąsko; !39)

 - build: Make dconf client vapi file installation optional, and thus the
   Vala dependency optional (still built by default) (Tomasz Miąsko; !40)

 - bin: Add a new database directory argument for the update command
   (Tomasz Miąsko, Takao Fujiwara; !39, !41)

Changes in dconf 0.31.1
=======================

 - Engine: Fix memory leak when subscribing to a path. (Guido Günther; !25)

 - CI: Always store test artifacts so we always get code coverage results.
   (Philip Withnall; !32)

 - Sort output of list and dump commands. (Tomasz Miąsko; !31)

 - Tests: Add integration tests for dconf and dconf-service running within
   a separate D-Bus session and clean XDG_RUNTIME_DIR and XDG_CONFIG_HOME.
   (Tomasz Miąsko; !31)

 - Engine: Coalesce pending writes into a single changeset.
   (Tomasz Miąsko; !30)

 - Consistently validate the number of arguments.
   Add optional directory argument for update command.
   (Tomasz Miąsko; !33)

 - Tests: Add further integration tests (Tomasz Miąsko; !33)

 - Check mtimes of files when updating databases. (Marek Kasik; !27; #11)

 - Indicate update failure with non-zero exit code. Consistently handle
   invalid configuration in update. (Tomasz Miąsko; !34; #42)

 - Replace Bugzilla by Gitlab URL in DOAP file. (Andre Klapper)

 - Tests: Add test for key paths locked in system databases
   (Tomasz Miąsko; !35)

Changes in dconf 0.30.0
=======================

None.

Changes in dconf 0.29.2
=======================

 - Service: When corrupt GVDB files are found, they are now
   transparently backed up and replaced with an empty database.
   (Philip Withnall, !8)
 - Replace all hard-coded /etc path with sysconfdir. This is useful for
   JHBuild environments and systems that don't want to use /etc/dconf.
   (Ting-Wei Lan; !21, #739229)
 - Engine: Change overflow thresholds in subscription counts from
   GMAXUINT32 to GMAXUINT (Daniel Playfair Cal; !20)
 - Change meson flag used to build Gtk-Doc from enable-gtk-doc to
   gtk_doc (Daniel Playfair Cal; !19)
 - Declare libdconf_service as a dependency to fix the build in
   massively parallelised environments (Emmanuele Bassi; !22)

Changes in dconf 0.29.1
=======================

 - Engine: track in progress watch handles to avoid spurious changed
   signals for the root path. Subscription requests are no longer sent
   if the engine is already subscribed to the given path. In the case
   that some value changes while a subscription request is in progress,
   a changed signal is only sent for the path being subscribed to
   instead of the root path. (Daniel Playfair Cal; !1, !5, #790640)

 - Engine: fix deadlock which occured when using the engine from libsoup
   within flatpak by extending the existing workaround for Glib !541, aka
   #674885. GSocket and various other GObject types are now also
   initialised in the main thread. (Owen Taylor; !15)

 - Add transfer annotations to the GTK-Doc strings for functions in the
   dconf_changeset_* and dconf_client_* namespaces (Xavier Claessens,
   Philip Withnall; !9, #758903)

 - Update GVDB subtree from GVDB master, containing mostly documentation
   improvements (Philip Withnall; !17)

 - dconf-update.vala: correct error message grammar (Kenyon Ralph; !6)

 - Various meson related improvements (Iñigo Martínez; !11)

 - Add GitLab CI (Philip Withnall; !10)

 - Service: Port from the deprecated g_type_class_add_private() to
   G_ADD_PRIVATE() (Philip Withnall; !7)

 - Add Daniel Playfair Cal and Philip Withnall as maintainers (Philip
   Withnall)


Changes in dconf 0.28.0
=======================

 - Update README

Changes in dconf 0.27.1
=======================

 - Port to meson build system (#784910)

Changes in dconf 0.26.1
========================

 - Work around a deadlock in GObject type initialization (#674885)

Changes in dconf 0.26.0
========================

None.

Changes in dconf 0.25.1
========================

 - the libdbus-1 backend has been removed.  dconf now always uses GDBus.

 - support has been added for system administration frameworks to set up
   the dconf profile via a file placed in the XDG_RUNTIME_DIR or in
   /run/dconf/.  In the case of the file in /run/dconf/, it is not
   possible to modify the proile, even via the DCONF_PROFILE environment
   variable, which makes it slightly more difficult to evade lockdown.

 - directory resets are now implemented properly in DConfChangeset which
   means that reading a subkey through a changeset that contains a reset
   for a parent directory of that key will return TRUE with a NULL value

 - a new API dconf_client_read_full() has been added which allows
   reading the user value, the default value, or querying what the
   effective value would be if a changeset were to be applied.

 - a new API has been added for listing the locks that are in effect:
   dconf_client_list_locks()

 - DConfClient has a new "writability-changed" signal

 - support for reading default values and listing locks have been added
   to the dconf commandline tool

 - support for g_autoptr() has been added for DConfClient and
   DConfChangeset

 - the handling of reading of default values via GSettings has been made
   more efficient.  More major changes to the GSettings backend are
   expected in the near future.

Changes in dconf 0.24.0
========================

The version number was increased and a new entry was added to the NEWS.

Changes in dconf 0.23.2
========================

 - remove dconf-editor manpage (accidentally missed during the split)

 - fix whitespace issues in 'dconf --help'

Changes in dconf 0.23.1
========================

 - dconf-editor is now in a separate package

 - portability improvements

Changes in dconf 0.22.0
========================

 - fix handling of floating point keys in editor

 - update appdata for renamed desktop file

 - minor doap changes

Translations:
   French
   Indonesian
   Lithuanian
   Hungarian
   Catalan (Valencian)
   Korean
   Traditional Chinese
   Spanish
   Brazilian Portuguese
   Galician translations
   Catalan
   Basque language
   Danish
   Norwegian bokmål
   Greek
   Czech
   Slovenian
   Swedish
   Polish
   Latvian
   Hebrew
   Russian
   German
   Assamese
   Serbian

Changes in dconf 0.21.0
========================

 - editor desktop file renamed to ca.desrt.dconf-editor to take advantage of
   D-Bus activation

 - prevent the service from being released more than once if we receive
   multiple signals (which caused a hang)

Translations:
  Indonesian
  Greek
  Swedish

Changes in dconf 0.20.0
========================

Czech translation updated.

Changes in dconf 0.19.92
=========================

 - depend on automake 1.11.2

 - stop using ACLOCAL_FLAGS

 - depend on released version of Vala (0.18.0)

Changes in dconf 0.19.91
=========================

 - fix an unlikely failure in the fuzz testing of gvdb

 - fix a thread safety issue with file-db

Changes in dconf 0.19.90
=========================

 - dconf compile: always write little endian

 - file-db: don't install match rules on no bus (fixes gdbus assertion)

 - update dconf(1) manpage for 'dconf compile'

 - fix 'make clean' on FreeBSD

 - editor: provide appdata

Translations updates:
  Ukrainian translation
  Aragonese translation
  Chinese

Changes in dconf 0.19.3
========================

 - quite a lot of test coverage improvements

 - Add a proper DCONF_ERROR error domain

 - suppress GLib deprecation warnings during build

 - engine: issue warnings about missing files only once per source

 - engine: grok the WritabilityNotify signal from D-Bus

 - gsettings: handle writability changes correctly

 - engine: assorted fixes for issues found during testing

 - portability: only link to -ldl if it is required

 - add support for 'file-db' to profiles: this is an absolute path to a
   immutable dconf database file

 - add support for finding profiles in XDG_DATA_DIRS if they are not in
   /etc

 - add 'dconf compile' command for building dconf databases from
   keyfiles in arbitrary locations (like from the build system of a
   project that may want to install a file-db)

 - editor: add a section separator to the app menu for consistency

Changes in dconf 0.19.2
========================

 - Add support for the new GSettingsBackend.read_user_value() API

 - bump GLib version depend accordingly (2.39.1)

Translations updates:
 Greek
 Catalan (Valencian)
 Simplified Chinese
 Persian

Changes in dconf 0.18.0
========================

Translations updates:
 Basque
 Danish
 Japanese
 Korean
 Portuguese
 Punjabi

Changes in dconf 0.17.1
========================

Documentation updates, including better coverage of profiles.

Translations updates:
 Assamese
 Belarusian
 Catalan
 Dutch
 Estonian
 Finnish
 French
 German
 Hungarian
 Indonesian
 Italian
 Korean
 Latvian
 Polish
 Russian
 Serbian
 Tajik
 Thai
 Traditional Chinese

Changes in dconf 0.17.0
========================

Fix a semi-serious thread safety issue:

  https://bugzilla.gnome.org/show_bug.cgi?id=703073

Some improvements to the editor:

 - fix some compile warnings
 - use gresource
 - cancel searches on escape

Translation updates:
 Brazilian Portuguese
 Czech
 Esperanto
 Friulian
 Galician
 German
 Hebrew
 Indonesian
 Lithuanian
 Malayalam
 Norwegian bokmål
 Slovak
 Slovenian
 Spanish
 Tajik

Changes in dconf 0.16.0
========================

This release one small fix and many translation updates.

 - Set G_LOG_DOMAIN so that 'dconf' shows in GLib log messages

Translation updates:
 Assamese
 Basque
 Belarusian
 Brazilian Portuguese
 Catalan
 Czech
 Danish
 Estonian
 Finnish
 French
 German
 Greek
 Hindi
 Korean
 Latvian
 Persian
 Portuguese
 Punjabi
 Russian
 Tadjik
 Tamil
 Uyghur
 Valencian

Changes in dconf 0.15.3
========================

This release more or less completes the rewriting of dconf-service.
Support for backends are now fully-realised (and we have a couple of
them as proof).  Many small bugs (some with serious symptoms) have been
fixed vs. the last release.

 - fix problem related to empty changesets (caused by empty 'dconf
   load', for example).  These are now handled properly on the server
   side but also forbidden in the client libraries.

 - new icons: hicolor icons have been updated and a HighContrast set
   added

 - loosen some assertions on the order of messages being returned from
   the service.  D-Bus violates this order in the case that the service
   crashes and that's no reason to take the client with it as well.

 - improve autogen.sh non-bash compatibility

 - add some backends to the dconf-service (that were 'considered' as per
   the last NEWS).  The first backend is a null backend that allows for
   a temporary database tied to the lifetime of the session, possibly
   useful for testing.

 - also add a new 'keyfile' backend for the service.  This is primarily
   intended to be used with NFS (where use of mmap is not safe)

 - add a mkdir() in the case of an empty home directory where
   ~/.config/dconf does not already exist

 - fix crashes in the service caused by failures to write (including
   failures caused by the above issue being overlooked)

 - work around an issue with a testcase hanging and failing due to a
   GLib change to the order in which testcases are run

 - running autoreconf on tarballs should now work

Translations updated:
 Aragonese
 Friulian
 Galician
 Greek
 Hebrew
 Hungarian
 Italian
 Lithuanian
 Norwegian bokmål
 Polish
 Serbian
 Slovak
 Slovenian
 Spanish
 Thai
 Uyghur

Bugs closed:
 595579  support NFS
 663961  Cannot build without a git checkout
 673834  dconf commandline tool doesn't initialise the locale
 686998  add keywords to the desktop file
 687120  gnome-ostree-3.8 triggers expected && oc->change == expected assertion
 687310  dconf-editor should install a highcontrast app icon
 689136  Crash in dconf_writer_real_end(): change is NULL (when $XDG_CONFIG_HOME/dconf does not exist)
 690316  writer: Fix typo causing segfaults on service shutdown
 690477  Can't build with gnome-apps-3.6 module set
 691013  Crash on missing ~/.config/dconf and clear pointer
 692144  needs a nicer icon
 692186  build: autogen.sh uses /bin/sh but depends on advanced shell redirection shorthands

Changes in dconf 0.15.2
========================

 - update to the new GVDB API (GBytes based) and refactor a bit

 - add a new type of "database mode" DConfChangeset and use it

 - the service has been substantially rewritten
  - using gdbus-codegen
  - cache the file contents instead of read/modify/write each time
  - new DConfWriter abstraction allows considering support for backends
  - uses only POSIX IO (read and write syscalls) for database access
  - workaround mmap() bug on OpenBSD

 - editor:
  - Fix search order of schema dirs
  - Translate summary and description

Translations:

 - Indonesian
 - Slovak

Changes in dconf 0.15.1
========================

 - add --disable-man

 - fix reading default values in GSettings backend

 - editor:
   - support schema overrides
   - search improvements (search directories, values, descriptions)
   - correctly get text from schema descriptions
   - only write window state settings on exit and support fullscreen state

 - dconf_rebuilder_get_parent: don't leak parent_name

Translations:

 - Arabic
 - Belarusian
 - Bengali
 - Brazilian Portuguese
 - British English
 - Bulgarian
 - Catalan
 - Catalan (Valencian)
 - Czech
 - Danish
 - Estonian
 - Finnish
 - French
 - German
 - Hebrew
 - Hindi
 - Hungarian
 - Indonesian
 - Italian
 - Japanese
 - Korean
 - Latvian
 - Lithuanian
 - Malayalam
 - Marathi
 - Norwegian bokmål
 - Persian
 - Polish
 - Portuguese
 - Russian
 - Simplified Chinese
 - Slovenian
 - Spanish
 - Swedish
 - Tamil
 - Telugu
 - Thai
 - Vietnamese

Changes in dconf 0.13.90
=========================

The only change in this release is the addition of many translations for
dconf-editor:

 - Traditional Chinese
 - Serbian
 - Ukrainian
 - Punjabi
 - Greek
 - Galician
 - Spanish
 - Assamese
 - Polish
 - Hungarian

Changes in dconf 0.13.5
========================

 - the service no longer attempts to migrate the primary dconf database from
   its (years) old path ~/.config/dconf to the new ~/.config/dconf/user

 - fixes for profile file parsing problems

 - fix obscure race in GDBus handling code that could result in
   out-of-order message delivery

 - editor:
  - clean up some messages and mark strings for translations
  - enable NLS
  - add Esperanto translation

 - add manpages for dconf(7), dconf(1), dconf-service and dconf-editor

Changes in dconf 0.13.4 (since 0.13.0)
=======================================

 - extensively refactored -- watch for bugs

 - now depends on GLib 2.33.3 for g_slist_copy_deep() and
   g_clear_pointer() with workaround for GCC

 - API of libdconf has changed; soname bumped to libdconf.so.1

 - installed header layout has changed

 - there are changes to the API used between the client and the service.
   New clients will only talk with the new service (so make sure to
   restart it).  Old clients (ie: already-running programs) will
   continue to be able to talk to the new service version.

 - there is a now a fairly decent test suite but it requires a full
   D-Bus environment to run in, so it may make sense to avoid 'make
   check' on builders for the time being

Changes in dconf 0.13.0
=======================

 - now requiring Vala 0.18 (ie: at least 0.17.0)

 - editor: use GtkApplication and GMenu
 - editor: support searching for keys

 - dconf cli: call setlocale() on startup

Changes in dconf 0.11.7
=======================

 - engine: don't leak the lock table if a system database changes while
   a program is running

 - dbus-1: call g_slist_remove_link instead of g_slist_remove

 - editor: set 'wrap' property on default value label

 - dconf update:

   - code cleanup, better error handling
   - read keyfiles in a defined order (later files take precedence)
   - don't issue warnings if a key is defined in multiple files

Changes in dconf 0.11.6
=======================

 - new DCONF_BLAME mode for debugging spurious dconf writes at login

 - stop hardcoding the assumption that there will be exactly one user
   database followed by zero or more system databases

 - allow DCONF_PROFILE to specify a profile file by absolute path

 - dbus-1: fix multiple-key change notifications

 - autogen.sh can now be called from out of tree

Changes in dconf 0.11.5
=======================

 - do not install non-standard icon sizes

 - fix a bug with getting default values when no profile is in use

 - some general code cleanups on the client side

 - improve Makefile compatibility: avoid using 'echo -e'

Changes in dconf 0.11.3
=======================

 - works with (and only with) Vala 0.15.1

 - we now have an icon for dconf-editor

Changes in dconf 0.11.2
=======================

 - many bugfixes and improvements to the editor, most notably porting to
   GtkGrid to avoid the GtkTable layout bug that was causing size to be
   incorrectly allocated

 - fix a crasher due to invalid string index of -1

Changes in dconf 0.10.0
=======================

The version number was increased and a new entry was added to the NEWS.

Changes in dconf 0.9.1
======================

  - give a g_warning() on failure to communicate with service

  - remove unworking 'set lock' call from dconf API and commandline tool

  - add code to exit gracefully on receipt of SIGINT, SIGHUP, SIGTERM

  - remove "service function" logic; always use the XDG runtime directory

Changes in dconf 0.9.0
======================

There has been an extremely minor incompatible change in the D-Bus API
of dconf this release.  From a practical standpoint, this change will
have no effect.  However, it serves as a reminder that the dconf D-Bus
API is private and can change from version to version (and will likely
change in the future).

As such, it is appropriate for those packaging dconf to kill all running
instances of dconf ('killall dconf-service') as part of their postinst
for the package.  It will be dbus-activated again on the next use.

  - support loading/storing of maybe types in dconf

  - remove NFS detection hackery and rely on XDG runtime dir

  - add proper support for change notification to DConfClient

  - commandline tool improvements

    - reset: reset keys or entire subpaths

    - dump: dump entire subpaths to keyfile format

    - load: load them back again (maybe at a different path)

    - watch: actually works now

  - editor improvements

    - keys now change in editor when changed from outside

    - support for flags

    - show dconf-editor in applications list

  - work around incompatible Vala bindings changes with an #if

  - don't install the bash completion script as executable

  - fix a warning caused by reusing a GError variable

  - other small fixes


Changes in dconf 0.7.5
======================

This release corrects a serious flaw in the previous release: crashing
if the database did not already exist.

It also contains many fixes and improvements to the dconf-editor,
including use of GSettings to store the window geometry.

This is the final release before 0.8.0 which will become the first
release in a new stable series.  Feature development will continue on
'master' toward 0.9 past that point.

Changes in dconf 0.7.4
======================

Changes in this version:

  - #648949: multithreading issue fixed (which actually affects all
    GSettings-using programs since dconf is used from a helper thread in
    that case)

  - dconf commandline tool is vastly more friendly now

    - no more aborting on unrecognised arguments

    - proper help

    - bash completion support

  - support for sysadmin lockdown

  - the editor now properly reads installed enum xml files

Changes in dconf 0.7.3
======================

This release consists almost entirely of fixes made by Robert to
dconf-editor.  A few other trivial build fixes are included as well
(bumping library version dependencies to match reality, etc).

Changes in dconf 0.7.2
======================

This is entirely a cleanup/fixes release.  Some fixes here to make the
increasingly-strict toolchain happy, and also some fixes for some
crashers in the GSettings backend and service.

 - remove some unused variables (new GCC gives a warning: #640566, another)
 - add a mutex to fix multi-threading issue (#640611)
 - don't crash if we have no D-Bus
 - clean up symbol exports
 - fix a crash in the service when using 'reset'
 - drop old linker options that were for libtool

Changes in dconf 0.7.1
======================

The last release contained a few problems that caused build failures on
some strict linkers.  Those should be fixed now.

Changes in dconf 0.7
====================

 - new library to use dconf with libdbus-1
 - quite a lot of improvements and bug-fixes in dconf-editor, thanks to
   Robert Ancell
 - some bug fixes in the GSettings backend (crashers caused by use if
   custom dconf profiles)
 - some FreeBSD build fixes
 - increased Vala dependency to 0.11.4 (required for dconf-editor fixes)

Changes in dconf 0.6
====================

 - Rewrite a lot of the GSettings backend to reduce GDBus abuse.  We use
   our own worker thread now instead of trying to hijack GDBus's.
 - disable gobject-introspection support for now
 - drop support for GTK2 in dconf-editor
 - Add a new torture-test case
 - Increase dbus timeout to 2 minutes (in case the service is heavily loaded)
 - Fix several memory leaks and other bugs

Changes in dconf 0.5.1
======================

 - Adjust to GDBus API changes
 - Send correct object path in Notify on WriteMany
 - Use printf() and exit() instead of g_error() to avoid too many crash
   reports for now
 - Require gobject-introspection 0.9.5
 - Require vala 0.9.5
 - Make dconf-editor optional
 - Drop libgee requirement for dconf-editor
 - Tweak shared library installation to make ldconfig happy
 - Bump .gir version to dconf-1.0
 - Fix introspection build with recent gobject-introspection
 - Minor bug fixes

Changes in dconf 0.5
=====================

 - Include a dconf-editor
 - drop libtool
 - allow compiling without gobject-introspection
 - autotools/build fixups
 - repair some broken use of tags
 - many updates for glib API changes
 - fix a crasher in the service
 - prefer 'automake-1.11' if it is in the path
 - add support for layering (ie: for system defaults)
 - add support for multiple writers in one service
 - add a shared memory status region to indicate if the gvdb is stale
     this prevents dconf from having to reopen the file each time
 - support keyfile-maintained system settings (via 'dconf update')
 - port client library and commandline tool to vala
 - client library no longer has unimplemented calls
   (except for write_many_async, due to bugs in valac)
 - gtk-doc is now complete for the client library
 - install our own vapi
 - support 'reset' in the GSettingsBackend

Changes in dconf 0.4
=====================

 - fix crashes when the dconf database doesn't yet exist
 - add some incomplete gtk-doc
 - use new GVDB (note: dconf file format has incompatibly changed)
 - implement GSettings sync()
 - use string tags instead of sequence numbers since it was impossible
   to have universally unique sequence numbers
 - theoretical support for sharing dconf databases between machines with
   different byte orders
 - fix bug where first write was not successful when auto-starting
   service
 - FreeBSD build fixes
 - client API cleanups
 - GObject introspection support
 - enable automake silent rules by default for tarball builds
