From feb6ddaff33a3e58a20e94264313322534963f98 Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Tue, 14 Jan 2014 09:52:55 -0500 Subject: move over to using 'dconf compile' and file-db Instead of installing keyfiles in /etc and running 'dconf update' to generate the database in place (or requiring package system triggers to do so for us), just build the database in-tree using the new 'dconf compile' command. We can install that in our pkgdatadir. dconf now also looks in XDG_DATA_DIRS in addition to /etc when finding profiles, so install ours there too. This makes gdm /etc-clean with respect to dconf. If users want to make additional customisations to the gdm login session then they should create their own dconf database in /etc/dconf and then replace the 'gdm' profile with one that references their new db (by way of /etc/dconf/profile/gdm, which is searched first). https://bugzilla.gnome.org/show_bug.cgi?id=722241 --- data/.gitignore | 1 + data/00-upstream-settings | 57 ---------------------- data/00-upstream-settings-locks | 30 ------------ data/Makefile.am | 57 ++++++---------------- data/dconf-profile | 2 - data/dconf/.gitignore | 1 + data/dconf/defaults/00-upstream-settings | 57 ++++++++++++++++++++++ .../defaults/locks/00-upstream-settings-locks | 30 ++++++++++++ data/dconf/gdm.in | 2 + 9 files changed, 107 insertions(+), 130 deletions(-) delete mode 100644 data/00-upstream-settings delete mode 100644 data/00-upstream-settings-locks delete mode 100644 data/dconf-profile create mode 100644 data/dconf/.gitignore create mode 100644 data/dconf/defaults/00-upstream-settings create mode 100644 data/dconf/defaults/locks/00-upstream-settings-locks create mode 100644 data/dconf/gdm.in (limited to 'data') diff --git a/data/.gitignore b/data/.gitignore index d9c62cb1..c95bb397 100644 --- a/data/.gitignore +++ b/data/.gitignore @@ -1 +1,2 @@ /gdm.service +/greeter-dconf-defaults diff --git a/data/00-upstream-settings b/data/00-upstream-settings deleted file mode 100644 index 24a7715e..00000000 --- a/data/00-upstream-settings +++ /dev/null @@ -1,57 +0,0 @@ -# This file is part of the GDM packaging and should not be changed. -# -# Instead create your own file next to it with a higher numbered prefix, -# and run -# -# dconf update -# - -[org/gnome/desktop/a11y/keyboard] -enable=true - -[org/gnome/desktop/background] -show-desktop-icons=false - -[org/gnome/desktop/default-applications/terminal] -exec='/bin/true' - -[org/gnome/desktop/interface] -toolkit-accessibility=true - -[org/gnome/desktop/lockdown] -disable-application-handlers=true -disable-command-line=true -disable-lock-screen=true -disable-log-out=false -disable-printing=true -disable-print-setup=true -disable-save-to-disk=true -disable-user-switching=true - -[org/gnome/desktop/session] -session-name='gdm-shell' - -[org/gnome/desktop/sound] -event-sounds=true - -[org/gnome/settings-daemon/plugins] -whitelisted-plugins=['a11y-keyboard', 'a11y-settings', 'background', 'clipboard', 'color', 'cursor', 'keyboard', 'media-keys', 'orientation', 'power', 'smartcard', 'sound', 'xrandr', 'xsettings'] - -[org/gnome/settings-daemon/plugins/media-keys] -calculator='' -eject='' -email='' -help='' -home='' -media='' -next='' -pause='' -play='' -previous='' -screensaver='' -search='' -stop='' -www='' - -[org/gnome/settings-daemon/peripherals/input-devices] -hotplug-command='' diff --git a/data/00-upstream-settings-locks b/data/00-upstream-settings-locks deleted file mode 100644 index 830a729c..00000000 --- a/data/00-upstream-settings-locks +++ /dev/null @@ -1,30 +0,0 @@ -/org/gnome/desktop/a11y/keyboard/enable -/org/gnome/desktop/background/show-desktop-icons -/org/gnome/desktop/default-applications/terminal/exec -/org/gnome/desktop/interface/toolkit-accessibility -/org/gnome/desktop/lockdown/disable-application-handlers -/org/gnome/desktop/lockdown/disable-command-line -/org/gnome/desktop/lockdown/disable-lock-screen -/org/gnome/desktop/lockdown/disable-log-out -/org/gnome/desktop/lockdown/disable-printing -/org/gnome/desktop/lockdown/disable-print-setup -/org/gnome/desktop/lockdown/disable-save-to-disk -/org/gnome/desktop/lockdown/disable-user-switching -/org/gnome/desktop/session/session-name -/org/gnome/desktop/sound/event-sounds -/org/gnome/settings-daemon/plugins/whitelisted-plugins -/org/gnome/settings-daemon/plugins/media-keys/calculator -/org/gnome/settings-daemon/plugins/media-keys/eject -/org/gnome/settings-daemon/plugins/media-keys/email -/org/gnome/settings-daemon/plugins/media-keys/help -/org/gnome/settings-daemon/plugins/media-keys/home -/org/gnome/settings-daemon/plugins/media-keys/media -/org/gnome/settings-daemon/plugins/media-keys/next -/org/gnome/settings-daemon/plugins/media-keys/pause -/org/gnome/settings-daemon/plugins/media-keys/play -/org/gnome/settings-daemon/plugins/media-keys/previous -/org/gnome/settings-daemon/plugins/media-keys/screensaver -/org/gnome/settings-daemon/plugins/media-keys/search -/org/gnome/settings-daemon/plugins/media-keys/stop -/org/gnome/settings-daemon/plugins/media-keys/www -/org/gnome/settings-daemon/peripherals/input-devices/hotplug-command diff --git a/data/Makefile.am b/data/Makefile.am index d725faa8..2652ecc9 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -43,6 +43,19 @@ dbusconf_DATA = $(dbusconf_in_files:.conf.in=.conf) @INTLTOOL_SCHEMAS_RULE@ @INTLTOOL_XML_NOMERGE_RULE@ +# dconf database and profile +dconf_db_files = \ + dconf/defaults/00-upstream-settings \ + dconf/defaults/locks/00-upstream-settings-locks + +dconfdbdir = $(pkgdatadir) +dconfdb_DATA = greeter-dconf-defaults +greeter-dconf-defaults: $(dconf_db_files) + $(AM_V_GEN) dconf compile $@ $(srcdir)/dconf/defaults + +dconfprofiledir = $(DATADIR)/dconf/profile +dconfprofile_DATA = dconf/gdm + gsettings_SCHEMAS = org.gnome.login-screen.gschema.xml @GSETTINGS_RULES@ @@ -141,6 +154,7 @@ pam_files = $(pam_lfs_files) endif EXTRA_DIST += \ + $(dconf_db_files) \ $(schemas_in_files) \ $(schemas_DATA) \ $(dbusconf_in_files) \ @@ -152,9 +166,6 @@ EXTRA_DIST += \ PreSession.in \ PostSession.in \ PostLogin \ - dconf-profile \ - 00-upstream-settings \ - 00-upstream-settings-locks \ org.gnome.login-screen.gschema.xml.in \ $(NULL) @@ -165,6 +176,7 @@ CLEANFILES = \ PreSession \ PostSession \ $(gsettings_SCHEMAS) \ + greeter-dconf-defaults \ $(NULL) DISTCLEANFILES = \ @@ -204,25 +216,18 @@ uninstall-hook: $(DESTDIR)$(sysconfdir)/dconf/db/gdm \ $(DESTDIR)$(sysconfdir)/dconf/profile/gdm \ -rf \ - $(DESTDIR)$(sysconfdir)/dconf/db/gdm.d \ $(DESTDIR)$(workingdir)/.config/dconf \ $(DESTDIR)$(screenshotdir) \ $(DESTDIR)$(xauthdir) \ $(DESTDIR)$(PAM_PREFIX)/pam.d - -rmdir \ - $(DESTDIR)$(sysconfdir)/dconf/db/gdm.d/locks \ - $(DESTDIR)$(sysconfdir)/dconf/db/gdm.d \ - $(DESTDIR)$(sysconfdir)/dconf/db \ - $(DESTDIR)$(sysconfdir)/dconf - if test -n "$(systemdsystemunit)"; then \ rm -f $(DESTDIR)$(SYSTEMD_SYSTEM_UNIT_DIR)/$(systemdsystemunit); \ rmdir $(DESTDIR)$(SYSTEMD_SYSTEM_UNIT_DIR) || : ; \ fi -install-data-hook: gdm.conf-custom Xsession Init PostSession PreSession 00-upstream-settings 00-upstream-settings-locks $(systemdsystemunit) +install-data-hook: gdm.conf-custom Xsession Init PostSession PreSession $(systemdsystemunit) if test '!' -d $(DESTDIR)$(gdmconfdir); then \ $(mkinstalldirs) $(DESTDIR)$(gdmconfdir); \ chmod 755 $(DESTDIR)$(gdmconfdir); \ @@ -327,38 +332,8 @@ install-data-hook: gdm.conf-custom Xsession Init PostSession PreSession 00-upstr chown gdm:gdm $(DESTDIR)$(workingdir)/.local/share/applications || : ; \ fi - if test '!' -d $(DESTDIR)$(sysconfdir)/dconf/profile; then \ - $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/dconf/profile; \ - chmod 0755 $(DESTDIR)$(sysconfdir)/dconf/profile; \ - chown root:root $(DESTDIR)$(sysconfdir)/dconf/profile || : ; \ - fi - - if test '!' -d $(DESTDIR)$(sysconfdir)/dconf/db; then \ - $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/dconf/db; \ - chmod 0755 $(DESTDIR)$(sysconfdir)/dconf/db; \ - chown root:root $(DESTDIR)$(sysconfdir)/dconf/db || : ; \ - fi - - if test '!' -d $(DESTDIR)$(sysconfdir)/dconf/db/gdm.d; then \ - $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/dconf/db/gdm.d; \ - chmod 0755 $(DESTDIR)$(sysconfdir)/dconf/db/gdm.d; \ - chown root:root $(DESTDIR)$(sysconfdir)/dconf/db/gdm.d || : ; \ - fi - - if test '!' -d $(DESTDIR)$(sysconfdir)/dconf/db/gdm.d/locks; then \ - $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/dconf/db/gdm.d/locks; \ - chmod 0755 $(DESTDIR)$(sysconfdir)/dconf/db/gdm.d/locks; \ - chown root:root $(DESTDIR)$(sysconfdir)/dconf/db/gdm.d/locks || : ; \ - fi - if test '!' -d $(DESTDIR)$(cachedir); then \ $(mkinstalldirs) $(DESTDIR)$(cachedir); \ chmod 1755 $(DESTDIR)$(cachedir); \ chown root:gdm $(DESTDIR)$(cachedir) || : ; \ fi - - $(INSTALL_DATA) $(srcdir)/dconf-profile $(DESTDIR)$(sysconfdir)/dconf/profile/gdm - $(INSTALL_DATA) $(srcdir)/00-upstream-settings $(DESTDIR)$(sysconfdir)/dconf/db/gdm.d - $(INSTALL_DATA) $(srcdir)/00-upstream-settings-locks $(DESTDIR)$(sysconfdir)/dconf/db/gdm.d/locks - test -z "$(DESTDIR)" && dconf update || : - diff --git a/data/dconf-profile b/data/dconf-profile deleted file mode 100644 index e4ac2200..00000000 --- a/data/dconf-profile +++ /dev/null @@ -1,2 +0,0 @@ -user-db:user -system-db:gdm diff --git a/data/dconf/.gitignore b/data/dconf/.gitignore new file mode 100644 index 00000000..f0047b3f --- /dev/null +++ b/data/dconf/.gitignore @@ -0,0 +1 @@ +/gdm diff --git a/data/dconf/defaults/00-upstream-settings b/data/dconf/defaults/00-upstream-settings new file mode 100644 index 00000000..24a7715e --- /dev/null +++ b/data/dconf/defaults/00-upstream-settings @@ -0,0 +1,57 @@ +# This file is part of the GDM packaging and should not be changed. +# +# Instead create your own file next to it with a higher numbered prefix, +# and run +# +# dconf update +# + +[org/gnome/desktop/a11y/keyboard] +enable=true + +[org/gnome/desktop/background] +show-desktop-icons=false + +[org/gnome/desktop/default-applications/terminal] +exec='/bin/true' + +[org/gnome/desktop/interface] +toolkit-accessibility=true + +[org/gnome/desktop/lockdown] +disable-application-handlers=true +disable-command-line=true +disable-lock-screen=true +disable-log-out=false +disable-printing=true +disable-print-setup=true +disable-save-to-disk=true +disable-user-switching=true + +[org/gnome/desktop/session] +session-name='gdm-shell' + +[org/gnome/desktop/sound] +event-sounds=true + +[org/gnome/settings-daemon/plugins] +whitelisted-plugins=['a11y-keyboard', 'a11y-settings', 'background', 'clipboard', 'color', 'cursor', 'keyboard', 'media-keys', 'orientation', 'power', 'smartcard', 'sound', 'xrandr', 'xsettings'] + +[org/gnome/settings-daemon/plugins/media-keys] +calculator='' +eject='' +email='' +help='' +home='' +media='' +next='' +pause='' +play='' +previous='' +screensaver='' +search='' +stop='' +www='' + +[org/gnome/settings-daemon/peripherals/input-devices] +hotplug-command='' diff --git a/data/dconf/defaults/locks/00-upstream-settings-locks b/data/dconf/defaults/locks/00-upstream-settings-locks new file mode 100644 index 00000000..830a729c --- /dev/null +++ b/data/dconf/defaults/locks/00-upstream-settings-locks @@ -0,0 +1,30 @@ +/org/gnome/desktop/a11y/keyboard/enable +/org/gnome/desktop/background/show-desktop-icons +/org/gnome/desktop/default-applications/terminal/exec +/org/gnome/desktop/interface/toolkit-accessibility +/org/gnome/desktop/lockdown/disable-application-handlers +/org/gnome/desktop/lockdown/disable-command-line +/org/gnome/desktop/lockdown/disable-lock-screen +/org/gnome/desktop/lockdown/disable-log-out +/org/gnome/desktop/lockdown/disable-printing +/org/gnome/desktop/lockdown/disable-print-setup +/org/gnome/desktop/lockdown/disable-save-to-disk +/org/gnome/desktop/lockdown/disable-user-switching +/org/gnome/desktop/session/session-name +/org/gnome/desktop/sound/event-sounds +/org/gnome/settings-daemon/plugins/whitelisted-plugins +/org/gnome/settings-daemon/plugins/media-keys/calculator +/org/gnome/settings-daemon/plugins/media-keys/eject +/org/gnome/settings-daemon/plugins/media-keys/email +/org/gnome/settings-daemon/plugins/media-keys/help +/org/gnome/settings-daemon/plugins/media-keys/home +/org/gnome/settings-daemon/plugins/media-keys/media +/org/gnome/settings-daemon/plugins/media-keys/next +/org/gnome/settings-daemon/plugins/media-keys/pause +/org/gnome/settings-daemon/plugins/media-keys/play +/org/gnome/settings-daemon/plugins/media-keys/previous +/org/gnome/settings-daemon/plugins/media-keys/screensaver +/org/gnome/settings-daemon/plugins/media-keys/search +/org/gnome/settings-daemon/plugins/media-keys/stop +/org/gnome/settings-daemon/plugins/media-keys/www +/org/gnome/settings-daemon/peripherals/input-devices/hotplug-command diff --git a/data/dconf/gdm.in b/data/dconf/gdm.in new file mode 100644 index 00000000..4d8bf174 --- /dev/null +++ b/data/dconf/gdm.in @@ -0,0 +1,2 @@ +user-db:user +file-db:@DATADIR@/@PACKAGE@/greeter-dconf-defaults -- cgit v1.2.1