summaryrefslogtreecommitdiff
path: root/sys-apps/systemd/systemd-9999.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/systemd/systemd-9999.ebuild')
-rw-r--r--sys-apps/systemd/systemd-9999.ebuild32
1 files changed, 22 insertions, 10 deletions
diff --git a/sys-apps/systemd/systemd-9999.ebuild b/sys-apps/systemd/systemd-9999.ebuild
index 852df051610d..c167a2fd0b76 100644
--- a/sys-apps/systemd/systemd-9999.ebuild
+++ b/sys-apps/systemd/systemd-9999.ebuild
@@ -336,16 +336,6 @@ multilib_src_install_all() {
# Symlink /etc/sysctl.conf for easy migration.
dosym ../sysctl.conf /etc/sysctl.d/99-sysctl.conf
- # If we install these symlinks, there is no way for the sysadmin to remove them
- # permanently.
- rm -f "${ED}"/etc/systemd/system/multi-user.target.wants/systemd-networkd.service || die
- rm -f "${ED}"/etc/systemd/system/dbus-org.freedesktop.network1.service || die
- rm -f "${ED}"/etc/systemd/system/multi-user.target.wants/systemd-resolved.service || die
- rm -f "${ED}"/etc/systemd/system/dbus-org.freedesktop.resolve1.service || die
- rm -fr "${ED}"/etc/systemd/system/network-online.target.wants || die
- rm -fr "${ED}"/etc/systemd/system/sockets.target.wants || die
- rm -fr "${ED}"/etc/systemd/system/sysinit.target.wants || die
-
local udevdir=/lib/udev
use split-usr || udevdir=/usr/lib/udev
@@ -402,6 +392,20 @@ migrate_locale() {
fi
}
+save_enabled_units() {
+ ENABLED_UNITS=()
+ type systemctl &>/dev/null || return
+ for x; do
+ if systemctl --quiet --root="${ROOT:-/}" is-enabled "${x}"; then
+ ENABLED_UNITS+=( "${x}" )
+ fi
+ done
+}
+
+pkg_preinst() {
+ save_enabled_units {machines,remote-{cryptsetup,fs}}.target getty@tty1.service
+}
+
pkg_postinst() {
newusergroup() {
enewgroup "$1"
@@ -437,6 +441,14 @@ pkg_postinst() {
systemd_reenable systemd-networkd.service systemd-resolved.service
+ if [[ ${ENABLED_UNITS[@]} ]]; then
+ systemctl --root="${ROOT:-/}" enable "${ENABLED_UNITS[@]}"
+ fi
+
+ if [[ -L ${EROOT}/var/lib/systemd/timesync ]]; then
+ rm "${EROOT}/var/lib/systemd/timesync"
+ fi
+
if [[ -z ${ROOT} && -d /run/systemd/system ]]; then
ebegin "Reexecuting system manager"
systemctl daemon-reexec