summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /app-emulation/lxc
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'app-emulation/lxc')
-rw-r--r--app-emulation/lxc/Manifest5
-rw-r--r--app-emulation/lxc/files/lxc-1.0.6-bash-completion.patch39
-rw-r--r--app-emulation/lxc/files/lxc-1.1.0-fix-gentoo-template.patch35
-rw-r--r--app-emulation/lxc/files/lxc-1.1.1-shm-tmpfs.patch31
-rw-r--r--app-emulation/lxc/files/lxc-1.1.2-fix-gentoo-moresecure-template.patch33
-rw-r--r--app-emulation/lxc/files/lxc.initd.3139
-rw-r--r--app-emulation/lxc/files/lxc_at.service12
-rw-r--r--app-emulation/lxc/files/lxc_at.service.214
-rw-r--r--app-emulation/lxc/lxc-1.0.6-r1.ebuild186
-rw-r--r--app-emulation/lxc/lxc-1.0.7.ebuild187
-rw-r--r--app-emulation/lxc/lxc-1.1.0-r6.ebuild196
-rw-r--r--app-emulation/lxc/lxc-1.1.1-r1.ebuild197
-rw-r--r--app-emulation/lxc/lxc-1.1.2-r1.ebuild195
-rw-r--r--app-emulation/lxc/lxc-1.1.2-r2.ebuild195
-rw-r--r--app-emulation/lxc/lxc-1.1.2.ebuild194
-rw-r--r--app-emulation/lxc/metadata.xml20
16 files changed, 1678 insertions, 0 deletions
diff --git a/app-emulation/lxc/Manifest b/app-emulation/lxc/Manifest
new file mode 100644
index 000000000000..cc4a5655230a
--- /dev/null
+++ b/app-emulation/lxc/Manifest
@@ -0,0 +1,5 @@
+DIST lxc-1.0.6.tar.gz 561249 SHA256 2aea199a89e2cd946f93406af6c3f62844f36954b79a6991b36d2c33022cb11c SHA512 fe85ccb57865d86704df6b4b79d60f31892785b07dc9dd2580cc6c384c89c29c23516e906b7a16bc03c6582c1fb2432bb8ff11bd17c09efa8f6a035fb41f46b1 WHIRLPOOL 9e77453fbe31523a2e8f39cfaba6f09fef68d00b54549167a0cde56c00934f827f5b4190b9fb64242f36782a9fcda63e6796c35fd47420870c2cee7b9bc0a1c8
+DIST lxc-1.0.7.tar.gz 564985 SHA256 a0b1b09592e076e270dcb3ba004616d9ac3147f9de0b78ca39a30f8956b0a8f2 SHA512 e6ff42a7b41177e1be0d2cd47d4c554565c7fc35355f3aa8aeba00d4adc7a0f364ecd060ddb6c97b2fe5968329c4e4c4b3cb022bffd2da145f30880f077264a8 WHIRLPOOL f07e5e9efb8ff394aa9cdd6c3e725b453c8137ec221399cbf910d57dbc9268fc84e7227273567792821415dc14e774942b76a58a1a478de57d5c82e545702000
+DIST lxc-1.1.0.tar.gz 592543 SHA256 216e806f7e18e5bfbc782493a9e44fc255f24a587d6faee94cda848a0b949155 SHA512 160da88d6dc96cd9f0679f948bfed057c024adcd459fa4b79e872d12284fa3774ac33a13923c6e150072886a371ccfcdf7ab2c4587efa7f6175fc91a67525c4a WHIRLPOOL 2caf81418850ea8b1ecf25b25e799895563ecf1819f32310fcbb4efe88f711eafe2bcb16a0d3b8ee59072c770a5520b4df90a5962215b932e68a4705c4a56d61
+DIST lxc-1.1.1.tar.gz 594112 SHA256 64951fdd39df2bea083bb5a8ac35a7390daf2dc7753d8fce33138129892ef672 SHA512 8af3fb43127b57de4e252baf5cb387270955062ff3838e4807a93d04520ca23f0457913bc8274da51b20961fb08650f9b976a84d395785aca2b2d300b285d549 WHIRLPOOL 4f28b976dd6710705d6361b9a45fef9a1265dffef0cedd0fb304f2820585ece3e2bb64d4c5289d444b3ab55bac265850943c63cdf258c40c45c99176a788ca2a
+DIST lxc-1.1.2.tar.gz 597158 SHA256 f22fcf2659ca98dfe864e632374de98c42cdf465d0c694834b6f6098a3cb8519 SHA512 7c4c9b5418321eedcd37a3f5c2c99ff227de48f672cabd1722a74722077d33badb038675ec95fc3e338eaf2b06972c4ffb2e11f36347587ef71a95fad5b66daa WHIRLPOOL 2b657a9195b6357a367f6aa7609952d9162aae7d7be3f2c5e4cda4b2e81f2c7411835e75af5740cca053d445a3cf7dc7457f9e76ca866de7265e99ed42c744e9
diff --git a/app-emulation/lxc/files/lxc-1.0.6-bash-completion.patch b/app-emulation/lxc/files/lxc-1.0.6-bash-completion.patch
new file mode 100644
index 000000000000..942c12f05198
--- /dev/null
+++ b/app-emulation/lxc/files/lxc-1.0.6-bash-completion.patch
@@ -0,0 +1,39 @@
+ config/bash/Makefile.am | 8 ++++----
+ config/bash/lxc.in | 2 --
+ 2 files changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/config/bash/Makefile.am b/config/bash/Makefile.am
+index b1768c9..3fbbe8e 100644
+--- a/config/bash/Makefile.am
++++ b/config/bash/Makefile.am
+@@ -2,12 +2,12 @@ EXTRA_DIST = lxc
+
+ if ENABLE_BASH
+ install-bash:
+- $(MKDIR_P) $(DESTDIR)$(sysconfdir)/bash_completion.d/
+- $(INSTALL_DATA) lxc $(DESTDIR)$(sysconfdir)/bash_completion.d/
++ $(MKDIR_P) $(DESTDIR)$(datarootdir)/bash-completion/completions/
++ $(INSTALL_DATA) lxc $(DESTDIR)$(datarootdir)/bash-completion/completions/
+
+ uninstall-bash:
+- rm -f $(DESTDIR)$(sysconfdir)/bash_completion.d/lxc
+- rmdir $(DESTDIR)$(sysconfdir)/bash_completion.d/ || :
++ rm -f $(DESTDIR)$(datarootdir)/bash-completion/completions/lxc
++ rmdir $(DESTDIR)$(datarootdir)/bash-completion/ || :
+
+ install-data-local: install-bash
+ uninstall-local: uninstall-bash
+diff --git a/config/bash/lxc.in b/config/bash/lxc.in
+index 18fd48f..8fff725 100644
+--- a/config/bash/lxc.in
++++ b/config/bash/lxc.in
+@@ -1,4 +1,3 @@
+-have lxc-start && {
+ _lxc_names() {
+ COMPREPLY=( $( compgen -W "$( lxc-ls )" "$cur" ) )
+ }
+@@ -100,4 +99,3 @@ have lxc-start && {
+
+ complete -o default -F _lxc-generic-o lxc-clone
+ complete -o default -F _lxc-generic-o lxc-start-ephemeral
+-}
diff --git a/app-emulation/lxc/files/lxc-1.1.0-fix-gentoo-template.patch b/app-emulation/lxc/files/lxc-1.1.0-fix-gentoo-template.patch
new file mode 100644
index 000000000000..35141863c0d7
--- /dev/null
+++ b/app-emulation/lxc/files/lxc-1.1.0-fix-gentoo-template.patch
@@ -0,0 +1,35 @@
+From 425aa66d33e1833cfa47b988785def8b42b72f1a Mon Sep 17 00:00:00 2001
+From: Markos Chandras <hwoarang@gentoo.org>
+Date: Sun, 22 Feb 2015 01:25:36 +0200
+Subject: [PATCH] templates/lxc-gentoo.in: Fix stage3 autodetection code
+
+The latest-stage3-$variant.txt files list both the tarball name
+and the released date but we only need to pass the stage3 tarball
+name to the subsequent wget command otherwise we end up with 404
+errors.
+
+Signed-off-by: Markos Chandras <hwoarang@gentoo.org>
+---
+Different patches have been posted to the mailing lists or github so this is
+likely to be fixed upstream really soon
+---
+ templates/lxc-gentoo.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/templates/lxc-gentoo.in b/templates/lxc-gentoo.in
+index 5a87866..464c948 100644
+--- a/templates/lxc-gentoo.in
++++ b/templates/lxc-gentoo.in
+@@ -160,7 +160,8 @@ cache_stage3()
+ printf "Determining path to latest Gentoo %s (%s) stage3 archive...\n" "${arch}" "${variant}"
+ printf " => downloading and processing %s\n" "${stage3_pointer}"
+
+- local stage3_latest_tarball=$(wget -q -O - "${stage3_pointer}" | tail -n1 ) \
++ local stage3_latest_tarball=$(wget -q -O - "${stage3_pointer}" | \
++ tail -n1 | cut -d " " -f 1) \
+ || die 6 "Error: unable to fetch\n"
+
+ printf " => Got: %s\n" "${stage3_latest_tarball}"
+--
+2.3.0
+
diff --git a/app-emulation/lxc/files/lxc-1.1.1-shm-tmpfs.patch b/app-emulation/lxc/files/lxc-1.1.1-shm-tmpfs.patch
new file mode 100644
index 000000000000..7c8f595e0fb6
--- /dev/null
+++ b/app-emulation/lxc/files/lxc-1.1.1-shm-tmpfs.patch
@@ -0,0 +1,31 @@
+From 7ed54c6155982bd8376fdb88bed79c664d5e111f Mon Sep 17 00:00:00 2001
+From: Markos Chandras <hwoarang@gentoo.org>
+Date: Thu, 12 Mar 2015 20:52:11 +0000
+Subject: [PATCH] templates: gentoo.common: Add /dev/shm tmpfs mount entry
+
+/dev/shm needs to be mounted as tmpfs. It's needed by python
+and possibly other packages.
+
+Signed-off-by: Markos Chandras <hwoarang@gentoo.org>
+---
+Applied in master but not in 1.1.1. It will probably make it
+to 1.1.2
+---
+ config/templates/gentoo.common.conf.in | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/config/templates/gentoo.common.conf.in b/config/templates/gentoo.common.conf.in
+index ca3ffc1..49cd411 100644
+--- a/config/templates/gentoo.common.conf.in
++++ b/config/templates/gentoo.common.conf.in
+@@ -21,3 +21,7 @@ lxc.cgroup.devices.allow = c 10:232 rwm
+ ## To use loop devices, copy the following line to the container's
+ ## configuration file (uncommented).
+ #lxc.cgroup.devices.allow = b 7:* rwm
++
++# /dev/shm needs to be mounted as tmpfs. It's needed by python (bug #496328)
++# and possibly other packages.
++lxc.mount.entry = none dev/shm tmpfs rw,nosuid,nodev,create=dir
+--
+2.3.2
+
diff --git a/app-emulation/lxc/files/lxc-1.1.2-fix-gentoo-moresecure-template.patch b/app-emulation/lxc/files/lxc-1.1.2-fix-gentoo-moresecure-template.patch
new file mode 100644
index 000000000000..86a41445574a
--- /dev/null
+++ b/app-emulation/lxc/files/lxc-1.1.2-fix-gentoo-moresecure-template.patch
@@ -0,0 +1,33 @@
+Patch from https://github.com/lxc/lxc/pull/563 didn't make it to stable-1.1
+yes so lets just include it here in case it doesn't end up in 1.1.X in the
+future.
+
+Signed-off-by: Markos Chandras <hwoarang@gentoo.org>
+
+From bc19636d587fbabfbc2252f1bf4887fee87bb247 Mon Sep 17 00:00:00 2001
+From: Dennis Schridde <devurandom@gmx.net>
+Date: Thu, 11 Jun 2015 15:21:19 +0200
+Subject: [PATCH] Fix creation of dev/mqueue and dev/shm on Gentoo
+
+The dev/mqueue and dev/shm directories do not exist when using lxc.autodev, thus they have to be created upon mount.
+
+Signed-off-by: Dennis Schridde <devurandom@gmx.net>
+---
+ config/templates/gentoo.moresecure.conf.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/config/templates/gentoo.moresecure.conf.in b/config/templates/gentoo.moresecure.conf.in
+index 270e9df..f827ad2 100644
+--- a/config/templates/gentoo.moresecure.conf.in
++++ b/config/templates/gentoo.moresecure.conf.in
+@@ -8,8 +8,8 @@ lxc.include = @LXCTEMPLATECONFIG@/common.conf
+ # Container user ? see gentoo.common.conf
+
+ # do not mount sysfs, see http://blog.bofh.it/debian/id_413
+-lxc.mount.entry=mqueue dev/mqueue mqueue rw,nodev,noexec,nosuid 0 0
+-lxc.mount.entry=shm dev/shm tmpfs rw,nosuid,nodev,noexec,relatime 0 0
++lxc.mount.entry=mqueue dev/mqueue mqueue rw,nodev,noexec,nosuid,create=dir 0 0
++lxc.mount.entry=shm dev/shm tmpfs rw,nosuid,nodev,noexec,relatime,create=dir 0 0
+ lxc.mount.entry=run run tmpfs rw,nosuid,nodev,relatime,mode=755 0 0
+
+ # this part is based on 'linux capabilities', see: man 7 capabilities
diff --git a/app-emulation/lxc/files/lxc.initd.3 b/app-emulation/lxc/files/lxc.initd.3
new file mode 100644
index 000000000000..c9ef99919922
--- /dev/null
+++ b/app-emulation/lxc/files/lxc.initd.3
@@ -0,0 +1,139 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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
+
+ 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 /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} $(type -p lxc-start) -l WARN -n ${CONTAINER} -f ${CONFIGFILE} -d -o /var/log/lxc/${CONTAINER}.log
+ sleep 0.5
+
+ # 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
+
+ init_pid=$(lxc-info -n ${CONTAINER} --pid | awk '{ print $2 }')
+
+ if [ -z "${init_pid}" ]; then
+ ewarn "${CONTAINER} doesn't seem to be running."
+ return 0
+ fi
+
+ ebegin "Shutting down system in ${CONTAINER}"
+ kill -PWR ${init_pid}
+ eend $?
+
+ TIMEOUT=${TIMEOUT:-30}
+ i=0
+ while [ -n "$(pgrep -P ${init_pid})" -a $i -lt ${TIMEOUT} ]; do
+ sleep 1
+ i=$(expr $i + 1)
+ done
+
+ if [ -n "${missingprocs}" ]; then
+ ewarn "Something failed to properly shut down in ${CONTAINER}"
+ fi
+
+ ebegin "Stopping ${CONTAINER}"
+ lxc-stop -n ${CONTAINER}
+ eend $?
+}
diff --git a/app-emulation/lxc/files/lxc_at.service b/app-emulation/lxc/files/lxc_at.service
new file mode 100644
index 000000000000..1ef449775306
--- /dev/null
+++ b/app-emulation/lxc/files/lxc_at.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Linux Container %I
+After=network.target
+
+[Service]
+Restart=always
+ExecStart=/usr/sbin/lxc-start -n %i
+ExecReload=/usr/sbin/lxc-restart -n %i
+ExecStop=/usr/sbin/lxc-stop -n %i
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-emulation/lxc/files/lxc_at.service.2 b/app-emulation/lxc/files/lxc_at.service.2
new file mode 100644
index 000000000000..82306a09ab83
--- /dev/null
+++ b/app-emulation/lxc/files/lxc_at.service.2
@@ -0,0 +1,14 @@
+[Unit]
+Description=Linux Container %I
+After=network.target
+
+[Service]
+Restart=always
+ExecStartPre=/usr/libexec/lxc/lxc-devsetup
+ExecStart=/usr/bin/lxc-start -n %i -F
+ExecReload=/usr/bin/lxc-restart -n %i
+ExecStop=/usr/bin/lxc-stop -n %i
+Delegate=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/app-emulation/lxc/lxc-1.0.6-r1.ebuild b/app-emulation/lxc/lxc-1.0.6-r1.ebuild
new file mode 100644
index 000000000000..a9b43e5f41be
--- /dev/null
+++ b/app-emulation/lxc/lxc-1.0.6-r1.ebuild
@@ -0,0 +1,186 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+MY_P="${P/_/-}"
+PYTHON_COMPAT=( python{3_3,3_4} )
+DISTUTILS_OPTIONAL=1
+
+inherit autotools bash-completion-r1 distutils-r1 eutils linux-info versionator flag-o-matic systemd
+
+DESCRIPTION="LinuX Containers userspace utilities"
+HOMEPAGE="https://linuxcontainers.org/"
+SRC_URI="https://github.com/lxc/lxc/archive/${MY_P}.tar.gz"
+
+KEYWORDS="~amd64 ~arm ~ppc64 ~x86"
+
+LICENSE="LGPL-3"
+SLOT="0"
+IUSE="doc examples lua python seccomp"
+
+RDEPEND="net-libs/gnutls
+ sys-libs/libcap
+ lua? ( >=dev-lang/lua-5.1:= )
+ python? ( ${PYTHON_DEPS} )
+ seccomp? ( sys-libs/libseccomp )"
+
+DEPEND="${RDEPEND}
+ doc? ( app-text/docbook-sgml-utils )
+ >=sys-kernel/linux-headers-3.2"
+
+RDEPEND="${RDEPEND}
+ sys-apps/util-linux
+ app-misc/pax-utils
+ virtual/awk"
+
+CONFIG_CHECK="~CGROUPS ~CGROUP_DEVICE
+ ~CPUSETS ~CGROUP_CPUACCT
+ ~RESOURCE_COUNTERS
+ ~CGROUP_SCHED
+
+ ~NAMESPACES
+ ~IPC_NS ~USER_NS ~PID_NS
+
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUP_FREEZER
+ ~UTS_NS ~NET_NS
+ ~VETH ~MACVLAN
+
+ ~POSIX_MQUEUE
+ ~!NETPRIO_CGROUP
+
+ ~!GRKERNSEC_CHROOT_MOUNT
+ ~!GRKERNSEC_CHROOT_DOUBLE
+ ~!GRKERNSEC_CHROOT_PIVOT
+ ~!GRKERNSEC_CHROOT_CHMOD
+ ~!GRKERNSEC_CHROOT_CAPS
+"
+
+ERROR_DEVPTS_MULTIPLE_INSTANCES="CONFIG_DEVPTS_MULTIPLE_INSTANCES: needed for pts inside container"
+
+ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers"
+
+ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info"
+ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network"
+
+ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking"
+ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking"
+
+ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command"
+
+ERROR_NETPRIO_CGROUP="CONFIG_NETPRIO_CGROUP: as of kernel 3.3 and lxc 0.8.0_rc1 this causes LXCs to fail booting."
+
+ERROR_GRKERNSEC_CHROOT_MOUNT=":CONFIG_GRKERNSEC_CHROOT_MOUNT some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_DOUBLE=":CONFIG_GRKERNSEC_CHROOT_DOUBLE some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_PIVOT=":CONFIG_GRKERNSEC_CHROOT_PIVOT some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_CHMOD=":CONFIG_GRKERNSEC_CHROOT_CHMOD some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_CAPS=":CONFIG_GRKERNSEC_CHROOT_CAPS some GRSEC features make LXC unusable see postinst notes"
+
+DOCS=(AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt)
+
+S="${WORKDIR}/${PN}-${MY_P}"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+src_prepare() {
+ sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g' configure.ac || die
+ if [[ -n ${BACKPORTS} ]]; then
+ epatch "${WORKDIR}"/patches/*
+ fi
+
+ epatch "${FILESDIR}"/${P}-bash-completion.patch
+
+ eautoreconf
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+
+ econf \
+ --localstatedir=/var \
+ --bindir=/usr/sbin \
+ --docdir=/usr/share/doc/${PF} \
+ --with-config-path=/etc/lxc \
+ --with-rootfs-path=/usr/lib/lxc/rootfs \
+ $(use_enable doc) \
+ --disable-apparmor \
+ $(use_enable examples) \
+ $(use_enable lua) \
+ $(use_enable seccomp) \
+ --disable-python
+}
+
+python_compile() {
+ distutils-r1_python_compile build_ext -I ../ -L ../${PN}
+}
+
+src_compile() {
+ default
+
+ if use python; then
+ pushd "${S}/src/python-${PN}" > /dev/null
+ distutils-r1_src_compile
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ default
+
+ mv "${ED}"/usr/share/bash-completion/completions/${PN} "${ED}"/$(get_bashcompdir)/${PN}-start || die
+ bashcomp_alias ${PN}-start \
+ ${PN}-{attach,cgroup,clone,console,create,destroy,device,execute,freeze,info,monitor,snapshot,start-ephemeral,stop,unfreeze,wait}
+
+ if use python; then
+ pushd "${S}/src/python-lxc" > /dev/null
+ # Unset DOCS. This has been handled by the default target
+ unset DOCS
+ distutils-r1_src_install
+ popd > /dev/null
+ fi
+
+ keepdir /etc/lxc /usr/lib/lxc/rootfs /var/log/lxc
+
+ find "${D}" -name '*.la' -delete
+
+ # Gentoo-specific additions!
+ # Use initd.3 per #517144
+ newinitd "${FILESDIR}/${PN}.initd.3" ${PN}
+
+ # lxc-devsetup script
+ exeinto /usr/libexec/${PN}
+ doexe config/init/systemd/${PN}-devsetup
+ # Use that script with the systemd service (Similar to upstream
+ # Makefile.am
+ cp "${FILESDIR}"/${PN}_at.service ${PN}_at.service || die
+ sed -i \
+ "/Restart=always/a ExecStartPre=/usr/libexec/${PN}/${PN}-devsetup" \
+ ${PN}_at.service \
+ || die "Failed to add ${PN}-devsetup to the systemd service file"
+ systemd_newunit ${PN}_at.service "lxc@.service"
+}
+
+pkg_postinst() {
+ elog "There is an init script provided with the package now; no documentation"
+ elog "is currently available though, so please check out /etc/init.d/lxc ."
+ elog "You _should_ only need to symlink it to /etc/init.d/lxc.configname"
+ elog "to start the container defined into /etc/lxc/configname.conf ."
+ elog "For further information about LXC development see"
+ elog "http://blog.flameeyes.eu/tag/lxc" # remove once proper doc is available
+ elog ""
+ ewarn "With version 0.7.4, the mountpoint syntax came back to the one used by 0.7.2"
+ ewarn "and previous versions. This means you'll have to use syntax like the following"
+ ewarn ""
+ ewarn " lxc.rootfs = /container"
+ ewarn " lxc.mount.entry = /usr/portage /container/usr/portage none bind 0 0"
+ ewarn ""
+ ewarn "To use the Fedora, Debian and (various) Ubuntu auto-configuration scripts, you"
+ ewarn "will need sys-apps/yum or dev-util/debootstrap."
+ ewarn ""
+ ewarn "Some GrSecurity settings in relation to chroot security will cause LXC not to"
+ ewarn "work, while others will actually make it much more secure. Please refer to"
+ ewarn "Diego Elio Pettenò's weblog at http://blog.flameeyes.eu/tag/lxc for further"
+ ewarn "details."
+}
diff --git a/app-emulation/lxc/lxc-1.0.7.ebuild b/app-emulation/lxc/lxc-1.0.7.ebuild
new file mode 100644
index 000000000000..bb1af21dbb2a
--- /dev/null
+++ b/app-emulation/lxc/lxc-1.0.7.ebuild
@@ -0,0 +1,187 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+MY_P="${P/_/-}"
+PYTHON_COMPAT=( python{3_3,3_4} )
+DISTUTILS_OPTIONAL=1
+
+inherit autotools bash-completion-r1 distutils-r1 eutils linux-info versionator flag-o-matic systemd
+
+DESCRIPTION="LinuX Containers userspace utilities"
+HOMEPAGE="https://linuxcontainers.org/"
+SRC_URI="https://github.com/lxc/lxc/archive/${MY_P}.tar.gz"
+
+KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86"
+
+LICENSE="LGPL-3"
+SLOT="0"
+IUSE="doc examples lua python seccomp"
+
+RDEPEND="net-libs/gnutls
+ sys-libs/libcap
+ lua? ( >=dev-lang/lua-5.1:= )
+ python? ( ${PYTHON_DEPS} )
+ seccomp? ( sys-libs/libseccomp )"
+
+DEPEND="${RDEPEND}
+ doc? ( app-text/docbook-sgml-utils )
+ >=sys-kernel/linux-headers-3.2"
+
+RDEPEND="${RDEPEND}
+ sys-apps/util-linux
+ app-misc/pax-utils
+ virtual/awk"
+
+CONFIG_CHECK="~CGROUPS ~CGROUP_DEVICE
+ ~CPUSETS ~CGROUP_CPUACCT
+ ~RESOURCE_COUNTERS
+ ~CGROUP_SCHED
+
+ ~NAMESPACES
+ ~IPC_NS ~USER_NS ~PID_NS
+
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUP_FREEZER
+ ~UTS_NS ~NET_NS
+ ~VETH ~MACVLAN
+
+ ~POSIX_MQUEUE
+ ~!NETPRIO_CGROUP
+
+ ~!GRKERNSEC_CHROOT_MOUNT
+ ~!GRKERNSEC_CHROOT_DOUBLE
+ ~!GRKERNSEC_CHROOT_PIVOT
+ ~!GRKERNSEC_CHROOT_CHMOD
+ ~!GRKERNSEC_CHROOT_CAPS
+"
+
+ERROR_DEVPTS_MULTIPLE_INSTANCES="CONFIG_DEVPTS_MULTIPLE_INSTANCES: needed for pts inside container"
+
+ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers"
+
+ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info"
+ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network"
+
+ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking"
+ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking"
+
+ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command"
+
+ERROR_NETPRIO_CGROUP="CONFIG_NETPRIO_CGROUP: as of kernel 3.3 and lxc 0.8.0_rc1 this causes LXCs to fail booting."
+
+ERROR_GRKERNSEC_CHROOT_MOUNT=":CONFIG_GRKERNSEC_CHROOT_MOUNT some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_DOUBLE=":CONFIG_GRKERNSEC_CHROOT_DOUBLE some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_PIVOT=":CONFIG_GRKERNSEC_CHROOT_PIVOT some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_CHMOD=":CONFIG_GRKERNSEC_CHROOT_CHMOD some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_CAPS=":CONFIG_GRKERNSEC_CHROOT_CAPS some GRSEC features make LXC unusable see postinst notes"
+
+DOCS=(AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt)
+
+S="${WORKDIR}/${PN}-${MY_P}"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+src_prepare() {
+ sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g' configure.ac || die
+ if [[ -n ${BACKPORTS} ]]; then
+ epatch "${WORKDIR}"/patches/*
+ fi
+
+ epatch "${FILESDIR}"/${PN}-1.0.6-bash-completion.patch
+
+ eautoreconf
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+
+ econf \
+ --localstatedir=/var \
+ --bindir=/usr/sbin \
+ --docdir=/usr/share/doc/${PF} \
+ --with-config-path=/etc/lxc \
+ --with-rootfs-path=/usr/lib/lxc/rootfs \
+ --with-distro=gentoo \
+ $(use_enable doc) \
+ --disable-apparmor \
+ $(use_enable examples) \
+ $(use_enable lua) \
+ $(use_enable seccomp) \
+ --disable-python
+}
+
+python_compile() {
+ distutils-r1_python_compile build_ext -I ../ -L ../${PN}
+}
+
+src_compile() {
+ default
+
+ if use python; then
+ pushd "${S}/src/python-${PN}" > /dev/null
+ distutils-r1_src_compile
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ default
+
+ mv "${ED}"/usr/share/bash-completion/completions/${PN} "${ED}"/$(get_bashcompdir)/${PN}-start || die
+ bashcomp_alias ${PN}-start \
+ ${PN}-{attach,cgroup,clone,console,create,destroy,device,execute,freeze,info,monitor,snapshot,start-ephemeral,stop,unfreeze,wait}
+
+ if use python; then
+ pushd "${S}/src/python-lxc" > /dev/null
+ # Unset DOCS. This has been handled by the default target
+ unset DOCS
+ distutils-r1_src_install
+ popd > /dev/null
+ fi
+
+ keepdir /etc/lxc /usr/lib/lxc/rootfs /var/log/lxc
+
+ find "${D}" -name '*.la' -delete
+
+ # Gentoo-specific additions!
+ # Use initd.3 per #517144
+ newinitd "${FILESDIR}/${PN}.initd.3" ${PN}
+
+ # lxc-devsetup script
+ exeinto /usr/libexec/${PN}
+ doexe config/init/systemd/${PN}-devsetup
+ # Use that script with the systemd service (Similar to upstream
+ # Makefile.am
+ cp "${FILESDIR}"/${PN}_at.service ${PN}_at.service || die
+ sed -i \
+ "/Restart=always/a ExecStartPre=/usr/libexec/${PN}/${PN}-devsetup" \
+ ${PN}_at.service \
+ || die "Failed to add ${PN}-devsetup to the systemd service file"
+ systemd_newunit ${PN}_at.service "lxc@.service"
+}
+
+pkg_postinst() {
+ elog "There is an init script provided with the package now; no documentation"
+ elog "is currently available though, so please check out /etc/init.d/lxc ."
+ elog "You _should_ only need to symlink it to /etc/init.d/lxc.configname"
+ elog "to start the container defined into /etc/lxc/configname.conf ."
+ elog "For further information about LXC development see"
+ elog "http://blog.flameeyes.eu/tag/lxc" # remove once proper doc is available
+ elog ""
+ ewarn "With version 0.7.4, the mountpoint syntax came back to the one used by 0.7.2"
+ ewarn "and previous versions. This means you'll have to use syntax like the following"
+ ewarn ""
+ ewarn " lxc.rootfs = /container"
+ ewarn " lxc.mount.entry = /usr/portage /container/usr/portage none bind 0 0"
+ ewarn ""
+ ewarn "To use the Fedora, Debian and (various) Ubuntu auto-configuration scripts, you"
+ ewarn "will need sys-apps/yum or dev-util/debootstrap."
+ ewarn ""
+ ewarn "Some GrSecurity settings in relation to chroot security will cause LXC not to"
+ ewarn "work, while others will actually make it much more secure. Please refer to"
+ ewarn "Diego Elio Pettenò's weblog at http://blog.flameeyes.eu/tag/lxc for further"
+ ewarn "details."
+}
diff --git a/app-emulation/lxc/lxc-1.1.0-r6.ebuild b/app-emulation/lxc/lxc-1.1.0-r6.ebuild
new file mode 100644
index 000000000000..5551bc9bf6cb
--- /dev/null
+++ b/app-emulation/lxc/lxc-1.1.0-r6.ebuild
@@ -0,0 +1,196 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+MY_P="${P/_/-}"
+PYTHON_COMPAT=( python{3_3,3_4} )
+DISTUTILS_OPTIONAL=1
+
+inherit autotools bash-completion-r1 distutils-r1 eutils linux-info versionator flag-o-matic systemd
+
+DESCRIPTION="LinuX Containers userspace utilities"
+HOMEPAGE="https://linuxcontainers.org/"
+SRC_URI="https://github.com/lxc/lxc/archive/${MY_P}.tar.gz"
+
+KEYWORDS="~amd64 ~arm"
+
+LICENSE="LGPL-3"
+SLOT="0"
+IUSE="cgmanager doc examples lua python seccomp"
+
+RDEPEND="net-libs/gnutls
+ sys-libs/libcap
+ cgmanager? ( app-admin/cgmanager )
+ lua? ( >=dev-lang/lua-5.1:= )
+ python? ( ${PYTHON_DEPS} )
+ seccomp? ( sys-libs/libseccomp )"
+
+DEPEND="${RDEPEND}
+ doc? ( app-text/docbook-sgml-utils )
+ >=sys-kernel/linux-headers-3.2"
+
+RDEPEND="${RDEPEND}
+ sys-process/criu
+ sys-apps/util-linux
+ app-misc/pax-utils
+ virtual/awk"
+
+CONFIG_CHECK="~CGROUPS ~CGROUP_DEVICE
+ ~CPUSETS ~CGROUP_CPUACCT
+ ~CGROUP_SCHED
+
+ ~NAMESPACES
+ ~IPC_NS ~USER_NS ~PID_NS
+
+ ~NETLINK_DIAG ~PACKET_DIAG
+ ~INET_UDP_DIAG ~INET_TCP_DIAG
+ ~UNIX_DIAG ~CHECKPOINT_RESTORE
+
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUP_FREEZER
+ ~UTS_NS ~NET_NS
+ ~VETH ~MACVLAN
+
+ ~POSIX_MQUEUE
+ ~!NETPRIO_CGROUP
+
+ ~!GRKERNSEC_CHROOT_MOUNT
+ ~!GRKERNSEC_CHROOT_DOUBLE
+ ~!GRKERNSEC_CHROOT_PIVOT
+ ~!GRKERNSEC_CHROOT_CHMOD
+ ~!GRKERNSEC_CHROOT_CAPS
+"
+
+ERROR_DEVPTS_MULTIPLE_INSTANCES="CONFIG_DEVPTS_MULTIPLE_INSTANCES: needed for pts inside container"
+
+ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers"
+
+ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info"
+ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network"
+
+ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking"
+ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking"
+
+ERROR_NETLINK_DIAG="CONFIG_NETLINK_DIAG: needed for lxc-checkpoint"
+ERROR_PACKET_DIAG="CONFIG_PACKET_DIAG: needed for lxc-checkpoint"
+ERROR_INET_UDP_DIAG="CONFIG_INET_UDP_DIAG: needed for lxc-checkpoint"
+ERROR_INET_TCP_DIAG="CONFIG_INET_TCP_DIAG: needed for lxc-checkpoint"
+ERROR_UNIX_DIAG="CONFIG_UNIX_DIAG: needed for lxc-checkpoint"
+ERROR_CHECKPOINT_RESTORE="CONFIG_CHECKPOINT_RESTORE: needed for lxc-checkpoint"
+
+ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command"
+
+ERROR_NETPRIO_CGROUP="CONFIG_NETPRIO_CGROUP: as of kernel 3.3 and lxc 0.8.0_rc1 this causes LXCs to fail booting."
+
+ERROR_GRKERNSEC_CHROOT_MOUNT="CONFIG_GRKERNSEC_CHROOT_MOUNT: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_DOUBLE="CONFIG_GRKERNSEC_CHROOT_DOUBLE: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_PIVOT="CONFIG_GRKERNSEC_CHROOT_PIVOT: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_CHMOD="CONFIG_GRKERNSEC_CHROOT_CHMOD: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_CAPS="CONFIG_GRKERNSEC_CHROOT_CAPS: some GRSEC features make LXC unusable see postinst notes"
+
+DOCS=(AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt)
+
+S="${WORKDIR}/${PN}-${MY_P}"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+src_prepare() {
+
+ epatch "${FILESDIR}"/${PN}-1.0.6-bash-completion.patch
+ epatch "${FILESDIR}"/${P}-fix-gentoo-template.patch
+
+ eautoreconf
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+
+ if use python; then
+ #541932
+ python_setup "python3*"
+ export PKG_CONFIG_PATH="${T}/${EPYTHON}/pkgconfig:${PKG_CONFIG_PATH}"
+ fi
+
+ # I am not sure about the --with-rootfs-path
+ # /var/lib/lxc is probably more appropriate than
+ # /usr/lib/lxc.
+ econf \
+ --localstatedir=/var \
+ --bindir=/usr/bin \
+ --sbindir=/usr/bin \
+ --docdir=/usr/share/doc/${PF} \
+ --with-config-path=/var/lib/lxc \
+ --with-rootfs-path=/var/lib/lxc/rootfs \
+ --with-distro=gentoo \
+ --with-runtime-path=/run \
+ --disable-apparmor \
+ $(use_enable cgmanager) \
+ $(use_enable doc) \
+ $(use_enable examples) \
+ $(use_enable lua) \
+ $(use_enable python) \
+ $(use_enable seccomp)
+}
+
+python_compile() {
+ distutils-r1_python_compile build_ext -I ../ -L ../${PN}
+}
+
+src_compile() {
+ default
+
+ if use python; then
+ pushd "${S}/src/python-${PN}" > /dev/null
+ distutils-r1_src_compile
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ default
+
+ mv "${ED}"/usr/share/bash-completion/completions/${PN} "${ED}"/$(get_bashcompdir)/${PN}-start || die
+ bashcomp_alias ${PN}-start \
+ ${PN}-{attach,cgroup,clone,console,create,destroy,device,execute,freeze,info,monitor,snapshot,start-ephemeral,stop,unfreeze,wait}
+
+ if use python; then
+ pushd "${S}/src/python-lxc" > /dev/null
+ # Unset DOCS. This has been handled by the default target
+ unset DOCS
+ distutils-r1_src_install
+ popd > /dev/null
+ fi
+
+ keepdir /etc/lxc /var/lib/lxc/rootfs /var/log/lxc
+
+ find "${D}" -name '*.la' -delete
+
+ # Gentoo-specific additions!
+ # Use initd.3 per #517144
+ newinitd "${FILESDIR}/${PN}.initd.3" ${PN}
+
+ # lxc-devsetup script
+ exeinto /usr/libexec/${PN}
+ doexe config/init/systemd/${PN}-devsetup
+ # Remember to compare our systemd unit file with the upstream one
+ # config/init/systemd/lxc.service.in
+ systemd_newunit "${FILESDIR}"/${PN}_at.service.2 "lxc@.service"
+}
+
+pkg_postinst() {
+ elog ""
+ elog "Starting from version ${PN}-1.1.0-r3, the default lxc path has been"
+ elog "moved from /etc/lxc to /var/lib/lxc. If you still want to use /etc/lxc"
+ elog "please add the following to your /etc/lxc/default.conf"
+ elog "lxc.lxcpath = /etc/lxc"
+ elog ""
+ elog "There is an init script provided with the package now; no documentation"
+ elog "is currently available though, so please check out /etc/init.d/lxc ."
+ elog "You _should_ only need to symlink it to /etc/init.d/lxc.configname"
+ elog "to start the container defined into /etc/lxc/configname.conf ."
+ elog "For further information about LXC development see"
+ elog "http://blog.flameeyes.eu/tag/lxc" # remove once proper doc is available
+ elog ""
+}
diff --git a/app-emulation/lxc/lxc-1.1.1-r1.ebuild b/app-emulation/lxc/lxc-1.1.1-r1.ebuild
new file mode 100644
index 000000000000..fbdb0894ed30
--- /dev/null
+++ b/app-emulation/lxc/lxc-1.1.1-r1.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+MY_P="${P/_/-}"
+PYTHON_COMPAT=( python{3_3,3_4} )
+DISTUTILS_OPTIONAL=1
+
+inherit autotools bash-completion-r1 distutils-r1 eutils linux-info versionator flag-o-matic systemd
+
+DESCRIPTION="LinuX Containers userspace utilities"
+HOMEPAGE="https://linuxcontainers.org/"
+SRC_URI="https://github.com/lxc/lxc/archive/${MY_P}.tar.gz"
+
+KEYWORDS="~amd64 ~arm ~arm64"
+
+LICENSE="LGPL-3"
+SLOT="0"
+IUSE="cgmanager doc examples lua python seccomp"
+
+RDEPEND="net-libs/gnutls
+ sys-libs/libcap
+ cgmanager? ( app-admin/cgmanager )
+ lua? ( >=dev-lang/lua-5.1:= )
+ python? ( ${PYTHON_DEPS} )
+ seccomp? ( sys-libs/libseccomp )"
+
+DEPEND="${RDEPEND}
+ doc? ( app-text/docbook-sgml-utils )
+ >=sys-kernel/linux-headers-3.2"
+
+RDEPEND="${RDEPEND}
+ sys-process/criu
+ sys-apps/util-linux
+ app-misc/pax-utils
+ virtual/awk"
+
+CONFIG_CHECK="~CGROUPS ~CGROUP_DEVICE
+ ~CPUSETS ~CGROUP_CPUACCT
+ ~CGROUP_SCHED
+
+ ~NAMESPACES
+ ~IPC_NS ~USER_NS ~PID_NS
+
+ ~NETLINK_DIAG ~PACKET_DIAG
+ ~INET_UDP_DIAG ~INET_TCP_DIAG
+ ~UNIX_DIAG ~CHECKPOINT_RESTORE
+
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUP_FREEZER
+ ~UTS_NS ~NET_NS
+ ~VETH ~MACVLAN
+
+ ~POSIX_MQUEUE
+ ~!NETPRIO_CGROUP
+
+ ~!GRKERNSEC_CHROOT_MOUNT
+ ~!GRKERNSEC_CHROOT_DOUBLE
+ ~!GRKERNSEC_CHROOT_PIVOT
+ ~!GRKERNSEC_CHROOT_CHMOD
+ ~!GRKERNSEC_CHROOT_CAPS
+"
+
+ERROR_DEVPTS_MULTIPLE_INSTANCES="CONFIG_DEVPTS_MULTIPLE_INSTANCES: needed for pts inside container"
+
+ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers"
+
+ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info"
+ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network"
+
+ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking"
+ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking"
+
+ERROR_NETLINK_DIAG="CONFIG_NETLINK_DIAG: needed for lxc-checkpoint"
+ERROR_PACKET_DIAG="CONFIG_PACKET_DIAG: needed for lxc-checkpoint"
+ERROR_INET_UDP_DIAG="CONFIG_INET_UDP_DIAG: needed for lxc-checkpoint"
+ERROR_INET_TCP_DIAG="CONFIG_INET_TCP_DIAG: needed for lxc-checkpoint"
+ERROR_UNIX_DIAG="CONFIG_UNIX_DIAG: needed for lxc-checkpoint"
+ERROR_CHECKPOINT_RESTORE="CONFIG_CHECKPOINT_RESTORE: needed for lxc-checkpoint"
+
+ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command"
+
+ERROR_NETPRIO_CGROUP="CONFIG_NETPRIO_CGROUP: as of kernel 3.3 and lxc 0.8.0_rc1 this causes LXCs to fail booting."
+
+ERROR_GRKERNSEC_CHROOT_MOUNT="CONFIG_GRKERNSEC_CHROOT_MOUNT: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_DOUBLE="CONFIG_GRKERNSEC_CHROOT_DOUBLE: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_PIVOT="CONFIG_GRKERNSEC_CHROOT_PIVOT: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_CHMOD="CONFIG_GRKERNSEC_CHROOT_CHMOD: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_CAPS="CONFIG_GRKERNSEC_CHROOT_CAPS: some GRSEC features make LXC unusable see postinst notes"
+
+DOCS=(AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt)
+
+S="${WORKDIR}/${PN}-${MY_P}"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+src_prepare() {
+
+ epatch "${FILESDIR}"/${PN}-1.0.6-bash-completion.patch
+ # Fixed in master. It will probably make it to 1.1.2
+ epatch "${FILESDIR}"/${P}-shm-tmpfs.patch
+
+ eautoreconf
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+
+ if use python; then
+ #541932
+ python_setup "python3*"
+ export PKG_CONFIG_PATH="${T}/${EPYTHON}/pkgconfig:${PKG_CONFIG_PATH}"
+ fi
+
+ # I am not sure about the --with-rootfs-path
+ # /var/lib/lxc is probably more appropriate than
+ # /usr/lib/lxc.
+ econf \
+ --localstatedir=/var \
+ --bindir=/usr/bin \
+ --sbindir=/usr/bin \
+ --docdir=/usr/share/doc/${PF} \
+ --with-config-path=/var/lib/lxc \
+ --with-rootfs-path=/var/lib/lxc/rootfs \
+ --with-distro=gentoo \
+ --with-runtime-path=/run \
+ --disable-apparmor \
+ $(use_enable cgmanager) \
+ $(use_enable doc) \
+ $(use_enable examples) \
+ $(use_enable lua) \
+ $(use_enable python) \
+ $(use_enable seccomp)
+}
+
+python_compile() {
+ distutils-r1_python_compile build_ext -I ../ -L ../${PN}
+}
+
+src_compile() {
+ default
+
+ if use python; then
+ pushd "${S}/src/python-${PN}" > /dev/null
+ distutils-r1_src_compile
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ default
+
+ mv "${ED}"/usr/share/bash-completion/completions/${PN} "${ED}"/$(get_bashcompdir)/${PN}-start || die
+ bashcomp_alias ${PN}-start \
+ ${PN}-{attach,cgroup,clone,console,create,destroy,device,execute,freeze,info,monitor,snapshot,start-ephemeral,stop,unfreeze,wait}
+
+ if use python; then
+ pushd "${S}/src/python-lxc" > /dev/null
+ # Unset DOCS. This has been handled by the default target
+ unset DOCS
+ distutils-r1_src_install
+ popd > /dev/null
+ fi
+
+ keepdir /etc/lxc /var/lib/lxc/rootfs /var/log/lxc
+
+ find "${D}" -name '*.la' -delete
+
+ # Gentoo-specific additions!
+ # Use initd.3 per #517144
+ newinitd "${FILESDIR}/${PN}.initd.3" ${PN}
+
+ # lxc-devsetup script
+ exeinto /usr/libexec/${PN}
+ doexe config/init/systemd/${PN}-devsetup
+ # Remember to compare our systemd unit file with the upstream one
+ # config/init/systemd/lxc.service.in
+ systemd_newunit "${FILESDIR}"/${PN}_at.service.2 "lxc@.service"
+}
+
+pkg_postinst() {
+ elog ""
+ elog "Starting from version ${PN}-1.1.0-r3, the default lxc path has been"
+ elog "moved from /etc/lxc to /var/lib/lxc. If you still want to use /etc/lxc"
+ elog "please add the following to your /etc/lxc/default.conf"
+ elog "lxc.lxcpath = /etc/lxc"
+ elog ""
+ elog "There is an init script provided with the package now; no documentation"
+ elog "is currently available though, so please check out /etc/init.d/lxc ."
+ elog "You _should_ only need to symlink it to /etc/init.d/lxc.configname"
+ elog "to start the container defined into /etc/lxc/configname.conf ."
+ elog "For further information about LXC development see"
+ elog "http://blog.flameeyes.eu/tag/lxc" # remove once proper doc is available
+ elog ""
+}
diff --git a/app-emulation/lxc/lxc-1.1.2-r1.ebuild b/app-emulation/lxc/lxc-1.1.2-r1.ebuild
new file mode 100644
index 000000000000..8dd8dd28e7ff
--- /dev/null
+++ b/app-emulation/lxc/lxc-1.1.2-r1.ebuild
@@ -0,0 +1,195 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+MY_P="${P/_/-}"
+PYTHON_COMPAT=( python{3_3,3_4} )
+DISTUTILS_OPTIONAL=1
+
+inherit autotools bash-completion-r1 distutils-r1 eutils linux-info versionator flag-o-matic systemd
+
+DESCRIPTION="LinuX Containers userspace utilities"
+HOMEPAGE="https://linuxcontainers.org/"
+SRC_URI="https://github.com/lxc/lxc/archive/${MY_P}.tar.gz"
+
+KEYWORDS="~amd64 ~arm ~arm64"
+
+LICENSE="LGPL-3"
+SLOT="0"
+IUSE="cgmanager doc examples lua python seccomp"
+
+RDEPEND="net-libs/gnutls
+ sys-libs/libcap
+ cgmanager? ( app-admin/cgmanager )
+ lua? ( >=dev-lang/lua-5.1:= )
+ python? ( ${PYTHON_DEPS} )
+ seccomp? ( sys-libs/libseccomp )"
+
+DEPEND="${RDEPEND}
+ doc? ( app-text/docbook-sgml-utils )
+ >=sys-kernel/linux-headers-3.2"
+
+RDEPEND="${RDEPEND}
+ sys-process/criu
+ sys-apps/util-linux
+ app-misc/pax-utils
+ virtual/awk"
+
+CONFIG_CHECK="~CGROUPS ~CGROUP_DEVICE
+ ~CPUSETS ~CGROUP_CPUACCT
+ ~CGROUP_SCHED
+
+ ~NAMESPACES
+ ~IPC_NS ~USER_NS ~PID_NS
+
+ ~NETLINK_DIAG ~PACKET_DIAG
+ ~INET_UDP_DIAG ~INET_TCP_DIAG
+ ~UNIX_DIAG ~CHECKPOINT_RESTORE
+
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUP_FREEZER
+ ~UTS_NS ~NET_NS
+ ~VETH ~MACVLAN
+
+ ~POSIX_MQUEUE
+ ~!NETPRIO_CGROUP
+
+ ~!GRKERNSEC_CHROOT_MOUNT
+ ~!GRKERNSEC_CHROOT_DOUBLE
+ ~!GRKERNSEC_CHROOT_PIVOT
+ ~!GRKERNSEC_CHROOT_CHMOD
+ ~!GRKERNSEC_CHROOT_CAPS
+"
+
+ERROR_DEVPTS_MULTIPLE_INSTANCES="CONFIG_DEVPTS_MULTIPLE_INSTANCES: needed for pts inside container"
+
+ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers"
+
+ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info"
+ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network"
+
+ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking"
+ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking"
+
+ERROR_NETLINK_DIAG="CONFIG_NETLINK_DIAG: needed for lxc-checkpoint"
+ERROR_PACKET_DIAG="CONFIG_PACKET_DIAG: needed for lxc-checkpoint"
+ERROR_INET_UDP_DIAG="CONFIG_INET_UDP_DIAG: needed for lxc-checkpoint"
+ERROR_INET_TCP_DIAG="CONFIG_INET_TCP_DIAG: needed for lxc-checkpoint"
+ERROR_UNIX_DIAG="CONFIG_UNIX_DIAG: needed for lxc-checkpoint"
+ERROR_CHECKPOINT_RESTORE="CONFIG_CHECKPOINT_RESTORE: needed for lxc-checkpoint"
+
+ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command"
+
+ERROR_NETPRIO_CGROUP="CONFIG_NETPRIO_CGROUP: as of kernel 3.3 and lxc 0.8.0_rc1 this causes LXCs to fail booting."
+
+ERROR_GRKERNSEC_CHROOT_MOUNT="CONFIG_GRKERNSEC_CHROOT_MOUNT: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_DOUBLE="CONFIG_GRKERNSEC_CHROOT_DOUBLE: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_PIVOT="CONFIG_GRKERNSEC_CHROOT_PIVOT: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_CHMOD="CONFIG_GRKERNSEC_CHROOT_CHMOD: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_CAPS="CONFIG_GRKERNSEC_CHROOT_CAPS: some GRSEC features make LXC unusable see postinst notes"
+
+DOCS=(AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt)
+
+S="${WORKDIR}/${PN}-${MY_P}"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+src_prepare() {
+
+ epatch "${FILESDIR}"/${PN}-1.0.6-bash-completion.patch
+ epatch "${FILESDIR}"/${P}-fix-gentoo-moresecure-template.patch
+ eautoreconf
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+
+ if use python; then
+ #541932
+ python_setup "python3*"
+ export PKG_CONFIG_PATH="${T}/${EPYTHON}/pkgconfig:${PKG_CONFIG_PATH}"
+ fi
+
+ # I am not sure about the --with-rootfs-path
+ # /var/lib/lxc is probably more appropriate than
+ # /usr/lib/lxc.
+ econf \
+ --localstatedir=/var \
+ --bindir=/usr/bin \
+ --sbindir=/usr/bin \
+ --docdir=/usr/share/doc/${PF} \
+ --with-config-path=/var/lib/lxc \
+ --with-rootfs-path=/var/lib/lxc/rootfs \
+ --with-distro=gentoo \
+ --with-runtime-path=/run \
+ --disable-apparmor \
+ $(use_enable cgmanager) \
+ $(use_enable doc) \
+ $(use_enable examples) \
+ $(use_enable lua) \
+ $(use_enable python) \
+ $(use_enable seccomp)
+}
+
+python_compile() {
+ distutils-r1_python_compile build_ext -I ../ -L ../${PN}
+}
+
+src_compile() {
+ default
+
+ if use python; then
+ pushd "${S}/src/python-${PN}" > /dev/null
+ distutils-r1_src_compile
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ default
+
+ mv "${ED}"/usr/share/bash-completion/completions/${PN} "${ED}"/$(get_bashcompdir)/${PN}-start || die
+ bashcomp_alias ${PN}-start \
+ ${PN}-{attach,cgroup,clone,console,create,destroy,device,execute,freeze,info,monitor,snapshot,start-ephemeral,stop,unfreeze,wait}
+
+ if use python; then
+ pushd "${S}/src/python-lxc" > /dev/null
+ # Unset DOCS. This has been handled by the default target
+ unset DOCS
+ distutils-r1_src_install
+ popd > /dev/null
+ fi
+
+ keepdir /etc/lxc /var/lib/lxc/rootfs /var/log/lxc
+
+ find "${D}" -name '*.la' -delete
+
+ # Gentoo-specific additions!
+ # Use initd.3 per #517144
+ newinitd "${FILESDIR}/${PN}.initd.3" ${PN}
+
+ # lxc-devsetup script
+ exeinto /usr/libexec/${PN}
+ doexe config/init/systemd/${PN}-devsetup
+ # Remember to compare our systemd unit file with the upstream one
+ # config/init/systemd/lxc.service.in
+ systemd_newunit "${FILESDIR}"/${PN}_at.service.2 "lxc@.service"
+}
+
+pkg_postinst() {
+ elog ""
+ elog "Starting from version ${PN}-1.1.0-r3, the default lxc path has been"
+ elog "moved from /etc/lxc to /var/lib/lxc. If you still want to use /etc/lxc"
+ elog "please add the following to your /etc/lxc/default.conf"
+ elog "lxc.lxcpath = /etc/lxc"
+ elog ""
+ elog "There is an init script provided with the package now; no documentation"
+ elog "is currently available though, so please check out /etc/init.d/lxc ."
+ elog "You _should_ only need to symlink it to /etc/init.d/lxc.configname"
+ elog "to start the container defined into /etc/lxc/configname.conf ."
+ elog "For further information about LXC development see"
+ elog "http://blog.flameeyes.eu/tag/lxc" # remove once proper doc is available
+ elog ""
+}
diff --git a/app-emulation/lxc/lxc-1.1.2-r2.ebuild b/app-emulation/lxc/lxc-1.1.2-r2.ebuild
new file mode 100644
index 000000000000..8dd8dd28e7ff
--- /dev/null
+++ b/app-emulation/lxc/lxc-1.1.2-r2.ebuild
@@ -0,0 +1,195 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+MY_P="${P/_/-}"
+PYTHON_COMPAT=( python{3_3,3_4} )
+DISTUTILS_OPTIONAL=1
+
+inherit autotools bash-completion-r1 distutils-r1 eutils linux-info versionator flag-o-matic systemd
+
+DESCRIPTION="LinuX Containers userspace utilities"
+HOMEPAGE="https://linuxcontainers.org/"
+SRC_URI="https://github.com/lxc/lxc/archive/${MY_P}.tar.gz"
+
+KEYWORDS="~amd64 ~arm ~arm64"
+
+LICENSE="LGPL-3"
+SLOT="0"
+IUSE="cgmanager doc examples lua python seccomp"
+
+RDEPEND="net-libs/gnutls
+ sys-libs/libcap
+ cgmanager? ( app-admin/cgmanager )
+ lua? ( >=dev-lang/lua-5.1:= )
+ python? ( ${PYTHON_DEPS} )
+ seccomp? ( sys-libs/libseccomp )"
+
+DEPEND="${RDEPEND}
+ doc? ( app-text/docbook-sgml-utils )
+ >=sys-kernel/linux-headers-3.2"
+
+RDEPEND="${RDEPEND}
+ sys-process/criu
+ sys-apps/util-linux
+ app-misc/pax-utils
+ virtual/awk"
+
+CONFIG_CHECK="~CGROUPS ~CGROUP_DEVICE
+ ~CPUSETS ~CGROUP_CPUACCT
+ ~CGROUP_SCHED
+
+ ~NAMESPACES
+ ~IPC_NS ~USER_NS ~PID_NS
+
+ ~NETLINK_DIAG ~PACKET_DIAG
+ ~INET_UDP_DIAG ~INET_TCP_DIAG
+ ~UNIX_DIAG ~CHECKPOINT_RESTORE
+
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUP_FREEZER
+ ~UTS_NS ~NET_NS
+ ~VETH ~MACVLAN
+
+ ~POSIX_MQUEUE
+ ~!NETPRIO_CGROUP
+
+ ~!GRKERNSEC_CHROOT_MOUNT
+ ~!GRKERNSEC_CHROOT_DOUBLE
+ ~!GRKERNSEC_CHROOT_PIVOT
+ ~!GRKERNSEC_CHROOT_CHMOD
+ ~!GRKERNSEC_CHROOT_CAPS
+"
+
+ERROR_DEVPTS_MULTIPLE_INSTANCES="CONFIG_DEVPTS_MULTIPLE_INSTANCES: needed for pts inside container"
+
+ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers"
+
+ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info"
+ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network"
+
+ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking"
+ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking"
+
+ERROR_NETLINK_DIAG="CONFIG_NETLINK_DIAG: needed for lxc-checkpoint"
+ERROR_PACKET_DIAG="CONFIG_PACKET_DIAG: needed for lxc-checkpoint"
+ERROR_INET_UDP_DIAG="CONFIG_INET_UDP_DIAG: needed for lxc-checkpoint"
+ERROR_INET_TCP_DIAG="CONFIG_INET_TCP_DIAG: needed for lxc-checkpoint"
+ERROR_UNIX_DIAG="CONFIG_UNIX_DIAG: needed for lxc-checkpoint"
+ERROR_CHECKPOINT_RESTORE="CONFIG_CHECKPOINT_RESTORE: needed for lxc-checkpoint"
+
+ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command"
+
+ERROR_NETPRIO_CGROUP="CONFIG_NETPRIO_CGROUP: as of kernel 3.3 and lxc 0.8.0_rc1 this causes LXCs to fail booting."
+
+ERROR_GRKERNSEC_CHROOT_MOUNT="CONFIG_GRKERNSEC_CHROOT_MOUNT: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_DOUBLE="CONFIG_GRKERNSEC_CHROOT_DOUBLE: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_PIVOT="CONFIG_GRKERNSEC_CHROOT_PIVOT: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_CHMOD="CONFIG_GRKERNSEC_CHROOT_CHMOD: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_CAPS="CONFIG_GRKERNSEC_CHROOT_CAPS: some GRSEC features make LXC unusable see postinst notes"
+
+DOCS=(AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt)
+
+S="${WORKDIR}/${PN}-${MY_P}"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+src_prepare() {
+
+ epatch "${FILESDIR}"/${PN}-1.0.6-bash-completion.patch
+ epatch "${FILESDIR}"/${P}-fix-gentoo-moresecure-template.patch
+ eautoreconf
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+
+ if use python; then
+ #541932
+ python_setup "python3*"
+ export PKG_CONFIG_PATH="${T}/${EPYTHON}/pkgconfig:${PKG_CONFIG_PATH}"
+ fi
+
+ # I am not sure about the --with-rootfs-path
+ # /var/lib/lxc is probably more appropriate than
+ # /usr/lib/lxc.
+ econf \
+ --localstatedir=/var \
+ --bindir=/usr/bin \
+ --sbindir=/usr/bin \
+ --docdir=/usr/share/doc/${PF} \
+ --with-config-path=/var/lib/lxc \
+ --with-rootfs-path=/var/lib/lxc/rootfs \
+ --with-distro=gentoo \
+ --with-runtime-path=/run \
+ --disable-apparmor \
+ $(use_enable cgmanager) \
+ $(use_enable doc) \
+ $(use_enable examples) \
+ $(use_enable lua) \
+ $(use_enable python) \
+ $(use_enable seccomp)
+}
+
+python_compile() {
+ distutils-r1_python_compile build_ext -I ../ -L ../${PN}
+}
+
+src_compile() {
+ default
+
+ if use python; then
+ pushd "${S}/src/python-${PN}" > /dev/null
+ distutils-r1_src_compile
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ default
+
+ mv "${ED}"/usr/share/bash-completion/completions/${PN} "${ED}"/$(get_bashcompdir)/${PN}-start || die
+ bashcomp_alias ${PN}-start \
+ ${PN}-{attach,cgroup,clone,console,create,destroy,device,execute,freeze,info,monitor,snapshot,start-ephemeral,stop,unfreeze,wait}
+
+ if use python; then
+ pushd "${S}/src/python-lxc" > /dev/null
+ # Unset DOCS. This has been handled by the default target
+ unset DOCS
+ distutils-r1_src_install
+ popd > /dev/null
+ fi
+
+ keepdir /etc/lxc /var/lib/lxc/rootfs /var/log/lxc
+
+ find "${D}" -name '*.la' -delete
+
+ # Gentoo-specific additions!
+ # Use initd.3 per #517144
+ newinitd "${FILESDIR}/${PN}.initd.3" ${PN}
+
+ # lxc-devsetup script
+ exeinto /usr/libexec/${PN}
+ doexe config/init/systemd/${PN}-devsetup
+ # Remember to compare our systemd unit file with the upstream one
+ # config/init/systemd/lxc.service.in
+ systemd_newunit "${FILESDIR}"/${PN}_at.service.2 "lxc@.service"
+}
+
+pkg_postinst() {
+ elog ""
+ elog "Starting from version ${PN}-1.1.0-r3, the default lxc path has been"
+ elog "moved from /etc/lxc to /var/lib/lxc. If you still want to use /etc/lxc"
+ elog "please add the following to your /etc/lxc/default.conf"
+ elog "lxc.lxcpath = /etc/lxc"
+ elog ""
+ elog "There is an init script provided with the package now; no documentation"
+ elog "is currently available though, so please check out /etc/init.d/lxc ."
+ elog "You _should_ only need to symlink it to /etc/init.d/lxc.configname"
+ elog "to start the container defined into /etc/lxc/configname.conf ."
+ elog "For further information about LXC development see"
+ elog "http://blog.flameeyes.eu/tag/lxc" # remove once proper doc is available
+ elog ""
+}
diff --git a/app-emulation/lxc/lxc-1.1.2.ebuild b/app-emulation/lxc/lxc-1.1.2.ebuild
new file mode 100644
index 000000000000..660348e4851e
--- /dev/null
+++ b/app-emulation/lxc/lxc-1.1.2.ebuild
@@ -0,0 +1,194 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+MY_P="${P/_/-}"
+PYTHON_COMPAT=( python{3_3,3_4} )
+DISTUTILS_OPTIONAL=1
+
+inherit autotools bash-completion-r1 distutils-r1 eutils linux-info versionator flag-o-matic systemd
+
+DESCRIPTION="LinuX Containers userspace utilities"
+HOMEPAGE="https://linuxcontainers.org/"
+SRC_URI="https://github.com/lxc/lxc/archive/${MY_P}.tar.gz"
+
+KEYWORDS="~amd64 ~arm ~arm64"
+
+LICENSE="LGPL-3"
+SLOT="0"
+IUSE="cgmanager doc examples lua python seccomp"
+
+RDEPEND="net-libs/gnutls
+ sys-libs/libcap
+ cgmanager? ( app-admin/cgmanager )
+ lua? ( >=dev-lang/lua-5.1:= )
+ python? ( ${PYTHON_DEPS} )
+ seccomp? ( sys-libs/libseccomp )"
+
+DEPEND="${RDEPEND}
+ doc? ( app-text/docbook-sgml-utils )
+ >=sys-kernel/linux-headers-3.2"
+
+RDEPEND="${RDEPEND}
+ sys-process/criu
+ sys-apps/util-linux
+ app-misc/pax-utils
+ virtual/awk"
+
+CONFIG_CHECK="~CGROUPS ~CGROUP_DEVICE
+ ~CPUSETS ~CGROUP_CPUACCT
+ ~CGROUP_SCHED
+
+ ~NAMESPACES
+ ~IPC_NS ~USER_NS ~PID_NS
+
+ ~NETLINK_DIAG ~PACKET_DIAG
+ ~INET_UDP_DIAG ~INET_TCP_DIAG
+ ~UNIX_DIAG ~CHECKPOINT_RESTORE
+
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUP_FREEZER
+ ~UTS_NS ~NET_NS
+ ~VETH ~MACVLAN
+
+ ~POSIX_MQUEUE
+ ~!NETPRIO_CGROUP
+
+ ~!GRKERNSEC_CHROOT_MOUNT
+ ~!GRKERNSEC_CHROOT_DOUBLE
+ ~!GRKERNSEC_CHROOT_PIVOT
+ ~!GRKERNSEC_CHROOT_CHMOD
+ ~!GRKERNSEC_CHROOT_CAPS
+"
+
+ERROR_DEVPTS_MULTIPLE_INSTANCES="CONFIG_DEVPTS_MULTIPLE_INSTANCES: needed for pts inside container"
+
+ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers"
+
+ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info"
+ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network"
+
+ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking"
+ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking"
+
+ERROR_NETLINK_DIAG="CONFIG_NETLINK_DIAG: needed for lxc-checkpoint"
+ERROR_PACKET_DIAG="CONFIG_PACKET_DIAG: needed for lxc-checkpoint"
+ERROR_INET_UDP_DIAG="CONFIG_INET_UDP_DIAG: needed for lxc-checkpoint"
+ERROR_INET_TCP_DIAG="CONFIG_INET_TCP_DIAG: needed for lxc-checkpoint"
+ERROR_UNIX_DIAG="CONFIG_UNIX_DIAG: needed for lxc-checkpoint"
+ERROR_CHECKPOINT_RESTORE="CONFIG_CHECKPOINT_RESTORE: needed for lxc-checkpoint"
+
+ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command"
+
+ERROR_NETPRIO_CGROUP="CONFIG_NETPRIO_CGROUP: as of kernel 3.3 and lxc 0.8.0_rc1 this causes LXCs to fail booting."
+
+ERROR_GRKERNSEC_CHROOT_MOUNT="CONFIG_GRKERNSEC_CHROOT_MOUNT: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_DOUBLE="CONFIG_GRKERNSEC_CHROOT_DOUBLE: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_PIVOT="CONFIG_GRKERNSEC_CHROOT_PIVOT: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_CHMOD="CONFIG_GRKERNSEC_CHROOT_CHMOD: some GRSEC features make LXC unusable see postinst notes"
+ERROR_GRKERNSEC_CHROOT_CAPS="CONFIG_GRKERNSEC_CHROOT_CAPS: some GRSEC features make LXC unusable see postinst notes"
+
+DOCS=(AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt)
+
+S="${WORKDIR}/${PN}-${MY_P}"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+src_prepare() {
+
+ epatch "${FILESDIR}"/${PN}-1.0.6-bash-completion.patch
+ eautoreconf
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+
+ if use python; then
+ #541932
+ python_setup "python3*"
+ export PKG_CONFIG_PATH="${T}/${EPYTHON}/pkgconfig:${PKG_CONFIG_PATH}"
+ fi
+
+ # I am not sure about the --with-rootfs-path
+ # /var/lib/lxc is probably more appropriate than
+ # /usr/lib/lxc.
+ econf \
+ --localstatedir=/var \
+ --bindir=/usr/bin \
+ --sbindir=/usr/bin \
+ --docdir=/usr/share/doc/${PF} \
+ --with-config-path=/var/lib/lxc \
+ --with-rootfs-path=/var/lib/lxc/rootfs \
+ --with-distro=gentoo \
+ --with-runtime-path=/run \
+ --disable-apparmor \
+ $(use_enable cgmanager) \
+ $(use_enable doc) \
+ $(use_enable examples) \
+ $(use_enable lua) \
+ $(use_enable python) \
+ $(use_enable seccomp)
+}
+
+python_compile() {
+ distutils-r1_python_compile build_ext -I ../ -L ../${PN}
+}
+
+src_compile() {
+ default
+
+ if use python; then
+ pushd "${S}/src/python-${PN}" > /dev/null
+ distutils-r1_src_compile
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ default
+
+ mv "${ED}"/usr/share/bash-completion/completions/${PN} "${ED}"/$(get_bashcompdir)/${PN}-start || die
+ bashcomp_alias ${PN}-start \
+ ${PN}-{attach,cgroup,clone,console,create,destroy,device,execute,freeze,info,monitor,snapshot,start-ephemeral,stop,unfreeze,wait}
+
+ if use python; then
+ pushd "${S}/src/python-lxc" > /dev/null
+ # Unset DOCS. This has been handled by the default target
+ unset DOCS
+ distutils-r1_src_install
+ popd > /dev/null
+ fi
+
+ keepdir /etc/lxc /var/lib/lxc/rootfs /var/log/lxc
+
+ find "${D}" -name '*.la' -delete
+
+ # Gentoo-specific additions!
+ # Use initd.3 per #517144
+ newinitd "${FILESDIR}/${PN}.initd.3" ${PN}
+
+ # lxc-devsetup script
+ exeinto /usr/libexec/${PN}
+ doexe config/init/systemd/${PN}-devsetup
+ # Remember to compare our systemd unit file with the upstream one
+ # config/init/systemd/lxc.service.in
+ systemd_newunit "${FILESDIR}"/${PN}_at.service.2 "lxc@.service"
+}
+
+pkg_postinst() {
+ elog ""
+ elog "Starting from version ${PN}-1.1.0-r3, the default lxc path has been"
+ elog "moved from /etc/lxc to /var/lib/lxc. If you still want to use /etc/lxc"
+ elog "please add the following to your /etc/lxc/default.conf"
+ elog "lxc.lxcpath = /etc/lxc"
+ elog ""
+ elog "There is an init script provided with the package now; no documentation"
+ elog "is currently available though, so please check out /etc/init.d/lxc ."
+ elog "You _should_ only need to symlink it to /etc/init.d/lxc.configname"
+ elog "to start the container defined into /etc/lxc/configname.conf ."
+ elog "For further information about LXC development see"
+ elog "http://blog.flameeyes.eu/tag/lxc" # remove once proper doc is available
+ elog ""
+}
diff --git a/app-emulation/lxc/metadata.xml b/app-emulation/lxc/metadata.xml
new file mode 100644
index 000000000000..536d8f3d85be
--- /dev/null
+++ b/app-emulation/lxc/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>virtualization</herd>
+ <maintainer>
+ <email>flameeyes@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>dev-zero@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>hwoarang@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="cgmanager">Enable support for cgroup management using <pkg>app-admin/cgmanager</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="github">lxc/lxc</remote-id>
+ </upstream>
+</pkgmetadata>