Migrate to /usr.
authorMichał Górny <mgorny@gentoo.org>
Fri, 6 Jan 2012 10:19:44 +0000 (10:19 +0000)
committerMichał Górny <mgorny@gentoo.org>
Fri, 6 Jan 2012 10:19:44 +0000 (10:19 +0000)
Package-Manager: portage-2.2.0_alpha84/cvs/Linux x86_64

sys-apps/systemd/ChangeLog
sys-apps/systemd/Manifest
sys-apps/systemd/files/update-etc-systemd-symlinks.path [new file with mode: 0644]
sys-apps/systemd/files/update-etc-systemd-symlinks.service [new file with mode: 0644]
sys-apps/systemd/files/update-etc-systemd-symlinks.sh [new file with mode: 0755]
sys-apps/systemd/systemd-29-r3.ebuild
sys-apps/systemd/systemd-29-r4.ebuild [new file with mode: 0644]
sys-apps/systemd/systemd-37-r1.ebuild
sys-apps/systemd/systemd-37-r2.ebuild [new file with mode: 0644]

index 859dc2aafe7915eac694e4ff3dcda55d4f2b7518..27b5d2f4bc1a4ecf9106270901982e2403a3582a 100644 (file)
@@ -1,6 +1,16 @@
 # ChangeLog for sys-apps/systemd
-# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/ChangeLog,v 1.16 2011/12/12 08:17:37 mgorny Exp $
+# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/ChangeLog,v 1.17 2012/01/06 10:19:43 mgorny Exp $
+
+*systemd-37-r2 (06 Jan 2012)
+*systemd-29-r4 (06 Jan 2012)
+
+  06 Jan 2012; Michał Górny <mgorny@gentoo.org> systemd-29-r3.ebuild,
+  +systemd-29-r4.ebuild, systemd-37-r1.ebuild, +systemd-37-r2.ebuild,
+  +files/update-etc-systemd-symlinks.path,
+  +files/update-etc-systemd-symlinks.service,
+  +files/update-etc-systemd-symlinks.sh:
+  Migrate to /usr.
 
 *systemd-37-r1 (12 Dec 2011)
 *systemd-29-r3 (12 Dec 2011)
index 7fe2aee605c1a04d8249b33edda717b188a51c1c..e83115b00399bd2fff87f423bcd7018ab08883ff 100644 (file)
@@ -2,18 +2,23 @@
 Hash: SHA256
 
 AUX gentoo-run.conf 226 RMD160 3bea7b3d3fe3b3589d8bfdeaf52112ab46a67e82 SHA1 521d0d3ff408905075f42b3b00ccc77da2355c6a SHA256 a23fa3b35b4e9d5f1c41dc77cb5be1cec492eb903a57472df3d93a053db28ca7
+AUX update-etc-systemd-symlinks.path 119 RMD160 b2512605a2313af9fca6b611a32b66e2c435577a SHA1 70ddad85c6981b9a0a81f1d0f84f4b039951c543 SHA256 4dbbe99fdc4b7922ad6fb4c6f39c975a4b139e04b04a65e3c79650b364fdc02a
+AUX update-etc-systemd-symlinks.service 165 RMD160 aab6eb2ff82ae82be72c12682fda2bc62d7b2e51 SHA1 6a766b8ef0a97290431756c8bbabf242447c632e SHA256 77f199392367cefc6d70110b955fb5f2ebafaf21ea8ca355b1863a44f130bf69
+AUX update-etc-systemd-symlinks.sh 451 RMD160 94066bbc526f108e2a3a49ad3b8dc52eb1ed4ad7 SHA1 9ad3fa9e5bef1b7d10a54101ddedb299d0f875a7 SHA256 1ed27cf8c2ca5ab862b9d935eec613d1a21ceb4cc363a4bfdac6430387e350df
 DIST systemd-29.tar.bz2 810407 RMD160 49cf7906a768217190cdf61d102058b9c8762d40 SHA1 5dc36e8d900085af31a96a6bafaba228bc8225c7 SHA256 c41153c3ebab9e25b16fa1670946ce6dfdd1515608a37eedd80d2bbe46629971
 DIST systemd-37.tar.bz2 931101 RMD160 d0b15083fe938039972f38a30c757ed8b10a5998 SHA1 02665bcb8c609193170579537c3a94013519405c SHA256 b38492bde73649cc3520953354ef446c268169c1d342614183655e9ee1a1bbc5
