diff options
author | Ryan Lortie <desrt@desrt.ca> | 2012-07-01 18:46:23 -0400 |
---|---|---|
committer | Ryan Lortie <desrt@desrt.ca> | 2012-07-01 18:53:04 -0400 |
commit | 6a675a5bdef5949e2397b0d5ca9d0c8a36ccedfd (patch) | |
tree | be2bf473587f9c0c353ec97d220b04a12593fd58 /HACKING | |
parent | 3e99260504a4544872a1db15ff52b791c8e04905 (diff) | |
download | dconf-6a675a5bdef5949e2397b0d5ca9d0c8a36ccedfd.tar.gz |
Add a HACKING
Diffstat (limited to 'HACKING')
-rw-r--r-- | HACKING | 80 |
1 files changed, 80 insertions, 0 deletions
@@ -0,0 +1,80 @@ +dconf is split into a large number of small modules. This is required +because of the client/server architecture as well as the wide variety of +situations that dconf is used in on the client side. + +gvdb/: + + This code implements the GVDB file format used for the on-disk + database. GVDB is shared with a number of other users and lives in a + separate 'gvdb' module on git.gnome.org. + + Changes should never be made to this directory. Instead, they should + be made against the 'gvdb' module and merged using git. + + The code is split into a reader and a writer (builder). + + This directory doesn't produce any libraries. The source files are + included into other libraries and executables by direct inclusion of + these source files into the Makefiles of other directories. + +common/: + + Sources in this directory are used in both the dconf-service and + client-side library implementations. + + This directory produces two libraries: libdconf-common.a and + libdconf-common-shared.a. They are exactly the same, except that + libdconf-common-shared.a was compiled with -fPIC. + +engine/: + + This directory contains most of the core logic for implementing the + client-side of dconf. + + The engine code requires (but does not contain) glue code for speaking + to D-Bus. All users of the engine must therefore include a module + that implements this glue. + + This directory produces one library: libdconf-engine.a. This library + includes the gvdb-reader. + +gdbus/: + + This directory contains the glue code for dconf over GDBus. + + This directory produces one library: libdconf-gdbus.a. + +client/: + + This is the standard GObject client-side library used for direct access to + dconf. It uses the GDBus glue from the gdbus/ directory above. + + This directory produces the libdconf.so shared library. + +gsettings/: + + This is the GSettings backend for dconf. It also uses GDBus. + + This directory produces the libdconfsettings.so GIOModule. + +dbus-1/: + + This directory contains a client-side library based on libdbus-1. It + also contains the D-Bus glue code for libdbus-1 (since it is the only + client-side library that is using it). + + This directory produces the libdconf-dbus-1.so shared library. + +bin/: + + This is the 'dconf' commandline tool. It uses the library from + client/ above. + +editor/: + + This is the graphical dconf-editor. It also uses the client/ library. + +service/: + + This is the dconf-service required for any client side library to do + writes. |