diff options
author | Diego Elio Pettenò <flameeyes@gentoo.org> | 2012-03-24 01:37:40 +0000 |
---|---|---|
committer | Diego Elio Pettenò <flameeyes@gentoo.org> | 2012-03-24 01:37:40 +0000 |
commit | 070aa7cd3932cc5291f6c593c42dd5a704994273 (patch) | |
tree | e94a65541723675654affb814309abee6ab8f8ec /app-emulation | |
parent | Bump mtime of zlib-1.2.6.ebuild for bug #409445. (diff) | |
download | gentoo-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/ChangeLog | 8 | ||||
-rw-r--r-- | app-emulation/lxc/files/lxc-0.8.0_rc1-libtoolize.patch | 89 | ||||
-rw-r--r-- | app-emulation/lxc/lxc-0.8.0_rc1-r1.ebuild | 126 |
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." +} |