-EBUILD systemd-29-r3.ebuild 4090 RMD160 54a9ffd044e8a3d4ae2aa9fe914bade644a4d4da SHA1 8a5c817b08bc2c2247a5c0c071fa13dc73d42197 SHA256 1ccb73077ebfb92ad85a3a001fb00e2a1b69f41b95f2badc80a636fa6203c075
-EBUILD systemd-37-r1.ebuild 4107 RMD160 18a4a060af9b95cf9e9751f8ef456999f44293b9 SHA1 82f8a20e2fce1f6aedfd0cecd91eb410d9bd9614 SHA256 a75100d382b03e29e82a2fc9af1807e94af0f62fb1d74bbf53a4234ef89a72ec
-MISC ChangeLog 2962 RMD160 d9a4360dc9f70e8be717c30cbf348ae10ae75f89 SHA1 39e1a83513a9a242bab13987c3fb6fd9702fd224 SHA256 4f1ccf5046f0b4e1adfa4da5df8e45a3f7752c3ead6cec433c4786373e424c24
+EBUILD systemd-29-r3.ebuild 4156 RMD160 e8e2c538b561bc98b339d4c6db34ddde6b26b67e SHA1 11a01d9ea81b142b952e3e8490a1695965c0417c SHA256 1936747e42a9af19eb62b6ca62811d9e5df337afb8499b59056183f0c77090db
+EBUILD systemd-29-r4.ebuild 4924 RMD160 5208d5c5df8902273dbc9c4d953c1cb5470e2f06 SHA1 4ef93a1fa059b06153c169ee87521118eed5b9d9 SHA256 c1d2af99c2399b27544230871bc55d54f48ef6003703334973f898567ef0186e
+EBUILD systemd-37-r1.ebuild 4173 RMD160 9faa7b2ba5a70378b635aa76e542881ecdba9a0a SHA1 fc570db8a8a56e0c04b1a813e841711229f6f3e2 SHA256 105ad32ee8d080835d6a7648024f913b6eaee183a2daf022d56e1b367481f10e
+EBUILD systemd-37-r2.ebuild 4941 RMD160 0a98064af7b0805a8522008ab355eb3c603bd012 SHA1 633a4125dfe317341f0250bf699fe54781489698 SHA256 517ffd58ca6316a6382db8665c1cd13e66e292591f06b7998c115340194334c3
+MISC ChangeLog 3313 RMD160 573909e9ff5d2fc69116bbaaff2990de607fb95e SHA1 6dd2d5a13039e963af6d3508542a1216244dedc9 SHA256 4dc75bfa206ae9841e9be2be092d896c8c3420ce5e634b5bdd503ebc6f00537b
 MISC metadata.xml 502 RMD160 1cbf039eefa26495068305b7a3ef801b04904561 SHA1 70e619acb0be857af4f668555b5405b1c0fa8d2b SHA256 c4e473de103cd2168c5730797a9835d88c675456b2743af3dcc33c65c4d1ea7f
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.18 (GNU/Linux)
 
-iJwEAQEIAAYFAk7luNsACgkQfXuS5UK5QB179AP/QLtSk6AENyU2dcV476TDBSMR
-9itxdfCm0Y3FCgJ3U2W51P3mPzfxNmIJyyTBLtavTb9IJtP/yn+/dU/C1OvDhVEK
-36czYyZO9nJvjnR+4j8cqodnq5h9JEbSiGq+fvXaU98WgMdO5Iur7/eIM0HjkCSR
-F6oSzGUDNYI3ZLp8Sfc=
-=tU5F
+iJwEAQEIAAYFAk8GyxoACgkQfXuS5UK5QB0lswP/U6CA4BmYyHz0cCq9heK3GV5n
+AWwm+WCao0mf34t60gLtNokzqID9uRBH9V54WiIeGlyQZTfolN81dG5qUEPUtTpU
+WY7Hu91EnLkdk8TXBzj5OCrIUncqJftuZYT2hLG9XtXZKc1RCjDYXjwYGOcexIKl
+KeFSZykP/kQv0LxeCNk=
+=WMHs
 -----END PGP SIGNATURE-----
