From 3ac192cc25f9a6865566ced1c5a8372dbad665f3 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Tue, 13 Jan 2009 21:57:48 -0800
Subject: For those that want to bond multiple NICs.  Webmin!  Who doesn't love
 Webmin.

---
 abs/extra-testing/ifenslave/PKGBUILD           |  20 +++
 abs/extra-testing/ifenslave/bonding.conf.d     |  12 ++
 abs/extra-testing/perl-net-ssleay/PKGBUILD     |  33 ++++
 abs/extra-testing/webmin/PKGBUILD              | 213 +++++++++++++++++++++++++
 abs/extra-testing/webmin/webmin-config.tar.bz2 | Bin 0 -> 3021 bytes
 abs/extra-testing/webmin/webmin-pacman.tar.bz2 | Bin 0 -> 924 bytes
 abs/extra-testing/webmin/webmin.install        |  39 +++++
 abs/extra-testing/webmin/webmin.rc             |  44 +++++
 8 files changed, 361 insertions(+)
 create mode 100644 abs/extra-testing/ifenslave/PKGBUILD
 create mode 100644 abs/extra-testing/ifenslave/bonding.conf.d
 create mode 100644 abs/extra-testing/perl-net-ssleay/PKGBUILD
 create mode 100644 abs/extra-testing/webmin/PKGBUILD
 create mode 100644 abs/extra-testing/webmin/webmin-config.tar.bz2
 create mode 100644 abs/extra-testing/webmin/webmin-pacman.tar.bz2
 create mode 100644 abs/extra-testing/webmin/webmin.install
 create mode 100644 abs/extra-testing/webmin/webmin.rc

