diff options
Diffstat (limited to 'community-testing')
30 files changed, 1441 insertions, 0 deletions
diff --git a/community-testing/hostapd/PKGBUILD b/community-testing/hostapd/PKGBUILD new file mode 100644 index 000000000..8d42df603 --- /dev/null +++ b/community-testing/hostapd/PKGBUILD @@ -0,0 +1,81 @@ +# $Id: PKGBUILD 64577 2012-02-16 20:40:45Z heftig $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> + +_madwifiver=0.9.4.4133 +pkgname=hostapd +pkgver=0.7.3 +pkgrel=6 +pkgdesc="daemon for wireless software access points" +arch=('i686' 'x86_64') +url="http://hostap.epitest.fi/hostapd/" +license=('custom') +depends=('openssl' 'libnl') +makedepends=() +provides=('hostapd') +conflicts=('hostapd') +backup=('etc/hostapd/hostapd.conf' + 'etc/conf.d/hostapd' + 'etc/hostapd/hlr_auc_gw.milenage_db' + 'etc/hostapd/hostapd.accept' + 'etc/hostapd/hostapd.deny' + 'etc/hostapd/hostapd.eap_user' + 'etc/hostapd/hostapd.radius_clients' + 'etc/hostapd/hostapd.sim_db' + 'etc/hostapd/hostapd.vlan' + 'etc/hostapd/hostapd.wpa_psk' + 'etc/hostapd/wired.conf') +install=hostapd.install +source=(http://hostap.epitest.fi/releases/$pkgname-$pkgver.tar.gz + ftp://ftp.archlinux.org/other/madwifi/madwifi-${_madwifiver}.tar.bz2 + hostap_allow-linking-with-libnl-3.2.patch + config.bz2 + hostapd + hostapd.conf.d) +md5sums=('91a7c8d0f090b7104152d3455a84c112' + 'ca3c3504d000e7b3d7063af46271c932' + 'e904e62b12c5d64132dd9441e8b45dce' + 'aa86f89f51b39cea75a8c15f7b376a67' + 'd570327c385f34a4af24d3a0d61cea19' + 'f169534b0f59b341f6df1a21e0344511') + +build() { + cd $srcdir/$pkgname-$pkgver + patch -Np1 -i "$srcdir/hostap_allow-linking-with-libnl-3.2.patch" + + cd hostapd + cp ../../config ./.config + + sed -i "s|/usr|$srcdir/madwifi|" .config + sed -i "s|/usr/local/bin|$pkgdir/usr/bin|" Makefile + + mkdir -p $pkgdir/usr/bin $pkgdir/etc/hostapd \ + $pkgdir/usr/man/man1 $pkgdir/usr/man/man8 \ + $pkgdir/usr/share/licenses/$pkgname $pkgdir/etc/rc.d + + make +} + +package() { + cd $srcdir/$pkgname-$pkgver/hostapd + make DESTDIR=$pkg install + + cp hlr_auc_gw.milenage_db $pkgdir/etc/hostapd + cp hostapd.accept $pkgdir/etc/hostapd + cp hostapd.conf $pkgdir/etc/hostapd + cp hostapd.deny $pkgdir/etc/hostapd + cp hostapd.eap_user $pkgdir/etc/hostapd + cp hostapd.radius_clients $pkgdir/etc/hostapd + cp hostapd.sim_db $pkgdir/etc/hostapd + cp hostapd.vlan $pkgdir/etc/hostapd + cp hostapd.wpa_psk $pkgdir/etc/hostapd + cp wired.conf $pkgdir/etc/hostapd + cp hostapd.8 $pkgdir/usr/man/man8 + cp hostapd_cli.1 $pkgdir/usr/man/man1 + cp ../COPYING $pkgdir/usr/share/licenses/hostapd + cp ../../hostapd $pkgdir/etc/rc.d + mkdir -p $pkgdir/etc/conf.d + cp ../../hostapd.conf.d $pkgdir/etc/conf.d/hostapd + + mv $pkgdir/usr/man $pkgdir/usr/share/ + sed -i 's#/etc/hostapd#/etc/hostapd/hostapd#' $pkgdir/etc/hostapd/hostapd.conf +} diff --git a/community-testing/hostapd/config.bz2 b/community-testing/hostapd/config.bz2 Binary files differnew file mode 100644 index 000000000..d11df0bd5 --- /dev/null +++ b/community-testing/hostapd/config.bz2 diff --git a/community-testing/hostapd/hostap_allow-linking-with-libnl-3.2.patch b/community-testing/hostapd/hostap_allow-linking-with-libnl-3.2.patch new file mode 100644 index 000000000..8e7cd9a97 --- /dev/null +++ b/community-testing/hostapd/hostap_allow-linking-with-libnl-3.2.patch @@ -0,0 +1,42 @@ +Subject: [RFC] hostap: Allow linking with libnl-3. +Date: Tue, 15 Nov 2011 14:30:04 -0000 +From: Ben Greear <greearb@candelatech.com> + +I needed this patch to compile against the latest +libnl code. I added this to my config file: + +CONFIG_LIBNL32=y + +Signed-hostap: Ben Greear <greearb@candelatech.com> +rediffed against 0.7.3 by Stefan Lippers-Hollmann <s.l-h@gmx.de> + +--- +:100644 100644 5caeec5... 0cc81f9... M src/drivers/drivers.mak + src/drivers/drivers.mak | 21 ++++++++++++++------- + 2 files changed, 29 insertions(+), 14 deletions(-) + +--- a/src/drivers/drivers.mak ++++ b/src/drivers/drivers.mak +@@ -31,11 +31,18 @@ NEED_SME=y + NEED_AP_MLME=y + NEED_NETLINK=y + NEED_LINUX_IOCTL=y +-DRV_LIBS += -lnl ++ifdef CONFIG_LIBNL32 ++ DRV_LIBS += -lnl-3 ++ DRV_LIBS += -lnl-genl-3 ++ DRV_CFLAGS += -DCONFIG_LIBNL20 ++ DRV_CFLAGS += -I/usr/include/libnl3/ ++else ++ DRV_LIBS += -lnl + +-ifdef CONFIG_LIBNL20 +-DRV_LIBS += -lnl-genl +-DRV_CFLAGS += -DCONFIG_LIBNL20 ++ ifdef CONFIG_LIBNL20 ++ DRV_LIBS += -lnl-genl ++ DRV_CFLAGS += -DCONFIG_LIBNL20 ++ endif + endif + endif + diff --git a/community-testing/hostapd/hostapd b/community-testing/hostapd/hostapd new file mode 100644 index 000000000..b4709d7bf --- /dev/null +++ b/community-testing/hostapd/hostapd @@ -0,0 +1,35 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/hostapd + +case "$1" in + start) + stat_busy "Starting hostapd" + /usr/bin/hostapd -B -P ${HOSTAPD_PID} ${HOSTAPD_CONF} &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + stat_done + add_daemon hostapd + fi + ;; + stop) + stat_busy "Stopping hostapd" + [ -f ${HOSTAPD_PID} ] && kill `cat ${HOSTAPD_PID}` &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + stat_done + rm_daemon hostapd + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac diff --git a/community-testing/hostapd/hostapd.conf.d b/community-testing/hostapd/hostapd.conf.d new file mode 100644 index 000000000..7a7bbc806 --- /dev/null +++ b/community-testing/hostapd/hostapd.conf.d @@ -0,0 +1,2 @@ +HOSTAPD_PID="/var/run/hostapd.pid" +HOSTAPD_CONF="/etc/hostapd/hostapd.conf" diff --git a/community-testing/hostapd/hostapd.install b/community-testing/hostapd/hostapd.install new file mode 100644 index 000000000..801187e71 --- /dev/null +++ b/community-testing/hostapd/hostapd.install @@ -0,0 +1,20 @@ +post_install() { + echo "> Note: You will find some config examples in" + echo "> /etc/hostapd. The default location of several" + echo "> key configuration files for hostapd are in" + echo "> /etc/hostapd as well. They are:" + echo "> hostapd.conf --> primary configuration file" + echo "> hostapd.allow --> MAC allow list" + echo "> hostapd.deny --> MAC deny list" + echo "> Also, note that there are some self-explanatory" + echo "> examples in the directory. Feel free to change the mac" + echo "> list location by defining it differently in your hostapd.conf" + echo "> file. Please, note, however. The daemon start/stop" + echo "> script assumes you have a working config file at" + echo "> /etc/hostapd/hostapd.conf. One final thing to remember." + echo "> You need to install madwifi if you want support for it." +} + +post_upgrade() { + post_install +} diff --git a/community-testing/ipvsadm/PKGBUILD b/community-testing/ipvsadm/PKGBUILD new file mode 100644 index 000000000..407487a23 --- /dev/null +++ b/community-testing/ipvsadm/PKGBUILD @@ -0,0 +1,40 @@ +# $Id$ +# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org> +# Contributor: Judd Vinet <jvinet@zeroflux.org> + +pkgname=ipvsadm +pkgver=1.26 +pkgrel=2 +pkgdesc='The IP Virtual Server administration utility' +arch=('i686' 'x86_64') +url='http://www.linuxvirtualserver.org/software/ipvs.html' +license=('GPL2') +depends=('libnl1' 'popt') +backup=('etc/conf.d/ipvsadm') +#options=('!makeflags') +source=("http://www.linuxvirtualserver.org/software/kernel-2.6/$pkgname-$pkgver.tar.gz" + 'ipvsadm.rc' + 'ipvsadm.conf' + 'ipvsadm.rules') +md5sums=('eac3ba3f62cd4dea2da353aeddd353a8' + '0e106fce0675e014bea0f9355b947bd6' + 'cd358130967a9cc0d31fc61282df43e7' + 'cd6649c647e495d4d6f981542ce5a93b') + +build() { + cd ${pkgname}-${pkgver} + make INCLUDE="-I/usr/src/linux-`uname -r`/include -I.. -I." || return 1 +} + +package() { + cd ${pkgname}-${pkgver} + make BUILD_ROOT=${pkgdir} MANDIR=usr/share/man INIT="$pkgdir/etc/rc.d" install + cd "$srcdir" + # add initscripts + install -D -m 755 $pkgname.rc "${pkgdir}/etc/rc.d/$pkgname" + install -D -m 644 $pkgname.conf "${pkgdir}/etc/conf.d/$pkgname" + # add ipvsadm rules + install -D -m 644 $pkgname.rules "${pkgdir}/etc/$pkgname.rules" +} + +# vim:set ts=2 sw=2 ft=sh et: diff --git a/community-testing/ipvsadm/ipvsadm.conf b/community-testing/ipvsadm/ipvsadm.conf new file mode 100644 index 000000000..aac7ba729 --- /dev/null +++ b/community-testing/ipvsadm/ipvsadm.conf @@ -0,0 +1,3 @@ +# vim:set ts=2 sw=2 ft=sh et: + +IPVSADM_CONF='/etc/ipvsadm.rules' diff --git a/community-testing/ipvsadm/ipvsadm.rc b/community-testing/ipvsadm/ipvsadm.rc new file mode 100644 index 000000000..91ed32e3b --- /dev/null +++ b/community-testing/ipvsadm/ipvsadm.rc @@ -0,0 +1,39 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/ipvsadm + +case "$1" in + start) + stat_busy 'Loading IPVS table' + if [[ -f $IPVSADM_CONF ]] && /sbin/ipvsadm-restore < "$IPVSADM_CONF"; then + add_daemon ipvsadm + stat_done + else + stat_fail + fi + ;; + stop) + status 'Clearing IPVS table' /sbin/ipvsadm -C + rm_daemon ipvsadm + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + save) + stat_busy 'Saving IPVS table' + if /sbin/ipvsadm-save -n > "$IPVSADM_CONF" 2>/dev/null; then + stat_done + else + stat_fail + fi + ;; + *) + echo "usage: ${0##*/} {start|stop|restart|save}" +esac +exit 0 + +# vim:set ts=2 sw=2 ft=sh et: diff --git a/community-testing/ipvsadm/ipvsadm.rules b/community-testing/ipvsadm/ipvsadm.rules new file mode 100644 index 000000000..6740463a1 --- /dev/null +++ b/community-testing/ipvsadm/ipvsadm.rules @@ -0,0 +1 @@ +# emtpy rules file for ipvsadm diff --git a/community-testing/keepalived/PKGBUILD b/community-testing/keepalived/PKGBUILD new file mode 100644 index 000000000..ad7fa29f4 --- /dev/null +++ b/community-testing/keepalived/PKGBUILD @@ -0,0 +1,45 @@ +# $Id$ +# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org> +# Contributor: Andrea Zucchelli <zukka77@gmail.com> + +pkgname=keepalived +pkgver=1.2.2 +pkgrel=3 +pkgdesc='Failover and monitoring daemon for LVS clusters' +arch=('i686' 'x86_64') +url='http://www.keepalived.org/' +license=('GPL2') +backup=('etc/keepalived/keepalived.conf' 'etc/conf.d/keepalived') +depends=('openssl' 'popt' 'libnl1') +source=("http://www.keepalived.org/software/$pkgname-$pkgver.tar.gz" + 'keepalived.rc' + 'keepalived.conf' + 'ip_vs_moved.patch') +md5sums=('f68327ca142616a8463d2d105db122cd' + 'baeb62a682c2b59d732cea84bf52cc87' + '9c8142da8730ad27a345587dea83ced7' + '87ee19c85adaedd3eb11bea8a5865d47') + +build() { + cd $pkgname-$pkgver + patch -p1 -i ../ip_vs_moved.patch + ./configure --prefix=/usr --sysconfdir=/etc + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install + # clean pacakge init scripts + rm -r "$pkgdir/etc/rc.d/init.d" "$pkgdir/etc/sysconfig" + # move examples to /usr/share + install -d -m 755 "$pkgdir/usr/share/$pkgname" + mv "$pkgdir/etc/keepalived/samples" "$pkgdir/usr/share/$pkgname/samples" + + # add initscripts + install -D -m 755 ../$pkgname.rc "${pkgdir}/etc/rc.d/$pkgname" + install -D -m 644 ../$pkgname.conf "${pkgdir}/etc/conf.d/$pkgname" + +} + +# vim:set ts=2 sw=2 ft=sh et: diff --git a/community-testing/keepalived/ip_vs_moved.patch b/community-testing/keepalived/ip_vs_moved.patch new file mode 100644 index 000000000..e27873810 --- /dev/null +++ b/community-testing/keepalived/ip_vs_moved.patch @@ -0,0 +1,23 @@ +--- keepalived-1.2.2/configure 2011-01-06 01:51:33.000000000 +0100 ++++ keepalived-1.2.2.orig/configure 2011-11-24 19:36:32.051486626 +0100 +@@ -3973,7 +3973,7 @@ + + IPVS_SUPPORT="_WITHOUT_LVS_" + if test "$enable_lvs" != "no"; then +- ac_fn_c_check_header_mongrel "$LINENO" "net/ip_vs.h" "ac_cv_header_net_ip_vs_h" "$ac_includes_default" ++ ac_fn_c_check_header_mongrel "$LINENO" "linux/ip_vs.h" "ac_cv_header_net_ip_vs_h" "$ac_includes_default" + if test "x$ac_cv_header_net_ip_vs_h" = x""yes; then : + IPVS_SUPPORT="_WITH_LVS_" + else +diff -ru keepalived-1.2.2/configure.in keepalived-1.2.2.orig/configure.in +--- keepalived-1.2.2/configure.in 2011-01-06 01:51:30.000000000 +0100 ++++ keepalived-1.2.2.orig/configure.in 2011-11-24 19:36:11.797860077 +0100 +@@ -124,7 +124,7 @@ + dnl ----[ Checks for LVS and VRRP support ]---- + IPVS_SUPPORT="_WITHOUT_LVS_" + if test "$enable_lvs" != "no"; then +- AC_CHECK_HEADER([net/ip_vs.h], ++ AC_CHECK_HEADER([linux/ip_vs.h], + [IPVS_SUPPORT="_WITH_LVS_"], + [ + IPVS_SUPPORT="_WITHOUT_LVS_" diff --git a/community-testing/keepalived/keepalived.conf b/community-testing/keepalived/keepalived.conf new file mode 100644 index 000000000..225f02bf9 --- /dev/null +++ b/community-testing/keepalived/keepalived.conf @@ -0,0 +1,16 @@ +# vim:set ts=2 sw=2 ft=sh et: +# Options for keepalived. See `keepalived --help' output and keepalived(8) and +# keepalived.conf(5) man pages for a list of all options. Here are the most +# common ones : +# +# --vrrp -P Only run with VRRP subsystem. +# --check -C Only run with Health-checker subsystem. +# --dont-release-vrrp -V Dont remove VRRP VIPs & VROUTEs on daemon stop. +# --dont-release-ipvs -I Dont remove IPVS topology on daemon stop. +# --dump-conf -d Dump the configuration data. +# --log-detail -D Detailed log messages. +# --log-facility -S 0-7 Set local syslog facility (default=LOG_DAEMON) +# + +DAEMON_OPTS='-D' + diff --git a/community-testing/keepalived/keepalived.rc b/community-testing/keepalived/keepalived.rc new file mode 100644 index 000000000..88bb90724 --- /dev/null +++ b/community-testing/keepalived/keepalived.rc @@ -0,0 +1,39 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/${0##*/} + +NAME=keepalived +DAEMON=/usr/sbin/keepalived +PID=$(pidof -o %PPID $DAEMON) + +case "$1" in + start) + stat_busy "Starting $NAME daemon" + [[ ! $PID ]] && $DAEMON $DAEMON_OPTS && add_daemon $NAME && stat_done && exit 0 + stat_fail + ;; + stop) + stat_busy "Stopping $NAME daemon" + [[ $PID ]] && kill $PID &> /dev/null && rm_daemon $NAME && stat_done && exit 0 + stat_fail + ;; + restart) + $0 stop + $0 start + exit 0 + ;; + reload) + stat_busy "Reloading $NAME daemon" + [[ $PID ]] && kill -HUP $PID &> /dev/null && stat_done && exit 0 + stat_fail + ;; + *) + echo "usage: ${0##*/} {start|stop|restart|reload}" >&2 + ;; +esac + +exit 1 + +# vim:set ts=2 sw=2 ft=sh noet: diff --git a/community-testing/knemo/PKGBUILD b/community-testing/knemo/PKGBUILD new file mode 100644 index 000000000..48224bb73 --- /dev/null +++ b/community-testing/knemo/PKGBUILD @@ -0,0 +1,40 @@ +# $Id: PKGBUILD 64583 2012-02-16 20:41:18Z heftig $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org> +# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: Stefano Zamprogno <stefano dot zamprogno at gmail dot com> + +pkgname=knemo +pkgver=0.7.3 +pkgrel=2 +pkgdesc="The KDE Network Monitor" +arch=('i686' 'x86_64') +url="http://www.kde-apps.org/content/show.php?content=12956" +license=('GPL') +depends=('kdebase-workspace' 'wireless_tools' 'iw' 'libnl1' + 'gtk-update-icon-cache') +makedepends=('cmake' 'automoc4') +install=${pkgname}.install +options=('libtool') +source=("http://www.kde-apps.org/CONTENT/content-files/12956-${pkgname}-${pkgver}.tar.bz2") +md5sums=('24b5ec27b862ed7026ff643193952b78') + +build() { + cd ${srcdir} + + mkdir build + cd build + cmake ../${pkgname}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_INSTALL_PREFIX=/usr + make +} + +package() { + cd ${srcdir}/build + + make DESTDIR=${pkgdir} install + + # remove knemo autostart + rm -rf ${pkgdir}/usr/share/autostart +} diff --git a/community-testing/knemo/knemo.install b/community-testing/knemo/knemo.install new file mode 100644 index 000000000..0fbb3047a --- /dev/null +++ b/community-testing/knemo/knemo.install @@ -0,0 +1,11 @@ +post_install() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} diff --git a/community-testing/libvirt/PKGBUILD b/community-testing/libvirt/PKGBUILD new file mode 100644 index 000000000..c537ce978 --- /dev/null +++ b/community-testing/libvirt/PKGBUILD @@ -0,0 +1,88 @@ +# $Id: PKGBUILD 64585 2012-02-16 20:41:38Z heftig $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: Jonathan Wiersma <archaur at jonw dot org> + +pkgname=libvirt +pkgver=0.9.10 +pkgrel=1 +pkgdesc="API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)" +arch=('i686' 'x86_64') +url="http://libvirt.org/" +license=('LGPL') +depends=('e2fsprogs' 'gnutls' 'iptables' 'libxml2' 'parted' 'polkit' 'python2' + 'avahi' 'yajl' 'libpciaccess' 'udev' 'dbus-core' 'libxau' 'libxdmcp' 'libpcap' + 'curl' 'libsasl' 'libgcrypt' 'libgpg-error' 'openssl' 'libxcb' 'gcc-libs' + 'iproute2' 'netcf' 'libnl1') +makedepends=('pkgconfig' 'lvm2') +optdepends=('bridge-utils: for briged networking (default)' + 'dnsmasq: for NAT/DHCP for guests' + 'kvm' + 'openbsd-netcat: for remote management over ssh' + 'qemu' + 'radvd' + 'dmidecode') +options=('emptydirs' '!libtool') +backup=('etc/conf.d/libvirtd' + 'etc/conf.d/libvirtd-guests' + 'etc/libvirt/libvirtd.conf' + 'etc/libvirt/libvirt.conf' + 'etc/libvirt/qemu.conf' + 'etc/sasl2/libvirt.conf') +install="libvirt.install" +source=("http://libvirt.org/sources/$pkgname-$pkgver.tar.gz" + libvirtd.rc.d + libvirtd.conf.d + libvirtd-guests.rc.d + libvirtd-guests.conf.d + openbsd-netcat-default.patch + unixperms.patch + yajl-2.x.patch) +md5sums=('a424bb793521e637349da47e93dd5fff' + 'c43244c40a0437038c82089618e7beaa' + '3ed0e24f5b5e25bf553f5427d64915e6' + '737ec24aa56871fbabfa892789457db4' + 'bc2971dacdbac967fc3474e50affc345' + 'b0be50eb9dfe4d133decf23b60880f7d' + 'db95aecdf2ccf3693fef5821cdcb7eba' + '5745bb8d0b254abb7a3528c66e03b0f9') + +build() { + cd "$srcdir/$pkgname-$pkgver" + + # python2 fix + export PYTHON=`which python2` + for file in $(find . -name '*.py' -print); do + sed -i 's_#!.*/usr/bin/python_#!/usr/bin/python2_' $file + sed -i 's_#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file + done + +# for more information on authentication see http://libvirt.org/auth.html +# If you wish to have unix-permissions based access rather than only polkit +# access, create a group called libvirt and uncomment the line below: +# patch -Np1 -i "$srcdir"/unixperms.patch + + [ $NOEXTRACT -eq 1 ] || patch -Np1 -i "$srcdir"/openbsd-netcat-default.patch + + # fixes for yajl 2.0 API changes +# [ $NOEXTRACT -eq 1 ] || patch -Np1 -i "$srcdir/yajl-2.x.patch" + + export LDFLAGS=-lX11 + [ -f Makefile ] || ./configure --prefix=/usr --libexec=/usr/lib/"$pkgname" \ + --with-storage-lvm --without-xen --with-udev --without-hal --disable-static + find -name Makefile -exec sed -i 's#-L /usr#-L/usr#' {} \; + make -j1 +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + + make DESTDIR="$pkgdir" install + + install -D -m755 "$srcdir"/libvirtd.rc.d "$pkgdir"/etc/rc.d/libvirtd + install -D -m644 "$srcdir"/libvirtd.conf.d "$pkgdir"/etc/conf.d/libvirtd + + install -D -m755 "$srcdir"/libvirtd-guests.rc.d "$pkgdir"/etc/rc.d/libvirtd-guests + install -D -m644 "$srcdir"/libvirtd-guests.conf.d "$pkgdir"/etc/conf.d/libvirtd-guests + + rm -rf $pkgdir/var/run +} diff --git a/community-testing/libvirt/libvirt.install b/community-testing/libvirt/libvirt.install new file mode 100644 index 000000000..3881386d2 --- /dev/null +++ b/community-testing/libvirt/libvirt.install @@ -0,0 +1,38 @@ +_libvirt_setup() { + rm -f /usr/lib/python?.?/site-packages/libvirt.pyc + echo ">>> To use libvirt as a non-root user:" + echo ">>> Use polkit to grant access." + echo ">>> ...or change the access model in /etc/libvirt/libvirtd.conf." + echo ">>> (see unixperms.patch in PKGBUILD for help)" + echo "" +} + +post_install() { + _libvirt_setup || return 1 + echo ">>> Be sure to see optdepends as you may find some of them helpfull." + echo ">>> Especially: bridge-utils, dnsmasq, and hal." + echo "" + echo ">>> To start libvirtd run: '/etc/rc.d/libvirtd start' as root." + echo ">>> Add 'libvirtd' to daemons in /etc/rc.conf if you want it to load upon" + echo ">>> booting." + echo "" + /bin/true +} + +post_upgrade() { + _libvirt_setup || return 1 + echo ">>> To finish the upgrade, restart libvirtd by running the command:" + echo ">>> '/etc/rc.d/libvirtd restart' as root or rebooting." + echo ">>> You may also need to run 'rm -rf ~/.libvirt'" + echo "" + /bin/true +} + +post_remove() { + rm -f /usr/lib/python[0-9].[0-9]/site-packages/libvirt.pyc + echo ">>> You may wish to delete the group 'libvirt' if it still exists." + echo ">>> It can be removed by running 'groupdel libvirt' as root." + echo "" + depmod -a + /bin/true +} diff --git a/community-testing/libvirt/libvirtd-guests.conf.d b/community-testing/libvirt/libvirtd-guests.conf.d new file mode 100644 index 000000000..02a933715 --- /dev/null +++ b/community-testing/libvirt/libvirtd-guests.conf.d @@ -0,0 +1,11 @@ +LIBVIRTD_STOP_ACTION=suspend + +#LIBVIRTD_URI="-c qemu+ssh://user@host/system" +LIBVIRTD_URI="" + +#LIBVIRTD_BYPASS_CACHE="--bypass-cache" +LIBVIRTD_BYPASS_CACHE="" + +LIBVIRTD_START_DELAY=0 + +LIBVIRTD_SHUTDOWN_TIMEOUT=3 diff --git a/community-testing/libvirt/libvirtd-guests.rc.d b/community-testing/libvirt/libvirtd-guests.rc.d new file mode 100644 index 000000000..b4331964a --- /dev/null +++ b/community-testing/libvirt/libvirtd-guests.rc.d @@ -0,0 +1,107 @@ +#!/bin/bash + +. /etc/conf.d/libvirtd-guests +. /etc/rc.conf +. /etc/rc.d/functions + +LIBVIRTD_LISTFILE="/var/state/libvirtd/vm-list" + +# get guest state by name +libvirt_get_guest_state() +{ + virsh $LIBVIRTD_URI dominfo "$1" | grep -E '^State:' | awk '{print $2}' +} + +# list IDs of running guests +libvirt_list() +{ + virsh $LIBVIRTD_URI list | awk 'NR > 2 {print $2}' +} + +# suspend guest by name +libvirt_suspend() +{ + virsh $LIBVIRTD_URI $LIBVIRTD_BYPASS_CACHE managedsave "$1" >/dev/null + timeout=$LIBVIRTD_SHUTDOWN_TIMEOUT + while [ "$timeout" -gt 0 ]; do + sleep 1 + timeout=$((timeout - 1)) + state=`libvirt_get_guest_state "$1"` + [ "x$state" == "xshut" ] && return 0 + done + return 1 +} + +# shutdown guest by name +libvirt_shutdown() +{ + virsh $LIBVIRTD_URI shutdown "$1" >/dev/null + timeout=$LIBVIRTD_SHUTDOWN_TIMEOUT + while [ "$timeout" -gt 0 ]; do + sleep 1 + timeout=$((timeout - 1)) + state=`libvirt_get_guest_state "$1"` + [ "x$state" != "xshut" ] && return 0 + done + return 1 +} + +# start guest by name +libvirt_start() +{ + virsh $LIBVIRTD_URI $LIBVIRTD_BYPASS_CACHE start "$1" >/dev/null +} + +# stop all guests +libvirt_stop_all() +{ + mkdir -p `dirname $LIBVIRTD_LISTFILE` + echo -n >$LIBVIRTD_LISTFILE + for i in `libvirt_list`; do + if [ "x$LIBVIRTD_STOP_ACTION" == "xsuspend" ]; then + stat_busy "Suspending libvirtd/$i guest" + libvirt_suspend "$i" + else + stat_busy "Shutting libvirtd/$i guest down" + libvirt_shutdown "$i" + fi + [ $? -eq 0 ] && stat_done || stat_fail + echo $i >>$LIBVIRTD_LISTFILE + done +} + +# start all guests +libvirt_start_all() +{ + if [ -f $LIBVIRTD_LISTFILE ]; then + for i in `cat $LIBVIRTD_LISTFILE`; do + stat_busy "Starting/resuming libvirtd/$i guest" + libvirt_start "$i" + [ $? -eq 0 ] && { sleep $LIBVIRTD_START_DELAY; stat_done; } || stat_fail + done + fi + rm -f $LIBVIRTD_LISTFILE +} + +# main +LC_ALL=C +LANG=C +case "$1" in + start) + libvirt_start_all + add_daemon libvirtd-guests + ;; + stop) + libvirt_stop_all + rm_daemon libvirtd-guests + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo $"Usage: $0 {start|stop|restart}" + ;; +esac +exit 0 diff --git a/community-testing/libvirt/libvirtd.conf.d b/community-testing/libvirt/libvirtd.conf.d new file mode 100644 index 000000000..d4d25b47a --- /dev/null +++ b/community-testing/libvirt/libvirtd.conf.d @@ -0,0 +1,3 @@ +LIBVIRTD_CONFIG="/etc/libvirt/libvirtd.conf" +LIBVIRTD_ARGS="-p /var/run/libvirtd.pid" +KRB5_KTNAME="/etc/libvirt/krb5.tab" diff --git a/community-testing/libvirt/libvirtd.rc.d b/community-testing/libvirt/libvirtd.rc.d new file mode 100644 index 000000000..193bffa9c --- /dev/null +++ b/community-testing/libvirt/libvirtd.rc.d @@ -0,0 +1,66 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/conf.d/libvirtd +. /etc/rc.d/functions + +LIBVIRTD_CONFIG_ARGS= +if [ -n "$LIBVIRTD_CONFIG" ] +then + LIBVIRTD_CONFIG_ARGS="--config $LIBVIRTD_CONFIG" +fi + +PID=`pidof -o %PPID /usr/sbin/libvirtd` +case "$1" in + start) + stat_busy "Starting libvirtd" + export RADVD=/usr/sbin/radvd + for i in /var/run/libvirt/qemu /var/run/libvirt/lxc /var/run/libvirt/uml /var/run/libvirt/network; do + [ -d $i ] || mkdir -p $i + done + [ -z "$PID" ] && ( + mkdir -p /var/{cache,run}/libvirt + rm -rf /var/cache/libvirt/* + KRB5_KTNAME=$KRB5_KTNAME \ + /usr/sbin/libvirtd --daemon $LIBVIRTD_CONFIG_ARGS $LIBVIRTD_ARGS + ) + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon libvirtd + stat_done + fi + ;; + stop) + stat_busy "Stopping libvirtd" + [ ! -z "$PID" ] && ( + kill $PID &> /dev/null + rm -rf /var/cache/libvirt/* + rm -f /var/run/libvirtd.pid + ) + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon libvirtd + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + reload) + stat_busy "Reloading libvirtd configuration" + [ ! -z "$PID" ] && kill -HUP $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + stat_done + fi + ;; + *) + echo $"Usage: $0 {start|stop|restart|reload}" + ;; +esac +exit 0 diff --git a/community-testing/libvirt/openbsd-netcat-default.patch b/community-testing/libvirt/openbsd-netcat-default.patch new file mode 100644 index 000000000..a01b4f14e --- /dev/null +++ b/community-testing/libvirt/openbsd-netcat-default.patch @@ -0,0 +1,36 @@ +diff -wbBur libvirt-0.9.7/src/qemu/qemu_migration.c libvirt-0.9.7.my/src/qemu/qemu_migration.c +--- libvirt-0.9.7/src/qemu/qemu_migration.c 2011-10-31 07:46:04.000000000 +0400 ++++ libvirt-0.9.7.my/src/qemu/qemu_migration.c 2011-11-08 15:46:10.000000000 +0400 +@@ -1589,7 +1589,7 @@ + spec->dest.unix_socket.file); + } else { + const char *args[] = { +- "nc", "-U", spec->dest.unix_socket.file, NULL ++ "nc.openbsd", "-U", spec->dest.unix_socket.file, NULL + }; + ret = qemuMonitorMigrateToCommand(priv->mon, migrate_flags, args); + } +diff -wbBur libvirt-0.9.7/src/remote/remote_driver.c libvirt-0.9.7.my/src/remote/remote_driver.c +--- libvirt-0.9.7/src/remote/remote_driver.c 2011-11-08 07:53:30.000000000 +0400 ++++ libvirt-0.9.7.my/src/remote/remote_driver.c 2011-11-08 15:46:10.000000000 +0400 +@@ -614,7 +614,7 @@ + username, + !tty, + !verify, +- netcat ? netcat : "nc", ++ netcat ? netcat : "nc.openbsd", + keyfile, + sockname))) + goto failed; +diff -wbBur libvirt-0.9.7/src/rpc/virnetsocket.c libvirt-0.9.7.my/src/rpc/virnetsocket.c +--- libvirt-0.9.7/src/rpc/virnetsocket.c 2011-11-08 07:53:30.000000000 +0400 ++++ libvirt-0.9.7.my/src/rpc/virnetsocket.c 2011-11-08 15:46:31.000000000 +0400 +@@ -642,7 +642,7 @@ + virCommandAddArgList(cmd, "-o", "StrictHostKeyChecking=no", NULL); + + if (!netcat) +- netcat = "nc"; ++ netcat = "nc.openbsd"; + + virCommandAddArgList(cmd, nodename, "sh", "-c", NULL); + diff --git a/community-testing/libvirt/unixperms.patch b/community-testing/libvirt/unixperms.patch new file mode 100644 index 000000000..b3fb86cf5 --- /dev/null +++ b/community-testing/libvirt/unixperms.patch @@ -0,0 +1,47 @@ +diff -ur libvirt-0.7.4-orig/daemon/libvirtd.conf libvirt-0.7.4-patched/daemon/libvirtd.conf +--- libvirt-0.7.4-orig/daemon/libvirtd.conf 2009-11-23 03:10:33.398655655 -0800 ++++ libvirt-0.7.4-patched/daemon/libvirtd.conf 2009-11-23 03:09:37.831189671 -0800 +@@ -78,14 +78,14 @@ + # without becoming root. + # + # This is restricted to 'root' by default. +-#unix_sock_group = "libvirt" ++unix_sock_group = "libvirt" + + # Set the UNIX socket permissions for the R/O socket. This is used + # for monitoring VM status only + # + # Default allows any user. If setting group ownership may want to + # restrict this to: +-#unix_sock_ro_perms = "0777" ++unix_sock_ro_perms = "0770" + + # Set the UNIX socket permissions for the R/W socket. This is used + # for full management of VMs +@@ -95,7 +95,7 @@ + # + # If not using PolicyKit and setting group ownership for access + # control then you may want to relax this to: +-#unix_sock_rw_perms = "0770" ++unix_sock_rw_perms = "0770" + + # Set the name of the directory in which sockets will be found/created. + #unix_sock_dir = "/var/run/libvirt" +@@ -126,7 +126,7 @@ + # + # To restrict monitoring of domains you may wish to enable + # an authentication mechanism here +-#auth_unix_ro = "none" ++auth_unix_ro = "none" + + # Set an authentication scheme for UNIX read-write sockets + # By default socket permissions only allow root. If PolicyKit +@@ -135,7 +135,7 @@ + # + # If the unix_sock_rw_perms are changed you may wish to enable + # an authentication mechanism here +-#auth_unix_rw = "none" ++auth_unix_rw = "none" + + # Change the authentication scheme for TCP sockets. + # diff --git a/community-testing/libvirt/yajl-2.x.patch b/community-testing/libvirt/yajl-2.x.patch new file mode 100644 index 000000000..80d3edce0 --- /dev/null +++ b/community-testing/libvirt/yajl-2.x.patch @@ -0,0 +1,66 @@ +--- a/src/util/json.c 2011-03-24 03:10:26.000000000 -0400 ++++ b/src/util/json.c 2011-04-25 20:01:29.354939116 -0400 +@@ -709,7 +709,7 @@ + + static int virJSONParserHandleNumber(void * ctx, + const char * s, +- unsigned int l) ++ size_t l) + { + virJSONParserPtr parser = ctx; + char *str = strndup(s, l); +@@ -735,7 +735,7 @@ + + static int virJSONParserHandleString(void * ctx, + const unsigned char * stringVal, +- unsigned int stringLen) ++ size_t stringLen) + { + virJSONParserPtr parser = ctx; + virJSONValuePtr value = virJSONValueNewStringLen((const char *)stringVal, +@@ -756,7 +756,7 @@ + + static int virJSONParserHandleMapKey(void * ctx, + const unsigned char * stringVal, +- unsigned int stringLen) ++ size_t stringLen) + { + virJSONParserPtr parser = ctx; + virJSONParserStatePtr state; +@@ -894,14 +894,14 @@ + /* XXX add an incremental streaming parser - yajl trivially supports it */ + virJSONValuePtr virJSONValueFromString(const char *jsonstring) + { +- yajl_parser_config cfg = { 1, 1 }; + yajl_handle hand; + virJSONParser parser = { NULL, NULL, 0 }; + virJSONValuePtr ret = NULL; + + VIR_DEBUG("string=%s", jsonstring); + +- hand = yajl_alloc(&parserCallbacks, &cfg, NULL, &parser); ++ hand = yajl_alloc(&parserCallbacks, NULL, &parser); ++ yajl_config(hand, yajl_allow_comments, 1); + + if (yajl_parse(hand, + (const unsigned char *)jsonstring, +@@ -1002,15 +1002,16 @@ + + char *virJSONValueToString(virJSONValuePtr object) + { +- yajl_gen_config conf = { 0, " " }; /* Turns off pretty printing since QEMU can't cope */ + yajl_gen g; + const unsigned char *str; + char *ret = NULL; +- unsigned int len; ++ size_t len; + + VIR_DEBUG("object=%p", object); + +- g = yajl_gen_alloc(&conf, NULL); ++ g = yajl_gen_alloc(NULL); ++ yajl_gen_config(g, yajl_gen_beautify, 0); ++ yajl_gen_config(g, yajl_gen_indent_string, " "); + + if (virJSONValueToStringOne(object, g) < 0) { + virReportOOMError(); diff --git a/community-testing/netcf/PKGBUILD b/community-testing/netcf/PKGBUILD new file mode 100644 index 000000000..1498f4623 --- /dev/null +++ b/community-testing/netcf/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 64587 2012-02-16 20:41:45Z heftig $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: Aurélien Wailly <aurelien.wailly@gmail.com> + +pkgname=netcf +pkgver=0.1.7 +pkgrel=3 +pkgdesc="A library for configuring network interfaces" +arch=('i686' 'x86_64') +license=('LGPL') +url="https://fedorahosted.org/netcf/" +depends=('augeas>=0.7.4' 'netcfg' 'libxslt' 'libxml2' 'libnl1') +makedepends=('gcc') +options=(!libtool) +source=("https://fedorahosted.org/released/netcf/$pkgname-$pkgver.tar.gz" + netcf-0.1.7.patch) +md5sums=('8e313b623c907eb035cf3948b71fecc2' + '0e88ee6813219e9e75a943444fe439f5') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + patch -Np1 -i ${srcdir}/netcf-0.1.7.patch + ./configure --prefix=/usr --disable-static + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR=${pkgdir} install +} diff --git a/community-testing/netcf/netcf-0.1.7.patch b/community-testing/netcf/netcf-0.1.7.patch new file mode 100644 index 000000000..d4a4d31b7 --- /dev/null +++ b/community-testing/netcf/netcf-0.1.7.patch @@ -0,0 +1,426 @@ +diff -ur netcf-0.1.7.ori//data/xml/initscripts-get.xsl netcf-0.1.7/data/xml/initscripts-get.xsl +--- netcf-0.1.7.ori//data/xml/initscripts-get.xsl 2009-10-04 08:18:41.000000000 +0200 ++++ netcf-0.1.7/data/xml/initscripts-get.xsl 2010-12-08 14:54:28.891813397 +0100 +@@ -47,9 +47,12 @@ + <xsl:template name="vlan-interface-common"> + <xsl:variable name="iface" select="concat(vlan/interface/@name, '.', vlan/@tag)"/> + +- <xsl:attribute name="path">/files/etc/sysconfig/network-scripts/ifcfg-<xsl:value-of select="$iface"/></xsl:attribute> +- <node label="DEVICE" value="{$iface}"/> +- <node label="VLAN" value="yes"/> ++ <xsl:attribute name="path">/files/etc/network.d/ifcfg-<xsl:value-of select="$iface"/></xsl:attribute> ++ <node label="INTERFACE" value="{$iface}"/> ++ <node label="PHYS_INTERFACE" value="{vlan/interface/@name}"/> ++ <node label="VLAN" value="{vlan/@tag}"/> ++ <node label="CONNECTION" value="ethernet-iproute-vlan"/> ++ <node label="FLAG" value="false"/> + </xsl:template> + + <xsl:template name='bare-vlan-interface'> +@@ -68,6 +71,7 @@ + <xsl:call-template name="startmode"/> + <xsl:call-template name="mtu"/> + <node label="TYPE" value="Bridge"/> ++ <node label="CONNECTION" value="bridge"/> + <xsl:call-template name="interface-addressing"/> + <xsl:if test="bridge/@stp"> + <node label="STP" value="{bridge/@stp}"/> +@@ -75,7 +79,11 @@ + <xsl:if test="bridge/@delay"> + <node label="DELAY" value="{bridge/@delay}"/> + </xsl:if> ++ <node label="DHCP_TIMEOUT" value="0"/> ++ <!-- ++ We don't have to define interfaces separately + </tree> ++ + <xsl:for-each select='bridge/interface'> + <tree> + <xsl:if test="@type = 'ethernet'"> +@@ -87,12 +95,29 @@ + <xsl:if test="@type = 'bond'"> + <xsl:call-template name="bare-bond-interface"/> + </xsl:if> ++ ++ BRIDGE_INTERFACES= is defined with all interfaces + <node label="BRIDGE" value="{../../@name}"/> ++ ++ <xsl:variable name="bridgeifaces" select="concat($bridgeifaces, '.', @name)"/> + </tree> + <xsl:if test="@type = 'bond'"> + <xsl:call-template name="bond-slaves"/> + </xsl:if> + </xsl:for-each> ++ --> ++ <!-- <xsl:if test="count(ip) > 1"> --> ++ <node label="BRIDGE_INTERFACES"> ++ <xsl:attribute name="value"> ++ <xsl:text></xsl:text> ++ <xsl:for-each select="bridge/interface"> ++ <xsl:value-of select="@name"/><xsl:value-of select="string(' ')"/> ++ </xsl:for-each> ++ <xsl:text></xsl:text> ++ </xsl:attribute> ++ </node> ++ <!-- </xsl:if> --> ++ </tree> + </xsl:template> + + <!-- +@@ -138,8 +163,8 @@ + Named templates, following the Relax NG syntax + --> + <xsl:template name="name-attr"> +- <xsl:attribute name="path">/files/etc/sysconfig/network-scripts/ifcfg-<xsl:value-of select="@name"/></xsl:attribute> +- <node label="DEVICE" value="{@name}"/> ++ <xsl:attribute name="path">/files/etc/network.d/ifcfg-<xsl:value-of select="@name"/></xsl:attribute> ++ <node label="INTERFACE" value="{@name}"/> + </xsl:template> + + <xsl:template name="mtu"> +@@ -153,6 +178,7 @@ + <xsl:if test="mac"> + <node label="HWADDR" value="{mac/@address}"/> + </xsl:if> ++ <node label="CONNECTION" value="{@type}"/> + <xsl:call-template name="startmode"/> + <xsl:call-template name="mtu"/> + </xsl:template> +@@ -184,14 +210,14 @@ + <xsl:template name="protocol-ipv4"> + <xsl:choose> + <xsl:when test="dhcp"> +- <node label="BOOTPROTO" value="dhcp"/> ++ <node label="IP" value="dhcp"/> + <xsl:if test="dhcp/@peerdns"> + <node label="PEERDNS" value="{dhcp/@peerdns}"/> + </xsl:if> + </xsl:when> + <xsl:when test="ip"> +- <node label="BOOTPROTO" value="none"/> +- <node label="IPADDR" value="{ip/@address}"/> ++ <node label="IP" value="static"/> ++ <node label="ADDR" value="{ip/@address}"/> + <xsl:if test="ip/@prefix"> + <node label="NETMASK" value="{ipcalc:netmask(ip/@prefix)}"/> + </xsl:if> +diff -ur netcf-0.1.7.ori//data/xml/initscripts-put.xsl netcf-0.1.7/data/xml/initscripts-put.xsl +--- netcf-0.1.7.ori//data/xml/initscripts-put.xsl 2009-10-04 08:18:41.000000000 +0200 ++++ netcf-0.1.7/data/xml/initscripts-put.xsl 2010-11-26 10:44:46.133757628 +0100 +@@ -47,7 +47,7 @@ + </xsl:template> + + <xsl:template name="bare-vlan-interface"> +- <xsl:variable name="name" select="node[@label = 'DEVICE']/@value"/> ++ <xsl:variable name="name" select="node[@label = 'INTERFACE']/@value"/> + <interface type="vlan"> + <xsl:call-template name="name-attr"/> + <xsl:call-template name="vlan-device"/> +@@ -55,7 +55,7 @@ + </xsl:template> + + <xsl:template name="vlan-device"> +- <xsl:variable name="name" select="node[@label = 'DEVICE']/@value"/> ++ <xsl:variable name="name" select="node[@label = 'INTERFACE']/@value"/> + <xsl:variable name="device" select="substring-before($name, '.')"/> + <xsl:variable name="tag" select="substring-after($name, '.')"/> + <vlan tag="{$tag}"> +@@ -70,7 +70,7 @@ + match="tree[node[@label = 'TYPE' and @value = 'Bridge']]"> + <interface type="bridge"> + <!-- the bridge node itself --> +- <xsl:variable name="iface" select="node[@label= 'DEVICE']/@value"/> ++ <xsl:variable name="iface" select="node[@label= 'INTERFACE']/@value"/> + <xsl:call-template name="name-attr"/> + <xsl:call-template name="startmode"/> + <xsl:call-template name="mtu"/> +@@ -101,17 +101,17 @@ + Bond + --> + <xsl:template name="bond-element"> +- <xsl:variable name="iface" select="node[@label= 'DEVICE']/@value"/> ++ <xsl:variable name="iface" select="node[@label= 'INTERFACE']/@value"/> + <bond> + <xsl:variable name="opts" select="node[@label = 'BONDING_OPTS']/@value"/> + <xsl:call-template name="bonding-opts"> + <xsl:with-param name="opts" select="$opts"/> + </xsl:call-template> + <xsl:variable name="primary" select="bond:option($opts, 'primary')"/> +- <xsl:for-each select="/descendant-or-self::*[node[@label = 'MASTER' and @value = $iface]][node[@label = 'DEVICE' and @value = $primary]]"> ++ <xsl:for-each select="/descendant-or-self::*[node[@label = 'MASTER' and @value = $iface]][node[@label = 'INTERFACE' and @value = $primary]]"> + <xsl:call-template name='bare-ethernet-interface'/> + </xsl:for-each> +- <xsl:for-each select="/descendant-or-self::*[node[@label = 'MASTER' and @value = $iface]][node[@label = 'DEVICE' and @value != $primary]]"> ++ <xsl:for-each select="/descendant-or-self::*[node[@label = 'MASTER' and @value = $iface]][node[@label = 'INTERFACE' and @value != $primary]]"> + <xsl:call-template name='bare-ethernet-interface'/> + </xsl:for-each> + </bond> +@@ -125,7 +125,7 @@ + </xsl:template> + + <xsl:template name="bond-interface" +- match="tree[node[@label = 'DEVICE'][@value = //tree/node[@label = 'MASTER']/@value]][count(node[@label = 'BRIDGE']) = 0]"> ++ match="tree[node[@label = 'INTERFACE'][@value = //tree/node[@label = 'MASTER']/@value]][count(node[@label = 'BRIDGE']) = 0]"> + <interface type="bond"> + <xsl:call-template name="name-attr"/> + <xsl:call-template name="startmode"/> +@@ -154,7 +154,7 @@ + + <xsl:template name="name-attr"> + <xsl:attribute name="name"> +- <xsl:value-of select="node[@label= 'DEVICE']/@value"/> ++ <xsl:value-of select="node[@label= 'INTERFACE']/@value"/> + </xsl:attribute> + </xsl:template> + +@@ -173,7 +173,7 @@ + <xsl:variable name="uses_dhcp" + select="node[@label = 'BOOTPROTO']/@value = 'dhcp'"/> + <xsl:variable name="uses_static" +- select="count(node[@label = 'IPADDR']) > 0"/> ++ select="count(node[@label = 'ADDR']) > 0"/> + <xsl:variable name="uses_ipv4" select="$uses_dhcp or $uses_static"/> + <xsl:if test="$uses_ipv4"> + <protocol family="ipv4"> +@@ -186,7 +186,7 @@ + </dhcp> + </xsl:when> + <xsl:when test="$uses_static"> +- <ip address="{node[@label = 'IPADDR']/@value}"> ++ <ip address="{node[@label = 'ADDR']/@value}"> + <xsl:choose> + <xsl:when test="node[@label = 'PREFIX']"> + <xsl:attribute name="prefix"><xsl:value-of select="node[@label = 'PREFIX']/@value"/></xsl:attribute> +diff -ur netcf-0.1.7.ori//src/drv_initscripts.c netcf-0.1.7/src/drv_initscripts.c +--- netcf-0.1.7.ori//src/drv_initscripts.c 2010-09-23 14:13:13.000000000 +0200 ++++ netcf-0.1.7/src/drv_initscripts.c 2010-12-08 13:57:02.027361706 +0100 +@@ -49,17 +49,20 @@ + #include <libexslt/exslt.h> + + static const char *const network_scripts_path = +- "/files/etc/sysconfig/network-scripts"; ++ //"/files/etc/sysconfig/network-scripts"; ++ "/files/etc/network.d/*"; + + static const char *const ifcfg_path = +- "/files/etc/sysconfig/network-scripts/*"; ++ //"/files/etc/sysconfig/network-scripts/*"; ++ "/files/etc/network.d/*"; + + /* Augeas should only load the files we are interested in */ + static const struct augeas_pv augeas_xfm_common_pv[] = { + /* Ifcfg files */ + { "/augeas/load/Ifcfg/lens", "Sysconfig.lns" }, + { "/augeas/load/Ifcfg/incl", +- "/etc/sysconfig/network-scripts/ifcfg-*" }, ++ "/etc/network.d/ifcfg-*" }, ++ //"/etc/sysconfig/network-scripts/ifcfg-*" }, + { "/augeas/load/Ifcfg/excl[1]", "*~" }, + { "/augeas/load/Ifcfg/excl[2]", "*.bak" }, + { "/augeas/load/Ifcfg/excl[3]", "*.orig" }, +@@ -107,10 +110,10 @@ + int nmatches; + + nmatches = aug_fmt_match(ncf, NULL, +- "%s[ DEVICE = '%s'" ++ "%s[ INTERFACE = '%s'" + " or BRIDGE = '%s'" + " or MASTER = '%s'" +- " or MASTER = ../*[BRIDGE = '%s']/DEVICE ]/DEVICE", ++ " or MASTER = ../*[BRIDGE = '%s']/INTERFACE ]/INTERFACE", + ifcfg_path, name, name, name, name); + return nmatches > 0; + } +@@ -173,7 +176,7 @@ + aug = get_augeas(ncf); + ERR_BAIL(ncf); + +- ndevs = aug_fmt_match(ncf, &devs, "%s[DEVICE = '%s']", ++ ndevs = aug_fmt_match(ncf, &devs, "%s[INTERFACE = '%s']", + ifcfg_path, name); + ERR_COND_BAIL(ndevs < 0, ncf, EOTHER); + +@@ -296,7 +299,8 @@ + int result = 0, ndevs; + char **devs = NULL; + +- ndevs = aug_fmt_match(ncf, &devs, "%s/DEVICE", ifcfg_path); ++ ndevs = aug_fmt_match(ncf, &devs, "%s/INTERFACE", ifcfg_path); ++ printf("%i\n", ndevs); + ERR_COND_BAIL(ndevs < 0, ncf, EOTHER); + + result = uniq_ifcfg_paths(ncf, ndevs, devs, intf); +@@ -453,11 +457,11 @@ + + int drv_list_interfaces(struct netcf *ncf, int maxnames, char **names, + unsigned int flags) { +- return list_interface_ids(ncf, maxnames, names, flags, "DEVICE"); ++ return list_interface_ids(ncf, maxnames, names, flags, "INTERFACE"); + } + + int drv_num_of_interfaces(struct netcf *ncf, unsigned int flags) { +- return list_interface_ids(ncf, 0, NULL, flags, "DEVICE"); ++ return list_interface_ids(ncf, 0, NULL, flags, "INTERFACE"); + } + + struct netcf_if *drv_lookup_by_name(struct netcf *ncf, const char *name) { +@@ -599,8 +603,8 @@ + + ncf = nif->ncf; + ndevs = aug_fmt_match(ncf, &devs, +- "%s[ DEVICE = '%s' or BRIDGE = '%s' or MASTER = '%s'" +- " or MASTER = ../*[BRIDGE = '%s']/DEVICE ]/DEVICE", ++ "%s[ INTERFACE = '%s' or BRIDGE = '%s' or MASTER = '%s'" ++ " or MASTER = ../*[BRIDGE = '%s']/INTERFACE ]/INTERFACE", + ifcfg_path, nif->name, nif->name, nif->name, nif->name); + ERR_BAIL(ncf); + +@@ -745,7 +749,7 @@ + int nmatches = 0; + + nmatches = aug_fmt_match(ncf, NULL, +- "%s[ DEVICE = '%s' and TYPE = 'Bridge']", ++ "%s[ INTERFACE = '%s' and TYPE = 'Bridge']", + ifcfg_path, name); + return nmatches > 0; + } +@@ -758,7 +762,7 @@ + ERR_BAIL(ncf); + + nslaves = aug_fmt_match(ncf, slaves, +- "%s[ BRIDGE = '%s' ]/DEVICE", ifcfg_path, name); ++ "%s[ BRIDGE = '%s' ]/INTERFACE", ifcfg_path, name); + ERR_BAIL(ncf); + for (int i=0; i < nslaves; i++) { + char *p = (*slaves)[i]; +@@ -790,8 +794,8 @@ + /* The last or clause catches slaves of a bond that are enslaved to + * a bridge NAME */ + r = xasprintf(&path, +- "%s[ DEVICE = '%s' or BRIDGE = '%s' or MASTER = '%s' " +- " or MASTER = ../*[BRIDGE = '%s']/DEVICE ]", ++ "%s[ INTERFACE = '%s' or BRIDGE = '%s' or MASTER = '%s' " ++ " or MASTER = ../*[BRIDGE = '%s']/INTERFACE ]", + ifcfg_path, name, name, name, name); + ERR_NOMEM(r < 0, ncf); + +@@ -967,7 +971,7 @@ + for (int i = 0; i < nmatches; i++) { + if (!has_ifcfg_file(ncf, matches[i])) + continue; +- r = xasprintf(&ifcfg, "%s[DEVICE = '%s']", ifcfg_path, matches[i]); ++ r = xasprintf(&ifcfg, "%s[INTERFACE = '%s']", ifcfg_path, matches[i]); + ERR_NOMEM(r < 0, ncf); + + if (! is_slave(ncf, ifcfg)) +@@ -1023,7 +1027,10 @@ + */ + + int drv_if_up(struct netcf_if *nif) { +- static const char *const ifup = "ifup"; ++ //static const char *const ifup = "ifup"; ++ static const char *const ifup = "netcfg"; ++ static const char *const ifprefix = "ifcfg-"; ++ char ifname[strlen(nif->name) + sizeof(ifprefix)]; + struct netcf *ncf = nif->ncf; + char **slaves = NULL; + int nslaves = 0; +@@ -1035,11 +1042,24 @@ + ERR_BAIL(ncf); + + for (int i=0; i < nslaves; i++) { +- run1(ncf, ifup, slaves[i]); ++ //run1(ncf, ifup, slaves[i]); ++ const char *const argv[] = { ++ ifup, "-u", slaves[i], NULL ++ }; ++ ++ run_program(ncf, argv); + ERR_BAIL(ncf); + } + } +- run1(ncf, ifup, nif->name); ++ //run1(ncf, ifup, nif->name); ++ /* Interfaces name have to be equal to script under /etc/network.d */ ++ strcpy(ifname, ifprefix); ++ strcat(ifname, nif->name); ++ const char *const argv[] = { ++ ifup, "-u", ifname, NULL ++ }; ++ ++ run_program(ncf, argv); + ERR_BAIL(ncf); + result = 0; + error: +@@ -1048,13 +1068,23 @@ + } + + int drv_if_down(struct netcf_if *nif) { +- static const char *const ifdown = "ifdown"; ++ //static const char *const ifdown = "ifdown"; ++ static const char *const ifdown = "netcfg"; ++ static const char *const ifprefix = "ifcfg-"; ++ char ifname[strlen(nif->name) + sizeof(ifprefix)]; + struct netcf *ncf = nif->ncf; + char **slaves = NULL; + int nslaves = 0; + int result = -1; + +- run1(ncf, ifdown, nif->name); ++ //run1(ncf, ifdown, nif->name); ++ strcpy(ifname, ifprefix); ++ strcat(ifname, nif->name); ++ const char *const argv[] = { ++ ifdown, "-d", ifname, NULL ++ }; ++ ++ run_program(ncf, argv); + ERR_BAIL(ncf); + if (is_bridge(ncf, nif->name)) { + /* Bring up bridge slaves after the bridge */ +@@ -1062,7 +1092,12 @@ + ERR_BAIL(ncf); + + for (int i=0; i < nslaves; i++) { +- run1(ncf, ifdown, slaves[i]); ++ //run1(ncf, ifdown, slaves[i]); ++ const char *const argvs[] = { ++ ifdown, "-d", slaves[i], NULL ++ }; ++ ++ run_program(ncf, argvs); + ERR_BAIL(ncf); + } + } +diff -ur netcf-0.1.7.ori//tests/interface/bridge.xml~ netcf-0.1.7/tests/interface/bridge.xml~ +--- netcf-0.1.7.ori//tests/interface/bridge.xml~ 2009-10-13 19:14:53.000000000 +0200 ++++ netcf-0.1.7/tests/interface/bridge.xml~ 2009-10-14 05:09:05.000000000 +0200 +@@ -2,10 +2,12 @@ + <start mode="onboot"/> + <mtu size="1500"/> + <protocol family="ipv4"> +- <ip address="192.168.80.5" prefix="24"/> ++ <dhcp/> + </protocol> + <bridge stp="off" delay="0.01"> + <interface type="ethernet" name="eth0"> ++ <mac address="ab:bb:cc:dd:ee:ff"/> + </interface> ++ <interface type="ethernet" name="eth1"/> + </bridge> + </interface> +diff -ur netcf-0.1.7.ori//tests/interface/vlan.xml~ netcf-0.1.7/tests/interface/vlan.xml~ +--- netcf-0.1.7.ori//tests/interface/vlan.xml~ 2010-07-30 06:02:39.000000000 +0200 ++++ netcf-0.1.7/tests/interface/vlan.xml~ 2010-09-07 18:26:22.000000000 +0200 +@@ -1,9 +1,9 @@ +-<interface type="vlan" name="eth1.42"> ++<interface type="vlan" name="eth0.42"> + <start mode="onboot"/> + <protocol family="ipv4"> + <dhcp peerdns="no"/> + </protocol> + <vlan tag="42"> +- <interface name="eth1"/> ++ <interface name="eth0"/> + </vlan> + </interface> diff --git a/community-testing/simh/LICENSE b/community-testing/simh/LICENSE new file mode 100644 index 000000000..5b0273020 --- /dev/null +++ b/community-testing/simh/LICENSE @@ -0,0 +1,24 @@ + Original code published in 1993-2005, written by Robert M Supnik + Copyright (c) 1993-2005, Robert M Supnik + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + ROBERT M SUPNIK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Robert M Supnik shall not be + used in advertising or otherwise to promote the sale, use or other dealings + in this Software without prior written authorization from Robert M Supnik. + diff --git a/community-testing/simh/PKGBUILD b/community-testing/simh/PKGBUILD new file mode 100644 index 000000000..4ad116a82 --- /dev/null +++ b/community-testing/simh/PKGBUILD @@ -0,0 +1,39 @@ +# $Id: PKGBUILD 64589 2012-02-16 20:41:53Z heftig $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: waterbear <st92.at.freeshell.org> + +pkgname=simh +pkgver=3.8.1 +_pkgver=38-1 +pkgrel=3 +pkgdesc="simulator for assorted historical computers, from Altair to VAX" +arch=('i686' 'x86_64') +url="http://simh.trailing-edge.com" +license=("BSD") +depends=("libpcap") +makedepends=("unzip") +install=simh.install +source=("http://simh.trailing-edge.com/sources/simhv${_pkgver}.zip" + "LICENSE") +md5sums=('e15f65a82e21ea49e14b438326d93d5c' + 'd56eefa5d020ee2b77d21280fef80e3d') + +build() { + cd "$srcdir" + mkdir -p BIN + find VAX -type f -exec sed -i 's/SIM_INLINE//' {} + + make USE_NETWORK=1 NETWORK_OPT='-DUSE_NETWORK -isystem /usr/include -lpcap' +} + +package() { + cd "$srcdir/BIN" + for i in *; do + install -D $i "$pkgdir/usr/bin/simh-$i" + done + + cd "$srcdir/VAX" + mkdir -p "$pkgdir/usr/lib/simh" + cp *.bin "$pkgdir/usr/lib/simh" + + install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} diff --git a/community-testing/simh/simh.install b/community-testing/simh/simh.install new file mode 100644 index 000000000..19779ad80 --- /dev/null +++ b/community-testing/simh/simh.install @@ -0,0 +1,23 @@ +# arg 1: the new package version +post_install() { + echo -e "-> The VAX ROM images are located in /usr/lib/simh." + /bin/true +} + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + post_install $1 + /bin/true +} + +# arg 1: the old package version +pre_remove() { + /bin/true +} + +# arg 1: the old package version +post_remove() { + /bin/true +} + |