diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-12-17 09:07:15 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-12-17 09:07:15 +0000 |
commit | 9bd54251864651f49e673a08aec9ef79cfe08f04 (patch) | |
tree | bac28788ab54849c5d28edb190a687167737e736 /sys-apps/systemd | |
parent | 6b933047f46efec1aa747570f945344254227457 (diff) |
gentoo resync : 17.12.2017
Diffstat (limited to 'sys-apps/systemd')
-rw-r--r-- | sys-apps/systemd/Manifest | 6 | ||||
-rw-r--r-- | sys-apps/systemd/metadata.xml | 8 | ||||
-rw-r--r-- | sys-apps/systemd/systemd-236.ebuild | 434 | ||||
-rw-r--r-- | sys-apps/systemd/systemd-9999.ebuild | 5 |
4 files changed, 445 insertions, 8 deletions
diff --git a/sys-apps/systemd/Manifest b/sys-apps/systemd/Manifest index 113b2717ca1b..0a5cb69c6f58 100644 --- a/sys-apps/systemd/Manifest +++ b/sys-apps/systemd/Manifest @@ -17,9 +17,11 @@ AUX nsswitch.conf 698 BLAKE2B ad209377afa4bea6383dba80b045c3905e6e0c0cd091c6710f DIST systemd-233-man.tar.gz 31386 BLAKE2B e4947e658db3efeec6b5a6adf340d2cc8e8aff2a14db4932720f90c3dc898b1e78595db983948373a2e28191fb3b0aad234f80feb91ee8ae4b607a44038a9cae SHA512 cc5215d3590ffc3c9203a64c14d6adeb0148c421c1396b8c1e43dcb58763b687ce99bdee327dd8a00abab7198171e73b22109a3f2032e4cec6adf2dcc85acf40 DIST systemd-233.tar.gz 4660737 BLAKE2B 38cdd74543447b3c02391b328428fed169fe2cf2df6e9341dcaf2f7d3d977612ec102301e144c1cada90d61e9e9bda3b2faaef708c8ff4bd0b52b143760a83b2 SHA512 5ad5329ea116d973cf67096f7e7ad28e9ea0905696e9451291f1d25e5064f4a9bfcfae87e912996c6a38397e9f4a148d4ccecfa9b70f7ecdf04deadb61784c8e DIST systemd-235.tar.gz 6586406 BLAKE2B f2e46a6c51fc9445800c4b7eee66f23ae83b42c2fedf2304acf612e6cb99122afe67f1b93cf72ed022b52384975afb92ab38cfb4efc6026384602c973d2eb98e SHA512 243f2eb5340fa37dd1286eaa63e83387bda9e03953af266cd6196a37535a13491482caf14c6ab10608bba4ed23b6c41923608e52017e0c26988ed72ddd2b9993 +DIST systemd-236.tar.gz 6759035 BLAKE2B 0fc26bd67fb6cc3b0565c763fc26e38186c4b05c3d38652b73a2189dfbfb46382dba239f7f6f889eec57ad1d8f69d4098745c8f4ca16a707aa23b7771f2328f3 SHA512 1a9672960e03e05c09e41fb8cfe9b0f25e867fd43f37f8371515ddddfdbd4270afd746a6da733f6d1d3b2cc43db1ecc7a9f2245f2dac2ec233db74e9e70e4f6d EBUILD systemd-233-r4.ebuild 13626 BLAKE2B 42f723d97bd8cdb8bbbfd579026d486f8902e90ec4e6631ed458371bd840f2ed75fa6ea75ecfa7e3aaafea00cab37c59fb9f7474175b6ad31c683b22ef3484f8 SHA512 3527bc62210aba9c50f663d8023440b73ae6185f1a90e6e31a48b6dcc13ac2dc0b312c433cbe74e942cb50ad894d4dd4212d81caf50d17971c9f965cae9535a0 EBUILD systemd-233-r5.ebuild 13669 BLAKE2B e97ff5d66a6c93ba08b8c728d4675454f853b1571ae7b71d297e98c214361533be02c1c190f3ce71cdcac1ab65e7f11162bc2d891f151871baa7380c782f0f6a SHA512 722307b55c7621f119dee2e483bb7271d5a460945bd938adee6e679345a3549eaf060c96493b54e7a5bcb94a2821ce31949cfaeb5b1a43aeef36b673ecc39d7c EBUILD systemd-233-r6.ebuild 13699 BLAKE2B 3ed3402fc222d6ab58406f4c0f92b28864dfaa8af57855148bed7894807ee8598599dcc0a1a13b5eca0776f28e007483c1d45231e629ed950193a5d3b739656e SHA512 8d6f8d99211dbcaa6040657bb7065c2c15b3600f0d5c9e421e7ea3dcd642589679763155dfc80c7cd8ea89ef4afdde3871a2fe70641e49ddf55a7d3908b36751 EBUILD systemd-235-r1.ebuild 13481 BLAKE2B be0a0674aa5a9c151e03311a5e0ea50f6c879cf3ae9bbbbf49eb6a2f9ad8bea5fe65c113583006d69c60b703311881d5038ff79ede1bf91dff3fbd4c856714a3 SHA512 11245b058f3dea86cef8cd852b5cc59ede421c552e4a7e0d22a2666e87bc33e14df68e0029d169dc3f4189d3d25d8e0147eec20d48d9a2f3cc0b9c3c96ab8e99 -EBUILD systemd-9999.ebuild 12674 BLAKE2B 8b18c153ee288ed6f5f8dfc15fa7058977cbff8a7229480cbad9f2bb621f17e54b6f8d52842e3b4bc56deb279fdcc67bcedb3a72541a227b9610356d6d9662a8 SHA512 e3c40c99bc7fdcc3e81f8525ce67c886fc5fd0bc46958784ef44c72fbf0ceb8ed03fb65f0a62e2997585880837a9bd607c7e520633401ca66d685ce32f2815d5 -MISC metadata.xml 2291 BLAKE2B fcb14f27e34bffef70cf44452e9c2a0c303916e7b57a97a9676749e90b0531699864f0a0692a8d67df82dc4a789350aed723e7dce498b5673f421e93c1401b11 SHA512 fc9e28cea024d753d1928e9587b548eee693d3a3ba049e9212c5236d61b3fd9fc1643084bb0c62dbe09f1dbbc5eca38ab127a85540ca886d50072f1bc36a6f01 +EBUILD systemd-236.ebuild 12740 BLAKE2B d4572ae69d701e36447210aae5dc45e838c43aa39d244dd86fba884dab4a5b93a0716a0b123048cd1f4a369222d6ddcfb4621c17f170541cff928471ce0a4db0 SHA512 bb377eec41c240832afc0a40f23ce9ab8d7dd0442f8539672447f3445c988b232ade71fe4949234be8a5e28a89cc956c7a9c59ba932c2641716213380435ab30 +EBUILD systemd-9999.ebuild 12740 BLAKE2B d4572ae69d701e36447210aae5dc45e838c43aa39d244dd86fba884dab4a5b93a0716a0b123048cd1f4a369222d6ddcfb4621c17f170541cff928471ce0a4db0 SHA512 bb377eec41c240832afc0a40f23ce9ab8d7dd0442f8539672447f3445c988b232ade71fe4949234be8a5e28a89cc956c7a9c59ba932c2641716213380435ab30 +MISC metadata.xml 2032 BLAKE2B a554cb3dc21d5c5a5a4227f05f4a91054080999d23022051252f3461fb9c4398112fa1c96982205b4e1709de00ae395706ac46b86ae44610ecf85ededc3ceca7 SHA512 1c97f2c573c63a63d2ed78820d891d9593c5d8636574270c4306dc3c8ce739e52f6829e7e219cc2744acd7f3e2362e340b7c2406923f1aaf9adebc785cdb6544 diff --git a/sys-apps/systemd/metadata.xml b/sys-apps/systemd/metadata.xml index 85e4b806ba6c..c0dbc0de0126 100644 --- a/sys-apps/systemd/metadata.xml +++ b/sys-apps/systemd/metadata.xml @@ -11,14 +11,12 @@ <use> <flag name="apparmor">Enable AppArmor support</flag> <flag name="audit">Enable support for <pkg>sys-process/audit</pkg></flag> - <!-- TODO: drop reference to systemd-import once the oldest release in tree is >218 --> - <flag name="curl">Enable support for uploading journals; required to build systemd-import/systemd-pull</flag> + <flag name="curl">Enable support for uploading journals</flag> <flag name="cryptsetup">Enable cryptsetup tools (includes unit generator for crypttab)</flag> <flag name="doc">Generate systemd.index.7 and systemd.directives.7</flag> <flag name="gnuefi">Enable EFI boot manager and stub loader (built using <pkg>sys-boot/gnu-efi</pkg>)</flag> <flag name="elfutils">Enable coredump stacktraces in the journal</flag> - <!-- TODO: drop reference to systemd-import once the oldest release in tree is >218 --> - <flag name="gcrypt">Enable sealing of journal files using gcrypt; required to build systemd-import/systemd-pull</flag> + <flag name="gcrypt">Enable sealing of journal files using gcrypt</flag> <flag name="http">Enable embedded HTTP server in journald</flag> <flag name="importd">Enable import daemon</flag> <flag name="kmod">Enable kernel module loading via <pkg>sys-apps/kmod</pkg></flag> @@ -27,7 +25,7 @@ <flag name="nat">Enable support for network address translation in networkd</flag> <flag name="qrcode">Enable qrcode output support in journal</flag> <flag name="sysv-utils">Install sysvinit compatibility symlinks and manpages for init, telinit, halt, poweroff, reboot, runlevel, and shutdown</flag> - <flag name="usrmerge">Enable /usr merge</flag> + <flag name="usrmerge">Enable /usr merge (experimental)</flag> <flag name="vanilla">Disable Gentoo-specific behavior and compatibility quirks</flag> <flag name="xkb">Depend on <pkg>x11-libs/libxkbcommon</pkg> to allow logind to control the X11 keymap</flag> </use> diff --git a/sys-apps/systemd/systemd-236.ebuild b/sys-apps/systemd/systemd-236.ebuild new file mode 100644 index 000000000000..e0653a7a84ab --- /dev/null +++ b/sys-apps/systemd/systemd-236.ebuild @@ -0,0 +1,434 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://github.com/systemd/systemd.git" + inherit git-r3 +else + SRC_URI="https://github.com/systemd/systemd/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86" +fi + +PYTHON_COMPAT=( python{3_4,3_5,3_6} ) + +inherit bash-completion-r1 linux-info meson multilib-minimal ninja-utils pam python-any-r1 systemd toolchain-funcs udev user + +DESCRIPTION="System and service manager for Linux" +HOMEPAGE="https://www.freedesktop.org/wiki/Software/systemd" + +LICENSE="GPL-2 LGPL-2.1 MIT public-domain" +SLOT="0/2" +IUSE="acl apparmor audit build cryptsetup curl elfutils +gcrypt gnuefi http idn importd +kmod libidn2 +lz4 lzma nat pam policykit qrcode +seccomp selinux ssl sysv-utils test usrmerge vanilla xkb" + +REQUIRED_USE="importd? ( curl gcrypt lzma )" +RESTRICT="!test? ( test )" + +MINKV="3.11" + +COMMON_DEPEND=">=sys-apps/util-linux-2.30:0=[${MULTILIB_USEDEP}] + sys-libs/libcap:0=[${MULTILIB_USEDEP}] + !<sys-libs/glibc-2.16 + acl? ( sys-apps/acl:0= ) + apparmor? ( sys-libs/libapparmor:0= ) + audit? ( >=sys-process/audit-2:0= ) + cryptsetup? ( >=sys-fs/cryptsetup-1.6:0= ) + curl? ( net-misc/curl:0= ) + elfutils? ( >=dev-libs/elfutils-0.158:0= ) + gcrypt? ( >=dev-libs/libgcrypt-1.4.5:0=[${MULTILIB_USEDEP}] ) + http? ( + >=net-libs/libmicrohttpd-0.9.33:0= + ssl? ( >=net-libs/gnutls-3.1.4:0= ) + ) + idn? ( + libidn2? ( net-dns/libidn2 ) + !libidn2? ( net-dns/libidn ) + ) + importd? ( + app-arch/bzip2:0= + sys-libs/zlib:0= + ) + kmod? ( >=sys-apps/kmod-15:0= ) + lz4? ( >=app-arch/lz4-0_p131:0=[${MULTILIB_USEDEP}] ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1:0=[${MULTILIB_USEDEP}] ) + nat? ( net-firewall/iptables:0= ) + pam? ( virtual/pam:=[${MULTILIB_USEDEP}] ) + qrcode? ( media-gfx/qrencode:0= ) + seccomp? ( >=sys-libs/libseccomp-2.3.1:0= ) + selinux? ( sys-libs/libselinux:0= ) + sysv-utils? ( + !sys-apps/systemd-sysv-utils + !sys-apps/sysvinit ) + xkb? ( >=x11-libs/libxkbcommon-0.4.1:0= ) + abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r9 + !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )" + +# baselayout-2.2 has /run +RDEPEND="${COMMON_DEPEND} + >=sys-apps/baselayout-2.2 + selinux? ( sec-policy/selinux-base-policy[systemd] ) + !build? ( || ( + sys-apps/util-linux[kill(-)] + sys-process/procps[kill(+)] + sys-apps/coreutils[kill(-)] + ) ) + !sys-auth/nss-myhostname + !<sys-kernel/dracut-044 + !sys-fs/eudev + !sys-fs/udev" + +# sys-apps/dbus: the daemon only (+ build-time lib dep for tests) +PDEPEND=">=sys-apps/dbus-1.9.8[systemd] + >=sys-apps/hwids-20150417[udev] + >=sys-fs/udev-init-scripts-25 + policykit? ( sys-auth/polkit ) + !vanilla? ( sys-apps/gentoo-systemd-integration )" + +# Newer linux-headers needed by ia64, bug #480218 +DEPEND="${COMMON_DEPEND} + app-arch/xz-utils:0 + dev-util/gperf + >=dev-util/intltool-0.50 + >=sys-apps/coreutils-8.16 + >=sys-kernel/linux-headers-${MINKV} + virtual/pkgconfig + gnuefi? ( >=sys-boot/gnu-efi-3.0.2 ) + test? ( sys-apps/dbus ) + app-text/docbook-xml-dtd:4.2 + app-text/docbook-xml-dtd:4.5 + app-text/docbook-xsl-stylesheets + dev-libs/libxslt:0 + $(python_gen_any_dep 'dev-python/lxml[${PYTHON_USEDEP}]') +" + +pkg_pretend() { + if [[ ${MERGE_TYPE} != buildonly ]]; then + local CONFIG_CHECK="~AUTOFS4_FS ~BLK_DEV_BSG ~CGROUPS + ~CHECKPOINT_RESTORE ~DEVTMPFS ~EPOLL ~FANOTIFY ~FHANDLE + ~INOTIFY_USER ~IPV6 ~NET ~NET_NS ~PROC_FS ~SIGNALFD ~SYSFS + ~TIMERFD ~TMPFS_XATTR ~UNIX + ~CRYPTO_HMAC ~CRYPTO_SHA256 ~CRYPTO_USER_API_HASH + ~!FW_LOADER_USER_HELPER ~!GRKERNSEC_PROC ~!IDE ~!SYSFS_DEPRECATED + ~!SYSFS_DEPRECATED_V2" + + use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" + use seccomp && CONFIG_CHECK+=" ~SECCOMP ~SECCOMP_FILTER" + kernel_is -lt 3 7 && CONFIG_CHECK+=" ~HOTPLUG" + kernel_is -lt 4 7 && CONFIG_CHECK+=" ~DEVPTS_MULTIPLE_INSTANCES" + kernel_is -ge 4 10 && CONFIG_CHECK+=" ~CGROUP_BPF" + + if linux_config_exists; then + local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH) + if [[ -n ${uevent_helper_path} ]] && [[ ${uevent_helper_path} != '""' ]]; then + ewarn "It's recommended to set an empty value to the following kernel config option:" + ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}" + fi + if linux_chkconfig_present X86; then + CONFIG_CHECK+=" ~DMIID" + fi + fi + + if kernel_is -lt ${MINKV//./ }; then + ewarn "Kernel version at least ${MINKV} required" + fi + + check_extra_config + fi +} + +pkg_setup() { + : +} + +src_unpack() { + default + [[ ${PV} != 9999 ]] || git-r3_src_unpack +} + +src_prepare() { + local PATCHES=( + ) + + if ! use vanilla; then + PATCHES+=( + "${FILESDIR}/218-Dont-enable-audit-by-default.patch" + "${FILESDIR}/228-noclean-tmp.patch" + "${FILESDIR}/233-systemd-user-pam.patch" + "${FILESDIR}/236-uucp-group.patch" + "${FILESDIR}/generator-path.patch" + ) + fi + + [[ -d "${WORKDIR}"/patches ]] && PATCHES+=( "${WORKDIR}"/patches ) + + default +} + +src_configure() { + # Prevent conflicts with i686 cross toolchain, bug 559726 + tc-export AR CC NM OBJCOPY RANLIB + + python_setup + + multilib-minimal_src_configure +} + +meson_use() { + usex "$1" true false +} + +meson_multilib() { + if multilib_is_native_abi; then + echo true + else + echo false + fi +} + +meson_multilib_native_use() { + if multilib_is_native_abi && use "$1"; then + echo true + else + echo false + fi +} + +multilib_src_configure() { + local myconf=( + --localstatedir="${EPREFIX}/var" + -Dpamlibdir="$(getpam_mod_dir)" + # avoid bash-completion dep + -Dbashcompletiondir="$(get_bashcompdir)" + # make sure we get /bin:/sbin in PATH + -Dsplit-usr=$(usex usrmerge false true) + -Dsysvinit-path= + -Dsysvrcnd-path= + # no deps + -Defi=$(meson_multilib) + -Dima=true + # Optional components/dependencies + -Dacl=$(meson_multilib_native_use acl) + -Dapparmor=$(meson_multilib_native_use apparmor) + -Daudit=$(meson_multilib_native_use audit) + -Dlibcryptsetup=$(meson_multilib_native_use cryptsetup) + -Dlibcurl=$(meson_multilib_native_use curl) + -Delfutils=$(meson_multilib_native_use elfutils) + -Dgcrypt=$(meson_use gcrypt) + -Dgnu-efi=$(meson_multilib_native_use gnuefi) + -Defi-libdir="/usr/$(get_libdir)" + -Dmicrohttpd=$(meson_multilib_native_use http) + $(usex http -Dgnutls=$(meson_multilib_native_use ssl) -Dgnutls=false) + -Dimportd=$(meson_multilib_native_use importd) + -Dbzip2=$(meson_multilib_native_use importd) + -Dzlib=$(meson_multilib_native_use importd) + -Dkmod=$(meson_multilib_native_use kmod) + -Dlz4=$(meson_use lz4) + -Dxz=$(meson_use lzma) + -Dlibiptc=$(meson_multilib_native_use nat) + -Dpam=$(meson_use pam) + -Dpolkit=$(meson_multilib_native_use policykit) + -Dqrencode=$(meson_multilib_native_use qrcode) + -Dseccomp=$(meson_multilib_native_use seccomp) + -Dselinux=$(meson_multilib_native_use selinux) + #-Dtests=$(meson_multilib_native_use test) + -Ddbus=$(meson_multilib_native_use test) + -Dxkbcommon=$(meson_multilib_native_use xkb) + # hardcode a few paths to spare some deps + -Dpath-kill=/bin/kill + -Dntp-servers="0.gentoo.pool.ntp.org 1.gentoo.pool.ntp.org 2.gentoo.pool.ntp.org 3.gentoo.pool.ntp.org" + # Breaks screen, tmux, etc. + -Ddefault-kill-user-processes=false + + # multilib options + -Dbacklight=$(meson_multilib) + -Dbinfmt=$(meson_multilib) + -Dcoredump=$(meson_multilib) + -Denvironment-d=$(meson_multilib) + -Dfirstboot=$(meson_multilib) + -Dhibernate=$(meson_multilib) + -Dhostnamed=$(meson_multilib) + -Dhwdb=$(meson_multilib) + -Dldconfig=$(meson_multilib) + -Dlocaled=$(meson_multilib) + -Dman=$(meson_multilib) + -Dnetworkd=$(meson_multilib) + -Dquotacheck=$(meson_multilib) + -Drandomseed=$(meson_multilib) + -Drfkill=$(meson_multilib) + -Dsysusers=$(meson_multilib) + -Dtimedated=$(meson_multilib) + -Dtimesyncd=$(meson_multilib) + -Dtmpfiles=$(meson_multilib) + -Dvconsole=$(meson_multilib) + ) + + if multilib_is_native_abi && use idn; then + myconf+=( + -Dlibidn2=$(usex libidn2 true false) + -Dlibidn=$(usex libidn2 false true) + ) + else + myconf+=( + -Dlibidn2=false + -Dlibidn=false + ) + fi + + meson_src_configure "${myconf[@]}" +} + +multilib_src_compile() { + eninja +} + +multilib_src_test() { + eninja test +} + +multilib_src_install() { + DESTDIR="${D}" eninja install +} + +multilib_src_install_all() { + # meson doesn't know about docdir + mv "${ED%/}"/usr/share/doc/{systemd,${PF}} || die + + einstalldocs + dodoc "${FILESDIR}"/nsswitch.conf + + if use sysv-utils; then + local app + for app in halt poweroff reboot runlevel shutdown telinit; do + dosym ../bin/systemctl /sbin/${app} + done + dosym ../lib/systemd/systemd /sbin/init + else + # we just keep sysvinit tools, so no need for the mans + rm "${ED%/}"/usr/share/man/man8/{halt,poweroff,reboot,runlevel,shutdown,telinit}.8 \ + || die + rm "${ED%/}"/usr/share/man/man1/init.1 || die + fi + + # Preserve empty dirs in /etc & /var, bug #437008 + keepdir /etc/binfmt.d /etc/modules-load.d /etc/tmpfiles.d \ + /etc/systemd/ntp-units.d /etc/systemd/user /var/lib/systemd \ + /var/log/journal/remote + + # 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 usrmerge && udevdir=/usr/lib/udev + + rm -r "${ED%/}${udevdir}/hwdb.d" || die + + if ! use usrmerge; then + # Avoid breaking boot/reboot + dosym ../../../lib/systemd/systemd /usr/lib/systemd/systemd + dosym ../../../lib/systemd/systemd-shutdown /usr/lib/systemd/systemd-shutdown + fi +} + +migrate_locale() { + local envd_locale_def="${EROOT%/}/etc/env.d/02locale" + local envd_locale=( "${EROOT%/}"/etc/env.d/??locale ) + local locale_conf="${EROOT%/}/etc/locale.conf" + + if [[ ! -L ${locale_conf} && ! -e ${locale_conf} ]]; then + # If locale.conf does not exist... + if [[ -e ${envd_locale} ]]; then + # ...either copy env.d/??locale if there's one + ebegin "Moving ${envd_locale} to ${locale_conf}" + mv "${envd_locale}" "${locale_conf}" + eend ${?} || FAIL=1 + else + # ...or create a dummy default + ebegin "Creating ${locale_conf}" + cat > "${locale_conf}" <<-EOF + # This file has been created by the sys-apps/systemd ebuild. + # See locale.conf(5) and localectl(1). + + # LANG=${LANG} + EOF + eend ${?} || FAIL=1 + fi + fi + + if [[ ! -L ${envd_locale} ]]; then + # now, if env.d/??locale is not a symlink (to locale.conf)... + if [[ -e ${envd_locale} ]]; then + # ...warn the user that he has duplicate locale settings + ewarn + ewarn "To ensure consistent behavior, you should replace ${envd_locale}" + ewarn "with a symlink to ${locale_conf}. Please migrate your settings" + ewarn "and create the symlink with the following command:" + ewarn "ln -s -n -f ../locale.conf ${envd_locale}" + ewarn + else + # ...or just create the symlink if there's nothing here + ebegin "Creating ${envd_locale_def} -> ../locale.conf symlink" + ln -n -s ../locale.conf "${envd_locale_def}" + eend ${?} || FAIL=1 + fi + fi +} + +pkg_postinst() { + newusergroup() { + enewgroup "$1" + enewuser "$1" -1 -1 -1 "$1" + } + + enewgroup input + enewgroup kvm 78 + enewgroup systemd-journal + newusergroup systemd-bus-proxy + newusergroup systemd-coredump + newusergroup systemd-journal-gateway + newusergroup systemd-journal-remote + newusergroup systemd-journal-upload + newusergroup systemd-network + newusergroup systemd-resolve + newusergroup systemd-timesync + + systemd_update_catalog + + # Keep this here in case the database format changes so it gets updated + # when required. Despite that this file is owned by sys-apps/hwids. + if has_version "sys-apps/hwids[udev]"; then + udevadm hwdb --update --root="${EROOT%/}" + fi + + udev_reload || FAIL=1 + + # Bug 465468, make sure locales are respect, and ensure consistency + # between OpenRC & systemd + migrate_locale + + systemd_reenable systemd-networkd.service systemd-resolved.service + + if [[ ${FAIL} ]]; then + eerror "One of the postinst commands failed. Please check the postinst output" + eerror "for errors. You may need to clean up your system and/or try installing" + eerror "systemd again." + eerror + fi +} + +pkg_prerm() { + # If removing systemd completely, remove the catalog database. + if [[ ! ${REPLACED_BY_VERSION} ]]; then + rm -f -v "${EROOT}"/var/lib/systemd/catalog/database + fi +} diff --git a/sys-apps/systemd/systemd-9999.ebuild b/sys-apps/systemd/systemd-9999.ebuild index e32db7f21900..e0653a7a84ab 100644 --- a/sys-apps/systemd/systemd-9999.ebuild +++ b/sys-apps/systemd/systemd-9999.ebuild @@ -328,7 +328,10 @@ multilib_src_install_all() { rm -fr "${ED%/}"/etc/systemd/system/sockets.target.wants || die rm -fr "${ED%/}"/etc/systemd/system/sysinit.target.wants || die - rm -r "${ED%/}"/lib/udev/hwdb.d || die + local udevdir=/lib/udev + use usrmerge && udevdir=/usr/lib/udev + + rm -r "${ED%/}${udevdir}/hwdb.d" || die if ! use usrmerge; then # Avoid breaking boot/reboot |