aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-10-19 09:45:43 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2011-10-19 09:45:43 +0000
commit688d54df37e4ceaec38ca2eeb501680ee26459d1 (patch)
treefc6dadec8caba48daf1a93793aac927bbff376c6
parentd451866fd59af0b3c653dd94c0ee135b1e2d9ece (diff)
downloadalpine_aports-688d54df37e4ceaec38ca2eeb501680ee26459d1.tar.bz2
alpine_aports-688d54df37e4ceaec38ca2eeb501680ee26459d1.tar.xz
alpine_aports-688d54df37e4ceaec38ca2eeb501680ee26459d1.zip
main/util-vserver: upgrade to 0.30.216_pre2994
also add supporrt for creating 32bit guests on x86_64 hosts
-rw-r--r--main/util-vserver/APKBUILD10
-rw-r--r--main/util-vserver/setup-vs-guest38
-rw-r--r--main/util-vserver/setup-vs-template5
3 files changed, 42 insertions, 11 deletions
diff --git a/main/util-vserver/APKBUILD b/main/util-vserver/APKBUILD
index b7c6ca369b..e4cfe43674 100644
--- a/main/util-vserver/APKBUILD
+++ b/main/util-vserver/APKBUILD
@@ -1,6 +1,6 @@
1# Maintainer: Natanael Copa <ncopa@alpinelinux.org> 1# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
2pkgname=util-vserver 2pkgname=util-vserver
3pkgver=0.30.216_pre2981 3pkgver=0.30.216_pre2994
4_realver=${pkgver%_*}-${pkgver#*_} 4_realver=${pkgver%_*}-${pkgver#*_}
5pkgrel=0 5pkgrel=0
6pkgdesc="Linux-VServer admin utilities" 6pkgdesc="Linux-VServer admin utilities"
@@ -33,7 +33,7 @@ prepare() {
33 esac 33 esac
34 done 34 done
35 msg "Running autotools..." 35 msg "Running autotools..."
36 aclocal -I m4 && autoconf && automake && libtoolize || return 1 36 libtoolize --force && aclocal -I m4 && autoconf && automake || return 1
37 37
38 # this is an ugly workaround 38 # this is an ugly workaround
39 sed -i -e "s:as_echo=.*:as_echo=echo:g" configure 39 sed -i -e "s:as_echo=.*:as_echo=echo:g" configure
@@ -69,11 +69,11 @@ package() {
69 install -Dm755 ../setup-vs-guest "$pkgdir"/usr/sbin/setup-vs-guest 69 install -Dm755 ../setup-vs-guest "$pkgdir"/usr/sbin/setup-vs-guest
70} 70}
71 71
72md5sums="b9064c39a5ee4bfd5f98c419f3e7edfb util-vserver-0.30.216-pre2981.tar.bz2 72md5sums="c2801f089982043bd0528349a1c61bb7 util-vserver-0.30.216-pre2994.tar.bz2
7373c7437dea6937a57cf38d166ef83c09 chmod.patch 7373c7437dea6937a57cf38d166ef83c09 chmod.patch
74ff8f561f672524eb46fe633f584ef60e ensc_pathprog.patch 74ff8f561f672524eb46fe633f584ef60e ensc_pathprog.patch
75da8b70c4fd40e68894b3903ffd121397 validate.patch 75da8b70c4fd40e68894b3903ffd121397 validate.patch
7604000261fd990a3963b0e98260b481bd alpine.patch 7604000261fd990a3963b0e98260b481bd alpine.patch
773fc52e20d998f02995f21912738f5d36 bb-grep.patch 773fc52e20d998f02995f21912738f5d36 bb-grep.patch
7849bca7969cc284adf68e0ef284c0660e setup-vs-template 78fae6626b724dec90a19924d68d355cd2 setup-vs-template
7903e109447c2d500dfb27a3046170b92f setup-vs-guest" 79ef35e154d1a221631a53f9c2cfbe9834 setup-vs-guest"
diff --git a/main/util-vserver/setup-vs-guest b/main/util-vserver/setup-vs-guest
index 0de3069ba5..8a41306699 100644
--- a/main/util-vserver/setup-vs-guest
+++ b/main/util-vserver/setup-vs-guest
@@ -153,7 +153,7 @@ valid_hostname() {
153# 153#
154last_ipv4_addr_mask() { 154last_ipv4_addr_mask() {
155 local _iface=$1 155 local _iface=$1
156 ip addr show dev $_iface | awk '$1 == "inet" {print $2}' | tail -n1 156 ip addr show dev $_iface | sort | awk '$1 == "inet" {print $2}' | tail -n1
157} 157}
158 158
159valid_ip_and_prefix() { 159valid_ip_and_prefix() {
@@ -235,8 +235,19 @@ ask_context() {
235 done 235 done
236} 236}
237 237
238ask_guest_arch() {
239 # get guest arch
240 while true; do
241 ask "Enter guest machine architecture (i686 or x86_64):" $_arch
242 case "$resp" in
243 i[3-6]86|x86_64) break;;
244 esac
245 echo "Only i[3-6]86 and x86_64 is supported"
246 done
247}
248
238ask_template() { 249ask_template() {
239 local temp 250 local temp= apk_arch= arch_opt=
240 # get template 251 # get template
241 while true; do 252 while true; do
242 ask "Enter template file (or empty for generate a new):" \ 253 ask "Enter template file (or empty for generate a new):" \
@@ -246,11 +257,18 @@ ask_template() {
246 fi 257 fi
247 echo "Can not read $resp" 258 echo "Can not read $resp"
248 done 259 done
260 if [ "$_guest_arch" != "$_arch" ]; then
261 case "$_guest_arch" in
262 i?86) apk_arch=x86;;
263 *) apk_arch=$_guest_arch;;
264 esac
265 arch_opt="-a $apk_arch"
266 fi
249 temp=$resp 267 temp=$resp
250 if [ -z "$temp" ]; then 268 if [ -z "$temp" ]; then
251 temp=/vservers/template.tar.gz 269 temp=/vservers/template-$_guest_arch.tar.gz
252 echo "Generating template..." 270 echo "Generating template..."
253 if setup-vs-template -q -o $temp; then 271 if setup-vs-template $arch_opt -q -o $temp; then
254 echo "ok" 272 echo "ok"
255 else 273 else
256 echo "Failed to create template" 274 echo "Failed to create template"
@@ -265,6 +283,8 @@ usage() {
265 exit 1 283 exit 1
266} 284}
267 285
286_arch="$(uname -m)"
287
268while getopts "h" opt; do 288while getopts "h" opt; do
269 case "$opt" in 289 case "$opt" in
270 h) usage;; 290 h) usage;;
@@ -289,6 +309,11 @@ while true; do
289 ask_context 309 ask_context
290 _context=$resp 310 _context=$resp
291 311
312 if [ "$_arch" = "x86_64" ]; then
313 ask_guest_arch
314 _guest_arch=$resp
315 fi
316
292 ask_template 317 ask_template
293 _template=$resp 318 _template=$resp
294 319
@@ -296,10 +321,15 @@ while true; do
296 --hostname $_hostname \ 321 --hostname $_hostname \
297 $_ifaceopts \ 322 $_ifaceopts \
298 --context $_context \ 323 --context $_context \
324 $arch_opt \
299 -m template -- -t "$_template" -d alpine \ 325 -m template -- -t "$_template" -d alpine \
300 && cp /etc/resolv.conf /vservers/$_hostname/etc/ \ 326 && cp /etc/resolv.conf /vservers/$_hostname/etc/ \
301 && cp /etc/apk/repositories /vservers/$_hostname/etc/apk/ \ 327 && cp /etc/apk/repositories /vservers/$_hostname/etc/apk/ \
302 || exit 1 328 || exit 1
329 if [ "$_arch" != "$_guest_arch" ]; then
330 echo "linux_32bit" >> /etc/vservers/$_hostname/personality
331 echo "$_guest_arch" > /etc/vservers/$_hostname/uts/machine
332 fi
303 333
304 shift 334 shift
305 [ $# -le 0 ] && exit 0 335 [ $# -le 0 ] && exit 0
diff --git a/main/util-vserver/setup-vs-template b/main/util-vserver/setup-vs-template
index 8ad7f3fae8..3edffa1aaa 100644
--- a/main/util-vserver/setup-vs-template
+++ b/main/util-vserver/setup-vs-template
@@ -16,8 +16,9 @@ clean_exit() {
16outfile=template.tar.gz 16outfile=template.tar.gz
17fakeroot= 17fakeroot=
18repos= 18repos=
19while getopts "ho:qX:" opt; do 19while getopts "a:ho:qX:" opt; do
20 case "$opt" in 20 case "$opt" in
21 a) arch_opt="--arch $OPTARG";;
21 h) usage 0;; 22 h) usage 0;;
22 o) outfile="$OPTARG";; 23 o) outfile="$OPTARG";;
23 q) quiet=-q;; 24 q) quiet=-q;;
@@ -32,7 +33,7 @@ fi
32 33
33tmpdir=$(mktemp -d ${TMPDIR:-/tmp}/setup-vs-template-XXXXXX) 34tmpdir=$(mktemp -d ${TMPDIR:-/tmp}/setup-vs-template-XXXXXX)
34 35
35apk add --root "$tmpdir" --initdb --keys-dir /etc/apk/keys -U \ 36apk add --root "$tmpdir" --initdb --keys-dir /etc/apk/keys -U $arch_opt \
36 $quiet ${repos:---repositories-file /etc/apk/repositories} \ 37 $quiet ${repos:---repositories-file /etc/apk/repositories} \
37 alpine-base $@ \ 38 alpine-base $@ \
38 || clean_exit 1 39 || clean_exit 1