From c9e61269d21ea4f57f60ee54b5bdf0b26697af25 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Sat, 11 Jul 2015 12:40:12 -0700 Subject: [PATCH] systemd: sync with upstream, dropping python use flag Upstream moved the python stuff to its own package which we don't need anyway. Cleans up dependencies a bit but all the changes are in use flags we don't enable so nothing impacts us. Our delta is now: ```patch --- gentoo-x86/sys-apps/systemd/systemd-9999.ebuild 2015-07-11 12:19:02.628603502 -0700 +++ coreos-overlay/sys-apps/systemd/systemd-9999.ebuild 2015-07-11 12:33:19.136880252 -0700 @@ -7,16 +7,23 @@ 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 - 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="https://github.com/systemd/systemd/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~ia64 ~x86" + CROS_WORKON_COMMIT="015325350548732458e61c193f5fab6f139f47fc" + KEYWORDS="amd64 arm64 ~arm ~x86" fi UNIFONT=unifont-8.0.01 -SRC_URI+=" terminal? ( http://unifoundry.com/pub/${UNIFONT}/font-builds/${UNIFONT}.hex.gz )" +SRC_URI="terminal? ( http://unifoundry.com/pub/${UNIFONT}/font-builds/${UNIFONT}.hex.gz )" + +# 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-any-r1 systemd toolchain-funcs udev \ @@ -31,6 +38,9 @@ idn importd +kdbus +kmod +lz4 lzma nat pam policykit qrcode +seccomp selinux ssl sysv-utils terminal test vanilla xkb" +# CoreOS specific use flags +IUSE+=" man symlink-usr" + REQUIRED_USE="importd? ( curl gcrypt lzma )" MINKV="3.8" @@ -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 )" @@ -101,14 +110,13 @@ terminal? ( ${PYTHON_DEPS} ) 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 + dev-libs/libxslt:0 ) + >=dev-libs/libgcrypt-1.4.5:0" pkg_pretend() { local CONFIG_CHECK="~AUTOFS4_FS ~BLK_DEV_BSG ~CGROUPS @@ -154,7 +162,7 @@ src_unpack() { default - [[ ${PV} != 9999 ]] || git-r3_src_unpack + cros-workon_src_unpack } src_prepare() { @@ -179,9 +187,7 @@ 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 gcc-4.7, bug 554454. cc_cv_CFLAGS__Werror_shadow=no @@ -228,6 +234,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) @@ -248,11 +255,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 @@ -324,38 +339,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() { ``` --- .../coreos-overlay/sys-apps/systemd/Manifest | 1 + .../sys-apps/systemd/systemd-9999.ebuild | 34 +++++++++++-------- 2 files changed, 21 insertions(+), 14 deletions(-) create mode 100644 sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/Manifest diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/Manifest b/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/Manifest new file mode 100644 index 0000000000..c55454b6bc --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/Manifest @@ -0,0 +1 @@ +DIST unifont-8.0.01.hex.gz 938016 SHA256 f67cffeb5e8a0ce5ad2c19a6f289a4e7c8caa0b8c624368adaf8571994c3ec1c SHA512 23aa0228da186b2f6575c1f06101f58713dfb98193ad3772405668d4e3e18d4c1e0fea40639b237dd3a5f4dee6dea90aed85fea3c28165fdfeeace79a2059e6f WHIRLPOOL 23069b019ca1aa9e33df4ce7a728d399090670b85e37029d45f9a0125d13f965039c7e5b9cd6bc633ef259780286f0e6a596b410c1fc144f1f1205e69e36c5cb 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 403e58b522..82ccab55ef 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,6 +1,6 @@ # 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.174 2015/06/27 18:00:47 floppym Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-9999.ebuild,v 1.179 2015/07/11 16:39:36 floppym Exp $ EAPI=5 @@ -17,6 +17,8 @@ else CROS_WORKON_COMMIT="015325350548732458e61c193f5fab6f139f47fc" KEYWORDS="amd64 arm64 ~arm ~x86" fi +UNIFONT=unifont-8.0.01 +SRC_URI="terminal? ( http://unifoundry.com/pub/${UNIFONT}/font-builds/${UNIFONT}.hex.gz )" # cros-workon must be imported first, in cases where cros-workon and # another eclass exports the same function (say src_compile) we want @@ -24,7 +26,7 @@ fi inherit cros-workon inherit autotools-utils bash-completion-r1 linux-info multilib \ - multilib-minimal pam python-single-r1 systemd toolchain-funcs udev \ + multilib-minimal pam python-any-r1 systemd toolchain-funcs udev \ user DESCRIPTION="System and service manager for Linux" @@ -33,14 +35,13 @@ 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 elfutils gcrypt gnuefi http - idn importd +kdbus +kmod +lz4 lzma nat pam policykit python + idn importd +kdbus +kmod +lz4 lzma nat pam policykit 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} )" +REQUIRED_USE="importd? ( curl gcrypt lzma )" MINKV="3.8" @@ -68,7 +69,6 @@ COMMON_DEPEND=">=sys-apps/util-linux-2.26:0= lzma? ( >=app-arch/xz-utils-5.0.5-r1:0=[${MULTILIB_USEDEP}] ) nat? ( net-firewall/iptables:0= ) pam? ( virtual/pam:= ) - python? ( ${PYTHON_DEPS} ) qrcode? ( media-gfx/qrencode:0= ) seccomp? ( sys-libs/libseccomp:0= ) selinux? ( sys-libs/libselinux:0= ) @@ -107,8 +107,7 @@ DEPEND="${COMMON_DEPEND} ia64? ( >=sys-kernel/linux-headers-3.9 ) virtual/pkgconfig gnuefi? ( >=sys-boot/gnu-efi-3.0.2 ) - python? ( dev-python/lxml[${PYTHON_USEDEP}] ) - terminal? ( media-fonts/unifont[utils(+)] ) + terminal? ( ${PYTHON_DEPS} ) test? ( >=sys-apps/dbus-1.6.8-r1:0 )" # Not required when building from unpatched tarballs, but we build from git. @@ -117,11 +116,8 @@ DEPEND+=" app-text/docbook-xml-dtd:4.5 app-text/docbook-xsl-stylesheets dev-libs/libxslt:0 ) - terminal? ( ${PYTHON_DEPS} ) >=dev-libs/libgcrypt-1.4.5:0" -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 @@ -164,6 +160,11 @@ pkg_setup() { : } +src_unpack() { + default + cros-workon_src_unpack +} + src_prepare() { # Bug 463376 sed -i -e 's/GROUP="dialout"/GROUP="uucp"/' rules/*.rules || die @@ -177,7 +178,7 @@ src_configure() { # Fix systems broken by bug #509454. [[ ${MY_UDEVDIR} ]] || MY_UDEVDIR=/lib/udev - if use python || use terminal; then + if use terminal; then python_setup fi @@ -188,6 +189,9 @@ multilib_src_configure() { local myeconfargs=( --with-pamconfdir=/usr/share/pam.d + # Workaround for gcc-4.7, bug 554454. + cc_cv_CFLAGS__Werror_shadow=no + # Workaround for bug 516346 --enable-dependency-tracking @@ -207,6 +211,9 @@ multilib_src_configure() { # no deps --enable-efi --enable-ima + # Moved to dev-python/python-systemd + --disable-python-devel + --without-python # Optional components/dependencies $(multilib_native_use_enable acl) @@ -231,12 +238,11 @@ multilib_src_configure() { $(multilib_native_use_enable nat libiptc) $(multilib_native_use_enable pam) $(multilib_native_use_enable policykit polkit) - $(multilib_native_use_with python) - $(multilib_native_use_enable python python-devel) $(multilib_native_use_enable qrcode qrencode) $(multilib_native_use_enable seccomp) $(multilib_native_use_enable selinux) $(multilib_native_use_enable terminal) + $(multilib_native_use_with terminal unifont "${WORKDIR}/${UNIFONT}.hex") $(multilib_native_use_enable test tests) $(multilib_native_use_enable test dbus) $(multilib_native_use_enable xkb xkbcommon)