diff options
author | Benedikt Boehm <hollow@gentoo.org> | 2008-08-08 08:40:14 +0000 |
---|---|---|
committer | Benedikt Boehm <hollow@gentoo.org> | 2008-08-08 08:40:14 +0000 |
commit | ec5d0a47cb18da33dfc0de701405915075846c33 (patch) | |
tree | a705378268ecea7d9dd34e92985ad2d429526377 /sys-cluster | |
parent | Add mmx useflag wrt bug #93279 and fix build of mmx asm with libtool 2.2 (diff) | |
download | gentoo-2-ec5d0a47cb18da33dfc0de701405915075846c33.tar.gz gentoo-2-ec5d0a47cb18da33dfc0de701405915075846c33.tar.bz2 gentoo-2-ec5d0a47cb18da33dfc0de701405915075846c33.zip |
fix capability support for kernel headers >= 2.6.25
(Portage version: 2.2_rc1/cvs/Linux 2.6.22-vs2.2.0.6-gentoo x86_64)
Diffstat (limited to 'sys-cluster')
5 files changed, 250 insertions, 9 deletions
diff --git a/sys-cluster/util-vserver/ChangeLog b/sys-cluster/util-vserver/ChangeLog index 219038415717..0d01e08a05e3 100644 --- a/sys-cluster/util-vserver/ChangeLog +++ b/sys-cluster/util-vserver/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for sys-cluster/util-vserver # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/util-vserver/ChangeLog,v 1.92 2008/06/14 11:02:06 zmedico Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/util-vserver/ChangeLog,v 1.93 2008/08/08 08:40:14 hollow Exp $ + +*util-vserver-0.30.215-r1 (08 Aug 2008) + + 08 Aug 2008; Benedikt Böhm <hollow@gentoo.org> + +files/util-vserver-0.30.215-capget.patch, util-vserver-0.30.214.ebuild, + util-vserver-0.30.215.ebuild, +util-vserver-0.30.215-r1.ebuild: + fix capability support for kernel headers >= 2.6.25 14 Jun 2008; Zac Medico <zmedico@gentoo.org> util-vserver-0.30.214.ebuild, util-vserver-0.30.215.ebuild: diff --git a/sys-cluster/util-vserver/files/util-vserver-0.30.215-capget.patch b/sys-cluster/util-vserver/files/util-vserver-0.30.215-capget.patch new file mode 100644 index 000000000000..df7b483430b7 --- /dev/null +++ b/sys-cluster/util-vserver/files/util-vserver-0.30.215-capget.patch @@ -0,0 +1,103 @@ +Index: /trunk/src/vserver-info.c +=================================================================== +--- /trunk/src/vserver-info.c (revision 2589) ++++ /trunk/src/vserver-info.c (revision 2717) +@@ -186,7 +186,9 @@ + verifyCap() + { ++ int retried = 0; + struct __user_cap_header_struct header; +- struct __user_cap_data_struct user; +- header.version = _LINUX_CAPABILITY_VERSION; ++ struct __user_cap_data_struct user[2]; ++ ++ header.version = _LINUX_CAPABILITY_VERSION_2; + header.pid = 0; + +@@ -200,15 +202,22 @@ + // return false; + // } +- +- if (capget(&header, &user)==-1) { ++ ++retry: ++ if (capget(&header, user)==-1) { ++ if (!retried && ++ header.version != _LINUX_CAPABILITY_VERSION_2) { ++ header.version = _LINUX_CAPABILITY_VERSION_1; ++ retried = 1; ++ goto retry; ++ } + perror("capget()"); + return false; + } + +- user.effective = 0; +- user.permitted = 0; +- user.inheritable = 0; +- +- if (capset(&header, &user)==-1) { ++ user[0].effective = user[1].effective = 0; ++ user[0].permitted = user[1].permitted = 0; ++ user[0].inheritable = user[1].inheritable = 0; ++ ++ if (capset(&header, user)==-1) { + perror("capset()"); + return false; +Index: /trunk/src/rpm-fake.c +=================================================================== +--- /trunk/src/rpm-fake.c (revision 2693) ++++ /trunk/src/rpm-fake.c (revision 2717) +@@ -420,20 +420,28 @@ + reduceCapabilities() + { ++ int retried = 0; + struct __user_cap_header_struct header; +- struct __user_cap_data_struct user; +- +- header.version = _LINUX_CAPABILITY_VERSION; ++ struct __user_cap_data_struct user[2]; ++ ++ header.version = _LINUX_CAPABILITY_VERSION_2; + header.pid = 0; + +- if (capget(&header, &user)==-1) { ++retry: ++ if (capget(&header, user)==-1) { ++ if (!retried && ++ header.version != _LINUX_CAPABILITY_VERSION_2) { ++ header.version = _LINUX_CAPABILITY_VERSION_1; ++ retried = 1; ++ goto retry; ++ } + perror("capget()"); + exit(wrapper_exit_code); + } + +- user.effective &= ~(1<<CAP_MKNOD); +- user.permitted &= ~(1<<CAP_MKNOD); +- user.inheritable &= ~(1<<CAP_MKNOD); +- +- if (capset(&header, &user)==-1) { ++ user[0].effective &= ~(1<<CAP_MKNOD); ++ user[0].permitted &= ~(1<<CAP_MKNOD); ++ user[0].inheritable &= ~(1<<CAP_MKNOD); ++ ++ if (capset(&header, user)==-1) { + perror("capset()"); + exit(wrapper_exit_code); +Index: /trunk/src/capability-compat.h +=================================================================== +--- /trunk/src/capability-compat.h (revision 1822) ++++ /trunk/src/capability-compat.h (revision 2717) +@@ -30,2 +30,10 @@ + + #endif ++ ++#ifndef _LINUX_CAPABILITY_VERSION_1 ++# define _LINUX_CAPABILITY_VERSION_1 _LINUX_CAPABILITY_VERSION ++#endif ++ ++#ifndef _LINUX_CAPABILITY_VERSION_2 ++# define _LINUX_CAPABILITY_VERSION_2 0x20071026 ++#endif diff --git a/sys-cluster/util-vserver/util-vserver-0.30.214.ebuild b/sys-cluster/util-vserver/util-vserver-0.30.214.ebuild index 250821253514..7811d5f76126 100644 --- a/sys-cluster/util-vserver/util-vserver-0.30.214.ebuild +++ b/sys-cluster/util-vserver/util-vserver-0.30.214.ebuild @@ -1,10 +1,8 @@ # Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/util-vserver/util-vserver-0.30.214.ebuild,v 1.5 2008/06/14 11:02:06 zmedico Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/util-vserver/util-vserver-0.30.214.ebuild,v 1.6 2008/08/08 08:40:14 hollow Exp $ -WANT_AUTOMAKE="1.9" - -inherit autotools eutils bash-completion +inherit eutils bash-completion DESCRIPTION="Linux-VServer admin utilities" HOMEPAGE="http://www.nongnu.org/util-vserver/" diff --git a/sys-cluster/util-vserver/util-vserver-0.30.215-r1.ebuild b/sys-cluster/util-vserver/util-vserver-0.30.215-r1.ebuild new file mode 100644 index 000000000000..8b92282fc421 --- /dev/null +++ b/sys-cluster/util-vserver/util-vserver-0.30.215-r1.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/util-vserver/util-vserver-0.30.215-r1.ebuild,v 1.1 2008/08/08 08:40:14 hollow Exp $ + +inherit eutils bash-completion + +DESCRIPTION="Linux-VServer admin utilities" +HOMEPAGE="http://www.nongnu.org/util-vserver/" +SRC_URI="http://ftp.linux-vserver.org/pub/utils/${PN}/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~sparc ~x86" + +IUSE="" + +CDEPEND="dev-libs/beecrypt + net-firewall/iptables + net-misc/vconfig + sys-apps/iproute2 + || ( >=sys-apps/coreutils-6.10-r1 sys-apps/mktemp )" + +DEPEND=">=dev-libs/dietlibc-0.30-r2 + ${CDEPEND}" + +RDEPEND="${CDEPEND}" + +pkg_setup() { + if [[ -z "${VDIRBASE}" ]]; then + einfo + einfo "You can change the default vserver base directory (/vservers)" + einfo "by setting the VDIRBASE environment variable." + fi + + : ${VDIRBASE:=/vservers} + + einfo + einfo "Using \"${VDIRBASE}\" as vserver base directory" + einfo +} + +src_unpack() { + unpack ${A} + cd "${S}" + epatch "${FILESDIR}"/${P}-openrc.patch + epatch "${FILESDIR}"/${P}-capget.patch +} + +src_compile() { + econf --with-vrootdir=${VDIRBASE} \ + --with-initscripts=gentoo \ + --localstatedir=/var || die "econf failed!" + emake || die "emake failed!" +} + +src_install() { + make DESTDIR="${D}" install install-distribution \ + || die "make install failed!" + + # keep dirs + keepdir /var/run/vservers + keepdir /var/run/vservers.rev + keepdir /var/run/vshelper + keepdir /var/lock/vservers + keepdir /var/cache/vservers + keepdir "${VDIRBASE}" + keepdir "${VDIRBASE}"/.pkg + + # remove legacy config file + rm -f "${D}"/etc/vservers.conf + + # bash-completion + dobashcompletion "${FILESDIR}"/bash_completion util-vserver + + dodoc README ChangeLog NEWS AUTHORS THANKS util-vserver.spec +} + +pkg_preinst() { + has_version "<${CATEGORY}/${PN}-0.30.211" + old_init_script_warn=$? +} + +pkg_postinst() { + # Create VDIRBASE in postinst, so it is (a) not unmerged and (b) also + # present when merging. + + [ ! -d "${VDIRBASE}" ] && mkdir -p "${VDIRBASE}" &> /dev/null + setattr --barrier "${VDIRBASE}" &> /dev/null + + rm /etc/vservers/.defaults/vdirbase + ln -sf "${VDIRBASE}" /etc/vservers/.defaults/vdirbase + + elog + elog "You have to run the vprocunhide command after every reboot" + elog "in order to setup /proc permissions correctly for vserver" + elog "use. An init script has been installed by this package." + elog "To use it you should add it to a runlevel:" + elog + elog " rc-update add vprocunhide default" + elog + + if [[ $old_init_script_warn = 0 ]] ; then + ewarn "Please make sure, that you remove the old init-script from any" + ewarn "runlevel and remove it from your init.d dir!" + ewarn + ewarn "# rc-update del vservers" + ewarn "# rm -f ${ROOT}etc/init.d/vservers" + ewarn + ewarn "Since util-vserver-0.30.211 all Gentoo specific wrappers" + ewarn "have been merged upstream, and may now have a slightly" + ewarn "different syntax, i.e. you have to update scripts that" + ewarn "depend on these wrappers (vesync, vemerge, vupdateworld" + ewarn "and vdispatch-conf)" + ewarn + ewarn "Additionally the init scripts have changed and now use" + ewarn "upstream scripts as backend. An init script to start" + ewarn "virtual servers in the 'default' group/mark has been" + ewarn "installed by this ebuild:" + ewarn + ewarn " rc-update add vservers.default default" + ewarn + ewarn "To start vservers in other groups/marks, you have to" + ewarn "symlink the default init script the same way you do" + ewarn "with net.* scripts:" + ewarn + ewarn " ln -s /etc/init.d/vservers.default /etc/init.d/vservers.<mark>" + ewarn + fi + + ewarn "You should definitly fix up the barrier of your vserver" + ewarn "base directory by using the following command in a root shell:" + ewarn + ewarn " setattr --barrier ${VDIRBASE}" + ewarn +} diff --git a/sys-cluster/util-vserver/util-vserver-0.30.215.ebuild b/sys-cluster/util-vserver/util-vserver-0.30.215.ebuild index 01f9606d26f9..62a59cb19a5b 100644 --- a/sys-cluster/util-vserver/util-vserver-0.30.215.ebuild +++ b/sys-cluster/util-vserver/util-vserver-0.30.215.ebuild @@ -1,10 +1,8 @@ # Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/util-vserver/util-vserver-0.30.215.ebuild,v 1.4 2008/06/14 11:02:06 zmedico Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/util-vserver/util-vserver-0.30.215.ebuild,v 1.5 2008/08/08 08:40:14 hollow Exp $ -WANT_AUTOMAKE="1.9" - -inherit autotools eutils bash-completion +inherit eutils bash-completion DESCRIPTION="Linux-VServer admin utilities" HOMEPAGE="http://www.nongnu.org/util-vserver/" |