Merge branch '1454-gvdb-corruption' into 'master'
[dconf.git] / NEWS
blobbf568b7c9238048235a9ea08b844e045fdb8b824
1 Changes in the next version
2 ===========================
4 Changes in dconf 0.29.1
5 =======================
7  - Engine: track in progress watch handles to avoid spurious changed
8    signals for the root path. Subscription requests are no longer sent
9    if the engine is already subscribed to the given path. In the case
10    that some value changes while a subscription request is in progress,
11    a changed signal is only sent for the path being subscribed to
12    instead of the root path. (Daniel Playfair Cal; !1, !5, #790640)
14  - Engine: fix deadlock which occured when using the engine from libsoup
15    within flatpak by extending the existing workaround for Glib !541, aka
16    #674885. GSocket and various other GObject types are now also
17    initialised in the main thread. (Owen Taylor; !15)
19  - Add transfer annotations to the GTK-Doc strings for functions in the
20    dconf_changeset_* and dconf_client_* namespaces (Xavier Claessens,
21    Philip Withnall; !9, #758903)
23  - Update GVDB subtree from GVDB master, containing mostly documentation
24    improvements (Philip Withnall; !17)
26  - dconf-update.vala: correct error message grammar (Kenyon Ralph; !6)
28  - Various meson related improvements (Iñigo Martínez; !11)
30  - Add GitLab CI (Philip Withnall; !10)
32  - Service: Port from the deprecated g_type_class_add_private() to
33    G_ADD_PRIVATE() (Philip Withnall; !7)
35  - Add Daniel Playfair Cal and Philip Withnall as maintainers (Philip
36    Withnall)
39 Changes in dconf 0.28.0
40 =======================
42  - Update README
44 Changes in dconf 0.27.1
45 =======================
47  - Port to meson build system (#784910)
49 Changes in dconf 0.26.1
50 ========================
52  - Work around a deadlock in GObject type initialization (#674885)
54 Changes in dconf 0.26.0
55 ========================
57 None.
59 Changes in dconf 0.25.1
60 ========================
62  - the libdbus-1 backend has been removed.  dconf now always uses GDBus.
64  - support has been added for system administration frameworks to set up
65    the dconf profile via a file placed in the XDG_RUNTIME_DIR or in
66    /run/dconf/.  In the case of the file in /run/dconf/, it is not
67    possible to modify the proile, even via the DCONF_PROFILE environment
68    variable, which makes it slightly more difficult to evade lockdown.
70  - directory resets are now implemented properly in DConfChangeset which
71    means that reading a subkey through a changeset that contains a reset
72    for a parent directory of that key will return TRUE with a NULL value
74  - a new API dconf_client_read_full() has been added which allows
75    reading the user value, the default value, or querying what the
76    effective value would be if a changeset were to be applied.
78  - a new API has been added for listing the locks that are in effect:
79    dconf_client_list_locks()
81  - DConfClient has a new "writability-changed" signal
83  - support for reading default values and listing locks have been added
84    to the dconf commandline tool
86  - support for g_autoptr() has been added for DConfClient and
87    DConfChangeset
89  - the handling of reading of default values via GSettings has been made
90    more efficient.  More major changes to the GSettings backend are
91    expected in the near future.
93 Changes in dconf 0.24.0
94 ========================
96 The version number was increased and a new entry was added to the NEWS.
98 Changes in dconf 0.23.2
99 ========================
101  - remove dconf-editor manpage (accidentally missed during the split)
103  - fix whitespace issues in 'dconf --help'
105 Changes in dconf 0.23.1
106 ========================
108  - dconf-editor is now in a separate package
110  - portability improvements
112 Changes in dconf 0.22.0
113 ========================
115  - fix handling of floating point keys in editor
117  - update appdata for renamed desktop file
119  - minor doap changes
121 Translations:
122    French
123    Indonesian
124    Lithuanian
125    Hungarian
126    Catalan (Valencian)
127    Korean
128    Traditional Chinese
129    Spanish
130    Brazilian Portuguese
131    Galician translations
132    Catalan
133    Basque language
134    Danish
135    Norwegian bokmål
136    Greek
137    Czech
138    Slovenian
139    Swedish
140    Polish
141    Latvian
142    Hebrew
143    Russian
144    German
145    Assamese
146    Serbian
148 Changes in dconf 0.21.0
149 ========================
151  - editor desktop file renamed to ca.desrt.dconf-editor to take advantage of
152    D-Bus activation
154  - prevent the service from being released more than once if we receive
155    multiple signals (which caused a hang)
157 Translations:
158   Indonesian
159   Greek
160   Swedish
162 Changes in dconf 0.20.0
163 ========================
165 Czech translation updated.
167 Changes in dconf 0.19.92
168 =========================
170  - depend on automake 1.11.2
172  - stop using ACLOCAL_FLAGS
174  - depend on released version of Vala (0.18.0)
176 Changes in dconf 0.19.91
177 =========================
179  - fix an unlikely failure in the fuzz testing of gvdb
181  - fix a thread safety issue with file-db
183 Changes in dconf 0.19.90
184 =========================
186  - dconf compile: always write little endian
188  - file-db: don't install match rules on no bus (fixes gdbus assertion)
190  - update dconf(1) manpage for 'dconf compile'
192  - fix 'make clean' on FreeBSD
194  - editor: provide appdata
196 Translations updates:
197   Ukrainian translation
198   Aragonese translation
199   Chinese
201 Changes in dconf 0.19.3
202 ========================
204  - quite a lot of test coverage improvements
206  - Add a proper DCONF_ERROR error domain
208  - suppress GLib deprecation warnings during build
210  - engine: issue warnings about missing files only once per source
212  - engine: grok the WritabilityNotify signal from D-Bus
214  - gsettings: handle writability changes correctly
216  - engine: assorted fixes for issues found during testing
218  - portability: only link to -ldl if it is required
220  - add support for 'file-db' to profiles: this is an absolute path to a
221    immutable dconf database file
223  - add support for finding profiles in XDG_DATA_DIRS if they are not in
224    /etc
226  - add 'dconf compile' command for building dconf databases from
227    keyfiles in arbitrary locations (like from the build system of a
228    project that may want to install a file-db)
230  - editor: add a section separator to the app menu for consistency
232 Changes in dconf 0.19.2
233 ========================
235  - Add support for the new GSettingsBackend.read_user_value() API
237  - bump GLib version depend accordingly (2.39.1)
239 Translations updates:
240  Greek
241  Catalan (Valencian)
242  Simplified Chinese
243  Persian
245 Changes in dconf 0.18.0
246 ========================
248 Translations updates:
249  Basque
250  Danish
251  Japanese
252  Korean
253  Portuguese
254  Punjabi
256 Changes in dconf 0.17.1
257 ========================
259 Documentation updates, including better coverage of profiles.
261 Translations updates:
262  Assamese
263  Belarusian
264  Catalan
265  Dutch
266  Estonian
267  Finnish
268  French
269  German
270  Hungarian
271  Indonesian
272  Italian
273  Korean
274  Latvian
275  Polish
276  Russian
277  Serbian
278  Tajik
279  Thai
280  Traditional Chinese
282 Changes in dconf 0.17.0
283 ========================
285 Fix a semi-serious thread safety issue:
287   https://bugzilla.gnome.org/show_bug.cgi?id=703073
289 Some improvements to the editor:
291  - fix some compile warnings
292  - use gresource
293  - cancel searches on escape
295 Translation updates:
296  Brazilian Portuguese
297  Czech
298  Esperanto
299  Friulian
300  Galician
301  German
302  Hebrew
303  Indonesian
304  Lithuanian
305  Malayalam
306  Norwegian bokmål
307  Slovak
308  Slovenian
309  Spanish
310  Tajik
312 Changes in dconf 0.16.0
313 ========================
315 This release one small fix and many translation updates.
317  - Set G_LOG_DOMAIN so that 'dconf' shows in GLib log messages
319 Translation updates:
320  Assamese
321  Basque
322  Belarusian
323  Brazilian Portuguese
324  Catalan
325  Czech
326  Danish
327  Estonian
328  Finnish
329  French
330  German
331  Greek
332  Hindi
333  Korean
334  Latvian
335  Persian
336  Portuguese
337  Punjabi
338  Russian
339  Tadjik
340  Tamil
341  Uyghur
342  Valencian
344 Changes in dconf 0.15.3
345 ========================
347 This release more or less completes the rewriting of dconf-service.
348 Support for backends are now fully-realised (and we have a couple of
349 them as proof).  Many small bugs (some with serious symptoms) have been
350 fixed vs. the last release.
352  - fix problem related to empty changesets (caused by empty 'dconf
353    load', for example).  These are now handled properly on the server
354    side but also forbidden in the client libraries.
356  - new icons: hicolor icons have been updated and a HighContrast set
357    added
359  - loosen some assertions on the order of messages being returned from
360    the service.  D-Bus violates this order in the case that the service
361    crashes and that's no reason to take the client with it as well.
363  - improve autogen.sh non-bash compatibility
365  - add some backends to the dconf-service (that were 'considered' as per
366    the last NEWS).  The first backend is a null backend that allows for
367    a temporary database tied to the lifetime of the session, possibly
368    useful for testing.
370  - also add a new 'keyfile' backend for the service.  This is primarily
371    intended to be used with NFS (where use of mmap is not safe)
373  - add a mkdir() in the case of an empty home directory where
374    ~/.config/dconf does not already exist
376  - fix crashes in the service caused by failures to write (including
377    failures caused by the above issue being overlooked)
379  - work around an issue with a testcase hanging and failing due to a
380    GLib change to the order in which testcases are run
382  - running autoreconf on tarballs should now work
384 Translations updated:
385  Aragonese
386  Friulian
387  Galician
388  Greek
389  Hebrew
390  Hungarian
391  Italian
392  Lithuanian
393  Norwegian bokmål
394  Polish
395  Serbian
396  Slovak
397  Slovenian
398  Spanish
399  Thai
400  Uyghur
402 Bugs closed:
403  595579  support NFS
404  663961  Cannot build without a git checkout
405  673834  dconf commandline tool doesn't initialise the locale
406  686998  add keywords to the desktop file
407  687120  gnome-ostree-3.8 triggers expected && oc->change == expected assertion
408  687310  dconf-editor should install a highcontrast app icon
409  689136  Crash in dconf_writer_real_end(): change is NULL (when $XDG_CONFIG_HOME/dconf does not exist)
410  690316  writer: Fix typo causing segfaults on service shutdown
411  690477  Can't build with gnome-apps-3.6 module set
412  691013  Crash on missing ~/.config/dconf and clear pointer
413  692144  needs a nicer icon
414  692186  build: autogen.sh uses /bin/sh but depends on advanced shell redirection shorthands
416 Changes in dconf 0.15.2
417 ========================
419  - update to the new GVDB API (GBytes based) and refactor a bit
421  - add a new type of "database mode" DConfChangeset and use it
423  - the service has been substantially rewritten
424   - using gdbus-codegen
425   - cache the file contents instead of read/modify/write each time
426   - new DConfWriter abstraction allows considering support for backends
427   - uses only POSIX IO (read and write syscalls) for database access
428   - workaround mmap() bug on OpenBSD
430  - editor:
431   - Fix search order of schema dirs
432   - Translate summary and description
434 Translations:
436  - Indonesian
437  - Slovak
439 Changes in dconf 0.15.1
440 ========================
442  - add --disable-man
444  - fix reading default values in GSettings backend
446  - editor:
447    - support schema overrides
448    - search improvements (search directories, values, descriptions)
449    - correctly get text from schema descriptions
450    - only write window state settings on exit and support fullscreen state
452  - dconf_rebuilder_get_parent: don't leak parent_name
454 Translations:
456  - Arabic
457  - Belarusian
458  - Bengali
459  - Brazilian Portuguese
460  - British English
461  - Bulgarian
462  - Catalan
463  - Catalan (Valencian)
464  - Czech
465  - Danish
466  - Estonian
467  - Finnish
468  - French
469  - German
470  - Hebrew
471  - Hindi
472  - Hungarian
473  - Indonesian
474  - Italian
475  - Japanese
476  - Korean
477  - Latvian
478  - Lithuanian
479  - Malayalam
480  - Marathi
481  - Norwegian bokmål
482  - Persian
483  - Polish
484  - Portuguese
485  - Russian
486  - Simplified Chinese
487  - Slovenian
488  - Spanish
489  - Swedish
490  - Tamil
491  - Telugu
492  - Thai
493  - Vietnamese
495 Changes in dconf 0.13.90
496 =========================
498 The only change in this release is the addition of many translations for
499 dconf-editor:
501  - Traditional Chinese
502  - Serbian
503  - Ukrainian
504  - Punjabi
505  - Greek
506  - Galician
507  - Spanish
508  - Assamese
509  - Polish
510  - Hungarian
512 Changes in dconf 0.13.5
513 ========================
515  - the service no longer attempts to migrate the primary dconf database from
516    its (years) old path ~/.config/dconf to the new ~/.config/dconf/user
518  - fixes for profile file parsing problems
520  - fix obscure race in GDBus handling code that could result in
521    out-of-order message delivery
523  - editor:
524   - clean up some messages and mark strings for translations
525   - enable NLS
526   - add Esperanto translation
528  - add manpages for dconf(7), dconf(1), dconf-service and dconf-editor
530 Changes in dconf 0.13.4 (since 0.13.0)
531 =======================================
533  - extensively refactored -- watch for bugs
535  - now depends on GLib 2.33.3 for g_slist_copy_deep() and
536    g_clear_pointer() with workaround for GCC
538  - API of libdconf has changed; soname bumped to libdconf.so.1
540  - installed header layout has changed
542  - there are changes to the API used between the client and the service.
543    New clients will only talk with the new service (so make sure to
544    restart it).  Old clients (ie: already-running programs) will
545    continue to be able to talk to the new service version.
547  - there is a now a fairly decent test suite but it requires a full
548    D-Bus environment to run in, so it may make sense to avoid 'make
549    check' on builders for the time being
551 Changes in dconf 0.13.0
552 =======================
554  - now requiring Vala 0.18 (ie: at least 0.17.0)
556  - editor: use GtkApplication and GMenu
557  - editor: support searching for keys
559  - dconf cli: call setlocale() on startup
561 Changes in dconf 0.11.7
562 =======================
564  - engine: don't leak the lock table if a system database changes while
565    a program is running
567  - dbus-1: call g_slist_remove_link instead of g_slist_remove
569  - editor: set 'wrap' property on default value label
571  - dconf update:
573    - code cleanup, better error handling
574    - read keyfiles in a defined order (later files take precedence)
575    - don't issue warnings if a key is defined in multiple files
577 Changes in dconf 0.11.6
578 =======================
580  - new DCONF_BLAME mode for debugging spurious dconf writes at login
582  - stop hardcoding the assumption that there will be exactly one user
583    database followed by zero or more system databases
585  - allow DCONF_PROFILE to specify a profile file by absolute path
587  - dbus-1: fix multiple-key change notifications
589  - autogen.sh can now be called from out of tree
591 Changes in dconf 0.11.5
592 =======================
594  - do not install non-standard icon sizes
596  - fix a bug with getting default values when no profile is in use
598  - some general code cleanups on the client side
600  - improve Makefile compatibility: avoid using 'echo -e'
602 Changes in dconf 0.11.3
603 =======================
605  - works with (and only with) Vala 0.15.1
607  - we now have an icon for dconf-editor
609 Changes in dconf 0.11.2
610 =======================
612  - many bugfixes and improvements to the editor, most notably porting to
613    GtkGrid to avoid the GtkTable layout bug that was causing size to be
614    incorrectly allocated
616  - fix a crasher due to invalid string index of -1
618 Changes in dconf 0.10.0
619 =======================
621 The version number was increased and a new entry was added to the NEWS.
623 Changes in dconf 0.9.1
624 ======================
626   - give a g_warning() on failure to communicate with service
628   - remove unworking 'set lock' call from dconf API and commandline tool
630   - add code to exit gracefully on receipt of SIGINT, SIGHUP, SIGTERM
632   - remove "service function" logic; always use the XDG runtime directory
634 Changes in dconf 0.9.0
635 ======================
637 There has been an extremely minor incompatible change in the D-Bus API
638 of dconf this release.  From a practical standpoint, this change will
639 have no effect.  However, it serves as a reminder that the dconf D-Bus
640 API is private and can change from version to version (and will likely
641 change in the future).
643 As such, it is appropriate for those packaging dconf to kill all running
644 instances of dconf ('killall dconf-service') as part of their postinst
645 for the package.  It will be dbus-activated again on the next use.
647   - support loading/storing of maybe types in dconf
649   - remove NFS detection hackery and rely on XDG runtime dir
651   - add proper support for change notification to DConfClient
653   - commandline tool improvements
655     - reset: reset keys or entire subpaths
657     - dump: dump entire subpaths to keyfile format
659     - load: load them back again (maybe at a different path)
661     - watch: actually works now
663   - editor improvements
665     - keys now change in editor when changed from outside
667     - support for flags
669     - show dconf-editor in applications list
671   - work around incompatible Vala bindings changes with an #if
673   - don't install the bash completion script as executable
675   - fix a warning caused by reusing a GError variable
677   - other small fixes
680 Changes in dconf 0.7.5
681 ======================
683 This release corrects a serious flaw in the previous release: crashing
684 if the database did not already exist.
686 It also contains many fixes and improvements to the dconf-editor,
687 including use of GSettings to store the window geometry.
689 This is the final release before 0.8.0 which will become the first
690 release in a new stable series.  Feature development will continue on
691 'master' toward 0.9 past that point.
693 Changes in dconf 0.7.4
694 ======================
696 Changes in this version:
698   - #648949: multithreading issue fixed (which actually affects all
699     GSettings-using programs since dconf is used from a helper thread in
700     that case)
702   - dconf commandline tool is vastly more friendly now
704     - no more aborting on unrecognised arguments
706     - proper help
708     - bash completion support
710   - support for sysadmin lockdown
712   - the editor now properly reads installed enum xml files
714 Changes in dconf 0.7.3
715 ======================
717 This release consists almost entirely of fixes made by Robert to
718 dconf-editor.  A few other trivial build fixes are included as well
719 (bumping library version dependencies to match reality, etc).
721 Changes in dconf 0.7.2
722 ======================
724 This is entirely a cleanup/fixes release.  Some fixes here to make the
725 increasingly-strict toolchain happy, and also some fixes for some
726 crashers in the GSettings backend and service.
728  - remove some unused variables (new GCC gives a warning: #640566, another)
729  - add a mutex to fix multi-threading issue (#640611)
730  - don't crash if we have no D-Bus
731  - clean up symbol exports
732  - fix a crash in the service when using 'reset'
733  - drop old linker options that were for libtool
735 Changes in dconf 0.7.1
736 ======================
738 The last release contained a few problems that caused build failures on
739 some strict linkers.  Those should be fixed now.
741 Changes in dconf 0.7
742 ====================
744  - new library to use dconf with libdbus-1
745  - quite a lot of improvements and bug-fixes in dconf-editor, thanks to
746    Robert Ancell
747  - some bug fixes in the GSettings backend (crashers caused by use if
748    custom dconf profiles)
749  - some FreeBSD build fixes
750  - increased Vala dependency to 0.11.4 (required for dconf-editor fixes)
752 Changes in dconf 0.6
753 ====================
755  - Rewrite a lot of the GSettings backend to reduce GDBus abuse.  We use
756    our own worker thread now instead of trying to hijack GDBus's.
757  - disable gobject-introspection support for now
758  - drop support for GTK2 in dconf-editor
759  - Add a new torture-test case
760  - Increase dbus timeout to 2 minutes (in case the service is heavily loaded)
761  - Fix several memory leaks and other bugs
763 Changes in dconf 0.5.1
764 ======================
766  - Adjust to GDBus API changes
767  - Send correct object path in Notify on WriteMany
768  - Use printf() and exit() instead of g_error() to avoid too many crash
769    reports for now
770  - Require gobject-introspection 0.9.5
771  - Require vala 0.9.5
772  - Make dconf-editor optional
773  - Drop libgee requirement for dconf-editor
774  - Tweak shared library installation to make ldconfig happy
775  - Bump .gir version to dconf-1.0
776  - Fix introspection build with recent gobject-introspection
777  - Minor bug fixes
779 Changes in dconf 0.5
780 =====================
782  - Include a dconf-editor
783  - drop libtool
784  - allow compiling without gobject-introspection
785  - autotools/build fixups
786  - repair some broken use of tags
787  - many updates for glib API changes
788  - fix a crasher in the service
789  - prefer 'automake-1.11' if it is in the path
790  - add support for layering (ie: for system defaults)
791  - add support for multiple writers in one service
792  - add a shared memory status region to indicate if the gvdb is stale
793      this prevents dconf from having to reopen the file each time
794  - support keyfile-maintained system settings (via 'dconf update')
795  - port client library and commandline tool to vala
796  - client library no longer has unimplemented calls
797    (except for write_many_async, due to bugs in valac)
798  - gtk-doc is now complete for the client library
799  - install our own vapi
800  - support 'reset' in the GSettingsBackend
802 Changes in dconf 0.4
803 =====================
805  - fix crashes when the dconf database doesn't yet exist
806  - add some incomplete gtk-doc
807  - use new GVDB (note: dconf file format has incompatibly changed)
808  - implement GSettings sync()
809  - use string tags instead of sequence numbers since it was impossible
810    to have universally unique sequence numbers
811  - theoretical support for sharing dconf databases between machines with
812    different byte orders
813  - fix bug where first write was not successful when auto-starting
814    service
815  - FreeBSD build fixes
816  - client API cleanups
817  - GObject introspection support
818  - enable automake silent rules by default for tarball builds