summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Lortie <desrt@desrt.ca>2014-01-14 09:52:55 -0500
committerRay Strode <rstrode@redhat.com>2014-01-15 10:48:50 -0500
commit766d07bd1b6aa1c0e631676ad6b6a983d46624f2 (patch)
tree3bace8352259226b17e276953ce851ad0e191e6a
parent0c65c092f374fdb42522b56a0078020412b2472e (diff)
downloadgdm-766d07bd1b6aa1c0e631676ad6b6a983d46624f2.tar.gz
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
-rw-r--r--configure.ac1
-rw-r--r--data/.gitignore1
-rw-r--r--data/Makefile.am56
-rw-r--r--data/dconf-profile2
-rw-r--r--data/dconf-profile/.gitignore1
-rw-r--r--data/dconf-profile/gdm.in2
-rw-r--r--data/dconf-settings/00-upstream-settings (renamed from data/00-upstream-settings)0
-rw-r--r--data/dconf-settings/locks/00-upstream-settings-locks (renamed from data/00-upstream-settings-locks)0
8 files changed, 20 insertions, 43 deletions
diff --git a/configure.ac b/configure.ac
index 75f29f7e..884b94aa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1569,6 +1569,7 @@ data/pixmaps/Makefile
data/pixmaps/16x16/Makefile
data/pixmaps/32x32/Makefile
data/pixmaps/48x48/Makefile
+data/dconf-profile/gdm
common/Makefile
po/Makefile.in
tests/Makefile
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/Makefile.am b/data/Makefile.am
index d725faa8..c61ca589 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -43,6 +43,18 @@ dbusconf_DATA = $(dbusconf_in_files:.conf.in=.conf)
@INTLTOOL_SCHEMAS_RULE@
@INTLTOOL_XML_NOMERGE_RULE@
+# dconf database and profile
+dconf_db_files = \
+ dconf-settings/00-upstream-settings \
+ dconf-settings/locks/00-upstream-settings-locks
+
+pkgdata_DATA = greeter-dconf-defaults
+greeter-dconf-defaults: $(dconf_db_files)
+ $(AM_V_GEN) dconf compile $@ $(srcdir)/dconf-settings
+
+dconfprofiledir = $(DATADIR)/dconf/profile
+dconfprofile_DATA = dconf-profile/gdm
+
gsettings_SCHEMAS = org.gnome.login-screen.gschema.xml
@GSETTINGS_RULES@
@@ -141,6 +153,7 @@ pam_files = $(pam_lfs_files)
endif
EXTRA_DIST += \
+ $(dconf_db_files) \
$(schemas_in_files) \
$(schemas_DATA) \
$(dbusconf_in_files) \
@@ -152,9 +165,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 +175,7 @@ CLEANFILES = \
PreSession \
PostSession \
$(gsettings_SCHEMAS) \
+ greeter-dconf-defaults \
$(NULL)
DISTCLEANFILES = \
@@ -204,25 +215,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 +331,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-profile/.gitignore b/data/dconf-profile/.gitignore
new file mode 100644
index 00000000..f0047b3f
--- /dev/null
+++ b/data/dconf-profile/.gitignore
@@ -0,0 +1 @@
+/gdm
diff --git a/data/dconf-profile/gdm.in b/data/dconf-profile/gdm.in
new file mode 100644
index 00000000..4d8bf174
--- /dev/null
+++ b/data/dconf-profile/gdm.in
@@ -0,0 +1,2 @@
+user-db:user
+file-db:@DATADIR@/@PACKAGE@/greeter-dconf-defaults
diff --git a/data/00-upstream-settings b/data/dconf-settings/00-upstream-settings
index 24a7715e..24a7715e 100644
--- a/data/00-upstream-settings
+++ b/data/dconf-settings/00-upstream-settings
diff --git a/data/00-upstream-settings-locks b/data/dconf-settings/locks/00-upstream-settings-locks
index 830a729c..830a729c 100644
--- a/data/00-upstream-settings-locks
+++ b/data/dconf-settings/locks/00-upstream-settings-locks