| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Fix linking with LLD by using weak symbols in gvdb, and update dconf
code to make it compatible with gvdb upstream changes.
Fixes https://gitlab.gnome.org/GNOME/dconf/issues/47
|
|
|
|
|
|
| |
Factor out a common method to route completion of DBus methods through.
Helps: #29
|
| |
|
|
|
|
| |
This reverts commit b799b08ec4e5978ab8db233a9da1532bf7918324.
|
|
|
|
| |
This reverts commit bf103302332603a637f1c33e603c93b82aa1dc0b.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The dconf-service internal static library depends on generated files,
and we need to make sure that those files are available by the time we
build the tests that depend on them, as Meson builds everything in
parallel. If we don't do that, in cases of massive parallelised
builders, we will end up with errors like:
```
ccache cc -Itests/tests@@writer@exe -Itests -I../tests -I. -I../ -Itests/../service -I../tests/../service -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g '-DSYSCONFDIR="/etc"' -fno-common -Wmissing-prototypes -Wwrite-strings -O2 -g -m64 -mtune=generic '-DSRCDIR="/ostbuild/source/dconf/tests"' -MD -MQ 'tests/tests@@writer@exe/writer.c.o' -MF 'tests/tests@@writer@exe/writer.c.o.d' -o 'tests/tests@@writer@exe/writer.c.o' -c ../tests/writer.c
../tests/writer.c:24:37: fatal error: service/dconf-generated.h: No such file or directory
```
Reviewed-by: nobody
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
| |
It’s a little counterintuitive that a function called ‘read’ could
sometimes move a file (which could be considered a write).
Signed-off-by: Philip Withnall <withnall@endlessm.com>
|
|
|
|
|
|
|
| |
This enables structured logging for all parts of dconf, which will make
it easier to check for certain log messages in the unit tests.
Signed-off-by: Philip Withnall <withnall@endlessm.com>
|
|
|
|
|
|
| |
This will make unit testing the code easier.
Signed-off-by: Philip Withnall <withnall@endlessm.com>
|
|
|
|
|
|
|
| |
This doesn’t bump our GLib dependency, since we already depend on GLib
2.44.
Signed-off-by: Philip Withnall <withnall@endlessm.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a GVDB file cannot be opened due to being corrupt, move it out of the
way, warn, and open a new blank database instead.
This prevents the situation where a corrupt database stops the entire
desktop session from loading.
Note that the dconf_gvdb_utils_read_file() code path is only taken
inside DConfWriter. The DConf engine sources (such as
dconf-engine-source-system.c) open the GVDB tables separately, and
already all handle errors gracefully.
Signed-off-by: Philip Withnall <withnall@endlessm.com>
https://gitlab.gnome.org/GNOME/glib/issues/1454
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The build currently, unintentionally, depends on side effects, namely:
that a variable defined in a meson.build file will be valid for any
other included meson.build file, until it gets re-defined.
We use the same `deps` variable in many places, and we end up depending
on the inclusion order when we get to the client library, which depends
on the gsettings backend defining the `deps` variable.
Reviewed-by: nobody
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
| |
Having trailing commas in place means that if another source file or
parameter is added to the end of the list or function, there won't
be noise when adding the comma to the line above.
|
|
|
|
|
|
|
|
| |
The install parameters should be the last parameters when calling a
function.
The `configuration` parameter has been moved leaving install
parameters at the end.
|
|
|
|
|
|
|
|
|
| |
meson is able to generate internal dependencies for handling built
libraries. These internal dependencies depend on other dependencies
as well, based on the includes exposed by their headers.
This have been fixed by using proper internal dependencies for these
libraries.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
D-Bus' session bus services' paths and gio's module's paths are
hardcoded. However, these directories can be retrieved by checking
this information from their pkgconfig files.
This patch retrieves the paths for their correspondant pkgconfig
files and uses those paths as installation directories.
The options to set different directories for these options are not
necessary anymore, so they have been removed.
Finally, the post install script does not depend anymore on the
existence of `gio-querymodules` and is always executed.
|
|
|
|
|
|
|
|
|
|
| |
Following the new meson porting guidelines, this patch renames the
build options. The list of changes is as follows:
- Remove the enable prefix from boolean options.
- Remove the with prefix from string options.
- The character separator from multi-word options has been changed
to underscore.
|
|
|
|
|
|
| |
The former has been deprecated for a long time.
Signed-off-by: Philip Withnall <withnall@endlessm.com>
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=792677
|
|
|
|
|
|
|
|
|
|
| |
meson does not allow to build source code inside the source code
tree, for this reason there is no need for .gitignore files to
ignore built files.
This patch removes .gitignore files which are no longer needed.
https://bugzilla.gnome.org/show_bug.cgi?id=784910
|
|
|
|
|
|
|
| |
To avoid the burden of maintaining multiple build systems, this
patch removes autotools support.
https://bugzilla.gnome.org/show_bug.cgi?id=784910
|
|
|
|
|
|
|
|
| |
meson is a build system focused on speed an ease of use, which
helps speeding up the software development. This patch adds meson
support along autotools.
https://bugzilla.gnome.org/show_bug.cgi?id=784910
|
|
|
|
|
|
|
| |
Remember whether a signal was signalled to dconf-service
so we don't call g_application_release() more than once.
https://bugzilla.gnome.org/show_bug.cgi?id=727549
|
| |
|
|
|
|
| |
We ought to be including this from each .c file.
|
|
|
|
| |
gcc doesn't like 'a && b;' so use 'if (a) b;'.
|
|
|
|
| |
Mostly missing 'static'.
|
|
|
|
|
| |
Fairly harmless leaks. One only happens in an error case (like the disk
being full) and the other only happens on startup.
|
|
|
|
|
|
|
|
|
|
|
|
| |
When emitting change signals, we call dconf_changeset_describe() to
enumerate the keys to send the signal for.
When the changeset is empty, this function returns NULL for the path
vector. We pass that NULL into the signal emitter and the service
crashes.
We can avoid this situation by refusing to handle empty changesets in
the first place.
|
|
|
|
|
|
|
|
| |
Avoid initialising all of GVfs for dconf-service in order to monitor a
local file for changes.
See https://bugzilla.gnome.org/show_bug.cgi?id=691618 for the
possibility of a better fix.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Use fcntl() on a lockfile when accessing a keyfile.
Now reading the keyfile, notifying local processes of changes in it,
applying changes from local request and rewriting it is all done under a
single acquire of the lock. This effectively means that concurrent
changes made to the database across several machines sharing a home
directory over NFS will be seen by all machines as having occurred in
the same order (decided by who won the race to the lock).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Store the keyfile in ~/.config/dconf/$(name).txt instead of
~/.config/dconf-keyfile/name. Adjust the base writer not to pick up
filenames with dots in them (so we will skip the .txt files the keyfile
writer puts into the same directory).
Add file change monitoring and reload the file if anyone changes it.
Fix a crasher on the first write of a file if it does not yet exist.
Add proper finalize handling.
|
| |
|
| |
|
|
|
|
|
| |
Don't rewrite the gvdb file unless an actual change has been applied to
the database (unless creating a non-native database for the first time).
|
|
|
|
| |
It is now possible to have keyfile-based dconf databases.
|
|
|
|
| |
Fix two mistakes in the dconf-writer.h header.
|
|
|
|
|
|
|
| |
This diffs the given changeset with the uncommited changes in the
writer. The result is effectively the changeset that would have to be
applied to the writer to cause it to be equal to the passed-in
changeset.
|
|
|
|
|
|
|
|
|
| |
Add a shm service-db that does nothing. In effect this provides us with
a database maintained in the user runtime dir that never gets synced to
any permanent storage.
It can be used by putting a line like "service-db:shm/temp" in the dconf
profile.
|
|
|
|
|
|
| |
Add support for service-db to the service.
New types of service-dbs can be implemented via a GIOExtensionPoint.
|
| |
|
|
|
|
|
| |
Add the results of dconf_writer_list() to the output of the enumerate()
function on the subtree introspection interface.
|
|
|
|
|
| |
This populates a set with the names of databases available for a given
writer class.
|
|
|
|
|
|
| |
Add a thin wrapper around GHashTable for dealing with sets of strings.
Port the subtree introspection enumeration code to use it.
|
|
|
|
|
| |
dconf_writer_new() now takes a type so we can create subtypes of
DConfWriter.
|
|
|
|
|
|
|
| |
...and add a lot of ->priv.
This is not a public API because this header doesn't get installed, but
it can now be used by other things in-tree.
|
|
|
|
|
|
|
| |
If we fail to write the database file, try g_mkdir_with_parents() to
create the parent directory and try again.
https://bugzilla.gnome.org/show_bug.cgi?id=689136
|
|
|
|
|
|
|
|
|
|
|
|
| |
4fce559d81bdd3841cfe16fd3a3e6b8e6e9e60f2 changed from using GHashTable
to database-mode changesets for caching the state of the database in the
service but we missed a case of g_hash_table_unref being called.
Fix that now.
Problem reported and fix suggested by Philippe Coval.
https://bugzilla.gnome.org/show_bug.cgi?id=691013
|
|
|
|
|
|
| |
Was seeing crashes in the latest gnome-ostree on login.
https://bugzilla.gnome.org/show_bug.cgi?id=690316
|