aboutsummaryrefslogtreecommitdiffstats
path: root/testing
diff options
context:
space:
mode:
authorMichael Mason <ms13sp@gmail.com>2009-10-29 16:16:30 +0000
committerMichael Mason <ms13sp@gmail.com>2009-10-29 16:16:30 +0000
commitafe80227fd5cf4fdc5e47a6a8ee6b6d70927c80c (patch)
tree4fe1273dd2686545242cc84b637e166514275f95 /testing
parent86ab49bf71dfd4dda5329a64f4e458e92f240edd (diff)
parent4af401f41b5cd69b4b41d0640d232d0502a188ac (diff)
downloadaports-afe80227fd5cf4fdc5e47a6a8ee6b6d70927c80c.tar.bz2
aports-afe80227fd5cf4fdc5e47a6a8ee6b6d70927c80c.tar.xz
Merge branch 'master' of git://git.alpinelinux.org/aports
Diffstat (limited to 'testing')
-rw-r--r--testing/ebtables/0001-link-with-gcc.patch25
-rw-r--r--testing/ebtables/APKBUILD58
-rw-r--r--testing/ebtables/ebtables.confd15
-rw-r--r--testing/ebtables/ebtables.initd97
-rw-r--r--testing/icecast/APKBUILD32
-rw-r--r--testing/icecast/icecast.initd18
-rw-r--r--testing/util-vserver/APKBUILD14
-rw-r--r--testing/util-vserver/setup-vs-guest216
-rw-r--r--testing/util-vserver/util-vserver.post-install15
l---------testing/util-vserver/util-vserver.post-upgrade1
10 files changed, 403 insertions, 88 deletions
diff --git a/testing/ebtables/0001-link-with-gcc.patch b/testing/ebtables/0001-link-with-gcc.patch
new file mode 100644
index 0000000000..88aba09f3f
--- /dev/null
+++ b/testing/ebtables/0001-link-with-gcc.patch
@@ -0,0 +1,25 @@
+--- a/Makefile Sun Jun 21 13:13:25 2009
++++ b/Makefile Wed Oct 28 02:42:43 2009
+@@ -85,7 +85,7 @@
+
+ .PHONY: libebtc
+ libebtc: $(OBJECTS2)
+- $(LD) -shared -soname libebtc.so -o libebtc.so -lc $(OBJECTS2)
++ $(CC) -shared -Wl,-soname,libebtc.so -o libebtc.so -lc $(OBJECTS2)
+
+ ebtables: $(OBJECTS) ebtables-standalone.o libebtc
+ $(CC) $(CFLAGS) $(CFLAGS_SH_LIB) -o $@ ebtables-standalone.o -I$(KERNEL_INCLUDES) -L. -Lextensions -lebtc $(EXT_LIBSI) \
+@@ -153,10 +153,13 @@
+ tmp3:=$(shell printf $(PIPE) | sed 's/\//\\\//g')
+ .PHONY: scripts
+ scripts: ebtables-save ebtables.sysv ebtables-config
++ mkdir -p $(DESTDIR)$(BINDIR)
+ cat ebtables-save | sed 's/__EXEC_PATH__/$(tmp1)/g' > ebtables-save_
+ install -m 0755 -o root -g root ebtables-save_ $(DESTDIR)$(BINDIR)/ebtables-save
++ mkdir -p $(DESTDIR)$(INITDIR)
+ cat ebtables.sysv | sed 's/__EXEC_PATH__/$(tmp1)/g' | sed 's/__SYSCONFIG__/$(tmp2)/g' > ebtables.sysv_
+ install -m 0755 -o root -g root ebtables.sysv_ $(DESTDIR)$(INITDIR)/ebtables
++ mkdir -p $(DESTDIR)$(SYSCONFIGDIR)
+ cat ebtables-config | sed 's/__SYSCONFIG__/$(tmp2)/g' > ebtables-config_
+ install -m 0600 -o root -g root ebtables-config_ $(DESTDIR)$(SYSCONFIGDIR)/ebtables-config
+ rm -f ebtables-save_ ebtables.sysv_ ebtables-config_
diff --git a/testing/ebtables/APKBUILD b/testing/ebtables/APKBUILD
new file mode 100644
index 0000000000..4bdc882e5e
--- /dev/null
+++ b/testing/ebtables/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Andrew Manison <amanison@anselsystems.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=ebtables
+pkgver=2.0.9.1
+_realver=v2.0.9-1
+pkgrel=0
+pkgdesc="Ethernet bridge tables - Linux Ethernet filter for the Linux bridge."
+url="http://ebtables.sourceforge.net/"
+license="GPL"
+depends=
+makedepends=
+install=
+subpackages="$pkgname-doc"
+source="http://downloads.sourceforge.net/$pkgname/$pkgname-$_realver.tar.gz
+ 0001-link-with-gcc.patch
+ ebtables.initd
+ ebtables.confd"
+
+prepare() {
+ cd "$srcdir"/$pkgname-$_realver
+ # patches
+ for i in ../*.patch; do
+ msg "Applying $i"
+ if ! patch --verbose -p1 -i $i; then
+ error "$i failed"
+ return 1
+ fi
+ done
+
+ sed -i -e "s,^MANDIR:=.*,MANDIR:=/usr/share/man," \
+ -e "s,^BINDIR:=.*,BINDIR:=/sbin," \
+ -e "s,^INITDIR:=.*,INITDIR:=/usr/share/doc/ebtables," \
+ -e "s,^SYSCONFIGDIR:=.*,SYSCONFIGDIR:=/usr/share/doc/ebtables,"\
+ -e "s,^LIBDIR:=.*,LIBDIR:=/usr/lib/\$(PROGNAME)," \
+ -e "s/^CFLAGS:=/CFLAGS+=/" \
+ -e "s,^CC:=,CC?=," Makefile
+}
+
+build() {
+ cd "$srcdir"/$pkgname-$_realver
+
+ # This package uses _init functions to initialise extensions. With
+ # --as-needed this will not work.
+ export LDFLAGS="$LDFLAGS -Wl,--no-as-needed"
+ make || return 1
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$_realver
+ make DESTDIR="$pkgdir" install
+ install -D -m755 ../ebtables.initd "$pkgdir"/etc/init.d/ebtables
+ install -D -m644 ../ebtables.initd "$pkgdir"/etc/conf.d/ebtables
+}
+
+md5sums="0e0c20adf2bba6d91dbd0b74a1a38c33 ebtables-v2.0.9-1.tar.gz
+91a565a5906dc1fd4103f03c6a88e0e1 0001-link-with-gcc.patch
+92e13b3bc1d47d7c00636ebb78c905d5 ebtables.initd
+285089ba2d846e72e321a12e3da3cc96 ebtables.confd"
diff --git a/testing/ebtables/ebtables.confd b/testing/ebtables/ebtables.confd
new file mode 100644
index 0000000000..db46ffb587
--- /dev/null
+++ b/testing/ebtables/ebtables.confd
@@ -0,0 +1,15 @@
+# /etc/conf.d/ebtables
+
+# Location in which ebtables initscript will save set rules on
+# service shutdown
+EBTABLES_SAVE="/var/lib/ebtables/rules-save"
+
+# Options to pass to ebtables-save and ebtables-restore
+SAVE_RESTORE_OPTIONS=""
+
+# Save state on stopping ebtables
+SAVE_ON_STOP="yes"
+
+# Tables to be saved and restored. If you have built ebtables as modules, you
+# may leave it blank. Otherwise, you MUST define which to control.
+TABLE_NAMES="filter nat broute"
diff --git a/testing/ebtables/ebtables.initd b/testing/ebtables/ebtables.initd
new file mode 100644
index 0000000000..27c743c910
--- /dev/null
+++ b/testing/ebtables/ebtables.initd
@@ -0,0 +1,97 @@
+#!/sbin/runscript
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-firewall/ebtables/files/ebtables.initd,v 1.2 2007/09/28 19:22:14 pva Exp $
+
+opts="save reload panic"
+
+ebtables_bin="/sbin/ebtables"
+ebtables_save=${EBTABLES_SAVE}
+ebtables_tables=$(grep -E '^ebtable_' /proc/modules | cut -f1 -d' ' | sed s/ebtable_//)
+if [ "$ebtables_tables" == "" ] ; then
+ ebtables_tables=${TABLE_NAMES}
+fi
+
+depend() {
+ before net
+ use logger
+}
+
+set_table_policy() {
+ local chains table=$1 policy=$2
+ case ${table} in
+ nat) chains="PREROUTING POSTROUTING OUTPUT";;
+ broute) chains="BROUTING";;
+ filter) chains="INPUT FORWARD OUTPUT";;
+ *) chains="";;
+ esac
+ local chain
+ for chain in ${chains} ; do
+ ${ebtables_bin} -t ${table} -P ${chain} ${policy}
+ done
+}
+
+checkconfig() {
+ if [ ! -f ${ebtables_save} ] ; then
+ eerror "Not starting ebtables. First create some rules then run:"
+ eerror "/etc/init.d/ebtables save"
+ return 1
+ fi
+ return 0
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Loading ebtables state and starting bridge firewall"
+ ${ebtables_bin}-restore ${SAVE_RESTORE_OPTIONS} < "${ebtables_save}"
+ eend $?
+}
+
+stop() {
+ if [ "${SAVE_ON_STOP}" = "yes" ] ; then
+ save || return 1
+ fi
+ ebegin "Stopping bridge firewall"
+ local a
+ for a in ${ebtables_tables}; do
+ set_table_policy $a ACCEPT
+
+ ${ebtables_bin} -t $a -F
+ ${ebtables_bin} -t $a -X
+ done
+ eend $?
+}
+
+reload() {
+ ebegin "Flushing bridge firewall"
+ local a
+ for a in ${ebtables_tables}; do
+ ${ebtables_bin} -t $a -F
+ ${ebtables_bin} -t $a -X
+ done
+ eend $?
+
+ start
+}
+
+save() {
+ ebegin "Saving ebtables state"
+ touch "${ebtables_save}"
+ chmod 0600 "${ebtables_save}"
+ ${ebtables_bin}-save ${ebtables_tables} ${SAVE_RESTORE_OPTIONS} > "${ebtables_save}"
+ eend $?
+}
+
+panic() {
+ service_started ebtables && svc_stop
+
+ local a
+ ebegin "Dropping all packets forwarded on bridges"
+ for a in ${ebtables_tables}; do
+ ${ebtables_bin} -t $a -F
+ ${ebtables_bin} -t $a -X
+
+ set_table_policy $a DROP
+ done
+ eend $?
+}
diff --git a/testing/icecast/APKBUILD b/testing/icecast/APKBUILD
new file mode 100644
index 0000000000..73135371a3
--- /dev/null
+++ b/testing/icecast/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor:
+# Maintainer:
+pkgname=icecast
+pkgver=2.3.2
+pkgrel=0
+pkgdesc="Open source media server"
+url="http://www.icecast.org"
+license="GPL"
+depends=
+makedepends="libxslt-dev libxml2-dev libogg-dev libvorbis-dev libtheora-dev"
+subpackages="$pkgname-doc"
+source="http://downloads.xiph.org/releases/$pkgname/$pkgname-$pkgver.tar.gz
+ icecast.initd"
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+ install -D -m755 ../icecast.initd "$pkgdir"/etc/init.d/icecast
+}
+
+md5sums="ff516b3ccd2bcc31e68f460cd316093f icecast-2.3.2.tar.gz
+b6f2fc5eaada6e9389784ccf43f68684 icecast.initd"
diff --git a/testing/icecast/icecast.initd b/testing/icecast/icecast.initd
new file mode 100644
index 0000000000..b82e5cddf6
--- /dev/null
+++ b/testing/icecast/icecast.initd
@@ -0,0 +1,18 @@
+#!/sbin/runscript
+
+depend() {
+ need net
+ after firewall
+}
+
+start() {
+ ebegin "Starting Icecast 2"
+ start-stop-daemon --background --start --make-pidfile --pidfile /var/run/icecast.pid --exec /usr/bin/icecast -- -c /etc/icecast.xml
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping Icecast 2"
+ start-stop-daemon --stop --pidfile /var/run/icecast.pid --name icecast
+ eend $?
+}
diff --git a/testing/util-vserver/APKBUILD b/testing/util-vserver/APKBUILD
index 92faf45798..030994d9f0 100644
--- a/testing/util-vserver/APKBUILD
+++ b/testing/util-vserver/APKBUILD
@@ -2,11 +2,11 @@
pkgname=util-vserver
pkgver=0.30.216_pre2849
_realver=0.30.216-pre2849
-pkgrel=3
+pkgrel=5
pkgdesc="Linux-VServer admin utilities"
url="http://www.nongnu.org/util-vserver/"
license="GPL"
-# needs coreutils for touch -t
+install="$pkgname.post-install $pkgname.post-upgrade"
makedepends="iptables-dev e2fsprogs-dev beecrypt-dev autoconf automake
pkgconfig libtool"
depends="bash make"
@@ -22,9 +22,11 @@ source="http://people.linux-vserver.org/~dhozac/t/uv-testing/util-vserver-$_real
"
subpackages="$pkgname-doc $pkgname-dev"
+_builddir="$srcdir"/$pkgname-$_realver
+
build() {
local i
- cd "$srcdir"/$pkgname-$_realver
+ cd "$_builddir"
for i in ../*.patch; do
[ -r "$i" ] || continue
msg "Applying $i"
@@ -46,6 +48,10 @@ build() {
# use busybox ionice rather than util-linux-ng
sed -i -e 's:/usr/bin/ionice:/bin/ionice:' Makefile
make || return 1
+}
+
+package() {
+ cd "$_builddir"
make DESTDIR="$pkgdir/" install install-distribution
install -Dm755 ../setup-vs-template "$pkgdir"/usr/sbin/setup-vs-template
install -Dm755 ../setup-vs-guest "$pkgdir"/usr/sbin/setup-vs-guest
@@ -58,4 +64,4 @@ ff8f561f672524eb46fe633f584ef60e ensc_pathprog.patch
da8b70c4fd40e68894b3903ffd121397 validate.patch
04000261fd990a3963b0e98260b481bd alpine.patch
49bca7969cc284adf68e0ef284c0660e setup-vs-template
-b7a30afd4ba87968cb58137d59d8e8f8 setup-vs-guest"
+838511f74983453ef9827ed875b70d59 setup-vs-guest"
diff --git a/testing/util-vserver/setup-vs-guest b/testing/util-vserver/setup-vs-guest
index a1e6959e23..dffd3c8804 100644
--- a/testing/util-vserver/setup-vs-guest
+++ b/testing/util-vserver/setup-vs-guest
@@ -161,98 +161,146 @@ valid_ip() {
ipcalc -s $1
}
-if [ "$(whoami)" != "root" ]; then
- echo "Need to be root. Sorry."
- exit 1
-fi
+# ask for hostname
+#
+# $1 = default
+#
+# retrusn hostname in global var $resp
+#
+ask_hostname() {
+ while true; do
+ ask "Hostname for new vserver:" $1
+ if [ -d /etc/vservers/$resp ]; then
+ echo "/etc/vservers/$resp already exist"
+ continue
+ fi
+ if [ -d /vservers/$resp ]; then
+ echo "/vservers/$resp already exist"
+ continue
+ fi
+ valid_hostname $resp && break
+ done
+}
-ifaces=$(ip addr | awk -F: '$1 ~ /^[0-9]/ {printf "%s" $2} END {printf "\n"}')
-last_iface=$(echo $ifaces | sed 's/.* //')
+ask_ifaceopts() {
+ # get ip address(es)
+ resp=
+ local ifaceopts= _def= _iface=
+ local ifaces=$(ip addr | awk -F: '$1 ~ /^[0-9]/ {printf "%s" $2} END {printf "\n"}')
+ local last_iface=$(echo $ifaces | sed 's/.* //')
+ while [ "$resp" != "done" ]; do
+ if [ -z "$ifaces" ] || [ "$ifaces" = "lo " ] || [ -n "$ifaceopts" ]; then
+ _def="done"
+ else
+ _def=$(echo $ifaces | sed 's/.* //')
+ fi
+ ask_which "network interface" "to use for $_hostname" \
+ "$ifaces" $_def
+ [ "$resp" = "done" ] && break
-while true; do
- ask "Hostname for new vserver:"
- if [ -d /etc/vservers/$resp ]; then
- echo "/etc/vservers/$resp already exist"
- continue
- fi
- if [ -d /vservers/$resp ]; then
- echo "/vservers/$resp already exist"
- continue
- fi
- valid_hostname $resp && break
-done
-_hostname=$resp
-
-# get ip address(es)
-resp=
-ifaceopts=
-while [ "$resp" != "done" ]; do
- if [ -z "$ifaces" ] || [ "$ifaces" = "lo " ]; then
- _def="done"
- else
- _def=$(echo $ifaces | sed 's/.* //')
- fi
- ask_which "network interface" "to use for $_hostname" "$ifaces" $_def
- [ "$resp" = "done" ] && break
-
- _iface=$resp
- ifaces=$(rmel $_iface $ifaces)
- # suggested ip by last digit + 1
- _last_ip_mask=$(last_ipv4_addr_mask $_iface)
- _last_ip=${_last_ip_mask%/*}
- _last_ip_digit=${_last_ip##*.}
- _ip=${_last_ip%.*}.$((($_last_ip_digit + 1) % 256))
- _mask=${_last_ip_mask#*/}
+ _iface=$resp
+ ifaces=$(rmel $_iface $ifaces)
+ # suggested ip by last digit + 1
+ _last_ip_mask=$(last_ipv4_addr_mask $_iface)
+ _last_ip=${_last_ip_mask%/*}
+ _last_ip_digit=${_last_ip##*.}
+ _ip=${_last_ip%.*}.$((($_last_ip_digit + 1) % 256))
+ _mask=${_last_ip_mask#*/}
+ while true; do
+ ask "Enter IP address/mask for $_iface:" $_ip/$_mask
+ valid_ip $resp && break
+ echo "$resp is not a valid IPv4 address/mask"
+ done
+ _ip_mask=$resp
+ ifaceopts="$ifaceopts --interface $_iface:$_ip_mask"
+
+ # suggest context from last digit in first ip address
+ if [ -z "$_context" ]; then
+ _ip=${_ip_mask%/*}
+ _last_digit=${_ip##*.}
+ _context=$((10000 + $_last_digit))
+ fi
+ done
+ resp="$ifacesopts"
+}
+
+ask_context() {
+ # get context id
while true; do
- ask "Enter IP address/mask for $_iface:" $_ip/$_mask
- valid_ip $resp && break
- echo "$resp is not a valid IPv4 address/mask"
+ ask "Enter context id for $_hostname:" $_context
+ if echo "$resp" | egrep -q "[0-9]+"; then
+ [ $resp -ge 0 ] && [ $resp -lt 65535 ] && break
+ fi
+ echo "Context id must be a 0-65534 number"
done
- _ip_mask=$resp
- ifaceopts="$ifaceopts --interface $_iface:$_ip_mask"
-
- # suggest context from last digit in first ip address
- if [ -z "$_context" ]; then
- _ip=${_ip_mask%/*}
- _last_digit=${_ip##*.}
- _context=$((10000 + $_last_digit))
- fi
-done
+}
-# get context id
-while true; do
- ask "Enter context id for $_hostname:" $_context
- if echo "$resp" | egrep -q "[0-9]+"; then
- [ $resp -ge 0 ] && [ $resp -lt 65535 ] && break
+ask_template() {
+ local temp
+ # get template
+ while true; do
+ ask "Enter template file (or empty for generate a new):" \
+ $_template
+ if [ -z "$resp" ] || [ -r "$resp" ]; then
+ break
+ fi
+ echo "Can not read $resp"
+ done
+ temp=$resp
+ if [ -z "$temp" ]; then
+ temp=/vservers/template.tar.gz
+ echo -n "Generating template..."
+ if setup-vs-template -q -o $temp; then
+ echo "ok"
+ else
+ echo "Failed to create template"
+ exit 1
+ fi
fi
- echo "Context id must be a 0-65534 number"
-done
-_context=$resp
+ resp=$temp
+}
-# get template
-while true; do
- ask "Enter template file (or empty for generate a new):"
- if [ -z "$resp" ] || [ -r "$resp" ]; then
- break
- fi
- echo "Can not read $resp"
+usage() {
+ echo "Usage: ${0##*/} [-h] [HOSTNAME...]"
+ exit 1
+}
+
+while getopts "h" opt; do
+ case "$opt" in
+ h) usage;;
+ ?) usage;;
+ esac
done
-_template=$resp
-
-if [ -z "$_template" ]; then
- _template=/vservers/template.tar.gz
- echo -n "Generating template..."
- if setup-vs-template -q -o $_template; then
- echo "ok"
- else
- echo "Failed to create template"
- exit 1
- fi
+
+shift $(($OPTIND - 1))
+
+if [ "$(whoami)" != "root" ]; then
+ echo "Need to be root. Sorry."
+ exit 1
fi
-vserver $_hostname build \
- --hostname $_hostname \
- $ifaceopts \
- --context $_context \
- -m template -- -t "$_template" -d alpine
+while true; do
+ ask_hostname $1
+ _hostname=$resp
+ ask_ifaceopts
+ _ifaceopts=$resp
+
+ ask_context
+ _context=$resp
+
+ ask_template
+ _template=$resp
+
+ vserver $_hostname build \
+ --hostname $_hostname \
+ $_ifaceopts \
+ --context $_context \
+ -m template -- -t "$_template" -d alpine \
+ && cp /etc/resolv.conf /vservers/$_hostname/etc/ \
+ && cp /etc/apk/repositories /vservers/$_hostname/etc/apk/ \
+ || exit 1
+
+ shift
+ [ $# -le 0 ] && exit 0
+done
diff --git a/testing/util-vserver/util-vserver.post-install b/testing/util-vserver/util-vserver.post-install
new file mode 100644
index 0000000000..9c8aad1e4c
--- /dev/null
+++ b/testing/util-vserver/util-vserver.post-install
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+if [ -f /etc/vservers/.defaults/rlimits/nproc ]; then
+ exit 0
+fi
+
+# calculate the nproc limit from amount of ram
+memtotal=$(awk '$1 == "MemTotal:" {print $2}' /proc/meminfo 2>/dev/null)
+nproc=$(( ${memtotal:-524288} / 256 ))
+
+# set a "sane" default nproc limit
+echo "Setting default nproc limit to $nproc"
+mkdir -p /etc/vservers/.defaults/rlimits
+echo $nproc > /etc/vservers/.defaults/rlimits/nproc
+
diff --git a/testing/util-vserver/util-vserver.post-upgrade b/testing/util-vserver/util-vserver.post-upgrade
new file mode 120000
index 0000000000..c5db4163fd
--- /dev/null
+++ b/testing/util-vserver/util-vserver.post-upgrade
@@ -0,0 +1 @@
+util-vserver.post-install \ No newline at end of file