summaryrefslogtreecommitdiff
blob: 0f5f273cff3ecccd9753489be1a6486d13d45a64 (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
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit eutils bash-completion

DESCRIPTION="Linux-VServer admin utilities"
HOMEPAGE="http://www.nongnu.org/util-vserver/"
SRC_URI="http://people.linux-vserver.org/~dhozac/p/uv/experimental/${P/_rc/-rc}.tar.bz2
	http://dev.gentoo.org/~hollow/distfiles/${PN}-patches-${PVR/_rc/-rc}.tar.bz2
	http://dev.gentoo.org/~phreak/distfiles/${PN}-patches-${PVR/_rc/-rc}.tar.bz2"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86"

S=${WORKDIR}/${P/_rc/-rc}

IUSE="legacy"

DEPEND=">=dev-libs/dietlibc-0.28
	dev-libs/beecrypt
	net-firewall/iptables
	net-misc/vconfig
	sys-apps/iproute2
	sys-process/procps
	=sys-devel/automake-1.9*"

RDEPEND="sys-apps/iproute2
	net-misc/vconfig
	net-firewall/iptables
	dev-libs/beecrypt
	sys-process/procps"

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

	myconf="${myconf} --with-vrootdir=${VDIRBASE}"

	# default paths
	myconf="${myconf} --localstatedir=/var"
	myconf="${myconf} --with-initrddir=/etc/init.d"

	# needed for older vserver kernels not in portage (default: v13,net)
	# we provide this just for convenience for people using self-made kernels
	use legacy && myconf="${myconf} --enable-apis=compat,v11,fscompat,v13,net"
}

src_unpack() {
	unpack ${A}
	cd "${S}"

	cp "${WORKDIR}"/tools/* scripts/ || die "failed to copy gentoo tools"
	epatch "${FILESDIR}"/*.patch
}

src_compile() {
	econf ${myconf} || die "econf failed"
	emake || die "emake failed"
}

src_install() {
	make DESTDIR="${D}" install || die "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}"
	fperms 000 "${VDIRBASE}"

	# remove the non-gentoo init-scripts:
	rm -f "${D}"/etc/init.d/*

	# and install gentoo'ized init-scripts:
	doconfd "${WORKDIR}/conf.d/vservers"
	doinitd "${WORKDIR}/init.d/vservers"

	# insert gentoo-functions.sh into /usr/lib/util-vserver
	insinto /usr/lib/util-vserver
	doins "${WORKDIR}"/tools/gentoo-functions.sh
	rm -f "${WORKDIR}"/tools/gentoo-functions.sh

	# insert our tools
	exeinto /usr/sbin
	doexe "${WORKDIR}"/tools/*

	# bash-completion
	dobashcompletion "${S}"/contrib/bash_completion util-vserver

	newdoc "${FILESDIR}"/README ${PN}-patches
	dodoc README ChangeLog NEWS AUTHORS THANKS util-vserver.spec
}

pkg_postinst() {
	einfo
	einfo "You have to run the vprocunhide command after every reboot"
	einfo "in order to setup /proc permissions correctly for vserver"
	einfo "use. An init script has been installed by this package."
	einfo "To use it you should add it to a runlevel:"
	einfo
	einfo " rc-update add vservers default"
	einfo
	einfo "This init script will also help you to start/stop your vservers"
	einfo "on reboot. See ${ROOT}etc/conf.d/vserver for details"
	ewarn
	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
	ewarn "IMPORTANT UPGRADE WARNING:"
	ewarn
	ewarn "Since 0.30.208-r3 the vprocunhide init-script has been merged"
	ewarn "with the vservers init script. The following steps are"
	ewarn "required to keep current behaviour:"
	ewarn
	ewarn " rc-update del vprocunhide"
	ewarn " rc-update add vservers default"
	ewarn
}