Blob Blame History Raw
From 657330aa51ec65b9e5c247365bf5eb067ef62915 Mon Sep 17 00:00:00 2001
From: Tomas Bzatek <tbzatek@redhat.com>
Date: Wed, 06 Feb 2013 15:02:06 +0000
Subject: 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
---
diff --git a/client/Makefile.am b/client/Makefile.am
index 5613d58..356bb57 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 0000000..d808f2e
--- a/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
--
cgit v0.9.0.2