From 10087423e3d0467e699f775c0e6e1ac7e116de58 Mon Sep 17 00:00:00 2001 From: Justin Lecher Date: Sun, 12 Nov 2017 21:08:35 +0000 Subject: app-emulation/lxc: Handle automagic dep in selinux Signed-off-by: Justin Lecher Package-Manager: Portage-2.3.13, Repoman-2.3.4 --- app-emulation/lxc/files/lxc.initd.6 | 118 ------------------------------------ app-emulation/lxc/lxc-2.0.8.ebuild | 17 +++--- 2 files changed, 10 insertions(+), 125 deletions(-) delete mode 100644 app-emulation/lxc/files/lxc.initd.6 (limited to 'app-emulation/lxc') diff --git a/app-emulation/lxc/files/lxc.initd.6 b/app-emulation/lxc/files/lxc.initd.6 deleted file mode 100644 index a66dfdd22b41..000000000000 --- a/app-emulation/lxc/files/lxc.initd.6 +++ /dev/null @@ -1,118 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -CONTAINER=${SVCNAME#*.} - -LXC_PATH=`lxc-config lxc.lxcpath` - -lxc_get_configfile() { - if [ -f "${LXC_PATH}/${CONTAINER}.conf" ]; then - echo "${LXC_PATH}/${CONTAINER}.conf" - elif [ -f "${LXC_PATH}/${CONTAINER}/config" ]; then - echo "${LXC_PATH}/${CONTAINER}/config" - else - eerror "Unable to find a suitable configuration file." - eerror "If you set up the container in a non-standard" - eerror "location, please set the CONFIGFILE variable." - return 1 - fi -} - -[ $CONTAINER != $SVCNAME ] && CONFIGFILE=${CONFIGFILE:-$(lxc_get_configfile)} - -lxc_get_var() { - awk 'BEGIN { FS="[ \t]*=[ \t]*" } $1 == "'$1'" { print $2; exit }' ${CONFIGFILE} -} - -lxc_get_net_link_type() { - awk 'BEGIN { FS="[ \t]*=[ \t]*"; _link=""; _type="" } - $1 == "lxc.network.type" {_type=$2;} - $1 == "lxc.network.link" {_link=$2;} - {if(_link != "" && _type != ""){ - printf("%s:%s\n", _link, _type ); - _link=""; _type=""; - }; }' <${CONFIGFILE} -} - -checkconfig() { - if [ ${CONTAINER} = ${SVCNAME} ]; then - eerror "You have to create an init script for each container:" - eerror " ln -s lxc /etc/init.d/lxc.container" - return 1 - fi - - # no need to output anything, the function takes care of that. - [ -z "${CONFIGFILE}" ] && return 1 - - utsname=$(lxc_get_var lxc.utsname) - if [ ${CONTAINER} != ${utsname} ]; then - eerror "You should use the same name for the service and the" - eerror "container. Right now the container is called ${utsname}" - return 1 - fi -} - -depend() { - # be quiet, since we have to run depend() also for the - # non-muxed init script, unfortunately. - checkconfig 2>/dev/null || return 0 - - config ${CONFIGFILE} - need localmount - use lxcfs - - local _x _if - for _x in $(lxc_get_net_link_type); do - _if=${_x%:*} - case "${_x##*:}" in - # when the network type is set to phys, we can make use of a - # network service (for instance to set it up before we disable - # the net_admin capability), but we might also not set it up - # at all on the host and leave the net_admin capable service - # to take care of it. - phys) use net.${_if} ;; - *) need net.${_if} ;; - esac - done -} - -start() { - checkconfig || return 1 - rm -f /var/log/lxc/${CONTAINER}.log - - rootpath=$(lxc_get_var lxc.rootfs) - - # Check the format of our init and the chroot's init, to see - # if we have to use linux32 or linux64; always use setarch - # when required, as that makes it easier to deal with - # x32-based containers. - case $(scanelf -BF '%a#f' ${rootpath}/sbin/init) in - EM_X86_64) setarch=linux64;; - EM_386) setarch=linux32;; - esac - - ebegin "Starting ${CONTAINER}" - env -i ${setarch} $(which lxc-start) -l WARN -n ${CONTAINER} -f ${CONFIGFILE} -d -o /var/log/lxc/${CONTAINER}.log - sleep 1 - - # lxc-start -d will _always_ report a correct startup, even if it - # failed, so rather than trust that, check that the cgroup exists. - [ -d /sys/fs/cgroup/cpuset/lxc/${CONTAINER} ] - eend $? -} - -stop() { - checkconfig || return 1 - - - if ! [ -d /sys/fs/cgroup/cpuset/lxc/${CONTAINER} ]; then - ewarn "${CONTAINER} doesn't seem to be started." - return 0 - fi - - # 10s should be enough to shut everything down - ebegin "Stopping ${CONTAINER}" - lxc-stop -t 10 -n ${CONTAINER} - eend $? -} diff --git a/app-emulation/lxc/lxc-2.0.8.ebuild b/app-emulation/lxc/lxc-2.0.8.ebuild index ae0977801e10..d22f583a5a46 100644 --- a/app-emulation/lxc/lxc-2.0.8.ebuild +++ b/app-emulation/lxc/lxc-2.0.8.ebuild @@ -1,9 +1,9 @@ # Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -EAPI="6" +EAPI=6 -PYTHON_COMPAT=( python{3_4,3_5} ) +PYTHON_COMPAT=( python3_{4,5,6} ) DISTUTILS_OPTIONAL=1 inherit autotools bash-completion-r1 distutils-r1 linux-info versionator flag-o-matic systemd @@ -16,21 +16,23 @@ KEYWORDS="~amd64 ~arm ~arm64" LICENSE="LGPL-3" SLOT="0" -IUSE="cgmanager doc examples lua python seccomp" +IUSE="cgmanager doc examples lua python seccomp selinux" -RDEPEND="net-libs/gnutls +RDEPEND=" + net-libs/gnutls sys-libs/libcap cgmanager? ( app-admin/cgmanager ) lua? ( >=dev-lang/lua-5.1:= ) python? ( ${PYTHON_DEPS} ) - seccomp? ( sys-libs/libseccomp )" + seccomp? ( sys-libs/libseccomp ) + selinux? ( sys-libs/libselinux )" DEPEND="${RDEPEND} doc? ( app-text/docbook-sgml-utils ) >=sys-kernel/linux-headers-3.2" RDEPEND="${RDEPEND} - sys-process/criu + sys-process/criu[selinux=] sys-apps/util-linux app-misc/pax-utils virtual/awk" @@ -136,7 +138,8 @@ src_configure() { $(use_enable examples) \ $(use_enable lua) \ $(use_enable python) \ - $(use_enable seccomp) + $(use_enable seccomp) \ + $(use_enable selinux) } python_compile() { -- cgit v1.2.3-65-gdbad