From 31b85412dd5f79444a6d3f79e03349e3b1de3c17 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Wed, 8 Jul 2015 15:25:36 -0700 Subject: [PATCH] systemd: sync with upstream, bump to 222 Biggest change (beyond the version bump itself) is removing support for building gudev which is moving out of the systemd repository. Also moves USE flag changes from IUSE into package.use so the IUSE line doesn't cause merge conflicts with upstream. For reference the current delta from upstream is: ```patch --- gentoo-x86/sys-apps/systemd/systemd-9999.ebuild 2015-07-08 14:20:49.679059002 -0700 +++ coreos-overlay/sys-apps/systemd/systemd-9999.ebuild 2015-07-08 15:51:11.351991236 -0700 @@ -4,18 +4,25 @@ EAPI=5 +AUTOTOOLS_AUTORECONF=yes AUTOTOOLS_PRUNE_LIBTOOL_FILES=all PYTHON_COMPAT=( python{2_7,3_3,3_4} ) +CROS_WORKON_PROJECT="coreos/systemd" +CROS_WORKON_REPO="git://github.com" if [[ ${PV} == 9999 ]]; then - AUTOTOOLS_AUTORECONF=yes - EGIT_REPO_URI="https://github.com/systemd/systemd.git" - inherit git-r3 + # Use ~arch instead of empty keywords for compatibility with cros-workon + KEYWORDS="~amd64 ~arm64 ~arm ~x86" else - SRC_URI="http://www.freedesktop.org/software/systemd/${P}.tar.xz" - KEYWORDS="~amd64 ~arm ~ia64 ~x86" + CROS_WORKON_COMMIT="9b174479806a66ff3a220a89291a38f8a4fed701" + KEYWORDS="amd64 arm64 ~arm ~x86" fi +# cros-workon must be imported first, in cases where cros-workon and +# another eclass exports the same function (say src_compile) we want +# the later eclass's version to win. Only need src_unpack from workon. +inherit cros-workon + inherit autotools-utils bash-completion-r1 linux-info multilib \ multilib-minimal pam python-single-r1 systemd toolchain-funcs udev \ user @@ -29,6 +36,9 @@ idn importd +kdbus +kmod +lz4 lzma nat pam policykit python qrcode +seccomp selinux ssl sysv-utils terminal test vanilla xkb" +# CoreOS specific use flags +IUSE+=" man symlink-usr" + REQUIRED_USE="importd? ( curl gcrypt lzma ) python? ( ${PYTHON_REQUIRED_USE} )" @@ -82,7 +92,6 @@ # sys-apps/dbus: the daemon only (+ build-time lib dep for tests) PDEPEND=">=sys-apps/dbus-1.6.8-r1:0[systemd] >=sys-apps/hwids-20130717-r1[udev] - >=sys-fs/udev-init-scripts-25 policykit? ( sys-auth/polkit ) !vanilla? ( sys-apps/gentoo-systemd-integration )" @@ -102,19 +111,19 @@ terminal? ( media-fonts/unifont[utils(+)] ) test? ( >=sys-apps/dbus-1.6.8-r1:0 )" -if [[ -n ${AUTOTOOLS_AUTORECONF} ]]; then - DEPEND+=" - app-text/docbook-xml-dtd:4.2 +# Not required when building from unpatched tarballs, but we build from git. +DEPEND+=" + man? ( app-text/docbook-xml-dtd:4.2 app-text/docbook-xml-dtd:4.5 app-text/docbook-xsl-stylesheets dev-libs/libxslt:0 - >=dev-libs/libgcrypt-1.4.5:0" -fi - -if [[ ${PV} == 9999 ]]; then - DEPEND+=" ${PYTHON_DEPS}" - REQUIRED_USE+=" ${PYTHON_REQUIRED_USE}" -fi + ${PYTHON_DEPS} ) + terminal? ( ${PYTHON_DEPS} ) + >=dev-libs/libgcrypt-1.4.5:0" + +REQUIRED_USE+=" + man? ( ${PYTHON_REQUIRED_USE} ) + terminal? ( ${PYTHON_REQUIRED_USE} )" pkg_pretend() { local CONFIG_CHECK="~AUTOFS4_FS ~BLK_DEV_BSG ~CGROUPS @@ -162,12 +171,6 @@ # Bug 463376 sed -i -e 's/GROUP="dialout"/GROUP="uucp"/' rules/*.rules || die - if [[ ${PV} != 9999 ]]; then - # Update the timestamp on this to avoid rebuilding it. - [[ -e src/libsystemd-terminal/unifont-glyph-array.bin ]] || die "File missing from tarball" - touch src/libsystemd-terminal/unifont-glyph-array.bin || die - fi - autotools-utils_src_prepare } @@ -177,18 +180,14 @@ # Fix systems broken by bug #509454. [[ ${MY_UDEVDIR} ]] || MY_UDEVDIR=/lib/udev - if [[ ${PV} == 9999 ]] || use python; then - python_setup - fi + python_setup multilib-minimal_src_configure } multilib_src_configure() { local myeconfargs=( - # disable -flto since it is an optimization flag - # and makes distcc less effective - cc_cv_CFLAGS__flto=no + --with-pamconfdir=/usr/share/pam.d # Workaround for bug 516346 --enable-dependency-tracking @@ -229,6 +228,7 @@ $(multilib_native_use_enable kmod) $(use_enable lz4) $(use_enable lzma xz) + $(multilib_native_use_enable man manpages) $(multilib_native_use_enable nat libiptc) $(multilib_native_use_enable pam) $(multilib_native_use_enable policykit polkit) @@ -250,11 +250,19 @@ EFI_CC="$(tc-getCC)" # dbus paths - --with-dbuspolicydir="${EPREFIX}/etc/dbus-1/system.d" + --with-dbuspolicydir="${EPREFIX}/usr/share/dbus-1/system.d" --with-dbussessionservicedir="${EPREFIX}/usr/share/dbus-1/services" --with-dbussystemservicedir="${EPREFIX}/usr/share/dbus-1/system-services" - --with-ntp-servers="0.gentoo.pool.ntp.org 1.gentoo.pool.ntp.org 2.gentoo.pool.ntp.org 3.gentoo.pool.ntp.org" + --with-ntp-servers="0.coreos.pool.ntp.org 1.coreos.pool.ntp.org 2.coreos.pool.ntp.org 3.coreos.pool.ntp.org" + + # The CoreOS epoch, Mon Jul 1 00:00:00 UTC 2013. Used by timesyncd + # as a sanity check for the minimum acceptable time. Explicitly set + # to avoid using the current build time. + --with-time-epoch=1372636800 + + # no default name servers + --with-dns-servers= ) if ! multilib_is_native_abi; then @@ -326,38 +334,81 @@ } multilib_src_install_all() { + local unitdir=$(systemd_get_unitdir) + prune_libtool_files --modules einstalldocs if use sysv-utils; then + local prefix + use symlink-usr && prefix=/usr for app in halt poweroff reboot runlevel shutdown telinit; do - dosym "..${ROOTPREFIX-/usr}/bin/systemctl" /sbin/${app} + dosym "${ROOTPREFIX-/usr}/bin/systemctl" ${prefix}/sbin/${app} done - dosym "..${ROOTPREFIX-/usr}/lib/systemd/systemd" /sbin/init - else + dosym "${ROOTPREFIX-/usr}/lib/systemd/systemd" ${prefix}/sbin/init + elif use man; then # 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 rm "${D}"/usr/share/man/man1/init.1 || die fi - # 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 \ - /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 "${D}"/etc/systemd/system/multi-user.target.wants/systemd-networkd.service || die - rm "${D}"/etc/systemd/system/multi-user.target.wants/systemd-resolved.service || die - rm -r "${D}"/etc/systemd/system/network-online.target.wants || die - rm -r "${D}"/etc/systemd/system/sysinit.target.wants || die + # Ensure journal directory has correct ownership/mode in inital image. + # This is fixed by systemd-tmpfiles *but* journald starts before that + # and will create the journal if the filesystem is already read-write. + # Conveniently the systemd Makefile sets this up completely wrong. + dodir /var/log/journal + fowners root:systemd-journal /var/log/journal + fperms 2755 /var/log/journal + + systemd_dotmpfilesd "${FILESDIR}"/systemd-coreos.conf + systemd_dotmpfilesd "${FILESDIR}"/systemd-resolv.conf + + # Don't default to graphical.target + rm "${D}${unitdir}"/default.target || die + dosym multi-user.target "${unitdir}"/default.target + + # Move a few services enabled in /etc to /usr, delete files individually + # so builds fail if systemd adds any new unexpected stuff to /etc + local f + for f in \ + getty.target.wants/getty@tty1.service \ + multi-user.target.wants/remote-fs.target \ + multi-user.target.wants/systemd-networkd.service \ + multi-user.target.wants/systemd-resolved.service \ + network-online.target.wants/systemd-networkd-wait-online.service \ + sockets.target.wants/systemd-networkd.socket \ + sysinit.target.wants/systemd-timesyncd.service + do + local s="${f#*/}" t="${f%/*}" + local u="${s/@*.service/@.service}" + + # systemd_enable_service doesn't understand template units + einfo "Enabling ${s} via ${t}" + dodir "${unitdir}/${t}" + dosym "../${u}" "${unitdir}/${t}/${s}" + + rm "${D}/etc/systemd/system/${f}" || die + done + rmdir "${D}"/etc/systemd/system/*.wants || die + + # Grant networkd access to set the transient host name + insinto /usr/share/polkit-1/rules.d + doins "${FILESDIR}"/99-org.freedesktop.hostname1.rules + + # Do not enable random services if /etc was detected as empty!!! + rm "${D}"/usr/lib/systemd/system-preset/90-systemd.preset + insinto /usr/lib/systemd/system-preset + doins "${FILESDIR}"/99-default.preset + + # Disable the "First Boot Wizard" by default, it isn't very applicable to CoreOS + rm "${D}${unitdir}"/sysinit.target.wants/systemd-firstboot.service + + # Do not ship distro-specific files (nsswitch.conf pam.d) + rm -rf "${D}"/usr/share/factory + sed -i "${D}"/usr/lib/tmpfiles.d/etc.conf \ + -e '/^C \/etc\/nsswitch\.conf/d' \ + -e '/^C \/etc\/pam\.d/d' } migrate_locale() { ``` --- .../profiles/coreos/base/package.use | 4 +- .../coreos/targets/generic/package.use | 4 +- ...stemd-220-r3.ebuild => systemd-222.ebuild} | 0 .../sys-apps/systemd/systemd-9999.ebuild | 55 ++++++++----------- 4 files changed, 26 insertions(+), 37 deletions(-) rename sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/{systemd-220-r3.ebuild => systemd-222.ebuild} (100%) diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use index e52ecd1608..b4939ca83a 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use @@ -36,8 +36,8 @@ net-analyzer/nmap ncat -lua # removes mta dependencies app-admin/sudo -sendmail -# avoid pulling in gnutls, disable gentoo-only bits, enable journal upload -sys-apps/systemd -ssl curl vanilla -lz4 lzma gcrypt +# use lzma which is the default on non-gentoo systems +sys-apps/systemd curl gcrypt lzma -lz4 # disable kernel config detection and module building net-firewall/ipset -modules diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/generic/package.use b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/generic/package.use index 01d0adc2b4..b8ed7f9a87 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/generic/package.use +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/generic/package.use @@ -22,8 +22,8 @@ sys-libs/ncurses minimal sys-libs/pam -berkdb sys-libs/gdbm berkdb - -sys-apps/systemd http +# enable journal gateway and container features, avoid pulling in gnutls +sys-apps/systemd importd http nat -ssl net-libs/libmicrohttpd -ssl sys-boot/syslinux -custom-cflags diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/systemd-220-r3.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/systemd-222.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/systemd-220-r3.ebuild rename to sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/systemd-222.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/systemd-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/systemd-9999.ebuild index e8d6c2ef48..6980b24378 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/systemd-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/systemd-9999.ebuild @@ -1,17 +1,20 @@ # Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-9999.ebuild,v 1.169 2015/05/30 13:58:45 floppym Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-9999.ebuild,v 1.174 2015/06/27 18:00:47 floppym Exp $ EAPI=5 +AUTOTOOLS_AUTORECONF=yes +AUTOTOOLS_PRUNE_LIBTOOL_FILES=all +PYTHON_COMPAT=( python{2_7,3_3,3_4} ) CROS_WORKON_PROJECT="coreos/systemd" CROS_WORKON_REPO="git://github.com" -if [[ "${PV}" == 9999 ]]; then +if [[ ${PV} == 9999 ]]; then # Use ~arch instead of empty keywords for compatibility with cros-workon KEYWORDS="~amd64 ~arm64 ~arm ~x86" else - CROS_WORKON_COMMIT="9b174479806a66ff3a220a89291a38f8a4fed701" + CROS_WORKON_COMMIT="015325350548732458e61c193f5fab6f139f47fc" KEYWORDS="amd64 arm64 ~arm ~x86" fi @@ -20,9 +23,6 @@ fi # the later eclass's version to win. Only need src_unpack from workon. inherit cros-workon -AUTOTOOLS_AUTORECONF=yes -AUTOTOOLS_PRUNE_LIBTOOL_FILES=all -PYTHON_COMPAT=( python{2_7,3_3,3_4} ) inherit autotools-utils bash-completion-r1 linux-info multilib \ multilib-minimal pam python-single-r1 systemd toolchain-funcs udev \ user @@ -32,18 +32,19 @@ HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd" LICENSE="GPL-2 LGPL-2.1 MIT public-domain" SLOT="0/2" -IUSE="acl apparmor audit cryptsetup curl doc elfutils gcrypt gnuefi gudev http - idn +importd introspection kdbus +kmod +lz4 lzma +nat pam policykit python +IUSE="acl apparmor audit cryptsetup curl elfutils gcrypt gnuefi http + idn importd +kdbus +kmod +lz4 lzma nat pam policykit python qrcode +seccomp selinux ssl sysv-utils terminal test vanilla xkb" # CoreOS specific use flags IUSE+=" man symlink-usr" -REQUIRED_USE="importd? ( curl gcrypt lzma )" +REQUIRED_USE="importd? ( curl gcrypt lzma ) + python? ( ${PYTHON_REQUIRED_USE} )" MINKV="3.8" -COMMON_DEPEND=">=sys-apps/util-linux-2.25:0= +COMMON_DEPEND=">=sys-apps/util-linux-2.26:0= sys-libs/libcap:0= !=sys-apps/util-linux-2.25:0= app-arch/bzip2:0= sys-libs/zlib:0= ) - introspection? ( >=dev-libs/gobject-introspection-1.31.1:0= ) kmod? ( >=sys-apps/kmod-15:0= ) lz4? ( >=app-arch/lz4-0_p119:0=[${MULTILIB_USEDEP}] ) lzma? ( >=app-arch/xz-utils-5.0.5-r1:0=[${MULTILIB_USEDEP}] ) @@ -107,21 +106,25 @@ DEPEND="${COMMON_DEPEND} >=sys-kernel/linux-headers-${MINKV} ia64? ( >=sys-kernel/linux-headers-3.9 ) virtual/pkgconfig - doc? ( >=dev-util/gtk-doc-1.18 ) gnuefi? ( >=sys-boot/gnu-efi-3.0.2 ) python? ( dev-python/lxml[${PYTHON_USEDEP}] ) terminal? ( media-fonts/unifont[utils(+)] ) test? ( >=sys-apps/dbus-1.6.8-r1:0 )" # Not required when building from unpatched tarballs, but we build from git. -DEPEND="${DEPEND} +DEPEND+=" man? ( app-text/docbook-xml-dtd:4.2 app-text/docbook-xml-dtd:4.5 app-text/docbook-xsl-stylesheets - dev-libs/libxslt:0 ) - dev-libs/gobject-introspection + dev-libs/libxslt:0 + ${PYTHON_DEPS} ) + terminal? ( ${PYTHON_DEPS} ) >=dev-libs/libgcrypt-1.4.5:0" +REQUIRED_USE+=" + man? ( ${PYTHON_REQUIRED_USE} ) + terminal? ( ${PYTHON_REQUIRED_USE} )" + pkg_pretend() { local CONFIG_CHECK="~AUTOFS4_FS ~BLK_DEV_BSG ~CGROUPS ~DEVPTS_MULTIPLE_INSTANCES ~DEVTMPFS ~DMIID ~EPOLL ~FANOTIFY ~FHANDLE @@ -161,16 +164,10 @@ pkg_pretend() { } pkg_setup() { - use python && python-single-r1_pkg_setup + : } src_prepare() { - 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 @@ -183,6 +180,8 @@ src_configure() { # Fix systems broken by bug #509454. [[ ${MY_UDEVDIR} ]] || MY_UDEVDIR=/lib/udev + python_setup + multilib-minimal_src_configure } @@ -216,18 +215,15 @@ multilib_src_configure() { $(multilib_native_use_enable audit) $(multilib_native_use_enable cryptsetup libcryptsetup) $(multilib_native_use_enable curl libcurl) - $(multilib_native_use_enable doc gtk-doc) $(multilib_native_use_enable elfutils) $(use_enable gcrypt) $(multilib_native_use_enable gnuefi) - $(use_enable gudev) $(multilib_native_use_enable http microhttpd) $(usex http $(multilib_native_use_enable ssl gnutls) --disable-gnutls) $(multilib_native_use_enable idn libidn) $(multilib_native_use_enable importd) $(multilib_native_use_enable importd bzip2) $(multilib_native_use_enable importd zlib) - $(multilib_native_use_enable introspection) $(use_enable kdbus) $(multilib_native_use_enable kmod) $(use_enable lz4) @@ -246,9 +242,6 @@ multilib_src_configure() { $(multilib_native_use_enable test dbus) $(multilib_native_use_enable xkb xkbcommon) - # not supported (avoid automagic deps in the future) - --disable-chkconfig - # hardcode a few paths to spare some deps QUOTAON=/usr/sbin/quotaon QUOTACHECK=/usr/sbin/quotacheck @@ -295,9 +288,6 @@ multilib_src_compile() { if multilib_is_native_abi; then emake "${mymakeopts[@]}" else - # 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)' | \ @@ -330,7 +320,6 @@ multilib_src_install() { install-pkgconfiglibDATA install-includeHEADERS # safe to call unconditionally, 'installs' empty list - install-libgudev_includeHEADERS install-pkgincludeHEADERS )