blob: 93eb16de8157ec999b06367d1cff04047857acf0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
# Copyright 1999-2009 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-r3.ebuild,v 1.3 2009/11/12 14:28:48 jer 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}"
# openrc support
epatch "${FILESDIR}"/${P}-openrc.patch
epatch "${FILESDIR}"/${P}-typo.patch
# linux capability fixes
epatch "${FILESDIR}"/${P}-capget.patch
# changeset 2718: fix error reporting if mmap() fails
epatch "${FILESDIR}"/${P}-2718.patch
# avoid a bug in dietlibc - #227793
use hppa && epatch "${FILESDIR}"/${P}-dietmmap.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
}
|