diff --git a/abs/extra-testing/ifenslave/PKGBUILD b/abs/extra-testing/ifenslave/PKGBUILD
new file mode 100644
index 0000000..8a75170
--- /dev/null
+++ b/abs/extra-testing/ifenslave/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 12836 2008-09-21 14:41:26Z dan $
+# Maintainer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=ifenslave
+pkgver=1.1.0
+pkgrel=4
+pkgdesc="Utility for bonding ethernet interfaces"
+license=('GPL2')
+arch=(i686 x86_64)
+url="http://www.linuxfoundation.org/en/Net:Bonding"
+depends=('glibc')
+source=(ftp://ftp.archlinux.org/other/ifenslave/ifenslave.c bonding.conf.d)
+md5sums=('b0d8e4c97094155747cc9238f762c7aa'
+         '397fccbf574d5082c7a3c8d3793dc000')
+
+build() {
+  cd $startdir/src
+  gcc $CFLAGS -I/usr/src/linux/include ifenslave.c -o ifenslave || return 1
+  install -D -m755 ifenslave $startdir/pkg/sbin/ifenslave
+  install -D -m644 bonding.conf.d $startdir/pkg/etc/conf.d/bonding
+}
diff --git a/abs/extra-testing/ifenslave/bonding.conf.d b/abs/extra-testing/ifenslave/bonding.conf.d
new file mode 100644
index 0000000..3092c5e
--- /dev/null
+++ b/abs/extra-testing/ifenslave/bonding.conf.d
@@ -0,0 +1,12 @@
+#
+# Settings for ethernet bonding
+#
+# For each bond interface declared in INTERFACES (in rc.conf), declare
+# a bond_${IF} variable that contains the real ethernet interfaces that
+# should be bonded to the bond interface with the ifenslave utility.
+# Then list the bond interface name in the BOND_INTERFACES array.
+#
+
+#bond_bond0="eth0 eth1"
+#BOND_INTERFACES=(bond0)
+
diff --git a/abs/extra-testing/perl-net-ssleay/PKGBUILD b/abs/extra-testing/perl-net-ssleay/PKGBUILD
new file mode 100644
index 0000000..d2ead9d
--- /dev/null
+++ b/abs/extra-testing/perl-net-ssleay/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: eric <eric@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=perl-net-ssleay
+_realname=Net_SSLeay.pm
+pkgver=1.30
+pkgrel=2
+pkgdesc="Perl extension for using OpenSSL"
+arch=(i686 x86_64)
+license=('custom:BSD')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perl>=5.10.0' 'openssl')
+options=(!emptydirs)
+replaces=('net-ssleay')
+provides=('net-ssleay')
+source=(http://www.cpan.org/authors/id/F/FL/FLORA/${_realname}-${pkgver}.tar.gz)
+md5sums=('b0cd6c1681bbc0695d81be5cd852d1d0')
+
+build() {
+  cd ${startdir}/src/${_realname}-${pkgver}
+  # install module in vendor directories.
+  PERL_MM_USE_DEFAULT=1 perl Makefile.PL -- INSTALLDIRS=vendor || return 1
+  make  || return 1
+  make install DESTDIR=${startdir}/pkg || return 1
+
+  # remove perllocal.pod and .packlist
+  find ${startdir}/pkg -name perllocal.pod -delete
+  find ${startdir}/pkg -name .packlist -delete
+
+  install -D -m644 README ${startdir}/pkg/usr/share/licenses/${pkgname}/README
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/abs/extra-testing/webmin/PKGBUILD b/abs/extra-testing/webmin/PKGBUILD
new file mode 100644
index 0000000..f7fc020
--- /dev/null
+++ b/abs/extra-testing/webmin/PKGBUILD
@@ -0,0 +1,213 @@
+# $Id: PKGBUILD 18672 2008-11-08 15:27:08Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=webmin
+pkgver=1.441
+pkgrel=1
+pkgdesc="a web-based interface for system administration"
+arch=(i686 x86_64)
+license=('custom:webmin')
+url="http://www.webmin.com/"
+depends=('perl')
+makedepends=('perl-net-ssleay')
+backup=('etc/webmin/miniserv.conf' 'etc/webmin/miniserv.users' 'etc/webmin/config' 'etc/webmin/webmin.cats' \
+'etc/webmin/pacman/config' \
+'etc/webmin/at/config' \
+'etc/webmin/acl/config' \
+'etc/webmin/lvm/config' \
+'etc/webmin/net/config' \
+'etc/webmin/nis/config' \
+'etc/webmin/pam/config' \
+'etc/webmin/cron/config' \
+'etc/webmin/file/config' \
+'etc/webmin/grub/config' \
+'etc/webmin/init/config' \
+'etc/webmin/ipfw/config' \
+'etc/webmin/lilo/config' \
+'etc/webmin/proc/config' \
+'etc/webmin/raid/config' \
+'etc/webmin/spam/config' \
+'etc/webmin/sshd/config' \
+'etc/webmin/time/config' \
+'etc/webmin/cluster-passwd/config' \
+'etc/webmin/software/config' \
+'etc/webmin/webminlog/config' \
+'etc/webmin/cluster-webmin/config' \
+'etc/webmin/bind8/config' \
+'etc/webmin/dhcpd/config' \
+'etc/webmin/fdisk/config' \
+'etc/webmin/mount/config' \
+'etc/webmin/mysql/config' \
+'etc/webmin/quota/config' \
+'etc/webmin/samba/config' \
+'etc/webmin/shell/config' \
+'etc/webmin/squid/config' \
+'etc/webmin/adsl-client/config' \
+'etc/webmin/servers/config' \
+'etc/webmin/cluster-shell/config' \
+'etc/webmin/bandwidth/config' \
+'etc/webmin/ppp-client/config' \
+'etc/webmin/lpadmin/config' \
+'etc/webmin/apache/config' \
+'etc/webmin/firewall/config' \
+'etc/webmin/stunnel/config' \
+'etc/webmin/burner/config' \
+'etc/webmin/exports/config' \
+'etc/webmin/backup-config/config' \
+'etc/webmin/custom/config' \
+'etc/webmin/htaccess-htpasswd/config' \
+'etc/webmin/logrotate/config' \
+'etc/webmin/format/config' \
+'etc/webmin/fsdump/config' \
+'etc/webmin/passwd/config' \
+'etc/webmin/cluster-useradmin/config' \
+'etc/webmin/cluster-software/config' \
+'etc/webmin/cluster-copy/config' \
+'etc/webmin/cluster-cron/config' \
+'etc/webmin/telnet/config' \
+'etc/webmin/status/config' \
+'etc/webmin/syslog/config' \
+'etc/webmin/updown/config' \
+'etc/webmin/usermin/config' \
+'etc/webmin/webmin/config' \
+'etc/webmin/xinetd/config' \
+'etc/webmin/openslp/config' \
+'etc/webmin/procmail/config' \
+'etc/webmin/fetchmail/config' \
+'etc/webmin/postgresql/config' \
+'etc/webmin/useradmin/config' \
+'etc/webmin/mailboxes/config' \
+'etc/webmin/inittab/config' \
+'etc/webmin/change-user/config' \
+'etc/webmin/postfix/config' \
+'etc/webmin/proftpd/config' \
+'etc/webmin/pserver/config' \
+'etc/webmin/dnsadmin/config' )
+install=webmin.install
+source=(http://downloads.sourceforge.net/sourceforge/webadmin/$pkgname-$pkgver.tar.gz 
+	ftp://ftp.archlinux.org/other/webmin/webmin-config.tar.bz2 
+	ftp://ftp.archlinux.org/other/webmin/webmin-pacman.tar.bz2
+	webmin.rc) 
+
+build() {
+  # NOTE: USE --asroot build option to avoid fakeroot error!
+  cd $startdir/src/$pkgname-$pkgver
+  # add patches from webmin.com
+  #for i in ../*.wbm 
+  #do tar xvf $i
+  #done
+  #for i in ../*.wbt
+  #do tar xvf $i
+  #done
+  # delete stuff that's not needed
+  rm -f mount/freebsd-mounts*
+  rm -f mount/openbsd-mounts*
+  rm -f mount/macos-mounts*
+  
+  # remove modules we do not support
+  rm -rf {bacula-backup,ldap-useradmin,mon,sentry,frox,jabber,majordomo,qmail,sendmail,sarg,wuftpd,webalizer,inetd,ipsec,pap,pptp-client,pptp-server,shorewall,smart-status,vgetty,heartbeat,cfengine,cpan,sgiexports,hpuxexports,qmailadmin,bsdexports,dfsadmin}
+  
+  #remove config files from other distros
+  rm -f $(find . ! -name 'config-generic-linux' ! -name 'config-\*-linux' ! -name 'config-lib.pl' -name 'config-*')
+  
+  # remove caldera theme
+  rm -rf caldera
+
+  # remove init-scripts from other distros
+  rm webmin-gentoo-init
+  rm webmin-init
+  rm webmin-caldera-init
+  rm webmin-daemon
+
+  # remove update stuff to avoid problems with updating webmin,modules and themes without pacman
+  rm -f webmin/{update.cgi,update.pl,update_sched.cgi,upgrade.cgi,edit_upgrade.cgi,install_mod.cgi,delete_mod.cgi,install_theme.cgi}
+  rm -f usermin/{upgrade.cgi,update.cgi,update.pl,edit_upgrade.cgi,install_mod.cgi,delete_mod.cgi,install_theme.cgi}
+
+  # remove modules add because we don't want files installed without pacman control
+  rm -f webmin/{install_mod.cgi,delete_mod.cgi}  
+
+  # setting perl path
+  (find . -name '*.cgi' ; find . -name '*.pl') | perl perlpath.pl /usr/bin/perl -
+  
+  # create dirs
+  mkdir -p $startdir/pkg/opt/webmin
+  mkdir -p $startdir/pkg/var/log/webmin
+  mkdir -p $startdir/pkg/etc/webmin
+  
+  # install pam stuff
+  install -D -m 644 webmin-pam $startdir/pkg/etc/pam.d/webmin
+  
+  # remove other distros and add only Archlinux don't change next line else it will not work!
+  rm os_list.txt
+  echo 'Archlinux			Any version	generic-linux	*	-d "/etc/pacman.d"' >> os_list.txt
+  
+  # Add rc.conf support to boot and shutdown menu and lock editing of this module
+  cd init/
+  sed -i -e 's:^local_down=.*:local_down=Archlinux RC.CONF,3,None:g' $(find . ! -name 'config.info.pl' -name 'config.info*')
+  sed -i -e 's:^local_script=.*:local_script=Archlinux RC.LOCAL,3,None:g' $(find . ! -name 'config.info.pl' -name 'config.info*') 
+  sed -i -e 's:^index_downscript=.*:index_downscript=Archlinux RC.CONF:g' lang/*
+  sed -i -e 's:^index_script=.*:index_script=Archlinux RC.LOCAL:g' lang/*
+  sed -i -e 's:^noconfig=0:noconfig=1:g'  defaultacl
+
+  # Add pacman menu
+  cd $startdir/src/$pkgname-$pkgver
+  cp -rf custom/ pacman
+  cp -rf mscstyle3/custom mscstyle3/pacman
+  sed -i -e 's:^noconfig=0:noconfig=1:g' -e 's:^edit=1:edit=0:g' pacman/defaultacl
+  sed -i -e '/desc/d' -e '/longdesc/d' pacman/module.info
+  sed -i -e 's:^name=Custom:name=Pacman:g' pacman/module.info
+  echo 'category=system' >> pacman/module.info
+  echo 'desc=Pacman' >> pacman/module.info
+  sed -i -e 's:^index_title=.*:index_title=Pacman:g' pacman/lang/*
+
+  # copy stuff to right dirs
+  cd $startdir/src/$pkgname-$pkgver
+  cp -rp * $startdir/pkg/opt/webmin
+  cd $startdir/src/webmin-config
+  cp -rfp * $startdir/pkg/opt/webmin
+
+  # define parameters for setup.sh
+  config_dir=$startdir/pkg/etc/webmin
+  var_dir=$startdir/pkg/var/log/webmin
+  perl=/usr/bin/perl
+  autoos=1
+  port=10000
+  login=root
+  crypt="XXX"
+  ssl=1
+  atboot=0
+  nostart=1
+  nochown=1
+  autothird=1
+  nouninstall=1
+  noperlpath=1
+  atbootyn=n
+  tempdir=$startdir/pkg/tmp
+  export config_dir var_dir perl autoos port tempdir login crypt ssl nochown autothird nouninstall nostart noperlpath atbootyn
+  
+  # Fix setup.sh
+  sed -i -e 's:read atbootyn::g' -e 's:exit 13::g' $startdir/pkg/opt/webmin/setup.sh
+  $startdir/pkg/opt/webmin/setup.sh
+  
+  # Fixup the config files to use their real locations
+  sed -i 's:^pidfile=.*$:pidfile=/var/run/webmin.pid:' $startdir/pkg/etc/webmin/miniserv.conf
+  find $startdir/pkg/etc/webmin -type f -exec sed -i "s:$startdir/pkg::g" {} \; 
+  
+  # make it only accessible by localhost
+  echo 'allow=127.0.0.1' >> $startdir/pkg/etc/webmin/miniserv.conf
+  
+  # install pacman menu
+  cd $startdir/src/webmin-pacman/config
+  cp -rfp * $startdir/pkg/etc/webmin/pacman
+
+  #install rc file
+  install -D -m 755 $startdir/src/webmin.rc $startdir/pkg/etc/rc.d/webmin
+
+  # delete temp dir
+  rm -r $startdir/pkg/tmp
+  # install license
+  install -m 644 -D $startdir/src/$pkgname-$pkgver/LICENCE $startdir/pkg/usr/share/licenses/webmin/LICENCE
+}
+md5sums=('b841af1b1a9f78795814ce8211e6ad81'
+         'da6bea412a5be8cf82a813078fec5847'
+         '4cf1139093ea59044be42a4f173fb8aa'
+         '0673e51af0e81418b4a6c1e205f7e5cd')
diff --git a/abs/extra-testing/webmin/webmin-config.tar.bz2 b/abs/extra-testing/webmin/webmin-config.tar.bz2
new file mode 100644
index 0000000..a51b43d
Binary files /dev/null and b/abs/extra-testing/webmin/webmin-config.tar.bz2 differ
diff --git a/abs/extra-testing/webmin/webmin-pacman.tar.bz2 b/abs/extra-testing/webmin/webmin-pacman.tar.bz2
new file mode 100644
index 0000000..548acc2
Binary files /dev/null and b/abs/extra-testing/webmin/webmin-pacman.tar.bz2 differ
diff --git a/abs/extra-testing/webmin/webmin.install b/abs/extra-testing/webmin/webmin.install
new file mode 100644
index 0000000..ce5da6c
--- /dev/null
+++ b/abs/extra-testing/webmin/webmin.install
@@ -0,0 +1,39 @@
+# arg 1:  the new package version
+post_install() {
+  local crypt=$(grep "^root:" ${ROOT}/etc/shadow | cut -f 2 -d :)
+  crypt=${crypt//\\/\\\\}
+  crypt=${crypt//\//\\\/}
+  sed -i "s/root:XXX/root:${crypt}/" /etc/webmin/miniserv.users
+
+cat << EOF
+Note:
+==> It is not allowed to install 3rd party modules, or delete existing modules.
+==> Please write your own PKGBUILDS for 3rd party modules and additional themes.
+Setup:
+==> To make webmin start at boot time, add webmin to rc.conf daemons
+==> Point your web browser to http://localhost:10000 to use webmin.
+==> The access is restricted to localhost, if you want to connect from other locations
+==> change /etc/webmin/miniserv.conf to something like that: allow=127.0.0.1 <your-ip>
+==> If you want to have ssl encryption please install 'perl-net-ssleay' additional.
+EOF
+# fix man module
+  cd /opt/webmin/man
+  for i in $(find . -name '*.gz'); do
+  gzip -df $i
+  done
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  # uninstall unzipped files
+  rm -r /opt/webmin/man
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/extra-testing/webmin/webmin.rc b/abs/extra-testing/webmin/webmin.rc
new file mode 100644
index 0000000..ee83fbe
--- /dev/null
+++ b/abs/extra-testing/webmin/webmin.rc
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+start=/etc/webmin/start
+stop=/etc/webmin/stop
+lockfile=/var/lock/webmin
+
+case "$1" in
+'start')
+     stat_busy "Starting Webmin daemon"
+     $start >/dev/null 2>&1 </dev/null
+     RETVAL=$?
+     if [ "$RETVAL" = "0" ]; then
+     touch $lockfile >/dev/null 2>&1
+     stat_done
+     else
+     stat_fail
+fi
+;;
+
+'stop')
+     stat_busy "Stopping Webmin daemon"
+     $stop >/dev/null 2>&1 </dev/null
+     RETVAL=$?
+     if [ "$RETVAL" = "0" ]; then
+     rm -f $lockfile
+     stat_done
+     else
+     stat_fail
+fi
+;;
+
+'restart')
+     $stop && $start
+     RETVAL=$?
+;;
+*)
+echo "Usage: $0 { start | stop | restart }"
+RETVAL=1
+;;
+esac
+exit $RETVAL
\ No newline at end of file
-- 
cgit v0.12