diff --git a/sys-apps/systemd/files/update-etc-systemd-symlinks.path b/sys-apps/systemd/files/update-etc-systemd-symlinks.path
new file mode 100644 (file)
index 0000000..33a9576
--- /dev/null
@@ -0,0 +1,5 @@
+[Unit]
+Description=Update /etc/systemd/system symlinks for units moved to /usr
+
+[Path]
+PathChanged=/lib/systemd/system
diff --git a/sys-apps/systemd/files/update-etc-systemd-symlinks.service b/sys-apps/systemd/files/update-etc-systemd-symlinks.service
new file mode 100644 (file)
index 0000000..c05a194
--- /dev/null
@@ -0,0 +1,6 @@
+[Unit]
+Description=Update /etc/systemd/system symlinks for units moved to /usr
+
+[Service]
+Type=oneshot
+ExecStart=/usr/libexec/systemd/update-etc-systemd-symlinks.sh
diff --git a/sys-apps/systemd/files/update-etc-systemd-symlinks.sh b/sys-apps/systemd/files/update-etc-systemd-symlinks.sh
new file mode 100755 (executable)
index 0000000..ce81bba
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh
+# Update symlinks to systemd units moved into /usr/systemd.
+# (c) 2012 Michał Górny
+# Released under the terms of the 2-clause BSD license
+
+IFS_SAVE=${IFS}
+IFS='
+'
+# follow + symlink type will match broken symlinks only
+set -- $(find -L /etc/systemd/system -type l -print)
+IFS=${IFS_SAVE}
+
+for f; do
+       old_path=$(readlink "${f}")
+       new_path=/usr/lib${old_path#/lib}
+       if [ -f "${new_path}" ]; then
+               ln -v -s -f "${new_path}" "${f}"
+       fi
+done
index 3cb1a89cb0520ca101c8925544962beb07b871d3..5bb1c567d3bf52de5603e0a4e8f03b03a9f022ad 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2011 Gentoo Foundation
+# Copyright 1999-2012 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-29-r3.ebuild,v 1.1 2011/12/12 08:17:37 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-29-r3.ebuild,v 1.2 2012/01/06 10:19:43 mgorny Exp $
 
 EAPI=4
 
@@ -40,8 +40,10 @@ MINKV="2.6.38"
 # dbus, udev versions because of systemd units
 # blocker on old packages to avoid collisions with above
 # openrc blocker to avoid udev rules starting openrc scripts
+# systemd blocker due to /usr migration
 RDEPEND="${COMMON_DEPEND}
-       !<sys-apps/openrc-0.8.3"
+       !<sys-apps/openrc-0.8.3
+       !=sys-apps/systemd-29-r4"
 DEPEND="${COMMON_DEPEND}
        gtk? ( dev-lang/vala:${VALASLOT} )
        >=sys-kernel/linux-headers-${MINKV}"
diff --git a/sys-apps/systemd/systemd-29-r4.ebuild b/sys-apps/systemd/systemd-29-r4.ebuild
new file mode 100644 (file)
index 0000000..11cd763
--- /dev/null
@@ -0,0 +1,168 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-29-r4.ebuild,v 1.1 2012/01/06 10:19:43 mgorny Exp $
+
+EAPI=4
+
+inherit autotools-utils bash-completion-r1 linux-info pam systemd
+
+DESCRIPTION="System and service manager for Linux"
+HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd"
+SRC_URI="http://www.freedesktop.org/software/systemd/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="audit cryptsetup gtk pam plymouth selinux tcpd"
+
+COMMON_DEPEND=">=sys-apps/dbus-1.4.10
+       >=sys-apps/util-linux-2.19
+       >=sys-fs/udev-171
+       sys-libs/libcap
+       audit? ( >=sys-process/audit-2 )
+       cryptsetup? ( sys-fs/cryptsetup )
+       gtk? (
+               dev-libs/dbus-glib
+               >=dev-libs/glib-2.26
+               x11-libs/gtk+:2
+               >=x11-libs/libnotify-0.7 )
+       pam? ( virtual/pam )
+       plymouth? ( sys-boot/plymouth )
+       selinux? ( sys-libs/libselinux )
+       tcpd? ( sys-apps/tcp-wrappers )"
+
+# Vala-0.10 doesn't work with libnotify 0.7.1
+VALASLOT="0.14"
+# A little higher than upstream requires
+# but I had real trouble with 2.6.37 and systemd.
+MINKV="2.6.38"
+
+# dbus, udev versions because of systemd units
+# blocker on old packages to avoid collisions with above
+# openrc blocker to avoid udev rules starting openrc scripts
+RDEPEND="${COMMON_DEPEND}
+       !<sys-apps/openrc-0.8.3"
+DEPEND="${COMMON_DEPEND}
+       gtk? ( dev-lang/vala:${VALASLOT} )
+       >=sys-kernel/linux-headers-${MINKV}"
+
+# Due to vala being broken.
+AUTOTOOLS_IN_SOURCE_BUILD=1
+
+pkg_setup() {
+       enewgroup lock # used by var-lock.mount
+       enewgroup tty 5 # used by mount-setup for /dev/pts
+}
+
+src_prepare() {
+       # Force the rebuild of .vala sources
+       touch src/*.vala || die
+
+       # Fix hardcoded path in .vala.
+       sed -i -e 's:/lib/systemd:/usr/lib/systemd:g' src/*.vala || die
+
+       autotools-utils_src_prepare
+}
+
+src_configure() {
+       local myeconfargs=(
+               --with-distro=gentoo
+               --with-rootdir=/usr
+               --localstatedir=/var
+               --docdir=/tmp/docs
+               $(use_enable audit)
+               $(use_enable cryptsetup libcryptsetup)
+               $(use_enable gtk)
+               $(use_enable pam)
+               $(use_enable selinux)
+               $(use_enable tcpd tcpwrap)
+
+               # right now it is enabled on per-distro basis
+               # let's just hack into the check
+               $(use plymouth && echo have_plymouth=true)
+       )
+
+       if use gtk; then
+               export VALAC="$(type -p valac-${VALASLOT})"
+       fi
+
+       autotools-utils_src_configure
+}
+
+src_install() {
+       autotools-utils_src_install \
+               bashcompletiondir=/tmp
+
+       # compat for init= use
+       dosym ../usr/bin/systemd /bin/systemd
+
+       # move files as necessary
+       newbashcomp "${D}"/tmp/systemctl-bash-completion.sh ${PN}
+       dodoc "${D}"/tmp/docs/*
+       rm -r "${D}"/tmp || die
+
+       # we just keep sysvinit tools, so no need for the mans
+       rm "${D}"/usr/share/man/man8/{halt,poweroff,reboot,runlevel,shutdown,telinit}.8 \
+               || die
+
+       keepdir /run
+
+       # Create /run/lock as required by new baselay/OpenRC compat.
+       insinto /usr/lib/tmpfiles.d
+       doins "${FILESDIR}"/gentoo-run.conf
+
+       # Migration helpers.
+       exeinto /usr/libexec/systemd
+       doexe "${FILESDIR}"/update-etc-systemd-symlinks.sh
+       systemd_dounit "${FILESDIR}"/update-etc-systemd-symlinks.{service,path}
+       systemd_enable_service sysinit.target update-etc-systemd-symlinks.path
+}
+
+pkg_preinst() {
+       local CONFIG_CHECK="~AUTOFS4_FS ~CGROUPS ~DEVTMPFS ~FANOTIFY ~IPV6"
+       kernel_is -ge ${MINKV//./ } || ewarn "Kernel version at least ${MINKV} required"
+       check_extra_config
+}
+
+optfeature() {
+       elog "  [\e[1m$(has_version ${1} && echo I || echo ' ')\e[0m] ${1} (${2})"
+}
+
+pkg_postinst() {
+       if [[ ! -L "${ROOT}"etc/mtab ]]; then
+               ewarn "Upstream suggests that the /etc/mtab file should be a symlink to /proc/mounts."
+               ewarn "It is known to cause users being unable to unmount user mounts. If you don't"
+               ewarn "require that specific feature, please call:"
+               ewarn " $ ln -sf '${ROOT}proc/self/mounts' '${ROOT}etc/mtab'"
+               ewarn
+       fi
+
+       elog "You may need to perform some additional configuration for some programs"
+       elog "to work, see the systemd manpages for loading modules and handling tmpfiles:"
+       elog "  $ man modules-load.d"
+       elog "  $ man tmpfiles.d"
+       elog
+
+       elog "To get additional features, a number of optional runtime dependencies may"
+       elog "be installed:"
+       optfeature 'dev-python/dbus-python' 'for systemd-analyze'
+       optfeature 'dev-python/pycairo[svg]' 'for systemd-analyze plotting ability'
+       elog
+
+       ewarn "Please note this is a work-in-progress and many packages in Gentoo"
+       ewarn "do not supply systemd unit files yet. You are testing it on your own"
+       ewarn "responsibility. Please remember than you can pass:"
+       ewarn " init=/sbin/init"
+       ewarn "to your kernel to boot using sysvinit / OpenRC."
+
+       # Don't run it if we're outta /
+       if [[ ! ${ROOT%/} ]]; then
+               # Update symlinks to moved units.
+               sh "${FILESDIR}"/update-etc-systemd-symlinks.sh
+
+               # Try to start migration unit.
+               ebegin "Trying to start migration helper path monitoring."
+               systemctl --system start update-etc-systemd-symlinks.path 2>/dev/null
+               eend ${?}
+       fi
+}
index c1df28dc5cab1ad60f2a3265756155546a292621..62dc59ae9d2f6b4e2300647e3dc3942585d1758a 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2011 Gentoo Foundation
+# Copyright 1999-2012 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-37-r1.ebuild,v 1.1 2011/12/12 08:17:37 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-37-r1.ebuild,v 1.2 2012/01/06 10:19:43 mgorny Exp $
 
 EAPI=4
 
@@ -41,8 +41,10 @@ MINKV="2.6.38"
 # dbus, udev versions because of systemd units
 # blocker on old packages to avoid collisions with above
 # openrc blocker to avoid udev rules starting openrc scripts
+# systemd blocker due to /usr migration
 RDEPEND="${COMMON_DEPEND}
-       !<sys-apps/openrc-0.8.3"
+       !<sys-apps/openrc-0.8.3
+       !=sys-apps/systemd-29-r4"
 DEPEND="${COMMON_DEPEND}
        dev-util/gperf
        dev-util/intltool
diff --git a/sys-apps/systemd/systemd-37-r2.ebuild b/sys-apps/systemd/systemd-37-r2.ebuild
new file mode 100644 (file)
index 0000000..6a6fc40
--- /dev/null
@@ -0,0 +1,170 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-37-r2.ebuild,v 1.1 2012/01/06 10:19:43 mgorny Exp $
+
+EAPI=4
+
+inherit autotools-utils bash-completion-r1 linux-info pam systemd
+
+DESCRIPTION="System and service manager for Linux"
+HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd"
+SRC_URI="http://www.freedesktop.org/software/systemd/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="acl audit cryptsetup gtk pam plymouth selinux tcpd"
+
+COMMON_DEPEND=">=sys-apps/dbus-1.4.10
+       >=sys-apps/util-linux-2.19
+       >=sys-fs/udev-172
+       sys-libs/libcap
+       acl? ( sys-apps/acl )
+       audit? ( >=sys-process/audit-2 )
+       cryptsetup? ( sys-fs/cryptsetup )
+       gtk? (
+               dev-libs/dbus-glib
+               >=dev-libs/glib-2.26
+               x11-libs/gtk+:2
+               >=x11-libs/libnotify-0.7 )
+       pam? ( virtual/pam )
+       plymouth? ( sys-boot/plymouth )
+       selinux? ( sys-libs/libselinux )
+       tcpd? ( sys-apps/tcp-wrappers )"
+
+# Vala-0.10 doesn't work with libnotify 0.7.1
+VALASLOT="0.12"
+# A little higher than upstream requires
+# but I had real trouble with 2.6.37 and systemd.
+MINKV="2.6.38"
+
+# dbus, udev versions because of systemd units
+# blocker on old packages to avoid collisions with above
+# openrc blocker to avoid udev rules starting openrc scripts
+RDEPEND="${COMMON_DEPEND}
+       !<sys-apps/openrc-0.8.3"
+DEPEND="${COMMON_DEPEND}
+       dev-util/gperf
+       dev-util/intltool
+       gtk? ( dev-lang/vala:${VALASLOT} )
+       >=sys-kernel/linux-headers-${MINKV}"
+
+# Due to vala being broken.
+AUTOTOOLS_IN_SOURCE_BUILD=1
+
+pkg_setup() {
+       enewgroup lock # used by var-lock.mount
+       enewgroup tty 5 # used by mount-setup for /dev/pts
+}
+
+src_prepare() {
+       # Force the rebuild of .vala sources
+       touch src/*.vala || die
+
+       # Fix hardcoded path in .vala.
+       sed -i -e 's:/lib/systemd:/usr/lib/systemd:g' src/*.vala || die
+
+       autotools-utils_src_prepare
+}
+
+src_configure() {
+       local myeconfargs=(
+               --with-distro=gentoo
+               --with-rootdir=/usr
+               --with-rootlibdir=/usr/$(get_libdir)
+               --localstatedir=/var
+               --docdir=/tmp/docs
+               $(use_enable acl)
+               $(use_enable audit)
+               $(use_enable cryptsetup libcryptsetup)
+               $(use_enable gtk)
+               $(use_enable pam)
+               $(use_enable plymouth)
+               $(use_enable selinux)
+               $(use_enable tcpd tcpwrap)
+       )
+
+       if use gtk; then
+               export VALAC="$(type -p valac-${VALASLOT})"
+       fi
+
+       autotools-utils_src_configure
+}
+
+src_install() {
+       autotools-utils_src_install \
+               bashcompletiondir=/tmp
+
+       # compat for init= use
+       dosym ../usr/bin/systemd /bin/systemd
+
+       # move files as necessary
+       newbashcomp "${D}"/tmp/systemctl-bash-completion.sh ${PN}
+       dodoc "${D}"/tmp/docs/*
+       rm -r "${D}"/tmp || die
+
+       # we just keep sysvinit tools, so no need for the mans
+       rm "${D}"/usr/share/man/man8/{halt,poweroff,reboot,runlevel,shutdown,telinit}.8 \
+               || die
+
+       keepdir /run
+
+       # Create /run/lock as required by new baselay/OpenRC compat.
+       insinto /usr/lib/tmpfiles.d
+       doins "${FILESDIR}"/gentoo-run.conf
+
+       # Migration helpers.
+       exeinto /usr/libexec/systemd
+       doexe "${FILESDIR}"/update-etc-systemd-symlinks.sh
+       systemd_dounit "${FILESDIR}"/update-etc-systemd-symlinks.{service,path}
+       systemd_enable_service sysinit.target update-etc-systemd-symlinks.path
+}
+
+pkg_preinst() {
+       local CONFIG_CHECK="~AUTOFS4_FS ~CGROUPS ~DEVTMPFS ~FANOTIFY ~IPV6"
+       kernel_is -ge ${MINKV//./ } || ewarn "Kernel version at least ${MINKV} required"
+       check_extra_config
+}
+
+optfeature() {
+       elog "  [\e[1m$(has_version ${1} && echo I || echo ' ')\e[0m] ${1} (${2})"
+}
+
+pkg_postinst() {
+       if [[ ! -L "${ROOT}"etc/mtab ]]; then
+               ewarn "Upstream suggests that the /etc/mtab file should be a symlink to /proc/mounts."
+               ewarn "It is known to cause users being unable to unmount user mounts. If you don't"
+               ewarn "require that specific feature, please call:"
+               ewarn " $ ln -sf '${ROOT}proc/self/mounts' '${ROOT}etc/mtab'"
+               ewarn
+       fi
+
+       elog "You may need to perform some additional configuration for some programs"
+       elog "to work, see the systemd manpages for loading modules and handling tmpfiles:"
+       elog "  $ man modules-load.d"
+       elog "  $ man tmpfiles.d"
+       elog
+
+       elog "To get additional features, a number of optional runtime dependencies may"
+       elog "be installed:"
+       optfeature 'dev-python/dbus-python' 'for systemd-analyze'
+       optfeature 'dev-python/pycairo[svg]' 'for systemd-analyze plotting ability'
+       elog
+
+       ewarn "Please note this is a work-in-progress and many packages in Gentoo"
+       ewarn "do not supply systemd unit files yet. You are testing it on your own"
+       ewarn "responsibility. Please remember than you can pass:"
+       ewarn " init=/sbin/init"
+       ewarn "to your kernel to boot using sysvinit / OpenRC."
+
+       # Don't run it if we're outta /
+       if [[ ! ${ROOT%/} ]]; then
+               # Update symlinks to moved units.
+               sh "${FILESDIR}"/update-etc-systemd-symlinks.sh
+
+               # Try to start migration unit.
+               ebegin "Trying to start migration helper path monitoring."
+               systemctl --system start update-etc-systemd-symlinks.path 2>/dev/null
+               eend ${?}
+       fi
+}