summaryrefslogtreecommitdiffstats
path: root/wiki/src/contribute/design/persistence.mdwn
diff options
context:
space:
mode:
authorAlan <alan@boum.org>2017-12-15 16:15:35 +0000
committerAlan <alan@boum.org>2017-12-15 16:16:24 +0000
commitbde4166a7239336f1730f1025d5d09f53c800064 (patch)
treec728251b9e4f82adee24fa243fff440c3e185a84 /wiki/src/contribute/design/persistence.mdwn
parent31a996d7eaa386e943da04d25411f17bd07a5537 (diff)
Update design documentation about additional software packages
Diffstat (limited to 'wiki/src/contribute/design/persistence.mdwn')
-rw-r--r--wiki/src/contribute/design/persistence.mdwn26
1 files changed, 16 insertions, 10 deletions
diff --git a/wiki/src/contribute/design/persistence.mdwn b/wiki/src/contribute/design/persistence.mdwn
index 2f9c0a2..cdfd4c9 100644
--- a/wiki/src/contribute/design/persistence.mdwn
+++ b/wiki/src/contribute/design/persistence.mdwn
@@ -346,16 +346,22 @@ have correct access rights: owned by
`tails-persistence-setup:tails-persistence-setup`, and not be writable
by anyone else than the `tails-persistence-setup` user.
-First, those additional software packages are installed offline from tails-greeter
-`PostLogin` script.
-
-Then, once connected to the network, a NetworkManager dispatcher hook looks for
-upgrades if additional software were activated (`apt update`, then `apt
-install` the additional software packages). For some packages (e.g. already
-running software) the change will only be effective at next boot but hopefully a outdated
-version won't be used too long in the meantime.
-
-- [PostLogin](https://git-tails.immerda.ch/greeter/plain/PostLogin.default)
+First, those additional software packages are installed offline by a systemd
+user unit triggered by desktop.target. It starts a system unit of the same
+name, which itself calls Additional Software Packages installation.
+
+Then, once connected to the network, a NetworkManager dispatcher hook triggers
+a systemd system unit which looks for upgrades if additional software were
+activated (`apt update`, then `apt install` the additional software packages).
+For some packages (e.g. already running software) the change will only be
+effective at next boot but hopefully a outdated version won't be used too long
+in the meantime. To ensure that the upgrade started by a NetworkManager hook is
+not racy with the installation, systemd unit is ordered after the installation,
+and waits for its state file to appear.
+
+- [[!tails_gitweb config/chroot_local-includes/usr/lib/systemd/user/tails-additional-software-install.service]]
+- [[!tails_gitweb config/chroot_local-includes/lib/systemd/system/tails-additional-software-install.service]]
+- [[!tails_gitweb config/chroot_local-includes/lib/systemd/system/tails-additional-software-upgrade.service]]
- [[!tails_gitweb config/chroot_local-includes/etc/NetworkManager/dispatcher.d/70-upgrade-additional-software.sh]]
- [[!tails_gitweb config/chroot_local-includes/usr/local/sbin/tails-additional-software]]