summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Elio Pettenò <flameeyes@gentoo.org>2012-03-24 01:37:40 +0000
committerDiego Elio Pettenò <flameeyes@gentoo.org>2012-03-24 01:37:40 +0000
commit070aa7cd3932cc5291f6c593c42dd5a704994273 (patch)
treee94a65541723675654affb814309abee6ab8f8ec /app-emulation
parentBump mtime of zlib-1.2.6.ebuild for bug #409445. (diff)
downloadgentoo-2-070aa7cd3932cc5291f6c593c42dd5a704994273.tar.gz
gentoo-2-070aa7cd3932cc5291f6c593c42dd5a704994273.tar.bz2
gentoo-2-070aa7cd3932cc5291f6c593c42dd5a704994273.zip
Add a patch that libtoolizes lxc, and builds a static lxc-init executable.
(Portage version: 2.2.0_alpha94/cvs/Linux x86_64)
Diffstat (limited to 'app-emulation')
-rw-r--r--app-emulation/lxc/ChangeLog8
-rw-r--r--app-emulation/lxc/files/lxc-0.8.0_rc1-libtoolize.patch89
-rw-r--r--app-emulation/lxc/lxc-0.8.0_rc1-r1.ebuild126
3 files changed, 222 insertions, 1 deletions
diff --git a/app-emulation/lxc/ChangeLog b/app-emulation/lxc/ChangeLog
index 9d1df2c33c4b..83d4aed38a8a 100644
--- a/app-emulation/lxc/ChangeLog
+++ b/app-emulation/lxc/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for app-emulation/lxc
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-emulation/lxc/ChangeLog,v 1.30 2012/03/24 00:29:00 flameeyes Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/lxc/ChangeLog,v 1.31 2012/03/24 01:37:40 flameeyes Exp $
+
+*lxc-0.8.0_rc1-r1 (24 Mar 2012)
+
+ 24 Mar 2012; Diego E. Pettenò <flameeyes@gentoo.org>
+ +files/lxc-0.8.0_rc1-libtoolize.patch, +lxc-0.8.0_rc1-r1.ebuild:
+ Add a patch that libtoolizes lxc, and builds a static lxc-init executable.
*lxc-0.8.0_rc1 (24 Mar 2012)
diff --git a/app-emulation/lxc/files/lxc-0.8.0_rc1-libtoolize.patch b/app-emulation/lxc/files/lxc-0.8.0_rc1-libtoolize.patch
new file mode 100644
index 000000000000..933f9cabf8b0
--- /dev/null
+++ b/app-emulation/lxc/files/lxc-0.8.0_rc1-libtoolize.patch
@@ -0,0 +1,89 @@
+diff --git a/configure.ac b/configure.ac
+index e8f0cb5..8c0864a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -12,11 +12,7 @@ AM_PROG_CC_C_O
+ AC_GNU_SOURCE
+ AC_CHECK_PROG(SETCAP, setcap, yes, no, $PATH$PATH_SEPARATOR/sbin)
+
+-AC_ARG_ENABLE([rpath],
+- [AC_HELP_STRING([--disable-rpath], [do not set rpath in executables])],
+- [], [enable_rpath=yes])
+-
+-AM_CONDITIONAL([ENABLE_RPATH], [test "x$enable_rpath" = "xyes"])
++LT_INIT
+
+ AC_ARG_ENABLE([doc],
+ [AC_HELP_STRING([--enable-doc], [make mans (require docbook2man installed) [default=auto]])],
+diff --git a/src/lxc/Makefile.am b/src/lxc/Makefile.am
+index 3a3816e..4c72dc9 100644
+--- a/src/lxc/Makefile.am
++++ b/src/lxc/Makefile.am
+@@ -15,11 +15,9 @@ pkginclude_HEADERS = \
+ state.h \
+ attach.h
+
+-sodir=$(libdir)
+-# use PROGRAMS to avoid complains from automake
+-so_PROGRAMS = liblxc.so
++lib_LTLIBRARIES = liblxc-@VERSION@.la
+
+-liblxc_so_SOURCES = \
++liblxc_@VERSION@_la_SOURCES = \
+ arguments.c arguments.h \
+ commands.c commands.h \
+ start.c start.h \
+@@ -60,13 +58,10 @@ AM_CFLAGS=-I$(top_srcdir)/src \
+ -DLXCPATH=\"$(LXCPATH)\" \
+ -DLXCINITDIR=\"$(LXCINITDIR)\"
+
+-liblxc_so_CFLAGS = -fPIC -DPIC $(AM_CFLAGS)
++liblxc_@VERSION@_la_LDFLAGS = \
++ -avoid-version
+
+-liblxc_so_LDFLAGS = \
+- -shared \
+- -Wl,-soname,liblxc.so.$(firstword $(subst ., ,$(VERSION)))
+-
+-liblxc_so_LDADD = -lutil $(CAP_LIBS)
++liblxc_@VERSION@_la_LIBADD = -lutil $(CAP_LIBS)
+
+ bin_SCRIPTS = \
+ lxc-ps \
+@@ -100,11 +95,7 @@ bin_PROGRAMS = \
+ pkglibexec_PROGRAMS = \
+ lxc-init
+
+-AM_LDFLAGS = -Wl,-E
+-if ENABLE_RPATH
+-AM_LDFLAGS += -Wl,-rpath -Wl,$(libdir)
+-endif
+-LDADD=liblxc.so @CAP_LIBS@
++LDADD=liblxc-@VERSION@.la
+
+ lxc_attach_SOURCES = lxc_attach.c
+ lxc_cgroup_SOURCES = lxc_cgroup.c
+@@ -114,6 +105,7 @@ lxc_execute_SOURCES = lxc_execute.c
+ lxc_freeze_SOURCES = lxc_freeze.c
+ lxc_info_SOURCES = lxc_info.c
+ lxc_init_SOURCES = lxc_init.c
++lxc_init_LDFLAGS = -all-static
+ lxc_monitor_SOURCES = lxc_monitor.c
+ lxc_restart_SOURCES = lxc_restart.c
+ lxc_start_SOURCES = lxc_start.c
+@@ -123,15 +115,6 @@ lxc_unshare_SOURCES = lxc_unshare.c
+ lxc_wait_SOURCES = lxc_wait.c
+ lxc_kill_SOURCES = lxc_kill.c
+
+-install-exec-local: install-soPROGRAMS
+- mv $(DESTDIR)$(libdir)/liblxc.so $(DESTDIR)$(libdir)/liblxc.so.$(VERSION)
+- /sbin/ldconfig -l $(DESTDIR)$(libdir)/liblxc.so.$(VERSION)
+- cd $(DESTDIR)$(libdir); \
+- ln -sf liblxc.so.$(firstword $(subst ., ,$(VERSION))) liblxc.so
+-
+-uninstall-local:
+- $(RM) $(DESTDIR)$(libdir)/liblxc.so*
+-
+ namespace.c: setns.h
+
+ setns.h:
diff --git a/app-emulation/lxc/lxc-0.8.0_rc1-r1.ebuild b/app-emulation/lxc/lxc-0.8.0_rc1-r1.ebuild
new file mode 100644
index 000000000000..502e3d5b8801
--- /dev/null
+++ b/app-emulation/lxc/lxc-0.8.0_rc1-r1.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/lxc/lxc-0.8.0_rc1-r1.ebuild,v 1.1 2012/03/24 01:37:40 flameeyes Exp $
+
+EAPI="4"
+
+MY_P="${P/_/-}"
+
+inherit eutils linux-info versionator flag-o-matic autotools
+
+DESCRIPTION="LinuX Containers userspace utilities"
+HOMEPAGE="http://lxc.sourceforge.net/"
+SRC_URI="http://lxc.sourceforge.net/download/lxc/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+KEYWORDS="~amd64 ~ppc64 ~x86"
+
+LICENSE="LGPL-3"
+SLOT="0"
+IUSE="examples vanilla"
+
+RDEPEND="sys-libs/libcap"
+
+DEPEND="${RDEPEND}
+ app-text/docbook-sgml-utils
+ >=sys-kernel/linux-headers-2.6.29"
+
+# For init script, so protect with vanilla, they are not strictly
+# needed.
+RDEPEND="${RDEPEND}
+ vanilla? (
+ sys-apps/util-linux
+ app-misc/pax-utils
+ )"
+
+CONFIG_CHECK="~CGROUPS
+ ~CPUSETS ~CGROUP_CPUACCT
+ ~RESOURCE_COUNTERS ~CGROUP_MEM_RES_CTLR
+ ~CGROUP_SCHED
+
+ ~NAMESPACES
+ ~IPC_NS ~USER_NS ~PID_NS
+
+ ~DEVPTS_MULTIPLE_INSTANCES
+ ~CGROUP_FREEZER
+ ~UTS_NS ~NET_NS
+ ~VETH ~MACVLAN
+
+ ~POSIX_MQUEUE
+ ~!NETPRIO_CGROUP"
+
+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."
+
+DOCS=(AUTHORS CONTRIBUTING MAINTAINERS TODO README doc/FAQ.txt)
+
+src_prepare() {
+ if ! use vanilla; then
+ epatch "${FILESDIR}/${P}-libtoolize.patch"
+
+ eautoreconf
+ fi
+}
+
+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-linuxdir="${KERNEL_DIR}" \
+ --enable-doc \
+ $(use_enable examples)
+}
+
+src_install() {
+ default
+
+ rm -r "${D}"/usr/sbin/lxc-{setcap,ls} \
+ "${D}"/usr/share/man/man1/lxc-ls.1 \
+ || die "unable to remove extraenous content"
+
+ keepdir /etc/lxc /usr/lib/lxc/rootfs
+
+ find "${D}" -name '*.la' -delete
+
+ use vanilla && return 0
+
+ # Gentoo-specific additions!
+ newinitd "${FILESDIR}/${PN}.initd.2" ${PN}
+ keepdir /var/log/lxc
+}
+
+pkg_postinst() {
+ if ! use vanilla; then
+ 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 ""
+ fi
+ 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."
+}