From 82d37ba3a4d7aa7bfcf158d648ea841f2e480e2e Mon Sep 17 00:00:00 2001 From: Phaedrus Leeds Date: Fri, 11 Sep 2020 11:48:21 -0700 Subject: sideload-repos-systemd: Use systemd-tmpfiles 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. --- sideload-repos-systemd/Makefile.am.inc | 8 +++++--- sideload-repos-systemd/flatpak-sideload-repos-dir.service | 15 --------------- .../tmpfiles.d/flatpak-sideload-repos.conf | 1 + 3 files changed, 6 insertions(+), 18 deletions(-) delete mode 100644 sideload-repos-systemd/flatpak-sideload-repos-dir.service create mode 100644 sideload-repos-systemd/tmpfiles.d/flatpak-sideload-repos.conf 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 - - - -- cgit v1.2.1