summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhaedrus Leeds <matthew.leeds@endlessm.com>2020-09-11 11:48:21 -0700
committerPhaedrus Leeds <matthew.leeds@endlessm.com>2020-09-11 12:06:29 -0700
commit82d37ba3a4d7aa7bfcf158d648ea841f2e480e2e (patch)
tree2c884b4cd65d01c83b15fc8f11a907340aaea3af
parentbf6f4cebf5a1491c8434400eb09e6eabbe691110 (diff)
downloadflatpak-fix-sideload-repos-dir.tar.gz
sideload-repos-systemd: Use systemd-tmpfilesfix-sideload-repos-dir
Instead of using a systemd service to create the directory we need for sideloading (/run/flatpak/sideload-repos), use a systemd-tmpfiles conf file. This is more elegant, and the service also had a bug which meant it would create a "/run/flatpak;" directory instead of the one intended. Since systemd-tmpfiles-setup.service runs before sysinit.target and path units are run after sysinit.target, the tmp directory should be in place when flatpak-sideload-usb-repo.path runs in the systemd user instance. Endless OS already has a file at /lib/tmpfiles.d/flatpak.conf, so we can't use that filename.
-rw-r--r--sideload-repos-systemd/Makefile.am.inc8
-rw-r--r--sideload-repos-systemd/flatpak-sideload-repos-dir.service15
-rw-r--r--sideload-repos-systemd/tmpfiles.d/flatpak-sideload-repos.conf1
3 files changed, 6 insertions, 18 deletions
diff --git a/sideload-repos-systemd/Makefile.am.inc b/sideload-repos-systemd/Makefile.am.inc
index 87cf725e..b1bbc385 100644
--- a/sideload-repos-systemd/Makefile.am.inc
+++ b/sideload-repos-systemd/Makefile.am.inc
@@ -8,11 +8,13 @@ systemduserunit_DATA += sideload-repos-systemd/flatpak-sideload-usb-repo.service
path_in_files = sideload-repos-systemd/flatpak-sideload-usb-repo.path.in
systemduserunit_DATA += sideload-repos-systemd/flatpak-sideload-usb-repo.path
-systemdsystemunit_DATA += sideload-repos-systemd/flatpak-sideload-repos-dir.service
-
%.path: %.path.in config.log
$(AM_V_GEN) $(SED) -e "s|\@media_dir\@|$(RUN_MEDIA_DIR)|" $< > $@
+tmpfilesdir = $(prefix)/lib/tmpfiles.d
+dist_tmpfiles_DATA = sideload-repos-systemd/tmpfiles.d/flatpak-sideload-repos.conf
+
endif
-EXTRA_DIST += sideload-repos-systemd/flatpak-sideload-usb-repo.path.in sideload-repos-systemd/flatpak-sideload-usb-repo.service.in sideload-repos-systemd/flatpak-sideload-repos-dir.service
+EXTRA_DIST += sideload-repos-systemd/flatpak-sideload-usb-repo.path.in sideload-repos-systemd/flatpak-sideload-usb-repo.service.in
+
diff --git a/sideload-repos-systemd/flatpak-sideload-repos-dir.service b/sideload-repos-systemd/flatpak-sideload-repos-dir.service
deleted file mode 100644
index cca23b01..00000000
--- a/sideload-repos-systemd/flatpak-sideload-repos-dir.service
+++ /dev/null
@@ -1,15 +0,0 @@
-# This unit is intended to be installed in the systemd system instance, so that
-# flatpak-sideload-usb-repo.{path,service} can work in the user instance
-[Service]
-Type=oneshot
-ExecStart=/bin/mkdir -p /run/flatpak; /bin/mkdir -p -m 777 /run/flatpak/sideload-repos
-
-[Unit]
-# Use basic.target to guarantee we run before flatpak-sideload-usb-repos.path
-# in the user systemd instance
-Before=basic.target
-After=sysinit.target
-DefaultDependencies=no
-
-[Install]
-WantedBy=basic.target
diff --git a/sideload-repos-systemd/tmpfiles.d/flatpak-sideload-repos.conf b/sideload-repos-systemd/tmpfiles.d/flatpak-sideload-repos.conf
new file mode 100644
index 00000000..fa73dd8d
--- /dev/null
+++ b/sideload-repos-systemd/tmpfiles.d/flatpak-sideload-repos.conf
@@ -0,0 +1 @@
+D /run/flatpak/sideload-repos 0777 - - -