diff options
| author | Michael Mason <ms13sp@gmail.com> | 2009-10-29 16:16:30 +0000 |
|---|---|---|
| committer | Michael Mason <ms13sp@gmail.com> | 2009-10-29 16:16:30 +0000 |
| commit | afe80227fd5cf4fdc5e47a6a8ee6b6d70927c80c (patch) | |
| tree | 4fe1273dd2686545242cc84b637e166514275f95 /testing | |
| parent | 86ab49bf71dfd4dda5329a64f4e458e92f240edd (diff) | |
| parent | 4af401f41b5cd69b4b41d0640d232d0502a188ac (diff) | |
| download | aports-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.patch | 25 | ||||
| -rw-r--r-- | testing/ebtables/APKBUILD | 58 | ||||
| -rw-r--r-- | testing/ebtables/ebtables.confd | 15 | ||||
| -rw-r--r-- | testing/ebtables/ebtables.initd | 97 | ||||
| -rw-r--r-- | testing/icecast/APKBUILD | 32 | ||||
| -rw-r--r-- | testing/icecast/icecast.initd | 18 | ||||
| -rw-r--r-- | testing/util-vserver/APKBUILD | 14 | ||||
| -rw-r--r-- | testing/util-vserver/setup-vs-guest | 216 | ||||
| -rw-r--r-- | testing/util-vserver/util-vserver.post-install | 15 | ||||
| l--------- | testing/util-vserver/util-vserver.post-upgrade | 1 |
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 |
