bump(sys-apps/systemd): sync live ebuild with upstream + local changes

This pulls in the latest changes from Gentoo as of 21 Feb 2014 along
with the CoreOS changes we made in the 207 ebuild.

Hard mask kdbus flag. We don't need to tread into those waters yet.

We will be trying networkd but leave the flag disabled until someone
wants to start working with it.
This commit is contained in:
Michael Marineau 2014-02-20 13:07:07 -08:00
parent bccc4d3cd2
commit c6910588e4
2 changed files with 142 additions and 49 deletions

View File

@ -0,0 +1 @@
kdbus

View File

@ -1,6 +1,6 @@
# Copyright 1999-2013 Gentoo Foundation
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-9999-r1.ebuild,v 1.16 2013/09/14 18:44:05 floppym Exp $
# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-9999.ebuild,v 1.86 2014/02/21 15:40:01 zx2c4 Exp $
EAPI=5
@ -9,11 +9,11 @@ AUTOTOOLS_AUTORECONF=yes
EGIT_REPO_URI="git://anongit.freedesktop.org/${PN}/${PN}
http://cgit.freedesktop.org/${PN}/${PN}/"
inherit git-2
inherit git-r3
#endif
AUTOTOOLS_PRUNE_LIBTOOL_FILES=all
PYTHON_COMPAT=( python2_7 )
PYTHON_COMPAT=( python{2_7,3_2,3_3} )
inherit autotools-utils bash-completion-r1 fcaps linux-info multilib \
multilib-minimal pam python-single-r1 systemd toolchain-funcs udev \
user
@ -23,91 +23,112 @@ HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd"
SRC_URI="http://www.freedesktop.org/software/systemd/${P}.tar.xz"
LICENSE="GPL-2 LGPL-2.1 MIT public-domain"
SLOT="0"
SLOT="0/1"
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
IUSE="acl audit cryptsetup doc +firmware-loader gcrypt gudev http introspection
+kmod lzma openrc pam policykit python qrcode selinux tcpd test
vanilla xattr"
kdbus +kmod networkd lzma pam policykit python qrcode +seccomp selinux tcpd
test vanilla xattr"
MINKV="3.0"
COMMON_DEPEND=">=sys-apps/dbus-1.6.8-r1
>=sys-apps/util-linux-2.20
sys-libs/libcap
acl? ( sys-apps/acl )
audit? ( >=sys-process/audit-2 )
cryptsetup? ( >=sys-fs/cryptsetup-1.6 )
gcrypt? ( >=dev-libs/libgcrypt-1.4.5 )
gudev? ( >=dev-libs/glib-2[${MULTILIB_USEDEP}] )
http? ( net-libs/libmicrohttpd )
introspection? ( >=dev-libs/gobject-introspection-1.31.1 )
kmod? ( >=sys-apps/kmod-14-r1 )
lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] )
pam? ( virtual/pam )
COMMON_DEPEND=">=sys-apps/util-linux-2.20:0=
sys-libs/libcap:0=
acl? ( sys-apps/acl:0= )
audit? ( >=sys-process/audit-2:0= )
cryptsetup? ( >=sys-fs/cryptsetup-1.6:0= )
gcrypt? ( >=dev-libs/libgcrypt-1.4.5:0= )
gudev? ( dev-libs/glib:2=[${MULTILIB_USEDEP}] )
http? ( net-libs/libmicrohttpd:0= )
introspection? ( >=dev-libs/gobject-introspection-1.31.1:0= )
kmod? ( >=sys-apps/kmod-15:0= )
lzma? ( app-arch/xz-utils:0=[${MULTILIB_USEDEP}] )
pam? ( virtual/pam:= )
python? ( ${PYTHON_DEPS} )
qrcode? ( media-gfx/qrencode )
selinux? ( sys-libs/libselinux )
tcpd? ( sys-apps/tcp-wrappers )
xattr? ( sys-apps/attr )
qrcode? ( media-gfx/qrencode:0= )
seccomp? ( sys-libs/libseccomp:0= )
selinux? ( sys-libs/libselinux:0= )
tcpd? ( sys-apps/tcp-wrappers:0= )
xattr? ( sys-apps/attr: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
openrc? ( >=sys-fs/udev-init-scripts-25 )
|| (
>=sys-apps/util-linux-2.22
<sys-apps/sysvinit-2.88-r4
)
!vanilla? ( sys-apps/gentoo-systemd-integration )
!sys-auth/nss-myhostname
!<sys-libs/glibc-2.10
!sys-fs/udev"
PDEPEND=">=sys-apps/hwids-20130717-r1[udev]
policykit? ( sys-auth/polkit )"
# sys-apps/daemon: the daemon only (+ build-time lib dep for tests)
PDEPEND=">=sys-apps/dbus-1.6.8-r1:0
>=sys-apps/hwids-20130717-r1[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
app-arch/xz-utils:0
app-text/docbook-xml-dtd:4.2
app-text/docbook-xsl-stylesheets
dev-libs/libxslt
dev-libs/libxslt:0
dev-util/gperf
>=dev-util/intltool-0.50
>=sys-devel/binutils-2.23.1
>=sys-devel/gcc-4.6
>=sys-kernel/linux-headers-${MINKV}
ia64? ( >=sys-kernel/linux-headers-3.9 )
virtual/pkgconfig
doc? ( >=dev-util/gtk-doc-1.18 )"
doc? ( >=dev-util/gtk-doc-1.18 )
test? ( >=sys-apps/dbus-1.6.8-r1:0 )"
#if LIVE
DEPEND="${DEPEND}
dev-libs/gobject-introspection
>=dev-libs/libgcrypt-1.4.5
>=dev-util/gtk-doc-1.18"
>=dev-libs/libgcrypt-1.4.5:0"
SRC_URI=
KEYWORDS=
#endif
src_prepare() {
gtkdocize --docdir docs/ || die
if use doc; then
gtkdocize --docdir docs/ || die
else
echo 'EXTRA_DIST =' > docs/gtk-doc.make
fi
# Bug 463376
sed -i -e 's/GROUP="dialout"/GROUP="uucp"/' rules/*.rules || die
autotools-utils_src_prepare
}
#endif
pkg_pretend() {
local CONFIG_CHECK="~AUTOFS4_FS ~BLK_DEV_BSG ~CGROUPS ~DEVTMPFS
local CONFIG_CHECK="~AUTOFS4_FS ~BLK_DEV_BSG ~CGROUPS ~DEVTMPFS ~DMIID
~EPOLL ~FANOTIFY ~FHANDLE ~INOTIFY_USER ~IPV6 ~NET ~PROC_FS
~SECCOMP ~SIGNALFD ~SYSFS ~TIMERFD
~!IDE ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2"
~!IDE ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2
~!GRKERNSEC_PROC"
use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL"
use pam && CONFIG_CHECK+=" ~AUDITSYSCALL"
use xattr && CONFIG_CHECK+=" ~TMPFS_XATTR"
kernel_is -lt 3 7 && CONFIG_CHECK+=" ~HOTPLUG"
use firmware-loader || CONFIG_CHECK+=" ~!FW_LOADER_USER_HELPER"
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
fi
if [[ ${MERGE_TYPE} != binary ]]; then
if [[ $(gcc-major-version) -lt 4
|| ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 6 ) ]]
@ -139,6 +160,9 @@ pkg_setup() {
multilib_src_configure() {
local myeconfargs=(
--with-pamconfdir=/usr/share/pam.d
--with-dbuspolicydir=/usr/share/dbus-1/system.d
--disable-maintainer-mode
--localstatedir=/var
--with-pamlibdir=$(getpam_mod_dir)
# avoid bash-completion dep
@ -151,6 +175,8 @@ multilib_src_configure() {
# no deps
--enable-efi
--enable-ima
# we enable compat libs, for now. hopefully we can drop this flag later
--enable-compat-libs
# optional components/dependencies
$(use_enable acl)
$(use_enable audit)
@ -160,13 +186,15 @@ multilib_src_configure() {
$(use_enable gudev)
$(use_enable http microhttpd)
$(use_enable introspection)
$(use_enable kdbus)
$(use_enable kmod)
$(use_enable lzma xz)
$(use_enable networkd)
$(use_enable pam)
$(use_enable policykit polkit)
$(use_enable python python-devel)
$(use python && echo PYTHON_CONFIG=/usr/bin/python-config-${EPYTHON#python})
$(use_enable qrcode qrencode)
$(use_enable seccomp)
$(use_enable selinux)
$(use_enable tcpd tcpwrap)
$(use_enable test tests)
@ -196,6 +224,7 @@ multilib_src_configure() {
DBUS_CFLAGS=' '
DBUS_LIBS=' '
--enable-compat-libs
--disable-acl
--disable-audit
--disable-gcrypt
@ -204,9 +233,11 @@ multilib_src_configure() {
--disable-kmod
--disable-libcryptsetup
--disable-microhttpd
--disable-networkd
--disable-pam
--disable-polkit
--disable-qrencode
--disable-seccomp
--disable-selinux
--disable-tcpwrap
--disable-tests
@ -233,6 +264,8 @@ multilib_src_compile() {
# prerequisites for gudev
use gudev && emake src/gudev/gudev{enumtypes,marshal}.{c,h}
echo 'gentoo: $(BUILT_SOURCES)' | \
emake "${mymakeopts[@]}" -f Makefile -f - gentoo
echo 'gentoo: $(lib_LTLIBRARIES) $(pkgconfiglib_DATA)' | \
emake "${mymakeopts[@]}" -f Makefile -f - gentoo
fi
@ -246,6 +279,10 @@ multilib_src_test() {
multilib_src_install() {
local mymakeopts=(
# automake fails with parallel libtool relinking
# https://bugs.gentoo.org/show_bug.cgi?id=491398
-j1
udevlibexecdir="${MY_UDEVDIR}"
dist_udevhwdb_DATA=
DESTDIR="${D}"
@ -253,6 +290,9 @@ multilib_src_install() {
if multilib_is_native_abi; then
emake "${mymakeopts[@]}" install
# Even with --enable-networkd, it's not right to have this running by default
# when it's unconfigured.
rm -f "${D}"/etc/systemd/system/multi-user.target.wants/systemd-networkd.service
else
mymakeopts+=(
install-libLTLIBRARIES
@ -265,10 +305,16 @@ multilib_src_install() {
emake "${mymakeopts[@]}"
fi
rmdir ${D}/etc/binfmt.d
rmdir ${D}/etc/sysctl.d
rmdir ${D}/etc/tmpfiles.d
rmdir ${D}/etc/modules-load.d
}
multilib_src_install_all() {
prune_libtool_files --modules
einstalldocs
# we just keep sysvinit tools, so no need for the mans
rm "${D}"/usr/share/man/man8/{halt,poweroff,reboot,runlevel,shutdown,telinit}.8 \
@ -278,18 +324,55 @@ multilib_src_install_all() {
# Disable storing coredumps in journald, bug #433457
mv "${D}"/usr/lib/sysctl.d/50-coredump.conf{,.disabled} || die
# 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
# Preserve empty dir /var, bug #437008
keepdir /var/lib/systemd
}
# Symlink /etc/sysctl.conf for easy migration.
dosym ../sysctl.conf /etc/sysctl.d/99-sysctl.conf
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() {
# for udev rules
enewgroup dialout
enewgroup systemd-journal
if use http; then
enewgroup systemd-journal-gateway
@ -303,13 +386,22 @@ pkg_postinst() {
udevadm hwdb --update --root="${ROOT%/}"
fi
if [[ ${ROOT} == "" || ${ROOT} == "/" ]]; then
udevadm control --reload
fi
udev_reload || FAIL=1
# Bug 468876
fcaps cap_dac_override,cap_sys_ptrace=ep usr/bin/systemd-detect-virt
# Bug 465468, make sure locales are respect, and ensure consistency
# between OpenRC & systemd
migrate_locale
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
if [[ ! -L "${ROOT}"/etc/mtab ]]; then
ewarn "Upstream mandates the /etc/mtab file should be a symlink to /proc/mounts."
ewarn "Not having it is not supported by upstream and will cause tools like 'df'"