summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@redhat.com>2013-02-06 16:02:06 +0100
committerTomas Bzatek <tbzatek@redhat.com>2013-02-06 16:08:08 +0100
commit657330aa51ec65b9e5c247365bf5eb067ef62915 (patch)
tree5a90ff3553e17e0d2cc4e7fa22a5cc58885ac0bb /client
parent4c37c7263682e99ed57e22b001ca5dd71c21e240 (diff)
downloadgvfs-657330aa51ec65b9e5c247365bf5eb067ef62915.tar.gz
fuse: Install systemd tmpfiles.d exclusion file
We need to tell systemd to stay out of our fuse mounts before any data are destroyed. This patch reuses libsystemd-login detection as long as there is no general header or pkg-config file in systemd. https://bugzilla.redhat.com/show_bug.cgi?id=902743 https://bugs.archlinux.org/task/32715 https://bugzilla.gnome.org/show_bug.cgi?id=560658
Diffstat (limited to 'client')
-rw-r--r--client/Makefile.am15
-rw-r--r--client/gvfsd-fuse-tmpfiles.conf14
2 files changed, 29 insertions, 0 deletions
diff --git a/client/Makefile.am b/client/Makefile.am
index 5613d58f..356bb578 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -81,4 +81,19 @@ gvfsd_fuse_LDADD = \
$(top_builddir)/common/libgvfscommon.la \
$(GLIB_LIBS) $(FUSE_LIBS)
+
+# FIXME: reusing USE_LIBSYSTEMD_LOGIN as systemd has no universal header or pkg-config file
+if USE_LIBSYSTEMD_LOGIN
+
+# FIXME: hardcoded path (systemd doesn't use lib64)
+tmpfilesddir = $(prefix)/lib/tmpfiles.d
+tmpfilesd_DATA = gvfsd-fuse-tmpfiles.conf
+
+endif
+
endif
+
+
+EXTRA_DIST = \
+ gvfsd-fuse-tmpfiles.conf \
+ $(NULL)
diff --git a/client/gvfsd-fuse-tmpfiles.conf b/client/gvfsd-fuse-tmpfiles.conf
new file mode 100644
index 00000000..d808f2eb
--- /dev/null
+++ b/client/gvfsd-fuse-tmpfiles.conf
@@ -0,0 +1,14 @@
+# This is a systemd tmpfiles.d configuration file
+#
+# tmpfiles.d defaults are set to clean /run/user every now and then
+# which includes our gvfs-fuse mount being mounted in /run/user/<id>/gvfs
+#
+# This file adds an exclusion rule so that user data don't get automatically
+# cleaned up (i.e. destroyed).
+#
+# Due to our fuse mount restrictions root can't access nor stat the mountpoint
+# resulting in warning spitted out by the systemd-tmpfiles process. Please
+# ignore it for the time being until proper solution is found:
+# https://bugzilla.gnome.org/show_bug.cgi?id=560658
+
+x /run/user/*/gvfs