summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community-staging/mplayer2/PKGBUILD67
-rw-r--r--community-testing/libraw/PKGBUILD4
-rw-r--r--community/alleyoop/PKGBUILD20
-rw-r--r--community/alleyoop/alleyoop.install14
-rw-r--r--community/audex/PKGBUILD8
-rw-r--r--community/calibre/PKGBUILD14
-rwxr-xr-xcommunity/calibre/calibre-mount-helper28
-rw-r--r--community/fcgiwrap/PKGBUILD33
-rw-r--r--community/gambas2/PKGBUILD4
-rw-r--r--community/gcc-avr/PKGBUILD6
-rw-r--r--community/geany-plugins/PKGBUILD20
-rw-r--r--community/geany-plugins/geany-plugins.install2
-rw-r--r--community/geany/PKGBUILD12
-rw-r--r--community/gmerlin/PKGBUILD12
-rw-r--r--community/grafx2/PKGBUILD30
-rw-r--r--community/grafx2/grafx2.desktop5
-rw-r--r--community/grafx2/grafx2.install2
-rw-r--r--community/lockdev/PKGBUILD27
-rwxr-xr-xcommunity/mathomatic/PKGBUILD10
-rw-r--r--community/nginx/PKGBUILD8
-rw-r--r--community/openmovieeditor/PKGBUILD10
-rw-r--r--community/pdfedit/PKGBUILD33
-rw-r--r--community/pidgin-otr/PKGBUILD27
-rw-r--r--community/prboom/PKGBUILD36
-rw-r--r--community/pylibacl/PKGBUILD6
-rw-r--r--community/pypanel/PKGBUILD17
-rw-r--r--community/rdiff-backup/PKGBUILD18
-rw-r--r--community/remind/PKGBUILD14
-rw-r--r--community/spawn-fcgi/PKGBUILD18
-rw-r--r--community/steghide/PKGBUILD40
-rw-r--r--community/synergy/PKGBUILD4
-rw-r--r--community/tabbed/PKGBUILD6
-rw-r--r--community/transset-df/PKGBUILD21
-rw-r--r--community/upx/PKGBUILD19
-rw-r--r--core/crda/PKGBUILD8
-rw-r--r--core/tzdata/PKGBUILD12
-rw-r--r--extra/bzr/PKGBUILD9
-rw-r--r--extra/foobillard++/PKGBUILD7
-rw-r--r--extra/grantlee/PKGBUILD9
-rw-r--r--extra/monodevelop-debugger-gdb/PKGBUILD6
-rw-r--r--extra/monodevelop/PKGBUILD4
-rw-r--r--extra/thunar/PKGBUILD66
-rw-r--r--extra/thunar/thunar.install6
-rw-r--r--extra/xfce4-clipman-plugin/PKGBUILD10
-rw-r--r--extra/xfce4-dev-tools/PKGBUILD29
-rw-r--r--libre/virtualbox-parabola-modules/60-vboxguest.rules1
-rw-r--r--libre/virtualbox-parabola-modules/LocalConfig.kmk1
-rw-r--r--libre/virtualbox-parabola-modules/PKGBUILD17
-rw-r--r--libre/virtualbox-parabola-modules/virtualbox-modules.install2
-rw-r--r--libre/virtualbox-parabola-modules/virtualbox-parabola-modules.install1
-rw-r--r--testing/bash/PKGBUILD101
-rw-r--r--testing/bash/bash.install20
-rw-r--r--testing/bash/dot.bash_logout3
-rw-r--r--testing/bash/dot.bash_profile5
-rw-r--r--testing/bash/dot.bashrc9
-rw-r--r--testing/bash/system.bash_logout3
-rw-r--r--testing/bash/system.bashrc23
-rw-r--r--testing/bison/ChangeLog19
-rw-r--r--testing/bison/PKGBUILD33
-rw-r--r--testing/bison/bison.install16
-rw-r--r--testing/bzip2/PKGBUILD69
-rw-r--r--testing/bzip2/bzip2-1.0.4-bzip2recover.patch12
-rw-r--r--testing/cryptsetup/PKGBUILD25
-rw-r--r--testing/cryptsetup/cryptsetup-fix-crypt_get_volume_key_size-for-plain-device.patch94
-rw-r--r--testing/dhcpcd/PKGBUILD50
-rw-r--r--testing/dhcpcd/dhcpcd.conf.d6
-rw-r--r--testing/e2fsprogs/MIT-LICENSE25
-rw-r--r--testing/e2fsprogs/PKGBUILD48
-rw-r--r--testing/e2fsprogs/e2fsprogs.install20
-rw-r--r--testing/e2fsprogs/mke2fs.conf26
-rw-r--r--testing/expat/CVE-2009-3560.patch13
-rw-r--r--testing/expat/CVE-2009-3720.patch12
-rw-r--r--testing/expat/PKGBUILD38
-rw-r--r--testing/flex/PKGBUILD59
-rw-r--r--testing/flex/flex-2.5.35-gcc44.patch22
-rw-r--r--testing/flex/flex-2.5.35-hardening.patch36
-rw-r--r--testing/flex/flex-2.5.35-missing-prototypes.patch53
-rw-r--r--testing/flex/flex-2.5.35-sign.patch11
-rw-r--r--testing/flex/flex.install22
-rw-r--r--testing/flex/lex.sh3
-rw-r--r--testing/grep/PKGBUILD34
-rw-r--r--testing/grep/grep.install21
-rw-r--r--testing/gzip/PKGBUILD43
-rw-r--r--testing/gzip/gzip.install20
-rw-r--r--testing/hdparm/PKGBUILD42
-rw-r--r--testing/hdparm/wiper.sh.2_6.max-ranges.patch84
-rw-r--r--testing/iproute2/PKGBUILD51
-rw-r--r--testing/iproute2/iproute2-fhs.patch84
-rw-r--r--testing/iputils/PKGBUILD65
-rw-r--r--testing/iputils/iputils-s20101006-manpages.patch1044
-rw-r--r--testing/iputils/permission-fix.patch15
-rw-r--r--testing/isdn4k-utils/PKGBUILD34
-rw-r--r--testing/isdn4k-utils/config100
-rw-r--r--testing/isdn4k-utils/isdn4k-utils-3.2p1-build.patch2028
-rw-r--r--testing/less/PKGBUILD31
-rw-r--r--testing/libcap/PKGBUILD27
-rw-r--r--testing/libpcap/Add-support-for-libnl-2.x-adapted-from-a-newer-versi.patch344
-rw-r--r--testing/libpcap/Libnl-2.x-returns-its-own-error-codes-not-errnos-han.patch159
-rw-r--r--testing/libpcap/PKGBUILD41
-rw-r--r--testing/librpcsecgss/PKGBUILD32
-rw-r--r--testing/librpcsecgss/librpcsecgss-0.18-heimdal.patch33
-rw-r--r--testing/libusb-compat/PKGBUILD27
-rw-r--r--testing/libusb/PKGBUILD30
-rw-r--r--testing/linux-atm/PKGBUILD29
-rw-r--r--testing/linux-atm/man-pages.patch45
-rw-r--r--testing/m4/PKGBUILD36
-rw-r--r--testing/m4/m4-1.4.16-readlink-einval.patch12
-rw-r--r--testing/m4/m4.install20
-rw-r--r--testing/mlocate/PKGBUILD56
-rw-r--r--testing/mlocate/mlocate.install18
-rw-r--r--testing/mlocate/updatedb.conf5
-rwxr-xr-xtesting/mlocate/updatedb.cron.daily29
-rw-r--r--testing/ncurses/PKGBUILD74
-rw-r--r--testing/net-tools/PKGBUILD43
-rw-r--r--testing/net-tools/gcc340.patch46
-rw-r--r--testing/net-tools/net-tools-1.60-2.6-compilefix.patch23
-rw-r--r--testing/net-tools/net-tools-1.60-miiioctl.patch17
-rw-r--r--testing/net-tools/net-tools-1.60-nameif.patch58
-rw-r--r--testing/net-tools/net-tools-1.60-nameif_strncpy.patch13
-rw-r--r--testing/net-tools/net-tools.install12
-rw-r--r--testing/net-tools/net-tools.patch30
-rw-r--r--testing/openldap/PKGBUILD96
-rw-r--r--testing/openldap/ntlm.patch230
-rw-r--r--testing/openldap/openldap.install20
-rwxr-xr-xtesting/openldap/slapd49
-rw-r--r--testing/openldap/slapd.default6
-rw-r--r--testing/patch/PKGBUILD40
-rw-r--r--testing/patch/patch-2.6.1-get-arg.patch12
-rw-r--r--testing/pkg-config/PKGBUILD37
-rw-r--r--testing/pkg-config/autoconf-2.66.patch12
-rw-r--r--testing/ppp/PKGBUILD80
-rw-r--r--testing/ppp/ip-down12
-rw-r--r--testing/ppp/ip-down.d.dns.sh3
-rw-r--r--testing/ppp/ip-up12
-rw-r--r--testing/ppp/ip-up.d.dns.sh7
-rw-r--r--testing/ppp/options352
-rw-r--r--testing/ppp/plog7
-rw-r--r--testing/ppp/poff103
-rw-r--r--testing/ppp/pon32
-rw-r--r--testing/ppp/pon.1121
-rw-r--r--testing/ppp/ppp36
-rw-r--r--testing/readline/PKGBUILD62
-rw-r--r--testing/readline/inputrc36
-rw-r--r--testing/readline/readline.install17
-rw-r--r--testing/rpcbind/PKGBUILD42
-rwxr-xr-xtesting/rpcbind/rpcbind39
-rw-r--r--testing/rpcbind/rpcbind-sunrpc.patch22
-rw-r--r--testing/sed/PKGBUILD34
-rw-r--r--testing/sed/sed.install20
-rw-r--r--testing/sysfsutils/PKGBUILD36
-rw-r--r--testing/tar/PKGBUILD38
-rw-r--r--testing/tar/tar.1367
-rw-r--r--testing/tar/tar.install21
-rw-r--r--testing/texinfo/PKGBUILD31
-rw-r--r--testing/texinfo/texinfo.install21
-rw-r--r--testing/which/PKGBUILD27
-rw-r--r--testing/which/which.install20
-rw-r--r--testing/xfsprogs/PKGBUILD29
-rw-r--r--testing/xinetd/PKGBUILD43
-rw-r--r--testing/xinetd/servers10
-rw-r--r--testing/xinetd/services10
-rwxr-xr-xtesting/xinetd/xinetd38
-rw-r--r--testing/xinetd/xinetd.conf14
-rw-r--r--~mtjm/h-client/PKGBUILD12
164 files changed, 8549 insertions, 321 deletions
diff --git a/community-staging/mplayer2/PKGBUILD b/community-staging/mplayer2/PKGBUILD
new file mode 100644
index 000000000..ca9d5e40a
--- /dev/null
+++ b/community-staging/mplayer2/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 57873 2011-11-04 02:20:06Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Bartek Piotrowski <barthalion@gmail.com>
+
+pkgname=mplayer2
+pkgver=2.0.20111101
+pkgrel=1
+pkgdesc="A movie player"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.mplayer2.org/"
+depends=('libgl' 'libvdpau' 'ffmpeg' 'libdvdcss' 'libdvdread' 'libdvdnav' 'libxvmc' 'libass' 'fontconfig' 'freetype2'
+ 'ttf-dejavu' 'sdl' 'aalib' 'libcaca' 'faad2' 'libpulse' 'jack' 'ncurses' 'libxxf86vm' 'cdparanoia' 'libmad'
+ 'a52dec' 'libdca' 'libxxf86dga' 'libxss' 'mpg123' 'ladspa')
+makedepends=('live-media' 'mesa' 'unzip' 'yasm' 'git')
+backup=('etc/mplayer/codecs.conf' 'etc/mplayer/input.conf')
+provides=('mplayer')
+conflicts=('mplayer')
+#source=(http://ftp.mplayer2.org/pub/release/${pkgname}-${pkgver/_/-}.tar.xz
+source=(ftp://ftp.archlinux.org/other/community/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+sha1sums=('78c78605733ca792bb12a52a751a508bfc0f213d')
+options=('!emptydirs')
+
+# source PKGBUILD && mksource
+mksource() {
+ _gitroot="git://git.mplayer2.org/mplayer2.git"
+ _gitname="${pkgname}-${pkgver}"
+
+ if [[ -d "$_gitname" ]]; then
+ cd "$_gitname" && git pull origin
+ else
+ git clone "$_gitroot" "$_gitname"
+ fi
+
+ tar -cJvf ${_gitname}.tar.xz ${_gitname}
+ rm -fr ${_gitname}
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --enable-runtime-cpudetection \
+ --disable-arts \
+ --disable-speex \
+ --disable-openal \
+ --disable-libdv \
+ --disable-musepack \
+ --disable-esd \
+ --disable-mga \
+ --language=all \
+ --enable-translation \
+ --confdir=/etc/mplayer
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 etc/{codecs.conf,input.conf,example.conf} "${pkgdir}"/etc/mplayer/
+ install -dm755 "${pkgdir}"/usr/share/mplayer/
+ ln -s /usr/share/fonts/TTF/DejaVuSans.ttf "${pkgdir}"/usr/share/mplayer/subfont.ttf
+
+ install -dm755 "${pkgdir}"/usr/share/applications/
+ install -m 644 etc/mplayer.desktop "${pkgdir}"/usr/share/applications/
+}
diff --git a/community-testing/libraw/PKGBUILD b/community-testing/libraw/PKGBUILD
index 9d33438ee..6e1d86e2f 100644
--- a/community-testing/libraw/PKGBUILD
+++ b/community-testing/libraw/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 57596 2011-10-31 12:00:52Z lcarlier $
+# $Id: PKGBUILD 57797 2011-11-03 07:00:23Z lcarlier $
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Joeny Ang <ang(dot)joeny(at)gmail(dot)com>
# Maintainer: Brad Fanella <bradfanella@archlinux.us>
@@ -6,7 +6,7 @@
pkgname=libraw
_pkgbasename=LibRaw
pkgver=0.14.3
-pkgrel=1
+pkgrel=2
pkgdesc="A library for reading RAW files obtained from digital photo cameras (CRW/CR2, NEF, RAF, DNG, and others)"
arch=('i686' 'x86_64')
url="http://www.libraw.org/"
diff --git a/community/alleyoop/PKGBUILD b/community/alleyoop/PKGBUILD
index bac994fe6..895a91d77 100644
--- a/community/alleyoop/PKGBUILD
+++ b/community/alleyoop/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 57362 2011-10-26 12:52:41Z arodseth $
+# $Id: PKGBUILD 57801 2011-11-03 09:12:48Z arodseth $
# Maintainer: Alexander Rødseth <rodseth@gmail.com>
# Contributor: Angelo Theodorou <encelo@users.sourceforge.net>
# Contributor: Lex Rivera aka x-demon <aur@x-demon.org>
pkgname=alleyoop
pkgver=0.9.7
-pkgrel=2
+pkgrel=3
pkgdesc="A Valgrind front-end for the GNOME environment"
arch=('x86_64' 'i686')
url="http://alleyoop.sourceforge.net/"
@@ -12,24 +12,24 @@ license=('GPL')
depends=('valgrind' 'libgnomeui')
makedepends=('intltool')
install=alleyoop.install
-source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz")
md5sums=('b45ab041dea15cd0ae663183bef893c6')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "$srcdir/$pkgname-$pkgver"
./configure --prefix=/usr --sysconfdir=/etc
make
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "$srcdir/$pkgname-$pkgver"
- make DESTDIR=${pkgdir} install
- install -m755 -d ${pkgdir}/usr/share/gconf/schemas
- gconf-merge-schema ${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas \
- --domain alleyoop ${pkgdir}/etc/gconf/schemas/*.schemas
- rm -rf ${pkgdir}/etc
+ make DESTDIR="$pkgdir" install
+ install -m755 -d "$pkgdir/usr/share/gconf/schemas"
+ gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/$pkgname.schemas" \
+ --domain alleyoop "$pkgdir"/etc/gconf/schemas/*.schemas
+ rm -r "$pkgdir/etc"
}
# vim:set ts=2 sw=2 et:
diff --git a/community/alleyoop/alleyoop.install b/community/alleyoop/alleyoop.install
index 4f8183a70..16e3af018 100644
--- a/community/alleyoop/alleyoop.install
+++ b/community/alleyoop/alleyoop.install
@@ -1,17 +1,19 @@
pkgname=alleyoop
post_install() {
-usr/sbin/gconfpkg --install ${pkgname}
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
}
pre_upgrade() {
-pre_remove $1
+ pre_remove $1
}
post_upgrade() {
-post_install $1
+ post_install $1
}
-pre_remove() {
-usr/sbin/gconfpkg --uninstall ${pkgname}
-}
+# vim:set ts=2 sw=2 et:
diff --git a/community/audex/PKGBUILD b/community/audex/PKGBUILD
index 24f9f9906..aaae88304 100644
--- a/community/audex/PKGBUILD
+++ b/community/audex/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 56794 2011-10-12 23:16:45Z lcarlier $
+# $Id: PKGBUILD 57866 2011-11-03 22:08:58Z lcarlier $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: mightyjaym <jmambrosino@gmail.com>
# Contributor: moostik <mooostik_at_gmail.com>
pkgname=audex
pkgver=0.74b1
-pkgrel=2
+pkgrel=3
pkgdesc="A CDDA extraction tool with a ftp upload function for KDE"
arch=('i686' 'x86_64')
-url="http://kde.maniatek.com/audex/"
+url="http://kde-apps.org/content/show.php?content=77125"
license=('GPL')
depends=('kdemultimedia-kioslave' 'cdparanoia')
makedepends=('cmake' 'automoc4')
@@ -17,7 +17,7 @@ optdepends=('vorbis-tools: OGG encoder'
'flac: FLAC encoder'
'lame: MP3 encoder')
install=${pkgname}.install
-source=("http://kde.maniatek.com/audex/files/${pkgname}-${pkgver}.tar.xz"
+source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz"
"google_regex.patch")
md5sums=('20fdf9a0f89c08f44a151b6bdaab8782'
'77b33d8daead89d5f4f15b78a1cd1d55')
diff --git a/community/calibre/PKGBUILD b/community/calibre/PKGBUILD
index f11df96d8..4f53862a7 100644
--- a/community/calibre/PKGBUILD
+++ b/community/calibre/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 57448 2011-10-27 21:24:16Z giovanni $
+# $Id: PKGBUILD 57853 2011-11-03 15:52:53Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Petrov Roman <nwhisper@gmail.com>
# Contributor: Andrea Fagiani <andfagiani _at_ gmail dot com>
pkgname=calibre
pkgver=0.8.24
-pkgrel=1
+pkgrel=2
pkgdesc="Ebook management application"
arch=('i686' 'x86_64')
url="http://calibre-ebook.com/"
@@ -19,9 +19,11 @@ makedepends=('python2-pycountry')
optdepends=('ipython: to use calibre-debug')
install=calibre.install
source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz"
- 'desktop_integration.patch')
+ 'desktop_integration.patch'
+ 'calibre-mount-helper')
md5sums=('9ab82f7d4d072cc6858ef92f29d6029a'
- '253ce4fe5d01f8ff76b63cd3825755ea')
+ '253ce4fe5d01f8ff76b63cd3825755ea'
+ '675cd87d41342119827ef706055491e7')
build() {
cd "${srcdir}/${pkgname}"
@@ -64,4 +66,8 @@ package() {
for decom in "${pkgdir}"/usr/share/man/man1/*.bz2; do
bzip2 -d "${decom}"
done
+
+ # See http://lwn.net/SubscriberLink/465311/7c299471a5399167/
+ rm -rf ${pkgdir}/usr/bin/calibre-mount-helper
+ install -m 755 ${srcdir}/calibre-mount-helper "${pkgdir}/usr/bin"
}
diff --git a/community/calibre/calibre-mount-helper b/community/calibre/calibre-mount-helper
new file mode 100755
index 000000000..00cac4270
--- /dev/null
+++ b/community/calibre/calibre-mount-helper
@@ -0,0 +1,28 @@
+#!/bin/sh -e
+# Replacement for upstream mount helper using udisks/eject
+# (C) 2010 Martin Pitt <mpitt@debian.org>
+
+ACTION="$1"
+DEV="$2"
+
+case "$ACTION" in
+ mount)
+ udisks --mount "$DEV"
+
+ # check if mount worked. If not, fail
+ # udisks does return 0 even if mount failed
+ mount | grep -q "$DEV" || exit 0
+ ;;
+
+ eject)
+ eject "$DEV"
+ ;;
+
+ cleanup)
+ ;;
+
+ *)
+ echo "unknown action" >&2
+ exit 1
+esac
+
diff --git a/community/fcgiwrap/PKGBUILD b/community/fcgiwrap/PKGBUILD
index 7720ea652..e3c68122d 100644
--- a/community/fcgiwrap/PKGBUILD
+++ b/community/fcgiwrap/PKGBUILD
@@ -1,24 +1,29 @@
-# $Id: PKGBUILD 28017 2010-10-01 16:05:40Z aschaefer $
-# Maintainer: Aaron Bull Schaefer <aaron@elasticdog.com>
+# $Id: PKGBUILD 57830 2011-11-03 10:18:16Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Aaron Bull Schaefer <aaron@elasticdog.com>
# Contributor: Ron Huang <ronhuang+aur at gmail dot com>
pkgname=fcgiwrap
pkgver=1.0.3
_gitrev='2e301c8'
-pkgrel=1
-pkgdesc='A simple server for running CGI applications over FastCGI'
+pkgrel=2
+pkgdesc='A simple server for running CGI applications over FastCGI.'
arch=('i686' 'x86_64')
url='http://nginx.localdomain.pl/wiki/FcgiWrap'
license=('MIT')
depends=('fcgi' 'spawn-fcgi')
backup=('etc/conf.d/fcgiwrap')
-source=("http://github.com/downloads/gnosek/fcgiwrap/$pkgname-$pkgver.tar.gz"
- 'fcgiwrap.conf.d' 'fcgiwrap.rc.d' 'LICENSE')
-md5sums=('be73d90df7c4442084463e2815fc213d' '9fbb5b0e861ffea74e655143a4c1a8f9'
- '71ea12f43aebca39f73ff2e0b684f361' '5aee62c27b4308f25ab32f05da387366')
+source=("https://github.com/downloads/gnosek/fcgiwrap/${pkgname}-${pkgver}.tar.gz"
+ 'fcgiwrap.conf.d'
+ 'fcgiwrap.rc.d'
+ 'LICENSE')
+md5sums=('be73d90df7c4442084463e2815fc213d'
+ '9fbb5b0e861ffea74e655143a4c1a8f9'
+ '71ea12f43aebca39f73ff2e0b684f361'
+ '5aee62c27b4308f25ab32f05da387366')
build() {
- cd "$srcdir/gnosek-$pkgname-$_gitrev"
+ cd "${srcdir}/gnosek-${pkgname}-${_gitrev}"
autoreconf --install
./configure --prefix=/usr
@@ -26,10 +31,10 @@ build() {
}
package() {
- cd "$srcdir/gnosek-$pkgname-$_gitrev"
+ cd "${srcdir}/gnosek-${pkgname}-${_gitrev}"
- make DESTDIR="$pkgdir" install
- install -D -m644 ../fcgiwrap.conf.d "$pkgdir/etc/conf.d/$pkgname"
- install -D -m755 ../fcgiwrap.rc.d "$pkgdir/etc/rc.d/$pkgname"
- install -D -m644 ../LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ make DESTDIR="${pkgdir}" install
+ install -Dm0644 ../fcgiwrap.conf.d "${pkgdir}/etc/conf.d/${pkgname}"
+ install -Dm0755 ../fcgiwrap.rc.d "${pkgdir}/etc/rc.d/${pkgname}"
+ install -Dm0644 ../LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
diff --git a/community/gambas2/PKGBUILD b/community/gambas2/PKGBUILD
index 16ba15cd5..cfdf2ea1f 100644
--- a/community/gambas2/PKGBUILD
+++ b/community/gambas2/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 56943 2011-10-17 08:20:39Z ibiru $
+# $Id: PKGBUILD 57868 2011-11-03 22:36:48Z lcarlier $
# Maintainer : Laurent Carlier <lordheavym@gmail.com>
# Contributor: Biru Ionut <ionut@archlinux.ro>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
@@ -20,7 +20,7 @@ pkgname=('gambas2-meta' 'gambas2-runtime' 'gambas2-devel' 'gambas2-ide' 'gambas2
'gambas2-gb-sdl-sound' 'gambas2-gb-settings' 'gambas2-gb-v4l' 'gambas2-gb-vb'
'gambas2-gb-web' 'gambas2-gb-xml' 'gambas2-gb-xml-rpc' 'gambas2-gb-xml-xslt')
pkgver=2.23.1
-pkgrel=2
+pkgrel=3
pkgdesc="A free development environment based on a Basic interpreter."
arch=('i686' 'x86_64')
url="http://gambas.sourceforge.net"
diff --git a/community/gcc-avr/PKGBUILD b/community/gcc-avr/PKGBUILD
index 0a1a7a01d..db977e4d4 100644
--- a/community/gcc-avr/PKGBUILD
+++ b/community/gcc-avr/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 51816 2011-07-15 23:03:40Z bfanella $
+# $Id: PKGBUILD 57845 2011-11-03 12:26:59Z jelle $
# Maintainer: Brad Fanella <bradfanella@archlinux.us>
# Contributor: Corrado Primier <bardo@aur.archlinux.org>
# Contributor: danst0 <danst0@west.de>
pkgname=gcc-avr
-pkgver=4.6.1
+pkgver=4.6.2
pkgrel=1
pkgdesc="The GNU avr Compiler Collection"
arch=('i686' 'x86_64')
@@ -55,3 +55,5 @@ package() {
rm -rf ${pkgdir}/usr/share/info
}
+md5sums=('780f614ab18c7a9066dec6387d7490b2'
+ '87ecd60431e41096419dd8a10f76e46b')
diff --git a/community/geany-plugins/PKGBUILD b/community/geany-plugins/PKGBUILD
index 37d5af3d2..5efc9f951 100644
--- a/community/geany-plugins/PKGBUILD
+++ b/community/geany-plugins/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 57206 2011-10-24 12:59:03Z arodseth $
+# $Id: PKGBUILD 57822 2011-11-03 10:07:17Z arodseth $
# Maintainer: Alexander Rødseth <rodseth@gmail.com>
# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
# Contributor: djgera
# Contributor: Patrick Melo <patrick@patrickmelo.eti.br>
pkgname=geany-plugins
pkgver=0.21
-pkgrel=1
+pkgrel=2
pkgdesc="Combined plugins release for Geany"
arch=('x86_64' 'i686')
url="http://plugins.geany.org/"
@@ -15,25 +15,25 @@ makedepends=('intltool')
optdepends=('hspell: hebrew spell checker')
conflicts=('geany-plugins-svn')
install=geany-plugins.install
-source=("http://plugins.geany.org/geany-plugins/${pkgname}-${pkgver}.tar.bz2")
+source=("http://plugins.geany.org/geany-plugins/$pkgname-$pkgver.tar.bz2")
md5sums=('22e106d7a026e720dd91feb79e44456f')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "$srcdir/$pkgname-$pkgver"
./configure --prefix=/usr --libexecdir=/usr/lib
make
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "$srcdir/$pkgname-$pkgver"
- make DESTDIR=${pkgdir} install
+ make DESTDIR="$pkgdir" install
rmdir \
- "${pkgdir}/usr/share/geany-plugins/devhelp" \
- "${pkgdir}/usr/share/doc/geany-plugins/devhelp" \
- "${pkgdir}/usr/share/geany-plugins/debugger" \
- "${pkgdir}/usr/share/doc/geany-plugins/debugger"
+ "$pkgdir/usr/share/geany-plugins/devhelp" \
+ "$pkgdir/usr/share/doc/geany-plugins/devhelp" \
+ "$pkgdir/usr/share/geany-plugins/debugger" \
+ "$pkgdir/usr/share/doc/geany-plugins/debugger"
}
# vim:set ts=2 sw=2 et:
diff --git a/community/geany-plugins/geany-plugins.install b/community/geany-plugins/geany-plugins.install
index f26807673..c5a602e43 100644
--- a/community/geany-plugins/geany-plugins.install
+++ b/community/geany-plugins/geany-plugins.install
@@ -1,3 +1,5 @@
+pkgname=geany-plugins
+
post_upgrade() {
gtk-update-icon-cache -q -f -t /usr/share/icons/hicolor
}
diff --git a/community/geany/PKGBUILD b/community/geany/PKGBUILD
index 1d2371c4b..017d718b2 100644
--- a/community/geany/PKGBUILD
+++ b/community/geany/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 56636 2011-10-09 11:13:50Z arodseth $
+# $Id: PKGBUILD 57809 2011-11-03 09:42:30Z arodseth $
# Maintainer: Alexander Rødseth <rodseth@gmail.com>
# Contributor: Angel Velasquez <angvp@archlinux.org>
# Contributor: Ionut Biru <ibiru@archlinux.ro>
@@ -6,7 +6,7 @@
# Contributor: Allan McRae <mcrae_allan@hotmail.com>
pkgname=geany
pkgver=0.21
-pkgrel=1
+pkgrel=2
pkgdesc="Fast and lightweight IDE"
arch=('x86_64' 'i686')
url="http://www.geany.org/"
@@ -15,12 +15,12 @@ depends=('gtk2' 'hicolor-icon-theme' 'desktop-file-utils' 'python2')
makedepends=('perlxml' 'intltool')
optdepends=("vte: for terminal support")
install=geany.install
-source=("http://download.geany.org/${pkgname}-${pkgver}.tar.gz")
+source=("http://download.geany.org/$pkgname-$pkgver.tar.gz")
options=('!libtool')
md5sums=('d2734776badc3f5f9a778814ed56fb8a')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "$srcdir/$pkgname-$pkgver"
msg2 "Configuring..."
./configure --prefix=/usr
@@ -35,9 +35,9 @@ build() {
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "$srcdir/$pkgname-$pkgver"
- make DESTDIR=${pkgdir} install
+ make DESTDIR="$pkgdir" install
}
# vim:set ts=2 sw=2 et:
diff --git a/community/gmerlin/PKGBUILD b/community/gmerlin/PKGBUILD
index 392438eb8..3acbafcfa 100644
--- a/community/gmerlin/PKGBUILD
+++ b/community/gmerlin/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 54036 2011-08-12 13:08:25Z lfleischer $
+# $Id: PKGBUILD 57805 2011-11-03 09:25:18Z spupykin $
# Maintainer: Mateusz Herych <heniekk@gmail.com>
pkgname=gmerlin
pkgver=1.0.0
-pkgrel=2
+pkgrel=3
pkgdesc="Multimedia architecture for Linux"
arch=('i686' 'x86_64')
url="http://openmovieeditor.sourceforge.net/HomePage"
@@ -11,10 +11,10 @@ license=('GPL')
depends=('gavl' 'libxml2' 'gtk2' 'libxv' 'mesa' 'libvisual' 'libcdio>=0.82' 'musicbrainz' 'mjpegtools')
makedepends=('alsa-lib' 'jack' 'libquicktime' 'pulseaudio' 'v4l-utils')
optdepends=('alsa-lib: for ALSA support'
- 'jack: for JACK support'
- 'libquicktime: for movie encoding'
- 'pulseaudio: for PulseAudio support'
- 'v4l-utils: for video conversion')
+ 'jack: for JACK support'
+ 'libquicktime: for movie encoding'
+ 'pulseaudio: for PulseAudio support'
+ 'v4l-utils: for video conversion')
source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
options=('!libtool')
md5sums=('60d3c5081c8685ee7bc1afdfac8f6dc6')
diff --git a/community/grafx2/PKGBUILD b/community/grafx2/PKGBUILD
index 0eb3d0696..43da08b43 100644
--- a/community/grafx2/PKGBUILD
+++ b/community/grafx2/PKGBUILD
@@ -1,22 +1,22 @@
-# $Id$
+# $Id: PKGBUILD 57828 2011-11-03 10:14:39Z arodseth $
# Maintainer: Alexander Rødseth <rodseth@gmail.com>
# Contributor: Simon Parzer <simon.parzer@gmail.com>
pkgname=grafx2
pkgver=2.3
-pkgrel=1
-pkgdesc="Pixelart-oriented painting program (for pixling)"
+pkgrel=2
+pkgdesc="Pixelart-oriented painting program"
arch=('x86_64' 'i686')
url="http://code.google.com/p/grafx2/"
license=('GPL2')
install=grafx2.install
depends=('sdl_ttf' 'sdl_image' 'lua' 'desktop-file-utils')
-source=("http://grafx2.googlecode.com/files/${pkgname}-${pkgver}.1781-src.tgz"
- "${pkgname}.desktop")
+source=("http://grafx2.googlecode.com/files/$pkgname-$pkgver.1781-src.tgz"
+ "grafx2.desktop")
md5sums=('916a35c4762e85b4210a1041fbbfd830'
- '73d1cb00b7529de5cbab5c8f00640fbc')
+ '9b3ecb5c2d44b987d65257184f46e6c4')
build() {
- cd "${srcdir}/${pkgname}/src"
+ cd "$srcdir/$pkgname/src"
msg2 "Compiling..."
make
@@ -26,18 +26,18 @@ package() {
cd "${srcdir}/${pkgname}/src"
msg2 "Packaging files..."
- make prefix="/usr" DESTDIR="${pkgdir}" install
+ make prefix="/usr" DESTDIR="$pkgdir" install
msg2 "Packaging shortcut..."
- install -Dm644 "${srcdir}/${pkgname}.desktop" \
- "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+ install -Dm644 "$srcdir/$pkgname.desktop" \
+ "$pkgdir/usr/share/applications/$pkgname.desktop"
msg2 "Packaging documentation..."
- install -Dm644 "${srcdir}/${pkgname}/doc/README.txt" \
- "${pkgdir}/usr/share/doc/${pkgname}/readme.txt"
+ install -Dm644 "$srcdir/$pkgname/doc/README.txt" \
+ "$pkgdir/usr/share/doc/$pkgname/readme.txt"
msg2 "Packaging license..."
- install -Dm644 "${srcdir}/${pkgname}/doc/gpl-2.0.txt" \
- "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -Dm644 "$srcdir/$pkgname/doc/gpl-2.0.txt" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
msg2 "Cleaning up..."
- rmdir ${pkgdir}/usr/share/grafx2/scripts/libs
+ rmdir "$pkgdir/usr/share/grafx2/scripts/libs"
}
# vim:set ts=2 sw=2 et:
diff --git a/community/grafx2/grafx2.desktop b/community/grafx2/grafx2.desktop
index fcd6e71fb..d58bc5ed3 100644
--- a/community/grafx2/grafx2.desktop
+++ b/community/grafx2/grafx2.desktop
@@ -2,10 +2,11 @@
Encoding=UTF-8
GenericName=GrafX2
Name=GrafX2
+Comment=Pixelart-oriented painting program
Exec=grafx2 %U
TryExec=grafx2
Icon=grafx2
Terminal=false
Type=Application
-Categories=Graphics;2DGraphics;RasterGraphics;
-MimeType=image/bmp;image/gif;image/png;image/x-tga;image/tiff;
+Categories=Graphics;2DGraphics;RasterGraphics
+MimeType=image/bmp;image/gif;image/png;image/x-tga;image/tiff
diff --git a/community/grafx2/grafx2.install b/community/grafx2/grafx2.install
index ef816a666..12589796c 100644
--- a/community/grafx2/grafx2.install
+++ b/community/grafx2/grafx2.install
@@ -1,3 +1,5 @@
+pkgname=grafx2
+
post_upgrade() {
gtk-update-icon-cache -q -f -t /usr/share/icons/hicolor
update-desktop-database -q
diff --git a/community/lockdev/PKGBUILD b/community/lockdev/PKGBUILD
index 1074e3f75..6486c74aa 100644
--- a/community/lockdev/PKGBUILD
+++ b/community/lockdev/PKGBUILD
@@ -1,33 +1,32 @@
-# $Id: PKGBUILD 21613 2010-07-16 20:02:19Z tdziedzic $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# $Id: PKGBUILD 57817 2011-11-03 10:01:23Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Andreas Wagner <a.wagner@stud.uni-frankfurt.de>
pkgname=lockdev
pkgver=1.0.3_1.2
-pkgrel=2
-pkgdesc="Run-time shared library for locking devices, using _both_ FSSTND and SVr4 methods"
-url="http://packages.qa.debian.org/l/lockdev.html"
+_pkgver=1.0.3
+pkgrel=3
+pkgdesc='Run-time shared library for locking devices, using _both_ FSSTND and SVr4 methods.'
+url='http://packages.qa.debian.org/l/lockdev.html'
license=("GPL")
arch=('i686' 'x86_64')
-source=("http://ftp.debian.org/debian/pool/main/l/${pkgname}/${pkgname}_1.0.3.orig.tar.gz"
- "http://ftp.debian.org/debian/pool/main/l/${pkgname}/${pkgname}_${pkgver/_/-}.diff.gz")
+source=("http://ftp.debian.org/debian/pool/main/l/${pkgname}/${pkgname}_${_pkgver}.orig.tar.gz"
+ "http://ftp.debian.org/debian/pool/main/l/${pkgname}/${pkgname}_${pkgver/_/-}.diff.gz")
md5sums=('64b9c1b87b125fc348e892e24625524a'
'afe2995ad3fc6551e107364d66a8e938')
build() {
- cd ${pkgname}-1.0.3
-
- patch -p1 < ../${pkgname}_${pkgver/_/-}.diff
+ cd "${pkgname}-${_pkgver}"
+ patch -p1 -i "../${pkgname}_${pkgver/_/-}.diff"
sed -i "s|CFLAGS = -g|CFLAGS = -g -fPIC|" Makefile
make shared
-
make static
}
package() {
- cd ${pkgname}-1.0.3
-
- make basedir=${pkgdir}/usr install
+ cd "${pkgname}-${_pkgver}"
+ make basedir="${pkgdir}/usr" install
}
diff --git a/community/mathomatic/PKGBUILD b/community/mathomatic/PKGBUILD
index 37b36c3b0..7abae6c71 100755
--- a/community/mathomatic/PKGBUILD
+++ b/community/mathomatic/PKGBUILD
@@ -3,7 +3,7 @@
# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
pkgname=mathomatic
-pkgver=15.6.5
+pkgver=15.7.0
pkgrel=1
pkgdesc="General purpose Computer Algebra System written in C"
arch=('i686' 'x86_64')
@@ -13,9 +13,10 @@ depends=('readline')
makedepends=('time')
optdepends=('python2: for running /usr/share/doc/mathomatic/factorial/factorial'
'bash: for running a test script'
+ 'm4: for complex operations using the matho script'
'gnuplot: for plotting')
source=(http://mathomatic.org/$pkgname-$pkgver.tar.bz2)
-md5sums=('1dc244232986f98611c8d2723ae3a497')
+md5sums=('73d40f17bf5bb775d0968ddd9480ca45')
build() {
cd "$srcdir"/$pkgname-$pkgver
@@ -35,8 +36,11 @@ build() {
package() {
cd "$srcdir"/$pkgname-$pkgver
- make prefix="$pkgdir"/usr install
+ make prefix="$pkgdir"/usr m4install
+ sed -i 's+/build/pkg++' "$pkgdir"/usr/bin/matho
+
cd "$srcdir"/$pkgname-$pkgver/primes
make prefix="$pkgdir"/usr install
}
+# vim:set ts=2 sw=2 et:
diff --git a/community/nginx/PKGBUILD b/community/nginx/PKGBUILD
index 411bf9d68..b0081b4ad 100644
--- a/community/nginx/PKGBUILD
+++ b/community/nginx/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 56357 2011-10-06 09:08:20Z spupykin $
+# $Id: PKGBUILD 57848 2011-11-03 13:37:30Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Miroslaw Szot <mss@czlug.icis.pcz.pl>
@@ -11,8 +11,8 @@ _user=http
_group=http
pkgname=nginx
-pkgver=1.0.8
-pkgrel=2
+pkgver=1.0.9
+pkgrel=1
pkgdesc="lightweight HTTP server and IMAP/POP3 proxy server"
arch=('i686' 'x86_64')
depends=('pcre' 'zlib' 'openssl')
@@ -34,7 +34,7 @@ backup=("etc/nginx/conf/fastcgi.conf"
changelog=changelog
source=(http://nginx.org/download/nginx-$pkgver.tar.gz
nginx)
-md5sums=('1049e5fc6e80339f6ba8668fadfb75f9'
+md5sums=('bd2bfba1c5bf751bc3361de5e3ac7c4a'
'0e8032d3ba26c3276e8c7c30588d375f')
build() {
diff --git a/community/openmovieeditor/PKGBUILD b/community/openmovieeditor/PKGBUILD
index f5edd51ad..cef330b33 100644
--- a/community/openmovieeditor/PKGBUILD
+++ b/community/openmovieeditor/PKGBUILD
@@ -1,15 +1,17 @@
-# $Id: PKGBUILD 51110 2011-07-05 10:08:30Z spupykin $
+# $Id: PKGBUILD 57799 2011-11-03 09:07:09Z spupykin $
# Contributor: Robert Emil Berge <filoktetes@linuxophic.org>
# Maintainer: Robert Emil Berge
# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
pkgname=openmovieeditor
pkgver=0.0.20090105
-pkgrel=7
+pkgrel=8
pkgdesc="A simple video editor"
arch=('i686' 'x86_64')
url="http://openmovieeditor.sourceforge.net/HomePage"
license=('GPL')
-depends=('libquicktime' 'libsamplerate' 'fltk' 'jack' 'portaudio' 'gmerlin-avdecoder')
+depends=('libquicktime' 'libsamplerate' 'fltk' 'jack'
+ 'portaudio' 'gmerlin-avdecoder' 'libxtst')
source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
md5sums=('ce4f76c0b3e90aabf9c2d5c8dd31e9b1')
@@ -24,7 +26,7 @@ build() {
# Fix missing includes
sed -e 's|<sstream>|<sstream>\n#include <stdint.h>|' -i src/VideoViewGL.H
- sed -e 's|<string>|<string>\n#include <stdint.h>|' -i src/WaveForm.H
+ sed -e 's|<string>|<string>\n#include <stdint.h>|' -i src/WaveForm.H
sed -e 's|<stdint.h>|<stdint.h>\n#include <stdio.h>|' -i src/AddCommand.H
sed -e 's|<string>|<stdint.h>\n#include <stdio.h>|' -i src/MediaBrowser.H
sed -e 's|<iostream>|<iostream>\n#include <stdio.h>|' -i src/fl_font_browser.h
diff --git a/community/pdfedit/PKGBUILD b/community/pdfedit/PKGBUILD
index 84b9416c7..4da652f91 100644
--- a/community/pdfedit/PKGBUILD
+++ b/community/pdfedit/PKGBUILD
@@ -1,37 +1,40 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
# Contributor: Firmicus <firmicus α gmx δ net>
-# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=pdfedit
pkgver=0.4.5
-pkgrel=1
+pkgrel=2
pkgdesc='Full featured editor for manipulating PDF documents'
arch=('i686' 'x86_64')
url='http://pdfedit.petricek.net/index_e.html'
license=('GPL')
depends=('qt3' 't1lib' 'gsfonts')
makedepends=('boost' 'doxygen')
-source=(http://downloads.sourceforge.net/pdfedit/${pkgname}-${pkgver}.tar.bz2
- 'pdfedit.png' 'pdfedit.desktop')
+source=("http://downloads.sourceforge.net/pdfedit/${pkgname}-${pkgver}.tar.bz2"
+ 'pdfedit.png'
+ 'pdfedit.desktop')
md5sums=('80502ee7f08cdfb867ffdaa92d160a23'
'70fd938b2ef9da748a093df7e20d1d7d'
'c0572c2dd54065322321718aa49ed6b8')
build() {
- . /etc/profile.d/qt3.sh
- export PATH=$QTDIR/bin:$PATH
- export QMAKESPEC=$QTDIR/mkspecs/linux-g++
+ . /etc/profile.d/qt3.sh
+ export PATH="$QTDIR/bin:$PATH"
+ export QMAKESPEC="$QTDIR/mkspecs/linux-g++"
- cd ${srcdir}/${pkgname}-${pkgver}
- sed -i 's:/usr/share/fonts/type1/gsfonts:/usr/share/fonts/Type1:' src/xpdf/xpdf/GlobalParams.cc || return 1
- ./configure --prefix=/usr --with-qmake=/opt/qt/bin/qmake
- make || return 1
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's:/usr/share/fonts/type1/gsfonts:/usr/share/fonts/Type1:' src/xpdf/xpdf/GlobalParams.cc
+ ./configure --prefix=/usr --with-qmake=/opt/qt/bin/qmake
+ make
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd "${srcdir}/${pkgname}-${pkgver}"
- make INSTALL_ROOT=${pkgdir} install
+ make INSTALL_ROOT="${pkgdir}" install
- install -D -m644 ../pdfedit.desktop ${pkgdir}/usr/share/applications/pdfedit.desktop
- install -D -m644 ../pdfedit.png ${pkgdir}/usr/share/pixmaps/pdfedit.png
+ install -Dm0644 ../pdfedit.desktop "${pkgdir}/usr/share/applications/pdfedit.desktop"
+ install -Dm0644 ../pdfedit.png "${pkgdir}/usr/share/pixmaps/pdfedit.png"
}
diff --git a/community/pidgin-otr/PKGBUILD b/community/pidgin-otr/PKGBUILD
index a395b5022..565f57436 100644
--- a/community/pidgin-otr/PKGBUILD
+++ b/community/pidgin-otr/PKGBUILD
@@ -1,23 +1,30 @@
-# $Id: PKGBUILD 17934 2010-05-27 08:06:13Z angvp $
-# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# $Id: PKGBUILD 57815 2011-11-03 09:57:10Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Bug <Bug2000@gmail.com>
# Contributor: Marcel Wysocki <maci@satgnu.net>
pkgname=pidgin-otr
pkgver=3.2.0
-pkgrel=2
-pkgdesc="Off-the-Record Messaging plugin for Pidgin"
+pkgrel=3
+pkgdesc='Off-the-Record Messaging plugin for Pidgin.'
arch=('i686' 'x86_64')
license=('GPL')
-url="http://www.cypherpunks.ca/otr/"
+url='http://www.cypherpunks.ca/otr/'
depends=('libotr>=3.2.0' 'pidgin' 'perlxml')
-source=("http://www.cypherpunks.ca/otr/$pkgname-$pkgver.tar.gz")
-md5sums=('8af70b654b7d7c5a5b7785699ff562f9')
+source=("http://www.cypherpunks.ca/otr/${pkgname}-${pkgver}.tar.gz"{,.asc})
+md5sums=('8af70b654b7d7c5a5b7785699ff562f9'
+ '67d711a7a44cef2791f50b319aaf0e0e')
build() {
- cd $srcdir/$pkgname-$pkgver
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
./configure --prefix=/usr
- make || return 1
- make DESTDIR=$pkgdir install || return 1
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
}
diff --git a/community/prboom/PKGBUILD b/community/prboom/PKGBUILD
index 20417640a..f33cec1fe 100644
--- a/community/prboom/PKGBUILD
+++ b/community/prboom/PKGBUILD
@@ -1,25 +1,33 @@
-# $Id: PKGBUILD 70418 2010-02-26 19:23:47Z thayer $
-# Maintainer: Thayer Williams <thayer@archlinux.org>
+# $Id: PKGBUILD 57863 2011-11-03 19:29:22Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Thayer Williams <thayer@archlinux.org>
# Contributor: dale <dale@archlinux.org>
pkgname=prboom
pkgver=2.5.0
-pkgrel=4
-pkgdesc="A game engine which provides a program to play Doom levels"
-url="http://prboom.sourceforge.net/"
+pkgrel=5
+pkgdesc='A game engine which provides a program to play Doom levels.'
+url='http://prboom.sourceforge.net/'
license=('GPL2')
arch=('i686' 'x86_64')
depends=('libpng' 'mesa' 'sdl_mixer' 'sdl_net')
-source=(http://downloads.sourceforge.net/prboom/$pkgname-$pkgver.tar.gz libpng-1.4.patch)
-md5sums=('a8a15f61fa2626ab98051ab2703378c4' 'ba53474db8e747035ca2320a445e4ae0')
-sha1sums=('f17dc6ed4e72d07b85429177b00b8709ea36f5a0' 'faf858bc03a246b7f8e939679b2f0db3e4d6bc21')
+source=("http://downloads.sourceforge.net/prboom/${pkgname}-${pkgver}.tar.gz"
+ 'libpng-1.4.patch')
+md5sums=('a8a15f61fa2626ab98051ab2703378c4'
+ 'ba53474db8e747035ca2320a445e4ae0')
build() {
- cd $srcdir/$pkgname-$pkgver
- patch -p1 < ../libpng-1.4.patch || return 1
- ./configure --prefix=/usr --disable-i386-asm || return 1
- sed -i "s|/games|/bin|g" $srcdir/$pkgname-$pkgver/src/Makefile || return 1
- make || return 1
- make DESTDIR=$pkgdir install || return 1
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 < ../libpng-1.4.patch
+
+ ./configure --prefix=/usr --disable-i386-asm
+ sed -i "s|/games|/bin|g" "${srcdir}/${pkgname}-${pkgver}/src/Makefile"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
}
diff --git a/community/pylibacl/PKGBUILD b/community/pylibacl/PKGBUILD
index 6e0624f12..f43670048 100644
--- a/community/pylibacl/PKGBUILD
+++ b/community/pylibacl/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 31901 2010-11-07 19:18:54Z lfleischer $
+# $Id: PKGBUILD 57855 2011-11-03 18:43:59Z lfleischer $
# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
pkgname=pylibacl
pkgver=0.5.0
-pkgrel=1
-pkgdesc="A python extension module that allows you to manipulate the POSIX.1e ACLs."
+pkgrel=2
+pkgdesc='A python extension module that allows you to manipulate the POSIX.1e ACLs.'
arch=('i686' 'x86_64')
url='http://pylibacl.sourceforge.net/'
license=('GPL')
diff --git a/community/pypanel/PKGBUILD b/community/pypanel/PKGBUILD
index ffb86eaa4..82d608970 100644
--- a/community/pypanel/PKGBUILD
+++ b/community/pypanel/PKGBUILD
@@ -1,20 +1,21 @@
-# $Id: PKGBUILD 27121 2010-09-17 15:17:17Z schuay $
-# Maintainer: Jeff Mickey <j@codemac.net>
+# $Id: PKGBUILD 57834 2011-11-03 10:22:57Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Jeff Mickey <j@codemac.net>
# Contributor: Mr Green
# Contributor: Jens Persson <xerxes2@gmail.com>
pkgname=pypanel
pkgver=2.4
-pkgrel=6
-pkgdesc="A lightweight panel/taskbar for X11 window managers written in python"
+pkgrel=7
+pkgdesc='A lightweight panel/taskbar for X11 window managers written in python.'
arch=('i686' 'x86_64')
-url="http://pypanel.sourceforge.net/"
+url='http://pypanel.sourceforge.net/'
license=('GPL')
depends=('python2' 'x-server' 'python-xlib' 'imlib2' 'libxft')
-source=(http://downloads.sourceforge.net/sourceforge/pypanel/PyPanel-$pkgver.tar.gz)
+source=("http://downloads.sourceforge.net/sourceforge/pypanel/PyPanel-${pkgver}.tar.gz")
md5sums=('f1f9a2ed80be72ab36e748833618daba')
build() {
- cd "$srcdir/PyPanel-$pkgver"
- python2 setup.py install --root="$pkgdir"
+ cd "${srcdir}/PyPanel-${pkgver}"
+ python2 setup.py install --root="${pkgdir}"
}
diff --git a/community/rdiff-backup/PKGBUILD b/community/rdiff-backup/PKGBUILD
index 5f4c34465..3ffb75bad 100644
--- a/community/rdiff-backup/PKGBUILD
+++ b/community/rdiff-backup/PKGBUILD
@@ -1,23 +1,27 @@
-# $Id: PKGBUILD 26407 2010-09-15 11:58:40Z schuay $
-# Maintainer: Aaron Schaefer <aaron@elasticdog.com>
+# $Id: PKGBUILD 57837 2011-11-03 10:27:32Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
# Contributor: Erwin Van de Velde <erwin.vandevelde@gmail.com>
+
pkgname=rdiff-backup
pkgver=1.2.8
-pkgrel=4
-pkgdesc='A utility for local/remote mirroring and incremental backups'
+pkgrel=5
+pkgdesc='A utility for local/remote mirroring and incremental backups.'
arch=('i686' 'x86_64')
url='http://www.nongnu.org/rdiff-backup/'
license=('GPL')
depends=('python2' 'librsync')
optdepends=('pylibacl: access control list support'
'pyxattr: extended attribute support')
-source=("http://savannah.nongnu.org/download/${pkgname}/${pkgname}-${pkgver}.tar.gz")
-md5sums=('1a94dc537fcf74d6a3a80bd27808e77b')
+source=("http://savannah.nongnu.org/download/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.asc})
+md5sums=('1a94dc537fcf74d6a3a80bd27808e77b'
+ '3b88b18eb43ac85bc70b8dce92e958ba')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
+
python2 setup.py install --root="${pkgdir}" -O1
# Fix for FS#18848
- sed -i 's|python2|python2 -W ignore::DeprecationWarning|' ${pkgdir}/usr/bin/rdiff-backup
+ sed -i 's|python2|python2 -W ignore::DeprecationWarning|' "${pkgdir}/usr/bin/rdiff-backup"
}
diff --git a/community/remind/PKGBUILD b/community/remind/PKGBUILD
index 61fec08ad..27bb61ee9 100644
--- a/community/remind/PKGBUILD
+++ b/community/remind/PKGBUILD
@@ -1,10 +1,11 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
# Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org>
# Contributor: Sebastian Sontberg <ssontberg@h3c.de>
# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=remind
pkgver=3.01.10
-pkgrel=1
+pkgrel=2
pkgdesc='A sophisticated calendar and alarm progam.'
arch=('i686' 'x86_64')
url='http://www.roaringpenguin.com/penguin/open_source_remind.php'
@@ -15,16 +16,13 @@ options=('!emptydirs')
md5sums=('f6f7829d3ac92e0d6d463c59b5e6ce3f')
build() {
- cd ${pkgname}-0${pkgver}
-
- ./configure \
- --prefix=/usr
+ cd "${pkgname}-0${pkgver}"
+ ./configure --prefix=/usr
make
}
package() {
- cd ${pkgname}-0${pkgver}
-
- make DESTDIR=${pkgdir} install
+ cd "${pkgname}-0${pkgver}"
+ make DESTDIR="${pkgdir}" install
}
diff --git a/community/spawn-fcgi/PKGBUILD b/community/spawn-fcgi/PKGBUILD
index 58c097e1f..6b20d17c9 100644
--- a/community/spawn-fcgi/PKGBUILD
+++ b/community/spawn-fcgi/PKGBUILD
@@ -1,29 +1,29 @@
-# $Id: PKGBUILD 27971 2010-09-30 23:34:38Z aschaefer $
-# Maintainer: Aaron Bull Schaefer <aaron@elasticdog.com>
+# $Id: PKGBUILD 57827 2011-11-03 10:14:07Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Aaron Bull Schaefer <aaron@elasticdog.com>
# Contributor: Felix Hanley <felix@seconddrawer.com.au>
pkgname=spawn-fcgi
pkgver=1.6.3
-pkgrel=1
+pkgrel=2
pkgdesc='A FastCGI process manager for web applications'
arch=('i686' 'x86_64')
url='http://redmine.lighttpd.net/projects/spawn-fcgi/'
license=('BSD')
depends=('glibc')
-source=("http://www.lighttpd.net/download/$pkgname-$pkgver.tar.bz2")
+source=("http://www.lighttpd.net/download/${pkgname}-${pkgver}.tar.bz2")
md5sums=('787ed2f88d2204bf1fe4fbd6e509d1d7')
-sha256sums=('e6721dc0fa59bb00e05f160406815d53c95e81ac28f7e52fbd36497584f846cd')
build() {
- cd "$srcdir/$pkgname-$pkgver"
+ cd "${srcdir}/${pkgname}-${pkgver}"
./configure --prefix=/usr
make
}
package() {
- cd "$srcdir/$pkgname-$pkgver"
+ cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="$pkgdir/" install
- install -D -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+ make DESTDIR="${pkgdir}" install
+ install -Dm0644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
}
diff --git a/community/steghide/PKGBUILD b/community/steghide/PKGBUILD
index 04c5a0f54..4eb872e74 100644
--- a/community/steghide/PKGBUILD
+++ b/community/steghide/PKGBUILD
@@ -1,31 +1,43 @@
-# $Id: PKGBUILD 9308 2010-01-25 00:27:50Z foutrelis $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-# Maintainer: Jason Chu <jason@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=steghide
pkgver=0.5.1
-pkgrel=4
-pkgdesc="Steghide is a steganography program which embeds a secret message \
- in a cover file by replacing some of the least significant bits"
+pkgrel=5
+pkgdesc='Embeds a message in a file by replacing some of the least significant bits.'
arch=('i686' 'x86_64')
-url="http://steghide.sourceforge.net"
+url='http://steghide.sourceforge.net'
license=('GPL')
depends=('libmcrypt' 'mhash' 'gcc' 'libjpeg' 'zlib' 'libtool')
-source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz \
- buildsystem.patch gcc-4.2.patch $pkgname-climits.patch)
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'buildsystem.patch'
+ 'gcc-4.2.patch'
+ "${pkgname}-climits.patch")
md5sums=('5be490e24807d921045780fd8cc446b3'
'14f5e054d71c91262bb1140288043df8'
'fd861dc5a0a392c6c94a61e85ad74f29'
'897ce18edd008293a3328bc3f88775b3')
build() {
- cd $startdir/src/$pkgname-$pkgver
- patch -p1 < ../buildsystem.patch || return 1
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 < ../buildsystem.patch
+
# this patch courtesy gentoo bug tracker #178134
- patch -Np1 -i ../gcc-4.2.patch || return 1
- patch -Np1 -i ../steghide-climits.patch || return 1
+ patch -Np1 -i ../gcc-4.2.patch
+ patch -Np1 -i ../steghide-climits.patch
+
+ # touch files needed by GNU Autotools
+ touch NEWS AUTHORS ChangeLog
+
autoreconf -i
./configure --prefix=/usr
- make || return 1
- make DESTDIR=$startdir/pkg install || return 1
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
}
diff --git a/community/synergy/PKGBUILD b/community/synergy/PKGBUILD
index 7c1948dd3..e23adadc2 100644
--- a/community/synergy/PKGBUILD
+++ b/community/synergy/PKGBUILD
@@ -3,7 +3,7 @@
# Contributor: Dale Blount <dale@archlinux.org>
pkgname=synergy
-pkgver=1.3.7
+pkgver=1.3.8
pkgrel=1
pkgdesc="Share a single mouse and keyboard between multiple computers"
url="http://synergy-foss.org"
@@ -36,5 +36,5 @@ package() {
install -Dm644 $srcdir/$pkgname-$pkgver-Source/doc/${pkgname}.conf.example "${pkgdir}/etc"
install -Dm755 $srcdir/${pkgname}s.rc "${pkgdir}/etc/rc.d/${pkgname}s"
}
-md5sums=('27842f45f8ab6923eb702f9cc4858194'
+md5sums=('3534c65ecfa6e47d7899c57975442f03'
'8f8c01add9bf6e3ae9f37a36ca6345b6')
diff --git a/community/tabbed/PKGBUILD b/community/tabbed/PKGBUILD
index 1fd037b3c..aa0c1f369 100644
--- a/community/tabbed/PKGBUILD
+++ b/community/tabbed/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 31139 2010-10-27 11:10:35Z lfleischer $
+# $Id: PKGBUILD 57841 2011-11-03 11:24:18Z lfleischer $
# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
# Contributor: totoloco <totoloco at gmx>
pkgname=tabbed
pkgver=0.3
-pkgrel=1
-pkgdesc="Simple generic tabbed fronted to xembed aware applications."
+pkgrel=2
+pkgdesc='Simple generic tabbed fronted to xembed aware applications.'
arch=('i686' 'x86_64')
url='http://tools.suckless.org/tabbed'
license=('custom:MIT/X')
diff --git a/community/transset-df/PKGBUILD b/community/transset-df/PKGBUILD
index 5a07fa699..f5d373fa3 100644
--- a/community/transset-df/PKGBUILD
+++ b/community/transset-df/PKGBUILD
@@ -1,25 +1,24 @@
-# $Id: PKGBUILD 22565 2010-07-22 20:46:50Z lcarlier $
-# Contributer: Aaron Schaefer <aaron@elasticdog.com>
+# $Id: PKGBUILD 57820 2011-11-03 10:04:35Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
pkgname=transset-df
pkgver=6
-pkgrel=2
-pkgdesc="A patched version of X.Org's transset with added functionality"
+pkgrel=3
+pkgdesc="A patched version of X.Org's transset with added functionality."
arch=('i686' 'x86_64')
-url="http://forchheimer.se/transset-df/"
+url='http://forchheimer.se/transset-df/'
license=('GPL')
depends=('libxcomposite' 'libxdamage' 'libxrender')
-source=(http://forchheimer.se/$pkgname/$pkgname-$pkgver.tar.gz)
+source=("http://forchheimer.se/${pkgname}/${pkgname}-${pkgver}.tar.gz")
md5sums=('3375d570adc9d875d7fc476d1a50d5a5')
build() {
- cd ${srcdir}/$pkgname-$pkgver
-
+ cd "${srcdir}/${pkgname}-${pkgver}"
make
}
package() {
- cd ${srcdir}/$pkgname-$pkgver
-
- install -D -m755 transset-df ${pkgdir}/usr/bin/transset-df
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -Dm0755 transset-df "${pkgdir}/usr/bin/transset-df"
}
diff --git a/community/upx/PKGBUILD b/community/upx/PKGBUILD
index 77b55ba50..68f61ba3b 100644
--- a/community/upx/PKGBUILD
+++ b/community/upx/PKGBUILD
@@ -1,10 +1,11 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: bekks <eduard.warkentin@gmail.com>
-# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=upx
pkgver=3.07
-pkgrel=1
+pkgrel=2
pkgdesc='Ultimate executable compressor.'
arch=('i686' 'x86_64')
url='http://upx.sourceforge.net/'
@@ -17,17 +18,13 @@ md5sums=('8186ab103288242f7e8ecad1acd4af03'
'29d5ffd03a5a3e51aef6a74e9eafb759')
build() {
- cd ${pkgname}-${pkgver}-src
-
- make UPX_LZMA_VERSION=0x465 UPX_LZMADIR=${srcdir} all
+ cd "${pkgname}-${pkgver}-src"
+ make UPX_LZMA_VERSION=0x465 UPX_LZMADIR="${srcdir}" all
}
package() {
- cd ${pkgname}-${pkgver}-src
-
- install -D src/upx.out \
- ${pkgdir}/usr/bin/upx
+ cd "${pkgname}-${pkgver}-src"
- install -D -m644 doc/upx.1 \
- ${pkgdir}/usr/share/man/man1/upx.1
+ install -Dm0755 src/upx.out "${pkgdir}/usr/bin/upx"
+ install -Dm0644 doc/upx.1 "${pkgdir}/usr/share/man/man1/upx.1"
}
diff --git a/core/crda/PKGBUILD b/core/crda/PKGBUILD
index 18a85717c..f5264bb73 100644
--- a/core/crda/PKGBUILD
+++ b/core/crda/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 117670 2011-04-04 15:42:36Z stephane $
+# $Id: PKGBUILD 141968 2011-11-03 18:52:56Z thomas $
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=crda
-pkgver=1.1.1
-pkgrel=3
+pkgver=1.1.2
+pkgrel=1
pkgdesc="Central Regulatory Domain Agent for wireless networks"
arch=(i686 x86_64)
url="http://wireless.kernel.org/en/developers/Regulatory/CRDA"
@@ -13,7 +13,7 @@ makedepends=('python-m2crypto')
install=crda.install
source=(http://wireless.kernel.org/download/crda/${pkgname}-${pkgver}.tar.bz2
crda.rc)
-md5sums=('5fc77af68b3e21736b8ef2f8b061c810'
+md5sums=('5226f65aebacf94baaf820f8b4e06df4'
'014eef3f8655e9a130064ec6891317fc')
build() {
diff --git a/core/tzdata/PKGBUILD b/core/tzdata/PKGBUILD
index 2ed33dc0f..54108609a 100644
--- a/core/tzdata/PKGBUILD
+++ b/core/tzdata/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 141347 2011-10-29 16:13:37Z andyrtr $
+# $Id: PKGBUILD 141939 2011-11-03 11:23:47Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgname=tzdata
-pkgver=2011m
-pkgrel=2
+pkgver=2011n
+pkgrel=1
_tzcode=2011i
-_tzdata=2011m
+_tzdata=2011n
pkgdesc="Sources for time zone and daylight saving time data"
arch=('i686' 'x86_64')
url="http://www.twinsun.com/tz/tz-link.htm"
@@ -19,7 +19,7 @@ source=(ftp://elsie.nci.nih.gov/pub/tzcode${_tzcode}.tar.gz \
#ftp://elsie.nci.nih.gov/pub/${pkgname}${_tzdata}.tar.gz \
Makefile.patch)
md5sums=('cf7f4335b7c8682899fa2814e711c1b2'
- '6dc4455b62c951dcf367a239ca249e69'
+ '20dbfb28efa008ddbf6dd34601ea40fa'
'a64ed97d1fc03c66ee8612c0d9f40507')
build() {
@@ -35,7 +35,7 @@ build() {
check() {
cd ${srcdir}
- make -k check || /bin/true
+ make -k check # || /bin/true
}
package() {
diff --git a/extra/bzr/PKGBUILD b/extra/bzr/PKGBUILD
index db9b86fc5..4f82d185b 100644
--- a/extra/bzr/PKGBUILD
+++ b/extra/bzr/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 138003 2011-09-14 02:50:25Z eric $
+# $Id: PKGBUILD 141925 2011-11-03 07:48:25Z andrea $
# Maintainer :
# Contributor: Hugo Doria <hugo@archlinux.org>
pkgname=bzr
-pkgver=2.4.1
+pkgver=2.4.2
pkgrel=1
pkgdesc="A decentralized revision control system (bazaar)"
arch=('i686' 'x86_64')
@@ -11,8 +11,9 @@ url="http://bazaar.canonical.com/en/"
license=('GPL')
depends=('python2')
optdepends=('python-paramiko: for sftp support')
-source=("http://launchpad.net/${pkgname}/${pkgver%.*}/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz")
-md5sums=('61068bfc1f0c9fb8a4b92bca204e0df8')
+source=("http://launchpad.net/${pkgname}/${pkgver%.*}/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz"{,.sig})
+md5sums=('cfc06fddd348445c65a247c0b33a05db'
+ '90294e34a45df20b16be47a32c800c89')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/extra/foobillard++/PKGBUILD b/extra/foobillard++/PKGBUILD
index a1e52baf9..bfc8d10b0 100644
--- a/extra/foobillard++/PKGBUILD
+++ b/extra/foobillard++/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 138073 2011-09-16 03:35:31Z eric $
+# $Id: PKGBUILD 141931 2011-11-03 08:55:49Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=foobillard++
-pkgver=3.4beta
+pkgver=3.41beta
pkgrel=1
pkgdesc="An OpenGL billiard game"
arch=('i686' 'x86_64')
@@ -11,8 +11,7 @@ license=('GPL2')
depends=('bzip2' 'freetype2' 'libpng' 'mesa' 'sdl_net')
replaces=('foobillard')
source=(http://downloads.sourceforge.net/foobillardplus/foobillardplus-${pkgver}.tar.gz)
-md5sums=('130418a45ba84b4132f9b27712feb919')
-sha1sums=('d8723568e460ee62cb913b0c8d7c9a9f557395ee')
+sha1sums=('41d6db473557386ffeacd98b9a2ee26198e42c6a')
build() {
cd "${srcdir}/foobillardplus-${pkgver}"
diff --git a/extra/grantlee/PKGBUILD b/extra/grantlee/PKGBUILD
index 339906704..5acc48479 100644
--- a/extra/grantlee/PKGBUILD
+++ b/extra/grantlee/PKGBUILD
@@ -1,8 +1,9 @@
-# $Id: PKGBUILD 128623 2011-06-24 16:39:02Z andrea $
-# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# $Id: PKGBUILD 142010 2011-11-03 23:27:16Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
pkgname=grantlee
-pkgver=0.1.9
+pkgver=0.2.0
pkgrel=1
pkgdesc="A string template engine based on the Django template system and written in Qt"
arch=('i686' 'x86_64')
@@ -11,7 +12,7 @@ license=('LGPL3')
depends=('qt')
makedepends=('cmake')
source=("http://downloads.grantlee.org/${pkgname}-${pkgver}.tar.gz")
-md5sums=('3d93b5312814ebee373fba5509d88bdb')
+md5sums=('0622ed30630a44b5fac0bfa7e176d3fe')
build() {
cd "${srcdir}"
diff --git a/extra/monodevelop-debugger-gdb/PKGBUILD b/extra/monodevelop-debugger-gdb/PKGBUILD
index 4905e598c..c52a94f0a 100644
--- a/extra/monodevelop-debugger-gdb/PKGBUILD
+++ b/extra/monodevelop-debugger-gdb/PKGBUILD
@@ -1,16 +1,16 @@
# Maintainer: Daniel Isenmann <daniel@archlinux.org>
pkgname=monodevelop-debugger-gdb
-pkgver=2.8.1
+pkgver=2.8.2
pkgrel=1
pkgdesc="Mono Debugger support"
arch=('i686' 'x86_64')
url="http://monodevelop.com"
license=('GPL')
-depends=('monodevelop>=2.8.1' 'gdb')
+depends=('monodevelop>=2.8.2' 'gdb')
makedepends=('mono')
source=(http://download.mono-project.com/sources/$pkgname/$pkgname-$pkgver.tar.bz2)
-md5sums=('398c3b49fa1698857499a6e8261becf3')
+md5sums=('0c1661c05d8a3fbe56cf1122d9730b26')
build() {
export MONO_SHARED_DIR="${srcdir}/.wabi"
diff --git a/extra/monodevelop/PKGBUILD b/extra/monodevelop/PKGBUILD
index ec8bf415f..742c7fcd5 100644
--- a/extra/monodevelop/PKGBUILD
+++ b/extra/monodevelop/PKGBUILD
@@ -3,7 +3,7 @@
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
pkgname=monodevelop
-pkgver=2.8.1
+pkgver=2.8.2
pkgrel=1
pkgdesc="An IDE primarily designed for C# and other .NET languages"
arch=('i686' 'x86_64')
@@ -13,7 +13,7 @@ depends=('mono>=2.10.5' 'mono-addins>=0.6.2' 'gnome-sharp' 'gecko-sharp-2.0>=0.1
options=(!makeflags)
install=monodevelop.install
source=(http://download.mono-project.com/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('02c3f0f75e1d21d72ac5cd0b373d0e58')
+md5sums=('4a445e251d5e8a12a8aa4ae22f3a6841')
build() {
export MONO_SHARED_DIR=$srcdir/src/.wabi
diff --git a/extra/thunar/PKGBUILD b/extra/thunar/PKGBUILD
index ff393d892..247660553 100644
--- a/extra/thunar/PKGBUILD
+++ b/extra/thunar/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 138370 2011-09-21 09:30:05Z tpowa $
-# Maintainer: andyrtr <andyrtr funnychar archlinux.org>
+# $Id: PKGBUILD 142015 2011-11-04 03:17:01Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Andrew Simmons <andrew.simmons@gmail.com>
pkgname=thunar
pkgver=1.2.3
-pkgrel=1
-pkgdesc="modern file manager for Xfce"
+pkgrel=2
+pkgdesc="Modern file manager for Xfce"
arch=('i686' 'x86_64')
-license=('GPL2' 'LGPL2.1')
url="http://thunar.xfce.org"
+license=('GPL2' 'LGPL2.1')
groups=('xfce4')
-depends=('desktop-file-utils' 'libexif' 'hicolor-icon-theme' 'libnotify>=0.7.1' 'udev'
- 'gtk2' 'exo>=0.6.0' 'libxfce4util>=4.8.1' 'libxfce4ui' 'libpng')
-makedepends=('intltool' 'gtk-doc' 'xfce4-panel>=4.8.0')
+depends=('desktop-file-utils' 'libexif' 'hicolor-icon-theme' 'libnotify' 'udev'
+ 'gtk2' 'exo' 'libxfce4util' 'libxfce4ui' 'libpng')
+makedepends=('intltool' 'gtk-doc' 'xfce4-panel')
optdepends=('gvfs: for trash support, mounting with udisk and remote filesystems'
'xfce4-panel: for trash applet'
'tumbler: for thumbnail previews'
@@ -20,40 +20,36 @@ optdepends=('gvfs: for trash support, mounting with udisk and remote filesystems
'thunar-archive-plugin: create and deflate archives'
'thunar-media-tags-plugin: view/edit id3/ogg tags')
options=('!libtool')
-install=${pkgname}.install
-backup=('etc/polkit-1/localauthority/50-local.d/org.freedesktop.udisks.pkla')
-source=(http://archive.xfce.org/src/xfce/${pkgname}/1.2/Thunar-${pkgver}.tar.bz2
- org.freedesktop.udisks.pkla)
+install=$pkgname.install
+source=(http://archive.xfce.org/src/xfce/${pkgname}/1.2/Thunar-${pkgver}.tar.bz2)
+sha256sums=('e66aa9ad61a9202e15cc7c5fffc7b961da9ab3b4428f874c1ec8e46eb4ffaca6')
build() {
- cd ${srcdir}/Thunar-${pkgver}
+ cd "$srcdir/Thunar-$pkgver"
+
./configure --prefix=/usr \
- --sysconfdir=/etc \
- --libexecdir=/usr/lib \
- --localstatedir=/var \
- --disable-static \
- --enable-gio-unix \
- --enable-dbus \
- --enable-startup-notification \
- --enable-gudev \
- --enable-notifications \
- --enable-exif \
- --enable-pcre \
- --enable-gtk-doc \
- --disable-debug
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-gio-unix \
+ --enable-dbus \
+ --enable-startup-notification \
+ --enable-gudev \
+ --enable-notifications \
+ --enable-exif \
+ --enable-pcre \
+ --enable-gtk-doc \
+ --disable-debug
make
}
package() {
- cd ${srcdir}/Thunar-${pkgver}
+ cd "$srcdir/Thunar-$pkgver"
+
make DESTDIR=${pkgdir} install
sed -i 's:x-directory/gnome-default-handler;::' \
- ${pkgdir}/usr/share/applications/Thunar-folder-handler.desktop
-
- # install udisks permission file
- install -dm700 ${pkgdir}/etc/polkit-1/localauthority
- install -dm755 ${pkgdir}/etc/polkit-1/localauthority/50-local.d
- install -m644 ${srcdir}/org.freedesktop.udisks.pkla ${pkgdir}/etc/polkit-1/localauthority/50-local.d/
+ "$pkgdir/usr/share/applications/Thunar-folder-handler.desktop"
}
-md5sums=('0a2c36cdd3cb3a2ab52cbf6055415b85'
- 'a7ddb5eec02d9a8e91a2997862e73cd8')
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/thunar/thunar.install b/extra/thunar/thunar.install
index 28fdb48fb..87c29e4db 100644
--- a/extra/thunar/thunar.install
+++ b/extra/thunar/thunar.install
@@ -4,11 +4,11 @@ post_install() {
}
post_upgrade() {
- post_install $1
+ post_install
}
post_remove() {
- update-desktop-database -q
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ post_install
}
+# vim:set ts=2 sw=2 et:
diff --git a/extra/xfce4-clipman-plugin/PKGBUILD b/extra/xfce4-clipman-plugin/PKGBUILD
index f8d13ea2c..25403c890 100644
--- a/extra/xfce4-clipman-plugin/PKGBUILD
+++ b/extra/xfce4-clipman-plugin/PKGBUILD
@@ -1,13 +1,13 @@
-# $Id: PKGBUILD 141285 2011-10-28 04:36:42Z eric $
+# $Id: PKGBUILD 141959 2011-11-03 17:33:58Z eric $
# Maintainer: tobias <tobias at archlinux.org>
# Contributor: Aurelien Foret <orelien@chez.com>
pkgname=xfce4-clipman-plugin
-pkgver=1.2.0
+pkgver=1.2.2
pkgrel=1
pkgdesc="A clipboard plugin for the Xfce4 panel"
arch=('i686' 'x86_64')
-license=('custom')
+license=('GPL')
url="http://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin"
groups=('xfce4-goodies')
depends=('xfce4-panel' 'libunique' 'libxtst')
@@ -15,7 +15,7 @@ makedepends=('intltool')
options=('!libtool')
install=${pkgname}.install
source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('9df2441d188e90d5304e5da84dca9969')
+md5sums=('60df7769a8271d7fcab177210f4291e8')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
@@ -33,6 +33,4 @@ build() {
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install
- install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
-
}
diff --git a/extra/xfce4-dev-tools/PKGBUILD b/extra/xfce4-dev-tools/PKGBUILD
new file mode 100644
index 000000000..0b56b17ac
--- /dev/null
+++ b/extra/xfce4-dev-tools/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 142012 2011-11-04 02:41:52Z eric $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias funnychar archlinux.org>
+
+pkgname=xfce4-dev-tools
+pkgver=4.9.0
+pkgrel=1
+pkgdesc="Xfce developer tools"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/"
+depends=('gtk-doc' 'automake' 'automake' 'make' 'intltool' 'pkg-config')
+options=('!libtool')
+source=(http://archive.xfce.org/src/xfce/xfce4-dev-tools/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('325047a072f5599ec7fda9f970c47091')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/libre/virtualbox-parabola-modules/60-vboxguest.rules b/libre/virtualbox-parabola-modules/60-vboxguest.rules
index d64575709..6285f7249 100644
--- a/libre/virtualbox-parabola-modules/60-vboxguest.rules
+++ b/libre/virtualbox-parabola-modules/60-vboxguest.rules
@@ -1,3 +1,2 @@
ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600"
ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666"
-
diff --git a/libre/virtualbox-parabola-modules/LocalConfig.kmk b/libre/virtualbox-parabola-modules/LocalConfig.kmk
index 1fb0b88bd..af79f90cd 100644
--- a/libre/virtualbox-parabola-modules/LocalConfig.kmk
+++ b/libre/virtualbox-parabola-modules/LocalConfig.kmk
@@ -17,4 +17,3 @@ VBOX_BLD_PYTHON = python2
VBOX_JAVA_HOME = /usr/lib/jvm/java-6-openjdk
VBOX_GCC_WERR =
VBOX_GCC_WARN =
-
diff --git a/libre/virtualbox-parabola-modules/PKGBUILD b/libre/virtualbox-parabola-modules/PKGBUILD
index 7012d5943..d077c092a 100644
--- a/libre/virtualbox-parabola-modules/PKGBUILD
+++ b/libre/virtualbox-parabola-modules/PKGBUILD
@@ -4,11 +4,11 @@
pkgbase=virtualbox-modules
pkgname=('virtualbox-modules' 'virtualbox-parabola-modules')
pkgver=4.1.4
-pkgrel=3
+pkgrel=3.1
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL')
-makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'libidl2' 'xalan-c' 'sdl' 'linux-headers')
+makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'libidl2' 'xalan-c' 'sdl' 'linux-headers' 'linux-libre')
[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
LocalConfig.kmk 60-vboxguest.rules)
@@ -17,12 +17,13 @@ md5sums=('dc6e6801b3823332b6ca2e9915221aae'
'ed1341881437455d9735875ddf455fbe')
_extramodules=extramodules-3.1-LIBRE
-_kernver="$(cat /lib/modules/${_extramodules}/version)"
-
-export KERN_DIR=/lib/modules/${_kernver}/build
-export KERN_INCL=/usr/src/linux-${_kernver}/include/
build() {
+ _kernver="$(cat /lib/modules/${_extramodules}/version)"
+
+ export KERN_DIR=/lib/modules/${_kernver}/build
+ export KERN_INCL=/usr/src/linux-${_kernver}/include/
+
cd "$srcdir/VirtualBox-${pkgver}_OSE"
cp "$srcdir/LocalConfig.kmk" .
@@ -100,7 +101,3 @@ package_virtualbox-modules(){
sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "$startdir/virtualbox-modules.install"
}
-
-md5sums=('dc6e6801b3823332b6ca2e9915221aae'
- 'b566518ba3ba3a513b91a75283cdedf8'
- '13ff08388a54fd48cc04523380f26af6')
diff --git a/libre/virtualbox-parabola-modules/virtualbox-modules.install b/libre/virtualbox-parabola-modules/virtualbox-modules.install
index 0706681bf..b57135999 100644
--- a/libre/virtualbox-parabola-modules/virtualbox-modules.install
+++ b/libre/virtualbox-parabola-modules/virtualbox-modules.install
@@ -16,4 +16,4 @@ post_upgrade() {
post_remove() {
EXTRAMODULES='extramodules-3.1-LIBRE'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
-
+}
diff --git a/libre/virtualbox-parabola-modules/virtualbox-parabola-modules.install b/libre/virtualbox-parabola-modules/virtualbox-parabola-modules.install
index decf303e9..8801d8c49 100644
--- a/libre/virtualbox-parabola-modules/virtualbox-parabola-modules.install
+++ b/libre/virtualbox-parabola-modules/virtualbox-parabola-modules.install
@@ -15,4 +15,3 @@ post_remove() {
EXTRAMODULES='extramodules-3.1-LIBRE'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
-
diff --git a/testing/bash/PKGBUILD b/testing/bash/PKGBUILD
new file mode 100644
index 000000000..3e3ba3663
--- /dev/null
+++ b/testing/bash/PKGBUILD
@@ -0,0 +1,101 @@
+# $Id: PKGBUILD 141911 2011-11-03 05:56:41Z allan $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=bash
+_basever=4.2
+_patchlevel=010 #prepare for some patches
+pkgver=$_basever.$_patchlevel
+pkgrel=2
+pkgdesc="The GNU Bourne Again shell"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnu.org/software/bash/bash.html"
+groups=('base')
+backup=(etc/bash.bash{rc,_logout} etc/skel/.bash{rc,_profile,_logout})
+depends=('readline>=6.1' 'glibc')
+provides=('sh')
+install=bash.install
+source=(http://ftp.gnu.org/gnu/bash/bash-$_basever.tar.gz{,.sig}
+ dot.bashrc
+ dot.bash_profile
+ dot.bash_logout
+ system.bashrc
+ system.bash_logout)
+if [ $_patchlevel -gt 000 ]; then
+ for (( p=1; p<=$((10#${_patchlevel})); p++ )); do
+ source=(${source[@]} http://ftp.gnu.org/gnu/bash/bash-$_basever-patches/bash${_basever//./}-$(printf "%03d" $p){,.sig})
+ done
+fi
+
+build() {
+ cd ${srcdir}/${pkgname}-$_basever
+ for (( p=1; p<=$((10#${_patchlevel})); p++ )); do
+ msg "applying patch bash${_basever//./}-$(printf "%03d" $p)"
+ patch -Np0 -i $srcdir/bash${_basever//./}-$(printf "%03d" $p)
+ done
+
+ _bashconfig=(-DDEFAULT_PATH_VALUE=\'\"/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin\"\'
+ -DSTANDARD_UTILS_PATH=\'\"/usr/bin:/bin:/usr/sbin:/sbin\"\'
+ -DSYS_BASHRC=\'\"/etc/bash.bashrc\"\'
+ -DSYS_BASH_LOGOUT=\'\"/etc/bash.bash_logout\"\')
+ export CFLAGS="${CFLAGS} ${_bashconfig[@]}"
+
+ ./configure --prefix=/usr --with-curses --enable-readline \
+ --without-bash-malloc --with-installed-readline \
+ --bindir=/bin --mandir=/usr/share/man --infodir=/usr/share/info
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-$_basever
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-$_basever
+ make DESTDIR=${pkgdir} install
+
+ # for now, bash is our default /bin/sh
+ cd ${pkgdir}/bin
+ ln -s bash sh
+
+ install -dm755 ${pkgdir}/etc/skel/
+
+ # system-wide configuration files
+ install -m644 ${srcdir}/system.bashrc ${pkgdir}/etc/bash.bashrc
+ install -m644 ${srcdir}/system.bash_logout ${pkgdir}/etc/bash.bash_logout
+
+ # user configuration file skeletons
+ install -m644 ${srcdir}/dot.bashrc ${pkgdir}/etc/skel/.bashrc
+ install -m644 ${srcdir}/dot.bash_profile ${pkgdir}/etc/skel/.bash_profile
+ install -m644 ${srcdir}/dot.bash_logout ${pkgdir}/etc/skel/.bash_logout
+}
+
+md5sums=('3fb927c7c33022f1c327f14a81c0d4b0'
+ '8d37a3f97a48c1e56e1a4ded877ed944'
+ '027d6bd8f5f6a06b75bb7698cb478089'
+ '2902e0fee7a9168f3a4fd2ccd60ff047'
+ '42f4400ed2314bd7519c020d0187edc5'
+ 'fe5d3a367f7d5f754214dc05e3d958ab'
+ '472f536d7c9e8250dc4568ec4cfaf294'
+ '1100bc1dda2cdc06ac44d7e5d17864a3'
+ 'a7184b76eb4a079f10174a0a8f574819'
+ '30e7948079921d3261efcc6a40722135'
+ 'c4d45307f7e69fe508ce347c4cec1955'
+ '9ea06decec43a198f3d7cf29acc602f8'
+ '74bddae6eeb9227a04a467d42597a34d'
+ 'fb48f6134d7b013135929476aa0c250c'
+ '3e6a18226b16c773229246abd07a1f5e'
+ 'e70e45de33426b38153b390be0dbbcd4'
+ 'e667dc9348ebc3e0e14bfdd87f4b6ff2'
+ 'ce4e5c484993705b27daa151eca242c2'
+ '41cbd8e57589bc081a546a014ddb12f8'
+ '88d1f96db29461767602e2546803bda7'
+ 'b8b781520f4c7493a2a1ac3010a44a44'
+ '24c574bf6d6a581e300823d9c1276af6'
+ '354a0899a7c4b446454c52546562b55b'
+ '4c5835f2fbab36c4292bb334977e5b6d'
+ 'ff4547ca7b508d52101729d61f5b77b6'
+ '0a51602b535ef661ee707be6c8bdb373'
+ 'cec7c92a4d8052ea4b29216365d16566')
diff --git a/testing/bash/bash.install b/testing/bash/bash.install
new file mode 100644
index 000000000..bc75e9b6a
--- /dev/null
+++ b/testing/bash/bash.install
@@ -0,0 +1,20 @@
+info_dir=usr/share/info
+info_files=(bash.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/testing/bash/dot.bash_logout b/testing/bash/dot.bash_logout
new file mode 100644
index 000000000..0e4e4f184
--- /dev/null
+++ b/testing/bash/dot.bash_logout
@@ -0,0 +1,3 @@
+#
+# ~/.bash_logout
+#
diff --git a/testing/bash/dot.bash_profile b/testing/bash/dot.bash_profile
new file mode 100644
index 000000000..5545f007e
--- /dev/null
+++ b/testing/bash/dot.bash_profile
@@ -0,0 +1,5 @@
+#
+# ~/.bash_profile
+#
+
+[[ -f ~/.bashrc ]] && . ~/.bashrc
diff --git a/testing/bash/dot.bashrc b/testing/bash/dot.bashrc
new file mode 100644
index 000000000..a355b0cd3
--- /dev/null
+++ b/testing/bash/dot.bashrc
@@ -0,0 +1,9 @@
+#
+# ~/.bashrc
+#
+
+# If not running interactively, don't do anything
+[[ $- != *i* ]] && return
+
+alias ls='ls --color=auto'
+PS1='[\u@\h \W]\$ '
diff --git a/testing/bash/system.bash_logout b/testing/bash/system.bash_logout
new file mode 100644
index 000000000..a76e48e4a
--- /dev/null
+++ b/testing/bash/system.bash_logout
@@ -0,0 +1,3 @@
+#
+# /etc/bash.bash_logout
+#
diff --git a/testing/bash/system.bashrc b/testing/bash/system.bashrc
new file mode 100644
index 000000000..84de2898c
--- /dev/null
+++ b/testing/bash/system.bashrc
@@ -0,0 +1,23 @@
+#
+# /etc/bash.bashrc
+#
+
+# If not running interactively, don't do anything
+[[ $- != *i* ]] && return
+
+PS1='[\u@\h \W]\$ '
+PS2='> '
+PS3='> '
+PS4='+ '
+
+case ${TERM} in
+ xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
+ PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
+
+ ;;
+ screen)
+ PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
+ ;;
+esac
+
+[ -r /etc/bash_completion ] && . /etc/bash_completion
diff --git a/testing/bison/ChangeLog b/testing/bison/ChangeLog
new file mode 100644
index 000000000..5bb22be1d
--- /dev/null
+++ b/testing/bison/ChangeLog
@@ -0,0 +1,19 @@
+2010-03-25 Eric Belanger <eric@archlinux.org>
+
+ * bison 2.4.2-1
+ * Upstream update
+ * Removed texinfo dependency in install scriptlet
+ * Updated license
+ * Added sh depends
+
+2008-12-11 Eric Belanger <eric@archlinux.org>
+
+ * bison 2.4.1-1
+ * Upstream update
+
+2008-11-08 Eric Belanger <eric@archlinux.org>
+
+ * bison 2.4-1
+ * Upstream update
+ * Added info file support
+ * Added ChangeLog
diff --git a/testing/bison/PKGBUILD b/testing/bison/PKGBUILD
new file mode 100644
index 000000000..51af7528f
--- /dev/null
+++ b/testing/bison/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 141913 2011-11-03 06:08:40Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+
+pkgname=bison
+pkgver=2.5
+pkgrel=2
+pkgdesc="The GNU general-purpose parser generator"
+arch=('i686' 'x86_64')
+license=('GPL3')
+url="http://www.gnu.org/software/bison/bison.html"
+depends=('glibc' 'm4' 'sh')
+groups=('base-devel')
+install=bison.install
+source=(ftp://ftp.gnu.org/gnu/bison/${pkgname}-${pkgver}.tar.bz2{,.sig})
+md5sums=('9dba20116b13fc61a0846b0058fbe004'
+ '610b73db67bd4760209458efe7554ca3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --datadir=/usr/share
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/bison/bison.install b/testing/bison/bison.install
new file mode 100644
index 000000000..0081a194f
--- /dev/null
+++ b/testing/bison/bison.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+file=bison.info.gz
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+}
diff --git a/testing/bzip2/PKGBUILD b/testing/bzip2/PKGBUILD
new file mode 100644
index 000000000..7a1b27f94
--- /dev/null
+++ b/testing/bzip2/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 141996 2011-11-03 21:01:23Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Judd <jvinet@zeroflux.org>
+
+pkgname=bzip2
+pkgver=1.0.6
+pkgrel=3
+pkgdesc="A high-quality data compression program"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://sources.redhat.com/bzip2"
+groups=('base')
+depends=('glibc')
+source=(http://www.bzip.org/$pkgver/bzip2-$pkgver.tar.gz
+ bzip2-1.0.4-bzip2recover.patch)
+sha1sums=('3f89f861209ce81a6bab1fd1998c0ef311712002'
+ '85ce76fdb67f52f152bba368c1de81132dcdbdb5')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # add large-file support
+ sed -e 's/^CFLAGS=\(.*\)$/CFLAGS=\1 \$(BIGFILES)/' -i ./Makefile-libbz2_so
+
+ # use our optimization
+ sed -i "s|-O2|${CFLAGS}|g" Makefile
+ sed -i "s|-O2|${CFLAGS}|g" Makefile-libbz2_so
+
+ patch -Np1 < ../bzip2-1.0.4-bzip2recover.patch
+
+ make -f Makefile-libbz2_so
+ make bzip2 bzip2recover libbz2.a
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make test
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ install -dm755 $pkgdir/bin
+ install -m755 bzip2-shared $pkgdir/bin/bzip2
+ install -m755 bzip2recover $pkgdir/bin
+ ln -sf bzip2 $pkgdir/bin/bunzip2
+ ln -sf bzip2 $pkgdir/bin/bzcat
+
+ install -dm755 $pkgdir/usr/bin
+ install -m755 bzdiff bzgrep bzmore $pkgdir/usr/bin
+
+ install -Dm755 libbz2.so.1.0.6 $pkgdir/lib/libbz2.so.1.0.6
+ ln -s libbz2.so.1.0.6 $pkgdir/lib/libbz2.so
+ ln -s libbz2.so.1.0.6 $pkgdir/lib/libbz2.so.1
+ ln -s libbz2.so.1.0.6 $pkgdir/lib/libbz2.so.1.0
+
+ install -Dm644 libbz2.a ${pkgdir}/usr/lib/libbz2.a
+ ln -sf ../../lib/libbz2.so ${pkgdir}/usr/lib/libbz2.so
+
+ install -Dm644 bzlib.h $pkgdir/usr/include/bzlib.h
+
+ install -Dm644 bzip2.1 $pkgdir/usr/share/man/man1/bzip2.1
+ ln -sf bzip2.1 $pkgdir/usr/share/man/man1/bunzip2.1
+ ln -sf bzip2.1 $pkgdir/usr/share/man/man1/bzcat.1
+ ln -sf bzip2.1 $pkgdir/usr/share/man/man1/bzip2recover.1
+
+ install -Dm644 $srcdir/${pkgname}-${pkgver}/LICENSE \
+ $pkgdir/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/testing/bzip2/bzip2-1.0.4-bzip2recover.patch b/testing/bzip2/bzip2-1.0.4-bzip2recover.patch
new file mode 100644
index 000000000..e2bfe1cc1
--- /dev/null
+++ b/testing/bzip2/bzip2-1.0.4-bzip2recover.patch
@@ -0,0 +1,12 @@
+--- bzip2-1.0.4/bzip2recover.c.pom 2007-01-03 03:00:55.000000000 +0100
++++ bzip2-1.0.4/bzip2recover.c 2007-02-05 11:55:17.000000000 +0100
+@@ -309,7 +309,8 @@
+ UInt32 buffHi, buffLo, blockCRC;
+ Char* p;
+
+- strcpy ( progName, argv[0] );
++ strncpy ( progName, argv[0], BZ_MAX_FILENAME-1);
++ progName[BZ_MAX_FILENAME-1]='\0';
+ inFileName[0] = outFileName[0] = 0;
+
+ fprintf ( stderr,
diff --git a/testing/cryptsetup/PKGBUILD b/testing/cryptsetup/PKGBUILD
index 6210e7418..e3c2872f5 100644
--- a/testing/cryptsetup/PKGBUILD
+++ b/testing/cryptsetup/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 141489 2011-10-30 23:10:21Z thomas $
+# $Id: PKGBUILD 141965 2011-11-03 18:49:44Z thomas $
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=cryptsetup
pkgver=1.4.0
-pkgrel=1
+pkgrel=2
pkgdesc="Userspace setup tool for transparent encryption of block devices using dm-crypt"
arch=(i686 x86_64)
license=('GPL')
@@ -13,23 +13,26 @@ conflicts=('mkinitcpio<0.7')
options=('!libtool' '!emptydirs')
source=(http://cryptsetup.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2
encrypt_hook
- encrypt_install)
+ encrypt_install
+ cryptsetup-fix-crypt_get_volume_key_size-for-plain-device.patch)
sha256sums=('96d682853c8019cfeae0b21250cd2d00af42e46251807e8dbda2ff8427c2e9ed'
'811bbea1337106ad811731c746d73ee81039bad00aef52398e3a377ad0766757'
- 'd4380195351b70abf8fcb3cd19461879c55a7a07e4915d1f0365b295b112a573')
+ 'd4380195351b70abf8fcb3cd19461879c55a7a07e4915d1f0365b295b112a573'
+ '6fa1d3172014ba3ba96f7a67acbcae7f26b24a61abb84b3917f526a54f81dd87')
build() {
- cd $srcdir/$pkgname-${pkgver}
+ cd "${srcdir}"/$pkgname-${pkgver}
+ patch -p0 -i "${srcdir}"/cryptsetup-fix-crypt_get_volume_key_size-for-plain-device.patch
./configure --prefix=/usr --disable-static --sbindir=/sbin --libdir=/lib
make
}
package() {
- cd $srcdir/$pkgname-${pkgver}
- make DESTDIR=$pkgdir install
+ cd "${srcdir}"/$pkgname-${pkgver}
+ make DESTDIR="${pkgdir}" install
# install hook
- install -D -m644 $srcdir/encrypt_hook $pkgdir/lib/initcpio/hooks/encrypt
- install -D -m644 $srcdir/encrypt_install $pkgdir/lib/initcpio/install/encrypt
+ install -D -m644 "${srcdir}"/encrypt_hook "${pkgdir}"/lib/initcpio/hooks/encrypt
+ install -D -m644 "${srcdir}"/encrypt_install "${pkgdir}"/lib/initcpio/install/encrypt
# Fix pkgconfig location
- install -d -m755 $pkgdir/usr/lib
- mv $pkgdir/lib/pkgconfig $pkgdir/usr/lib/
+ install -d -m755 "${pkgdir}"/usr/lib
+ mv "${pkgdir}"/lib/pkgconfig "${pkgdir}"/usr/lib/
}
diff --git a/testing/cryptsetup/cryptsetup-fix-crypt_get_volume_key_size-for-plain-device.patch b/testing/cryptsetup/cryptsetup-fix-crypt_get_volume_key_size-for-plain-device.patch
new file mode 100644
index 000000000..f35226122
--- /dev/null
+++ b/testing/cryptsetup/cryptsetup-fix-crypt_get_volume_key_size-for-plain-device.patch
@@ -0,0 +1,94 @@
+Index: ChangeLog
+===================================================================
+--- ChangeLog (Revision 664)
++++ ChangeLog (Revision 665)
+@@ -1,3 +1,6 @@
++2011-10-27 Milan Broz <mbroz@redhat.com>
++ * Fix crypt_get_volume_key_size() for plain device.
++
+ 2011-10-25 Milan Broz <mbroz@redhat.com>
+ * Print informative message in isLuks only in verbose mode.
+ * Version 1.4.0.
+Index: tests/api-test.c
+===================================================================
+--- tests/api-test.c (Revision 664)
++++ tests/api-test.c (Revision 665)
+@@ -660,6 +660,11 @@
+
+ FAIL_(crypt_init_by_name_and_header(&cd, CDEVICE_1, H_DEVICE),"can't init plain device by header device");
+ OK_(crypt_init_by_name(&cd, CDEVICE_1));
++ OK_(strcmp(cipher_mode,crypt_get_cipher_mode(cd)));
++ OK_(strcmp(cipher,crypt_get_cipher(cd)));
++ EQ_((int)key_size, crypt_get_volume_key_size(cd));
++ EQ_(params.skip, crypt_get_iv_offset(cd));
++ EQ_(params.offset, crypt_get_data_offset(cd));
+ OK_(crypt_deactivate(cd, CDEVICE_1));
+ crypt_free(cd);
+
+Index: lib/setup.c
+===================================================================
+--- lib/setup.c (Revision 664)
++++ lib/setup.c (Revision 665)
+@@ -56,6 +56,7 @@
+ char *plain_cipher;
+ char *plain_cipher_mode;
+ char *plain_uuid;
++ unsigned int plain_key_size;
+
+ /* used in CRYPT_LOOPAES */
+ struct crypt_params_loopaes loopaes_hdr;
+@@ -677,6 +678,7 @@
+ (*cd)->plain_hdr.hash = NULL; /* no way to get this */
+ (*cd)->plain_hdr.offset = dmd.offset;
+ (*cd)->plain_hdr.skip = dmd.iv_offset;
++ (*cd)->plain_key_size = dmd.vk->keylength;
+
+ r = crypt_parse_name_and_mode(dmd.cipher, cipher, NULL, cipher_mode);
+ if (!r) {
+@@ -754,6 +756,7 @@
+ return -EINVAL;
+ }
+
++ cd->plain_key_size = volume_key_size;
+ cd->volume_key = crypt_alloc_volume_key(volume_key_size, NULL);
+ if (!cd->volume_key)
+ return -ENOMEM;
+@@ -1516,7 +1519,7 @@
+ }
+
+ r = process_key(cd, cd->plain_hdr.hash,
+- cd->volume_key->keylength,
++ cd->plain_key_size,
+ passphrase, passphrase_size, &vk);
+ if (r < 0)
+ goto out;
+@@ -1586,7 +1589,7 @@
+ goto out;
+
+ r = process_key(cd, cd->plain_hdr.hash,
+- cd->volume_key->keylength,
++ cd->plain_key_size,
+ passphrase_read, passphrase_size_read, &vk);
+ if (r < 0)
+ goto out;
+@@ -1658,8 +1661,7 @@
+ if (!name)
+ return -EINVAL;
+
+- if (!volume_key || !volume_key_size || !cd->volume_key ||
+- volume_key_size != cd->volume_key->keylength) {
++ if (!volume_key || !volume_key_size || volume_key_size != cd->plain_key_size) {
+ log_err(cd, _("Incorrect volume key specified for plain device.\n"));
+ return -EINVAL;
+ }
+@@ -1976,8 +1978,8 @@
+
+ int crypt_get_volume_key_size(struct crypt_device *cd)
+ {
+- if (isPLAIN(cd->type) && cd->volume_key)
+- return cd->volume_key->keylength;
++ if (isPLAIN(cd->type))
++ return cd->plain_key_size;
+
+ if (isLUKS(cd->type))
+ return cd->hdr.keyBytes;
diff --git a/testing/dhcpcd/PKGBUILD b/testing/dhcpcd/PKGBUILD
new file mode 100644
index 000000000..a6acd400f
--- /dev/null
+++ b/testing/dhcpcd/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 142006 2011-11-03 21:26:34Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Tom Killian <tom.archlinux.org>
+# Contributor: Judd Vinet <jvinet.zeroflux.org>
+
+pkgname=dhcpcd
+pkgver=5.2.12
+pkgrel=2
+pkgdesc="RFC2131 compliant DHCP client daemon"
+url="http://roy.marples.name/dhcpcd/"
+arch=('i686' 'x86_64')
+license=('BSD')
+groups=('base')
+depends=('glibc' 'sh' 'inetutils' 'net-tools')
+backup=('etc/conf.d/dhcpcd' 'etc/dhcpcd.conf')
+options=('emptydirs') # We Need the Empty /var/lib/dhcpcd Directory
+source=("http://roy.marples.name/downloads/$pkgname/$pkgname-$pkgver.tar.bz2" \
+ 'dhcpcd.conf.d')
+sha1sums=('27378a251705c7888332e6d60eea7805d1f8aeb5'
+ 'b67b9ce6a2faaca75fea356966a16be2283b7db0')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # configure variables
+ ./configure --libexecdir=/usr/lib/dhcpcd --dbdir=/var/lib/dhcpcd
+
+ # Build
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # Create Binary Symlink
+ install -d ${pkgdir}/usr/sbin
+ ln -sf /sbin/dhcpcd ${pkgdir}/usr/sbin/dhcpcd
+
+ # Install Configuration File used in /etc/rc.d/network
+ install -D -m644 ../dhcpcd.conf.d $pkgdir/etc/conf.d/$pkgname
+
+ # Install License
+ install -d $pkgdir/usr/share/licenses/$pkgname
+ awk '{if(FNR<27)print $0}' ${srcdir}/${pkgname}-${pkgver}/configure.h \
+ >> ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ # Set Options in /etc/dhcpcd.conf
+ echo noipv4ll >> ${pkgdir}/etc/dhcpcd.conf # Disable ip4vall
+}
diff --git a/testing/dhcpcd/dhcpcd.conf.d b/testing/dhcpcd/dhcpcd.conf.d
new file mode 100644
index 000000000..83c6f14ad
--- /dev/null
+++ b/testing/dhcpcd/dhcpcd.conf.d
@@ -0,0 +1,6 @@
+#
+# Arguments to be passed to the DHCP client daemon
+#
+
+DHCPCD_ARGS="-q"
+
diff --git a/testing/e2fsprogs/MIT-LICENSE b/testing/e2fsprogs/MIT-LICENSE
new file mode 100644
index 000000000..d849b28f2
--- /dev/null
+++ b/testing/e2fsprogs/MIT-LICENSE
@@ -0,0 +1,25 @@
+Copyright (c) 2003-2007 Theodore Ts'o <tytso@mit.edu>
+Copyright (c) 1997-2003 Yann Dirson <dirson@debian.org>
+Copyright (c) 2001 Alcove <http://www.alcove.com/>
+Copyright (c) 1997 Klee Dienes
+Copyright (c) 1995-1996 Michael Nonweiler <mrn20@cam.ac.uk>
+
+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 THE AUTHORS OR COPYRIGHT HOLDERS
+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.
diff --git a/testing/e2fsprogs/PKGBUILD b/testing/e2fsprogs/PKGBUILD
new file mode 100644
index 000000000..86d97da13
--- /dev/null
+++ b/testing/e2fsprogs/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 141998 2011-11-03 21:12:45Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=e2fsprogs
+pkgver=1.41.14
+pkgrel=2
+pkgdesc="Ext2/3/4 filesystem utilities"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'MIT')
+url="http://e2fsprogs.sourceforge.net"
+groups=('base')
+depends=('sh' 'util-linux-ng')
+makedepends=('bc')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'MIT-LICENSE')
+backup=('etc/mke2fs.conf')
+install=${pkgname}.install
+sha1sums=('24f9364fa3d4c0d7d00cb627b819d0e51055d6c5'
+ 'f4a0d5b0cdb980e3fedd6f5e7dde0b0ffb7bbdfb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Remove unnecessary init.d directory
+ sed -i '/init\.d/s|^|#|' misc/Makefile.in
+
+ ./configure --prefix=/usr --with-root-prefix="" --enable-elf-shlibs \
+ --disable-fsck --disable-uuidd \
+ --disable-libuuid --disable-libblkid
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install install-libs
+
+ sed -i -e 's/^AWK=.*/AWK=awk/' "${pkgdir}/usr/bin/compile_et"
+
+ # remove references to build directory
+ sed -i -e 's#^SS_DIR=.*#SS_DIR="/usr/share/ss"#' "${pkgdir}/usr/bin/mk_cmds"
+ sed -i -e 's#^ET_DIR=.*#ET_DIR="/usr/share/et"#' "${pkgdir}/usr/bin/compile_et"
+
+ # install MIT license
+ install -Dm644 "${srcdir}/MIT-LICENSE" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/MIT-LICENSE"
+}
diff --git a/testing/e2fsprogs/e2fsprogs.install b/testing/e2fsprogs/e2fsprogs.install
new file mode 100644
index 000000000..1a7fe20d7
--- /dev/null
+++ b/testing/e2fsprogs/e2fsprogs.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(libext2fs.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/e2fsprogs/mke2fs.conf b/testing/e2fsprogs/mke2fs.conf
new file mode 100644
index 000000000..92464e3b4
--- /dev/null
+++ b/testing/e2fsprogs/mke2fs.conf
@@ -0,0 +1,26 @@
+[defaults]
+ base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr
+ blocksize = 4096
+ inode_size = 128
+ inode_ratio = 16384
+
+[fs_types]
+ small = {
+ blocksize = 1024
+ inode_size = 128
+ inode_ratio = 4096
+ }
+ floppy = {
+ blocksize = 1024
+ inode_size = 128
+ inode_ratio = 8192
+ }
+ news = {
+ inode_ratio = 4096
+ }
+ largefile = {
+ inode_ratio = 1048576
+ }
+ largefile4 = {
+ inode_ratio = 4194304
+ }
diff --git a/testing/expat/CVE-2009-3560.patch b/testing/expat/CVE-2009-3560.patch
new file mode 100644
index 000000000..5fe9c36c8
--- /dev/null
+++ b/testing/expat/CVE-2009-3560.patch
@@ -0,0 +1,13 @@
+diff -urNad trunk~/lib/xmlparse.c trunk/lib/xmlparse.c
+--- trunk~/lib/xmlparse.c 2007-05-08 04:25:35.000000000 +0200
++++ trunk/lib/xmlparse.c 2009-12-29 21:57:22.141732904 +0100
+@@ -3703,6 +3703,9 @@
+ return XML_ERROR_UNCLOSED_TOKEN;
+ case XML_TOK_PARTIAL_CHAR:
+ return XML_ERROR_PARTIAL_CHAR;
++ case -XML_TOK_PROLOG_S:
++ tok = -tok;
++ break;
+ case XML_TOK_NONE:
+ #ifdef XML_DTD
+ /* for internal PE NOT referenced between declarations */
diff --git a/testing/expat/CVE-2009-3720.patch b/testing/expat/CVE-2009-3720.patch
new file mode 100644
index 000000000..65d16431f
--- /dev/null
+++ b/testing/expat/CVE-2009-3720.patch
@@ -0,0 +1,12 @@
+diff -urNad trunk~/lib/xmltok_impl.c trunk/lib/xmltok_impl.c
+--- trunk~/lib/xmltok_impl.c 2006-11-26 18:34:46.000000000 +0100
++++ trunk/lib/xmltok_impl.c 2009-10-22 21:42:41.000000000 +0200
+@@ -1744,7 +1744,7 @@
+ const char *end,
+ POSITION *pos)
+ {
+- while (ptr != end) {
++ while (ptr < end) {
+ switch (BYTE_TYPE(enc, ptr)) {
+ #define LEAD_CASE(n) \
+ case BT_LEAD ## n: \
diff --git a/testing/expat/PKGBUILD b/testing/expat/PKGBUILD
new file mode 100644
index 000000000..eee7e94b9
--- /dev/null
+++ b/testing/expat/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 141915 2011-11-03 06:22:06Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=expat
+pkgver=2.0.1
+pkgrel=7
+pkgdesc="An XML parser library"
+arch=('i686' 'x86_64')
+url="http://expat.sourceforge.net/"
+license=('custom')
+depends=('glibc')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/expat/${pkgname}-${pkgver}.tar.gz
+ CVE-2009-3560.patch
+ CVE-2009-3720.patch)
+md5sums=('ee8b492592568805593f81f8cdf2a04c'
+ '50603cac0f03aabc7087415251f592be'
+ 'f3eeb796f28945899216b815e5901996')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i $srcdir/CVE-2009-3560.patch
+ patch -Np1 -i $srcdir/CVE-2009-3720.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/testing/flex/PKGBUILD b/testing/flex/PKGBUILD
new file mode 100644
index 000000000..828cd9b84
--- /dev/null
+++ b/testing/flex/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 141917 2011-11-03 06:31:54Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=flex
+pkgver=2.5.35
+pkgrel=5
+pkgdesc="A tool for generating text-scanning programs"
+arch=('i686' 'x86_64')
+url="http://flex.sourceforge.net"
+license=('custom')
+groups=('base-devel')
+depends=('glibc' 'm4' 'sh')
+install=flex.install
+source=(http://downloads.sourceforge.net/sourceforge/flex/flex-$pkgver.tar.bz2
+ flex-2.5.35-gcc44.patch
+ flex-2.5.35-hardening.patch
+ flex-2.5.35-missing-prototypes.patch
+ flex-2.5.35-sign.patch
+ lex.sh)
+md5sums=('10714e50cea54dc7a227e3eddcd44d57'
+ 'e4444ef5c07db71a43280be74139bdea'
+ 'de952b3ed7cc074bc8c3e6ab73634048'
+ '6b83f56b1b654c6a321cdc530a3ec68d'
+ 'd87fd9e9762ba7e230d516bdcf1c8c6f'
+ 'f725259ec23a9e87ee29e2ef82eda9a5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ patch -Np1 -i $srcdir/flex-2.5.35-gcc44.patch
+ patch -Np1 -i $srcdir/flex-2.5.35-hardening.patch
+ patch -Np1 -i $srcdir/flex-2.5.35-missing-prototypes.patch
+ patch -Np1 -i $srcdir/flex-2.5.35-sign.patch
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man --infodir=/usr/share/info
+ make
+}
+
+check() {
+ cd $srcdir/$pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make prefix=$pkgdir/usr \
+ mandir=$pkgdir/usr/share/man \
+ infodir=$pkgdir/usr/share/info \
+ install
+ install -Dm755 $srcdir/lex.sh $pkgdir/usr/bin/lex
+
+ install -Dm644 COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/license.txt
+
+}
+
diff --git a/testing/flex/flex-2.5.35-gcc44.patch b/testing/flex/flex-2.5.35-gcc44.patch
new file mode 100644
index 000000000..7929fc092
--- /dev/null
+++ b/testing/flex/flex-2.5.35-gcc44.patch
@@ -0,0 +1,22 @@
+diff -urNp flex-2.5.35.orig/flex.skl flex-2.5.35/flex.skl
+--- flex-2.5.35.orig/flex.skl 2009-04-20 03:09:46.000000000 +0530
++++ flex-2.5.35/flex.skl 2009-04-20 07:46:58.000000000 +0530
+@@ -217,6 +217,7 @@ m4preproc_include(`flexint.h')
+ /* begin standard C++ headers. */
+ #include <iostream>
+ #include <errno.h>
++#include <cstdio>
+ #include <cstdlib>
+ #include <cstring>
+ /* end standard C++ headers. */
+diff -urNp flex-2.5.35.orig/skel.c flex-2.5.35/skel.c
+--- flex-2.5.35.orig/skel.c 2009-04-20 03:09:46.000000000 +0530
++++ flex-2.5.35/skel.c 2009-04-20 07:46:40.000000000 +0530
+@@ -284,6 +284,7 @@ const char *skel[] = {
+ "/* begin standard C++ headers. */",
+ "#include <iostream> ",
+ "#include <errno.h>",
++ "#include <cstdio>",
+ "#include <cstdlib>",
+ "#include <cstring>",
+ "/* end standard C++ headers. */",
diff --git a/testing/flex/flex-2.5.35-hardening.patch b/testing/flex/flex-2.5.35-hardening.patch
new file mode 100644
index 000000000..7d608ea23
--- /dev/null
+++ b/testing/flex/flex-2.5.35-hardening.patch
@@ -0,0 +1,36 @@
+diff -u flex-2.5.35/scan.c flex-2.5.35/scan.c
+--- flex-2.5.35/scan.c
++++ flex-2.5.35/scan.c
+@@ -2096,7 +2096,7 @@
+ /* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+-#define ECHO fwrite( yytext, yyleng, 1, yyout )
++#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+ #endif
+
+ /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
+diff -u flex-2.5.35/flex.skl flex-2.5.35/flex.skl
+--- flex-2.5.35/flex.skl
++++ flex-2.5.35/flex.skl
+@@ -1075,7 +1075,7 @@
+ /* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+-#define ECHO fwrite( yytext, yyleng, 1, yyout )
++#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+ %endif
+ %if-c++-only C++ definition
+ #define ECHO LexerOutput( yytext, yyleng )
+diff -u flex-2.5.35/skel.c flex-2.5.35/skel.c
+--- flex-2.5.35/skel.c
++++ flex-2.5.35/skel.c
+@@ -1142,7 +1142,7 @@
+ "/* This used to be an fputs(), but since the string might contain NUL's,",
+ " * we now use fwrite().",
+ " */",
+- "#define ECHO fwrite( yytext, yyleng, 1, yyout )",
++ "#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)",
+ "%endif",
+ "%if-c++-only C++ definition",
+ "#define ECHO LexerOutput( yytext, yyleng )",
diff --git a/testing/flex/flex-2.5.35-missing-prototypes.patch b/testing/flex/flex-2.5.35-missing-prototypes.patch
new file mode 100644
index 000000000..5cde0660e
--- /dev/null
+++ b/testing/flex/flex-2.5.35-missing-prototypes.patch
@@ -0,0 +1,53 @@
+diff -up flex-2.5.35/flex.skl\~ flex-2.5.35/flex.skl
+--- flex-2.5.35/flex.skl~ 2010-07-13 17:18:43.000000000 +0200
++++ flex-2.5.35/flex.skl 2010-07-13 17:23:49.000000000 +0200
+@@ -960,6 +960,22 @@ m4_ifdef( [[M4_YY_NO_SET_LINENO]],,
+ void yyset_lineno M4_YY_PARAMS( int line_number M4_YY_PROTO_LAST_ARG );
+ ]])
+
++m4_ifdef( [[M4_YY_REENTRANT]],
++[[
++m4_ifdef( [[M4_YY_NO_GET_COLUMN]],,
++[[
++int yyget_column M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
++]])
++]])
++
++m4_ifdef( [[M4_YY_REENTRANT]],
++[[
++m4_ifdef( [[M4_YY_NO_SET_COLUMN]],,
++[[
++void yyset_column M4_YY_PARAMS( int column_no M4_YY_PROTO_LAST_ARG );
++]])
++]])
++
+ %if-bison-bridge
+ m4_ifdef( [[M4_YY_NO_GET_LVAL]],,
+ [[
+
+Diff finished. Tue Jul 13 17:27:50 2010
+--- flex-2.5.35/skel.c~ 2010-07-14 13:15:42.000000000 +0200
++++ flex-2.5.35/skel.c 2010-07-14 13:16:05.000000000 +0200
+@@ -1027,6 +1027,22 @@
+ "void yyset_lineno M4_YY_PARAMS( int line_number M4_YY_PROTO_LAST_ARG );",
+ "]])",
+ "",
++ "m4_ifdef( [[M4_YY_REENTRANT]],",
++ "[[",
++ "m4_ifdef( [[M4_YY_NO_GET_COLUMN]],,",
++ "[[",
++ "int yyget_column M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );",
++ "]])",
++ "]])",
++ "",
++ "m4_ifdef( [[M4_YY_REENTRANT]],",
++ "[[",
++ "m4_ifdef( [[M4_YY_NO_SET_COLUMN]],,",
++ "[[",
++ "void yyset_column M4_YY_PARAMS( int column_no M4_YY_PROTO_LAST_ARG );",
++ "]])",
++ "]])",
++ "",
+ "%if-bison-bridge",
+ "m4_ifdef( [[M4_YY_NO_GET_LVAL]],,",
+ "[[",
diff --git a/testing/flex/flex-2.5.35-sign.patch b/testing/flex/flex-2.5.35-sign.patch
new file mode 100644
index 000000000..fbee18bde
--- /dev/null
+++ b/testing/flex/flex-2.5.35-sign.patch
@@ -0,0 +1,11 @@
+--- flex-2.5.35/gen.c-orig 2008-04-30 22:51:08.000000000 +0200
++++ flex-2.5.35/gen.c 2008-04-30 22:51:14.000000000 +0200
+@@ -1890,7 +1890,7 @@
+ outn ("\tif ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \\");
+ outn ("\t\t{ \\");
+ outn ("\t\tint c = '*'; \\");
+- outn ("\t\tint n; \\");
++ outn ("\t\tunsigned n; \\");
+ outn ("\t\tfor ( n = 0; n < max_size && \\");
+ outn ("\t\t\t (c = getc( yyin )) != EOF && c != '\\n'; ++n ) \\");
+ outn ("\t\t\tbuf[n] = (char) c; \\");
diff --git a/testing/flex/flex.install b/testing/flex/flex.install
new file mode 100644
index 000000000..5b328c722
--- /dev/null
+++ b/testing/flex/flex.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(flex.info{,-1,-2})
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/flex/lex.sh b/testing/flex/lex.sh
new file mode 100644
index 000000000..13e7de692
--- /dev/null
+++ b/testing/flex/lex.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec /usr/bin/flex -l "$@"
diff --git a/testing/grep/PKGBUILD b/testing/grep/PKGBUILD
new file mode 100644
index 000000000..8366d083c
--- /dev/null
+++ b/testing/grep/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 141919 2011-11-03 06:55:30Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=grep
+pkgver=2.9
+pkgrel=2
+pkgdesc="A string search utility"
+arch=('i686' 'x86_64')
+license=('GPL3')
+url="http://www.gnu.org/software/grep/grep.html"
+groups=('base')
+depends=('glibc' 'pcre' 'sh')
+makedepends=('texinfo')
+install=${pkgname}.install
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig})
+md5sums=('25e41b2aa201104354740961ef36005a'
+ '78b903e88d23890d9e737e1415f4de21')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --bindir=/bin --without-included-regex
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/testing/grep/grep.install b/testing/grep/grep.install
new file mode 100644
index 000000000..7cd31301f
--- /dev/null
+++ b/testing/grep/grep.install
@@ -0,0 +1,21 @@
+infodir=usr/share/info
+filelist=(grep.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/testing/gzip/PKGBUILD b/testing/gzip/PKGBUILD
new file mode 100644
index 000000000..a71b9cf1c
--- /dev/null
+++ b/testing/gzip/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 141921 2011-11-03 07:20:16Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=gzip
+pkgver=1.4
+pkgrel=4
+pkgdesc="GNU compression utility"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/gzip/"
+license=('GPL3')
+groups=('base')
+depends=('glibc' 'bash')
+makedepends=('patch')
+install=gzip.install
+source=(ftp://ftp.gnu.org/pub/gnu/gzip/gzip-$pkgver.tar.gz{,.sig})
+md5sums=('e381b8506210c794278f5527cba0e765'
+ '3b11d485d1638f2d16f7494a0486a6e8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # By default Gzip uses assembly code. While this may preform better,
+ # it is not position independent. The DEFS environment variable is
+ # set to use only C code.
+ export DEFS="NO_ASM"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix=${pkgdir}/usr install
+
+ install -dm755 ${pkgdir}/bin
+ mv ${pkgdir}/usr/bin/{gunzip,gzip,uncompress,zcat} ${pkgdir}/bin/
+}
diff --git a/testing/gzip/gzip.install b/testing/gzip/gzip.install
new file mode 100644
index 000000000..24c8b8fb9
--- /dev/null
+++ b/testing/gzip/gzip.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(gzip.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/hdparm/PKGBUILD b/testing/hdparm/PKGBUILD
new file mode 100644
index 000000000..fcb007d04
--- /dev/null
+++ b/testing/hdparm/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 141929 2011-11-03 08:40:42Z tpowa $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgname=hdparm
+pkgver=9.37
+pkgrel=2
+pkgdesc="A shell utility for manipulating Linux IDE drive/driver parameters"
+arch=(i686 x86_64)
+depends=('glibc')
+optdepends=('sh: required by idectl and ultrabayd')
+source=(http://downloads.sourceforge.net/sourceforge/hdparm/${pkgname}-${pkgver}.tar.gz
+ wiper.sh.2_6.max-ranges.patch)
+license=('BSD')
+url="http://sourceforge.net/projects/hdparm/"
+optdepends=('bash: for wiper.sh script')
+options=('emptydirs')
+md5sums=('0bb94ddd1bedd5c02b1ca62f1caaf6de'
+ '74e368f384166a7710b447573cda120a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # Fix Range input/output error when wiping Intel G2 and OCZ drives
+ patch -Np1 -i $srcdir/wiper.sh.2_6.max-ranges.patch
+
+ # build
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # install
+ mkdir -p ${pkgdir}/{usr,sbin}
+ make DESTDIR=${pkgdir} install
+ install -m755 contrib/idectl ${pkgdir}/sbin
+ install -m755 contrib/ultrabayd ${pkgdir}/sbin
+
+ install -D -m 0644 $srcdir/$pkgname-$pkgver/wiper/README.txt $pkgdir/usr/share/doc/wiper/README.txt
+ install -D -m 0755 $srcdir/$pkgname-$pkgver/wiper/wiper.sh $pkgdir/usr/sbin/wiper.sh
+
+ #install license file
+ install -D -m 644 LICENSE.TXT $pkgdir/usr/share/licenses/hdparm/LICENSE.TXT
+}
diff --git a/testing/hdparm/wiper.sh.2_6.max-ranges.patch b/testing/hdparm/wiper.sh.2_6.max-ranges.patch
new file mode 100644
index 000000000..c55f7b149
--- /dev/null
+++ b/testing/hdparm/wiper.sh.2_6.max-ranges.patch
@@ -0,0 +1,84 @@
+--- hdparm-9.28/wiper/wiper.sh.orig 2010-03-09 06:17:37.000000000 -0800
+--- hdparm-9.28/wiper/wiper.sh 2010-05-15 03:08:02.182856971 -0700
+@@ -29,7 +29,7 @@
+ function usage_error(){
+ echo >&2
+ echo "Linux tune-up (TRIM) utility for SATA SSDs"
+- echo "Usage: $0 [--verbose] [--commit] <mount_point|block_device>" >&2
++ echo "Usage: $0 [--max-ranges <num>] [--verbose] [--commit] <mount_point|block_device>" >&2
+ echo " Eg: $0 /dev/sda1" >&2
+ echo >&2
+ exit 1
+@@ -44,6 +44,7 @@
+
+ export verbose=0
+ commit=""
++max_ranges=-1
+ destroy_me=""
+ argc=$#
+ arg=""
+@@ -51,6 +52,10 @@
+ commit=yes
+ elif [ "$1" = "--verbose" ]; then
+ verbose=$((verbose + 1))
++ elif [ "$1" = "--max-ranges" -a $argc -gt 1 ]; then
++ max_ranges=$2
++ argc=$((argc - 1))
++ shift
+ elif [ "$1" = "" ]; then
+ usage_error
+ else
+@@ -499,6 +550,18 @@
+ fi
+ fi
+
++## Different SSD's have a different maximum number of ranges they'll accept
++## in a single TRIM command.
++if [ $max_ranges -le 0 ] ; then
++ model=`$HDPARM -I $rawdev | $GAWK '/Model Number/ { print $NF }'`
++ case "$model" in
++ SSDSA[12]*) max_ranges=512 ;; # Intel X18-M/X25-M
++ OCZ-VERTEX2) max_ranges=64 ;; # OCZ Vertex2
++ *) max_ranges=65535
++ esac
++fi
++[ $verbose -gt 0 ] && echo "max-ranges = $max_ranges"
++
+ ## All ready. Now let the user know exactly what we intend to do:
+ ##
+ mountstatus="$fstype non-mounted"
+@@ -608,7 +671,7 @@
+ nsectors += count;
+ while (count > 0) {
+ this_count = (count > 65535) ? 65535 : count
+- printf "%u:%u ", lba, this_count
++ printf "%u:%u \n", lba, this_count
+ if (verbose > 1)
+ printf "%u:%u ", lba, this_count > "/dev/stderr"
+ lba += this_count
+@@ -695,6 +758,22 @@
+ -v verbose="$verbose" \
+ -v xfs_blksects="$xfs_blksects" \
+ -v xfs_agoffsets="$xfs_agoffsets" \
+- "$GAWKPROG" | $TRIM
++ "$GAWKPROG" | (
++ i=0
++ while read range ; do
++ ranges=$ranges" "$range
++ ((i++))
++ if [ $i -ge $max_ranges ] ; then
++ [ $verbose -gt 0 ] && echo -e "Trim ranges:"$ranges"\n"
++ echo $ranges | $TRIM
++ ranges=""
++ i=0
++ fi
++ done
++ if [ $i -gt 0 ] ; then
++ [ $verbose -gt 0 ] && echo -e "Trim ranges:"$ranges"\n"
++ echo $ranges | $TRIM
++ fi
++ )
+
+ do_cleanup $?
+
+
diff --git a/testing/iproute2/PKGBUILD b/testing/iproute2/PKGBUILD
new file mode 100644
index 000000000..9d84c9a7d
--- /dev/null
+++ b/testing/iproute2/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 141994 2011-11-03 20:58:44Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=iproute2
+pkgver=2.6.39
+pkgrel=2
+pkgdesc="IP Routing Utilities"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.linux-foundation.org/en/Net:Iproute2"
+depends=('perl')
+makedepends=('linux-atm')
+optdepends=('linux-atm: ATM support')
+provides=('iproute')
+conflicts=('iproute')
+replaces=('iproute')
+options=('!makeflags')
+backup=('etc/iproute2/ematch_map' 'etc/iproute2/rt_dsfield' 'etc/iproute2/rt_protos' \
+ 'etc/iproute2/rt_realms' 'etc/iproute2/rt_scopes' 'etc/iproute2/rt_tables')
+source=(http://devresources.linux-foundation.org/dev/iproute2/download/iproute2-${pkgver}.tar.gz
+ 'iproute2-fhs.patch')
+sha1sums=('9044ad0b4a34a377a54197724373330294d743c7'
+ '2416b11252364d7a6c742eabb4a6924a75637a46')
+
+
+build() {
+ cd $srcdir/iproute2-${pkgver}
+
+ # set correct fhs structure
+ patch -Np1 -i ${srcdir}/iproute2-fhs.patch
+
+ ./configure
+
+ make
+}
+
+package() {
+ cd $srcdir/iproute2-${pkgver}
+
+ make DESTDIR=$pkgdir install
+
+ # allow loopback to be started before /usr is mounted, this may not be supported in the future
+ mkdir -p ${pkgdir}/sbin
+ mv ${pkgdir}/usr/sbin/ip ${pkgdir}/sbin/ip
+ ln -s /sbin/ip ${pkgdir}/usr/sbin/ip
+
+ # libnetlink isn't installed, install it FS#19385
+ install -Dm644 include/libnetlink.h ${pkgdir}/usr/include/libnetlink.h
+ install -Dm644 lib/libnetlink.a ${pkgdir}/usr/lib/libnetlink.a
+}
diff --git a/testing/iproute2/iproute2-fhs.patch b/testing/iproute2/iproute2-fhs.patch
new file mode 100644
index 000000000..2608414db
--- /dev/null
+++ b/testing/iproute2/iproute2-fhs.patch
@@ -0,0 +1,84 @@
+diff -Naur iproute2.old/Makefile iproute2-2.6.29/Makefile
+--- iproute2.old/Makefile 2009-11-11 22:05:21.251407668 +0100
++++ iproute2-2.6.29/Makefile 2009-11-11 22:07:09.891833516 +0100
+@@ -1,11 +1,12 @@
+ DESTDIR=/usr/
+ ROOTDIR=$(DESTDIR)
+ LIBDIR=/usr/lib/
+-SBINDIR=/sbin
++SBINDIR=/usr/sbin
+ CONFDIR=/etc/iproute2
+-DOCDIR=/share/doc/iproute2
+-MANDIR=/share/man
++DOCDIR=/usr/share/doc/iproute2
++MANDIR=/usr/share/man
+ ARPDDIR=/var/lib/arpd
++SHAREDIR=/usr/share
+
+ # Path to db_185.h include
+ DBM_INCLUDE:=$(ROOTDIR)/usr/include
+diff -Naur iproute2.old/tc/tc_util.c iproute2-2.6.29/tc/tc_util.c
+--- iproute2.old/tc/tc_util.c 2009-11-11 22:05:21.298076943 +0100
++++ iproute2-2.6.29/tc/tc_util.c 2009-11-11 22:09:32.865152646 +0100
+@@ -24,8 +24,8 @@
+ #include "utils.h"
+ #include "tc_util.h"
+
+-#ifndef LIBDIR
+-#define LIBDIR "/usr/lib/"
++#ifndef SHAREDIR
++#define SHAREDIR "/usr/share"
+ #endif
+
+ const char *get_tc_lib(void)
+@@ -34,7 +34,7 @@
+
+ lib_dir = getenv("TC_LIB_DIR");
+ if (!lib_dir)
+- lib_dir = LIBDIR "/tc/";
++ lib_dir = SHAREDIR "/tc/";
+
+ return lib_dir;
+ }
+diff -Naur iproute2.old/netem/Makefile iproute2-2.6.35/netem/Makefile
+--- iproute2.old/netem/Makefile 2010-08-06 11:30:48.640940183 +0200
++++ iproute2-2.6.35/netem/Makefile 2010-08-06 11:32:34.210908892 +0200
+@@ -20,9 +20,9 @@
+ $(HOSTCC) $(CCOPTS) -I../include -o $@ $@.c -lm
+
+ install: all
+- mkdir -p $(DESTDIR)$(LIBDIR)/tc
++ mkdir -p $(DESTDIR)$(SHAREDIR)/tc
+ for i in $(DISTDATA); \
+- do install -m 644 $$i $(DESTDIR)$(LIBDIR)/tc; \
++ do install -m 644 $$i $(DESTDIR)$(SHAREDIR)/tc; \
+ done
+
+ clean:
+diff -Naur iproute2.old/tc/Makefile iproute2-2.6.35/tc/Makefile
+--- iproute2.old/tc/Makefile 2010-08-06 11:48:35.607472252 +0200
++++ iproute2-2.6.35/tc/Makefile 2010-08-06 11:49:36.977473380 +0200
+@@ -99,18 +99,11 @@
+ $(AR) rcs $@ $(TCLIB)
+
+ install: all
+- mkdir -p $(MODDESTDIR)
+- install -m 0755 tc $(DESTDIR)$(SBINDIR)
+- for i in $(TCSO); \
+- do install -m 755 $$i $(MODDESTDIR); \
+- done
+- if [ ! -f $(MODDESTDIR)/m_ipt.so ]; then \
+- if [ -f $(MODDESTDIR)/m_xt.so ]; \
+- then ln -s m_xt.so $(MODDESTDIR)/m_ipt.so ; \
+- elif [ -f $(MODDESTDIR)/m_xt_old.so ]; \
+- then ln -s m_xt_old.so $(MODDESTDIR)/m_ipt.so ; \
+- fi; \
+- fi
++ mkdir -p $(DESTDIR)$(LIBDIR)/tc
++ install -m 0755 tc $(DESTDIR)$(SBINDIR)
++ for i in $(TCSO); \
++ do install -m 755 $$i $(DESTDIR)$(LIBDIR)/tc; \
++ done
+
+ clean:
+ rm -f $(TCOBJ) $(TCLIB) libtc.a tc *.so emp_ematch.yacc.h; \
diff --git a/testing/iputils/PKGBUILD b/testing/iputils/PKGBUILD
new file mode 100644
index 000000000..265d84d29
--- /dev/null
+++ b/testing/iputils/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 141976 2011-11-03 20:08:42Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=iputils
+pkgver=20101006
+_traceroutever=1.4a12
+pkgrel=2
+pkgdesc="IP Configuration Utilities (and Ping)"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.linuxfoundation.org/en/Net:Iputils"
+groups=('base')
+depends=('glibc' 'openssl' 'sysfsutils')
+conflicts=('netkit-base' 'arping' 'netkit-tftpd' 'traceroute')
+replaces=('netkit-base' 'traceroute')
+source=(http://www.skbuff.net/${pkgname}/${pkgname}-s${pkgver}.tar.bz2
+ ftp://ftp.ee.lbl.gov/traceroute-${_traceroutever}.tar.gz
+ 'permission-fix.patch'
+ 'iputils-s20101006-manpages.patch')
+options=('!makeflags')
+md5sums=('a36c25e9ec17e48be514dc0485e7376c'
+ '964d599ef696efccdeebe7721cd4828d'
+ '66109966cad06e425bb12a78bab85b70'
+ 'd02dffac6f16e841921a9fc73bd2d3bd')
+
+build() {
+ #build iptuils
+ cd "${srcdir}/${pkgname}-s${pkgver}"
+
+ # Doc fails to build (see FS#20251)
+ # As a temporary workaround, we use these man pages from Fedora & LFS
+ patch -Np1 -i ../iputils-s20101006-manpages.patch
+ make
+
+ # build traceroute
+ # this is combined in this package because it's awkward as a separate package
+ cd "${srcdir}/traceroute-${_traceroutever}"
+ patch -Np1 -i ../permission-fix.patch
+ ./configure --prefix=/usr \
+ --sbindir=/bin \
+ --mandir=/usr/share/man
+ make CFLAGS="${CFLAGS} -Ilinux-include/"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-s${pkgver}"
+ for i in arping clockdiff rarpd rdisc tftpd tracepath tracepath6; do
+ install -D -m755 $i "${pkgdir}/usr/sbin/$i"
+ done
+ for i in ping ping6 traceroute6; do
+ install -D -m4755 $i "${pkgdir}/bin/$i"
+ done
+
+ install -dm755 "${pkgdir}/usr/share/man/man8"
+ install -m644 doc/{arping,clockdiff,ping,rarpd,rdisc,tftpd,tracepath,traceroute6}.8 \
+ "${pkgdir}/usr/share/man/man8/"
+
+ cd "${pkgdir}/usr/share/man/man8"
+ ln -sf ping.8.gz ping6.8.gz
+ ln -sf tracepath.8.gz tracepath6.8.gz
+
+ cd "${srcdir}/traceroute-${_traceroutever}"
+ make DESTDIR="${pkgdir}" install install-man
+}
diff --git a/testing/iputils/iputils-s20101006-manpages.patch b/testing/iputils/iputils-s20101006-manpages.patch
new file mode 100644
index 000000000..764d0d36d
--- /dev/null
+++ b/testing/iputils/iputils-s20101006-manpages.patch
@@ -0,0 +1,1044 @@
+--- /dev/null 2011-01-26 09:02:28.396666668 -0500
++++ iputils-s20101006/doc/arping.8 2011-01-19 04:10:18.000000000 -0500
+@@ -0,0 +1,110 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "ARPING" "8" "19 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++arping \- send ARP REQUEST to a neighbour host
++.SH SYNOPSIS
++
++\fBarping\fR [ \fB-AbDfhqUV\fR] [ \fB-c \fIcount\fB\fR] [ \fB-w \fIdeadline\fB\fR] [ \fB-s \fIsource\fB\fR] \fB-I \fIinterface\fB\fR \fB\fIdestination\fB\fR
++
++.SH "DESCRIPTION"
++.PP
++Ping \fIdestination\fR on device \fIinterface\fR by ARP packets,
++using source address \fIsource\fR.
++.SH "OPTIONS"
++.TP
++\fB-A\fR
++The same as \fB-U\fR, but ARP REPLY packets used instead
++of ARP REQUEST.
++.TP
++\fB-b\fR
++Send only MAC level broadcasts. Normally \fBarping\fR starts
++from sending broadcast, and switch to unicast after reply received.
++.TP
++\fB-c \fIcount\fB\fR
++Stop after sending \fIcount\fR ARP REQUEST
++packets. With
++\fIdeadline\fR
++option, \fBarping\fR waits for
++\fIcount\fR ARP REPLY packets, until the timeout expires.
++.TP
++\fB-D\fR
++Duplicate address detection mode (DAD). See
++RFC2131, 4.4.1.
++Returns 0, if DAD succeeded i.e. no replies are received
++.TP
++\fB-f\fR
++Finish after the first reply confirming that target is alive.
++.TP
++\fB-I \fIinterface\fB\fR
++Name of network device where to send ARP REQUEST packets. This option
++is required.
++.TP
++\fB-h\fR
++Print help page and exit.
++.TP
++\fB-q\fR
++Quiet output. Nothing is displayed.
++.TP
++\fB-s \fIsource\fB\fR
++IP source address to use in ARP packets.
++If this option is absent, source address is:
++.RS
++.TP 0.2i
++\(bu
++In DAD mode (with option \fB-D\fR) set to 0.0.0.0.
++.TP 0.2i
++\(bu
++In Unsolicited ARP mode (with options \fB-U\fR or \fB-A\fR)
++set to \fIdestination\fR.
++.TP 0.2i
++\(bu
++Otherwise, it is calculated from routing tables.
++.RE
++.TP
++\fB-U\fR
++Unsolicited ARP mode to update neighbours' ARP caches.
++No replies are expected.
++.TP
++\fB-V\fR
++Print version of the program and exit.
++.TP
++\fB-w \fIdeadline\fB\fR
++Specify a timeout, in seconds, before
++\fBarping\fR
++exits regardless of how many
++packets have been sent or received. In this case
++\fBarping\fR
++does not stop after
++\fIcount\fR
++packet are sent, it waits either for
++\fIdeadline\fR
++expire or until
++\fIcount\fR
++probes are answered.
++.SH "SEE ALSO"
++.PP
++\fBping\fR(8),
++\fBclockdiff\fR(8),
++\fBtracepath\fR(8).
++.SH "AUTHOR"
++.PP
++\fBarping\fR was written by
++Alexey Kuznetsov
++<kuznet@ms2.inr.ac.ru>.
++It is now maintained by
++YOSHIFUJI Hideaki
++<yoshfuji@skbuff.net>.
++.SH "SECURITY"
++.PP
++\fBarping\fR requires CAP_NET_RAWIO capability
++to be executed. It is not recommended to be used as set-uid root,
++because it allows user to modify ARP caches of neighbour hosts.
++.SH "AVAILABILITY"
++.PP
++\fBarping\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
+--- /dev/null 2011-01-26 09:02:28.396666668 -0500
++++ iputils-s20101006/doc/clockdiff.8 2011-01-19 04:10:19.000000000 -0500
+@@ -0,0 +1,81 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "CLOCKDIFF" "8" "19 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++clockdiff \- measure clock difference between hosts
++.SH SYNOPSIS
++
++\fBclockdiff\fR [ \fB-o\fR] [ \fB-o1\fR] \fB\fIdestination\fB\fR
++
++.SH "DESCRIPTION"
++.PP
++\fBclockdiff\fR Measures clock difference between us and
++\fIdestination\fR with 1 msec resolution using ICMP TIMESTAMP
++[2]
++packets or, optionally, IP TIMESTAMP option
++[3]
++option added to ICMP ECHO.
++[1]
++.SH "OPTIONS"
++.TP
++\fB-o\fR
++Use IP TIMESTAMP with ICMP ECHO instead of ICMP TIMESTAMP
++messages. It is useful with some destinations, which do not support
++ICMP TIMESTAMP (f.e. Solaris <2.4).
++.TP
++\fB-o1\fR
++Slightly different form of \fB-o\fR, namely it uses three-term
++IP TIMESTAMP with prespecified hop addresses instead of four term one.
++What flavor works better depends on target host. Particularly,
++\fB-o\fR is better for Linux.
++.SH "WARNINGS"
++.TP 0.2i
++\(bu
++Some nodes (Cisco) use non-standard timestamps, which is allowed
++by RFC, but makes timestamps mostly useless.
++.TP 0.2i
++\(bu
++Some nodes generate messed timestamps (Solaris>2.4), when
++run \fBxntpd\fR. Seems, its IP stack uses a corrupted clock source,
++which is synchronized to time-of-day clock periodically and jumps
++randomly making timestamps mostly useless. Good news is that you can
++use NTP in this case, which is even better.
++.TP 0.2i
++\(bu
++\fBclockdiff\fR shows difference in time modulo 24 days.
++.SH "SEE ALSO"
++.PP
++\fBping\fR(8),
++\fBarping\fR(8),
++\fBtracepath\fR(8).
++.SH "REFERENCES"
++.PP
++[1] ICMP ECHO,
++RFC0792, page 14.
++.PP
++[2] ICMP TIMESTAMP,
++RFC0792, page 16.
++.PP
++[3] IP TIMESTAMP option,
++RFC0791, 3.1, page 16.
++.SH "AUTHOR"
++.PP
++\fBclockdiff\fR was compiled by
++Alexey Kuznetsov
++<kuznet@ms2.inr.ac.ru>. It was based on code borrowed
++from BSD \fBtimed\fR daemon.
++It is now maintained by
++YOSHIFUJI Hideaki
++<yoshfuji@skbuff.net>.
++.SH "SECURITY"
++.PP
++\fBclockdiff\fR requires CAP_NET_RAWIO capability
++to be executed. It is safe to be used as set-uid root.
++.SH "AVAILABILITY"
++.PP
++\fBclockdiff\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
+--- /dev/null 2011-01-26 09:02:28.396666668 -0500
++++ iputils-s20101006/doc/ping.8 2011-01-19 04:10:19.000000000 -0500
+@@ -0,0 +1,408 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "PING" "8" "19 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++ping, ping6 \- send ICMP ECHO_REQUEST to network hosts
++.SH SYNOPSIS
++
++\fBping\fR [ \fB-LRUbdfnqrvVaAB\fR] [ \fB-c \fIcount\fB\fR] [ \fB-m \fImark\fB\fR] [ \fB-i \fIinterval\fB\fR] [ \fB-l \fIpreload\fB\fR] [ \fB-p \fIpattern\fB\fR] [ \fB-s \fIpacketsize\fB\fR] [ \fB-t \fIttl\fB\fR] [ \fB-w \fIdeadline\fB\fR] [ \fB-F \fIflowlabel\fB\fR] [ \fB-I \fIinterface\fB\fR] [ \fB-M \fIhint\fB\fR] [ \fB-N \fInioption\fB\fR] [ \fB-Q \fItos\fB\fR] [ \fB-S \fIsndbuf\fB\fR] [ \fB-T \fItimestamp option\fB\fR] [ \fB-W \fItimeout\fB\fR] [ \fB\fIhop\fB\fR\fI ...\fR] \fB\fIdestination\fB\fR
++
++.SH "DESCRIPTION"
++.PP
++\fBping\fR uses the ICMP protocol's mandatory ECHO_REQUEST
++datagram to elicit an ICMP ECHO_RESPONSE from a host or gateway.
++ECHO_REQUEST datagrams (``pings'') have an IP and ICMP
++header, followed by a struct timeval and then an arbitrary
++number of ``pad'' bytes used to fill out the packet.
++.PP
++\fBping6\fR can also send Node Information Queries (RFC4620).
++.SH "OPTIONS"
++.TP
++\fB-a\fR
++Audible ping.
++.TP
++\fB-A\fR
++Adaptive ping. Interpacket interval adapts to round-trip time, so that
++effectively not more than one (or more, if preload is set) unanswered probes
++present in the network. Minimal interval is 200msec for not super-user.
++On networks with low rtt this mode is essentially equivalent to flood mode.
++.TP
++\fB-b\fR
++Allow pinging a broadcast address.
++.TP
++\fB-B\fR
++Do not allow \fBping\fR to change source address of probes.
++The address is bound to one selected when \fBping\fR starts.
++.TP
++\fB-m \fImark\fB\fR
++use \fImark\fR to tag the packets going out. This is useful
++for variety of reasons within the kernel such as using policy
++routing to select specific outbound processing.
++.TP
++\fB-c \fIcount\fB\fR
++Stop after sending \fIcount\fR ECHO_REQUEST
++packets. With
++\fIdeadline\fR
++option, \fBping\fR waits for
++\fIcount\fR ECHO_REPLY packets, until the timeout expires.
++.TP
++\fB-d\fR
++Set the SO_DEBUG option on the socket being used.
++Essentially, this socket option is not used by Linux kernel.
++.TP
++\fB-F \fIflow label\fB\fR
++Allocate and set 20 bit flow label on echo request packets.
++(Only \fBping6\fR). If value is zero, kernel allocates random flow label.
++.TP
++\fB-f\fR
++Flood ping. For every ECHO_REQUEST sent a period ``.'' is printed,
++while for ever ECHO_REPLY received a backspace is printed.
++This provides a rapid display of how many packets are being dropped.
++If interval is not given, it sets interval to zero and
++outputs packets as fast as they come back or one hundred times per second,
++whichever is more.
++Only the super-user may use this option with zero interval.
++.TP
++\fB-i \fIinterval\fB\fR
++Wait \fIinterval\fR seconds between sending each packet.
++The default is to wait for one second between each packet normally,
++or not to wait in flood mode. Only super-user may set interval
++to values less 0.2 seconds.
++.TP
++\fB-I \fIinterface address\fB\fR
++Set source address to specified interface address. Argument
++may be numeric IP address or name of device. When pinging IPv6
++link-local address this option is required.
++.TP
++\fB-l \fIpreload\fB\fR
++If \fIpreload\fR is specified,
++\fBping\fR sends that many packets not waiting for reply.
++Only the super-user may select preload more than 3.
++.TP
++\fB-L\fR
++Suppress loopback of multicast packets. This flag only applies if the ping
++destination is a multicast address.
++.TP
++\fB-N \fInioption\fB\fR
++Send ICMPv6 Node Information Queries (RFC4620), instead of Echo Request.
++.RS
++.TP
++\fBname\fR
++Queries for Node Names.
++.RE
++.RS
++.TP
++\fBipv6\fR
++Queries for IPv6 Addresses. There are several IPv6 specific flags.
++.RS
++.TP
++\fBipv6-global\fR
++Request IPv6 global-scope addresses.
++.RE
++.RS
++.TP
++\fBipv6-sitelocal\fR
++Request IPv6 site-local addresses.
++.RE
++.RS
++.TP
++\fBipv6-linklocal\fR
++Request IPv6 link-local addresses.
++.RE
++.RS
++.TP
++\fBipv6-all\fR
++Request IPv6 addresses on other interfaces.
++.RE
++.RE
++.RS
++.TP
++\fBipv4\fR
++Queries for IPv4 Addresses. There is one IPv4 specific flag.
++.RS
++.TP
++\fBipv4-all\fR
++Request IPv4 addresses on other interfaces.
++.RE
++.RE
++.RS
++.TP
++\fBsubject-ipv6=\fIipv6addr\fB\fR
++IPv6 subject address.
++.RE
++.RS
++.TP
++\fBsubject-ipv4=\fIipv4addr\fB\fR
++IPv4 subject address.
++.RE
++.RS
++.TP
++\fBsubject-name=\fInodename\fB\fR
++Subject name. If it contains more than one dot,
++fully-qualified domain name is assumed.
++.RE
++.RS
++.TP
++\fBsubject-fqdn=\fInodename\fB\fR
++Subject name. Fully-qualified domain name is
++always assumed.
++.RE
++.TP
++\fB-n\fR
++Numeric output only.
++No attempt will be made to lookup symbolic names for host addresses.
++.TP
++\fB-p \fIpattern\fB\fR
++You may specify up to 16 ``pad'' bytes to fill out the packet you send.
++This is useful for diagnosing data-dependent problems in a network.
++For example, \fB-p ff\fR will cause the sent packet
++to be filled with all ones.
++.TP
++\fB-D\fR
++Print timestamp (unix time + microseconds as in gettimeofday) before
++each line.
++.TP
++\fB-Q \fItos\fB\fR
++Set Quality of Service -related bits in ICMP datagrams.
++\fItos\fR can be either decimal or hex number.
++Traditionally (RFC1349), these have been interpreted as: 0 for reserved
++(currently being redefined as congestion control), 1-4 for Type of Service
++and 5-7 for Precedence.
++Possible settings for Type of Service are: minimal cost: 0x02,
++reliability: 0x04, throughput: 0x08, low delay: 0x10. Multiple TOS bits
++should not be set simultaneously. Possible settings for
++special Precedence range from priority (0x20) to net control (0xe0). You
++must be root (CAP_NET_ADMIN capability) to use Critical or
++higher precedence value. You cannot set
++bit 0x01 (reserved) unless ECN has been enabled in the kernel.
++In RFC2474, these fields has been redefined as 8-bit Differentiated
++Services (DS), consisting of: bits 0-1 of separate data (ECN will be used,
++here), and bits 2-7 of Differentiated Services Codepoint (DSCP).
++.TP
++\fB-q\fR
++Quiet output.
++Nothing is displayed except the summary lines at startup time and
++when finished.
++.TP
++\fB-R\fR
++Record route.
++Includes the RECORD_ROUTE option in the ECHO_REQUEST
++packet and displays the route buffer on returned packets.
++Note that the IP header is only large enough for nine such routes.
++Many hosts ignore or discard this option.
++.TP
++\fB-r\fR
++Bypass the normal routing tables and send directly to a host on an attached
++interface.
++If the host is not on a directly-attached network, an error is returned.
++This option can be used to ping a local host through an interface
++that has no route through it provided the option \fB-I\fR is also
++used.
++.TP
++\fB-s \fIpacketsize\fB\fR
++Specifies the number of data bytes to be sent.
++The default is 56, which translates into 64 ICMP
++data bytes when combined with the 8 bytes of ICMP header data.
++.TP
++\fB-S \fIsndbuf\fB\fR
++Set socket sndbuf. If not specified, it is selected to buffer
++not more than one packet.
++.TP
++\fB-t \fIttl\fB\fR
++Set the IP Time to Live.
++.TP
++\fB-T \fItimestamp option\fB\fR
++Set special IP timestamp options.
++\fItimestamp option\fR may be either
++\fItsonly\fR (only timestamps),
++\fItsandaddr\fR (timestamps and addresses) or
++\fItsprespec host1 [host2 [host3 [host4]]]\fR
++(timestamp prespecified hops).
++.TP
++\fB-M \fIhint\fB\fR
++Select Path MTU Discovery strategy.
++\fIhint\fR may be either \fIdo\fR
++(prohibit fragmentation, even local one),
++\fIwant\fR (do PMTU discovery, fragment locally when packet size
++is large), or \fIdont\fR (do not set DF flag).
++.TP
++\fB-U\fR
++Print full user-to-user latency (the old behaviour). Normally
++\fBping\fR
++prints network round trip time, which can be different
++f.e. due to DNS failures.
++.TP
++\fB-v\fR
++Verbose output.
++.TP
++\fB-V\fR
++Show version and exit.
++.TP
++\fB-w \fIdeadline\fB\fR
++Specify a timeout, in seconds, before
++\fBping\fR
++exits regardless of how many
++packets have been sent or received. In this case
++\fBping\fR
++does not stop after
++\fIcount\fR
++packet are sent, it waits either for
++\fIdeadline\fR
++expire or until
++\fIcount\fR
++probes are answered or for some error notification from network.
++.TP
++\fB-W \fItimeout\fB\fR
++Time to wait for a response, in seconds. The option affects only timeout
++in absense of any responses, otherwise \fBping\fR waits for two RTTs.
++.PP
++When using \fBping\fR for fault isolation, it should first be run
++on the local host, to verify that the local network interface is up
++and running. Then, hosts and gateways further and further away should be
++``pinged''. Round-trip times and packet loss statistics are computed.
++If duplicate packets are received, they are not included in the packet
++loss calculation, although the round trip time of these packets is used
++in calculating the minimum/average/maximum round-trip time numbers.
++When the specified number of packets have been sent (and received) or
++if the program is terminated with a
++SIGINT, a brief summary is displayed. Shorter current statistics
++can be obtained without termination of process with signal
++SIGQUIT.
++.PP
++If \fBping\fR does not receive any reply packets at all it will
++exit with code 1. If a packet
++\fIcount\fR
++and
++\fIdeadline\fR
++are both specified, and fewer than
++\fIcount\fR
++packets are received by the time the
++\fIdeadline\fR
++has arrived, it will also exit with code 1.
++On other error it exits with code 2. Otherwise it exits with code 0. This
++makes it possible to use the exit code to see if a host is alive or
++not.
++.PP
++This program is intended for use in network testing, measurement and
++management.
++Because of the load it can impose on the network, it is unwise to use
++\fBping\fR during normal operations or from automated scripts.
++.SH "ICMP PACKET DETAILS"
++.PP
++An IP header without options is 20 bytes.
++An ICMP ECHO_REQUEST packet contains an additional 8 bytes worth
++of ICMP header followed by an arbitrary amount of data.
++When a \fIpacketsize\fR is given, this indicated the size of this
++extra piece of data (the default is 56). Thus the amount of data received
++inside of an IP packet of type ICMP ECHO_REPLY will always be 8 bytes
++more than the requested data space (the ICMP header).
++.PP
++If the data space is at least of size of struct timeval
++\fBping\fR uses the beginning bytes of this space to include
++a timestamp which it uses in the computation of round trip times.
++If the data space is shorter, no round trip times are given.
++.SH "DUPLICATE AND DAMAGED PACKETS"
++.PP
++\fBping\fR will report duplicate and damaged packets.
++Duplicate packets should never occur, and seem to be caused by
++inappropriate link-level retransmissions.
++Duplicates may occur in many situations and are rarely (if ever) a
++good sign, although the presence of low levels of duplicates may not
++always be cause for alarm.
++.PP
++Damaged packets are obviously serious cause for alarm and often
++indicate broken hardware somewhere in the
++\fBping\fR packet's path (in the network or in the hosts).
++.SH "TRYING DIFFERENT DATA PATTERNS"
++.PP
++The (inter)network layer should never treat packets differently depending
++on the data contained in the data portion.
++Unfortunately, data-dependent problems have been known to sneak into
++networks and remain undetected for long periods of time.
++In many cases the particular pattern that will have problems is something
++that doesn't have sufficient ``transitions'', such as all ones or all
++zeros, or a pattern right at the edge, such as almost all zeros.
++It isn't necessarily enough to specify a data pattern of all zeros (for
++example) on the command line because the pattern that is of interest is
++at the data link level, and the relationship between what you type and
++what the controllers transmit can be complicated.
++.PP
++This means that if you have a data-dependent problem you will probably
++have to do a lot of testing to find it.
++If you are lucky, you may manage to find a file that either can't be sent
++across your network or that takes much longer to transfer than other
++similar length files.
++You can then examine this file for repeated patterns that you can test
++using the \fB-p\fR option of \fBping\fR.
++.SH "TTL DETAILS"
++.PP
++The TTL value of an IP packet represents the maximum number of IP routers
++that the packet can go through before being thrown away.
++In current practice you can expect each router in the Internet to decrement
++the TTL field by exactly one.
++.PP
++The TCP/IP specification states that the TTL field for TCP
++packets should be set to 60, but many systems use smaller values
++(4.3 BSD uses 30, 4.2 used 15).
++.PP
++The maximum possible value of this field is 255, and most Unix systems set
++the TTL field of ICMP ECHO_REQUEST packets to 255.
++This is why you will find you can ``ping'' some hosts, but not reach them
++with
++\fBtelnet\fR(1)
++or
++\fBftp\fR(1).
++.PP
++In normal operation ping prints the ttl value from the packet it receives.
++When a remote system receives a ping packet, it can do one of three things
++with the TTL field in its response:
++.TP 0.2i
++\(bu
++Not change it; this is what Berkeley Unix systems did before the
++4.3BSD Tahoe release. In this case the TTL value in the received packet
++will be 255 minus the number of routers in the round-trip path.
++.TP 0.2i
++\(bu
++Set it to 255; this is what current Berkeley Unix systems do.
++In this case the TTL value in the received packet will be 255 minus the
++number of routers in the path \fBfrom\fR
++the remote system \fBto\fR the \fBping\fRing host.
++.TP 0.2i
++\(bu
++Set it to some other value. Some machines use the same value for
++ICMP packets that they use for TCP packets, for example either 30 or 60.
++Others may use completely wild values.
++.SH "BUGS"
++.TP 0.2i
++\(bu
++Many Hosts and Gateways ignore the RECORD_ROUTE option.
++.TP 0.2i
++\(bu
++The maximum IP header length is too small for options like
++RECORD_ROUTE to be completely useful.
++There's not much that that can be done about this, however.
++.TP 0.2i
++\(bu
++Flood pinging is not recommended in general, and flood pinging the
++broadcast address should only be done under very controlled conditions.
++.SH "SEE ALSO"
++.PP
++\fBnetstat\fR(1),
++\fBifconfig\fR(8).
++.SH "HISTORY"
++.PP
++The \fBping\fR command appeared in 4.3BSD.
++.PP
++The version described here is its descendant specific to Linux.
++.SH "SECURITY"
++.PP
++\fBping\fR requires CAP_NET_RAWIO capability
++to be executed. It may be used as set-uid root.
++.SH "AVAILABILITY"
++.PP
++\fBping\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
+--- /dev/null 2011-01-26 09:02:28.396666668 -0500
++++ iputils-s20101006/doc/rdisc.8 2011-01-19 04:10:20.000000000 -0500
+@@ -0,0 +1,110 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "RDISC" "8" "19 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++rdisc \- network router discovery daemon
++.SH SYNOPSIS
++
++\fBrdisc\fR [ \fB-abdfstvV\fR] [ \fB\fIsend_address\fB\fR] [ \fB\fIreceive_address\fB\fR]
++
++.SH "DESCRIPTION"
++.PP
++\fBrdisc\fR implements client side of the ICMP router discover protocol.
++\fBrdisc\fR is invoked at boot time to populate the network
++routing tables with default routes.
++.PP
++\fBrdisc\fR listens on the ALL_HOSTS (224.0.0.1) multicast address
++(or \fIreceive_address\fR provided it is given)
++for ROUTER_ADVERTISE messages from routers. The received
++messages are handled by first ignoring those listed router addresses
++with which the host does not share a network. Among the remaining addresses
++the ones with the highest preference are selected as default routers
++and a default route is entered in the kernel routing table
++for each one of them.
++.PP
++Optionally, \fBrdisc\fR can avoid waiting for routers to announce
++themselves by sending out a few ROUTER_SOLICITATION messages
++to the ALL_ROUTERS (224.0.0.2) multicast address
++(or \fIsend_address\fR provided it is given)
++when it is started.
++.PP
++A timer is associated with each router address and the address will
++no longer be considered for inclusion in the the routing tables if the
++timer expires before a new
++\fBadvertise\fR message is received from the router.
++The address will also be excluded from consideration if the host receives an
++\fBadvertise\fR
++message with the preference being maximally negative.
++.PP
++Server side of router discovery protocol is supported by Cisco IOS
++and by any more or less complete UNIX routing daemon, f.e \fBgated\fR.
++.SH "OPTIONS"
++.TP
++\fB-a\fR
++Accept all routers independently of the preference they have in their
++\fBadvertise\fR messages.
++Normally \fBrdisc\fR only accepts (and enters in the kernel routing
++tables) the router or routers with the highest preference.
++.TP
++\fB-b\fR
++Opposite to \fB-a\fR, i.e. install only router with the best
++preference value. It is default behaviour.
++.TP
++\fB-d\fR
++Send debugging messages to syslog.
++.TP
++\fB-f\fR
++Run \fBrdisc\fR forever even if no routers are found.
++Normally \fBrdisc\fR gives up if it has not received any
++\fBadvertise\fR message after after soliciting three times,
++in which case it exits with a non-zero exit code.
++If \fB-f\fR is not specified in the first form then
++\fB-s\fR must be specified.
++.TP
++\fB-s\fR
++Send three \fBsolicitation\fR messages initially to quickly discover
++the routers when the system is booted.
++When \fB-s\fR is specified \fBrdisc\fR
++exits with a non-zero exit code if it can not find any routers.
++This can be overridden with the \fB-f\fR option.
++.TP
++\fB-t\fR
++Test mode. Do not go to background.
++.TP
++\fB-v\fR
++Be verbose i.e. send lots of debugging messages to syslog.
++.TP
++\fB-V\fR
++Print version and exit.
++.SH "HISTORY"
++.PP
++This program was developed by Sun Microsystems (see copyright
++notice in source file). It was ported to Linux by
++Alexey Kuznetsov
++<kuznet@ms2.inr.ac.ru>.
++It is now maintained by
++YOSHIFUJI Hideaki
++<yoshfuji@skbuff.net>.
++.SH "SEE ALSO"
++.PP
++\fBicmp\fR(7),
++\fBinet\fR(7),
++\fBping\fR(8).
++.SH "REFERENCES"
++.PP
++Deering, S.E.,ed "ICMP Router Discovery Messages",
++RFC1256, Network Information Center, SRI International,
++Menlo Park, Calif., September 1991.
++.SH "SECURITY"
++.PP
++\fBrdisc\fR requires CAP_NET_RAWIO to listen
++and send ICMP messages and capability CAP_NET_ADMIN
++to update routing tables.
++.SH "AVAILABILITY"
++.PP
++\fBrdisc\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
+--- /dev/null 2011-01-26 09:02:28.396666668 -0500
++++ iputils-s20101006/doc/tracepath.8 2011-01-19 04:10:20.000000000 -0500
+@@ -0,0 +1,97 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "TRACEPATH" "8" "19 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++tracepath, tracepath6 \- traces path to a network host discovering MTU along this path
++.SH SYNOPSIS
++
++\fBtracepath\fR [ \fB-n\fR] [ \fB-b\fR] [ \fB-l \fIpktlen\fB\fR] \fB\fIdestination\fB\fR [ \fB\fIport\fB\fR]
++
++.SH "DESCRIPTION"
++.PP
++It traces path to \fIdestination\fR discovering MTU along this path.
++It uses UDP port \fIport\fR or some random port.
++It is similar to \fBtraceroute\fR, only does not require superuser
++privileges and has no fancy options.
++.PP
++\fBtracepath6\fR is good replacement for \fBtraceroute6\fR
++and classic example of application of Linux error queues.
++The situation with IPv4 is worse, because commercial
++IP routers do not return enough information in icmp error messages.
++Probably, it will change, when they will be updated.
++For now it uses Van Jacobson's trick, sweeping a range
++of UDP ports to maintain trace history.
++.SH "OPTIONS"
++.TP
++\fB-n\fR
++Print primarily IP addresses numerically.
++.TP
++\fB-b\fR
++Print both of host names and IP addresses.
++.TP
++\fB-l\fR
++Sets the initial packet length to \fIpktlen\fR instead of
++65536 for \fBtracepath\fR or 128000 for \fBtracepath6\fR.
++.SH "OUTPUT"
++.PP
++
++.nf
++root@mops:~ # tracepath6 3ffe:2400:0:109::2
++ 1?: [LOCALHOST] pmtu 1500
++ 1: dust.inr.ac.ru 0.411ms
++ 2: dust.inr.ac.ru asymm 1 0.390ms pmtu 1480
++ 2: 3ffe:2400:0:109::2 463.514ms reached
++ Resume: pmtu 1480 hops 2 back 2
++.fi
++.PP
++The first column shows TTL of the probe, followed by colon.
++Usually value of TTL is obtained from reply from network,
++but sometimes reply does not contain necessary information and
++we have to guess it. In this case the number is followed by ?.
++.PP
++The second column shows the network hop, which replied to the probe.
++It is either address of router or word [LOCALHOST], if
++the probe was not sent to the network.
++.PP
++The rest of line shows miscellaneous information about path to
++the correspinding hetwork hop. As rule it contains value of RTT.
++Additionally, it can show Path MTU, when it changes.
++If the path is asymmetric
++or the probe finishes before it reach prescribed hop, difference
++between number of hops in forward and backward direction is shown
++following keyword async. This information is not reliable.
++F.e. the third line shows asymmetry of 1, it is because the first probe
++with TTL of 2 was rejected at the first hop due to Path MTU Discovery.
++.PP
++The last line summarizes information about all the path to the destination,
++it shows detected Path MTU, amount of hops to the destination and our
++guess about amount of hops from the destination to us, which can be
++different when the path is asymmetric.
++.SH "SEE ALSO"
++.PP
++\fBtraceroute\fR(8),
++\fBtraceroute6\fR(8),
++\fBping\fR(8).
++.SH "AUTHOR"
++.PP
++\fBtracepath\fR was written by
++Alexey Kuznetsov
++<kuznet@ms2.inr.ac.ru>.
++.SH "SECURITY"
++.PP
++No security issues.
++.PP
++This lapidary deserves to be elaborated.
++\fBtracepath\fR is not a privileged program, unlike
++\fBtraceroute\fR, \fBping\fR and other beasts of this kind.
++\fBtracepath\fR may be executed by everyone who has some access
++to network, enough to send UDP datagrams to investigated destination
++using given port.
++.SH "AVAILABILITY"
++.PP
++\fBtracepath\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
+diff -Naur /dev/null iputils-s20101006/doc/rarpd.8
+--- /dev/null 2011-01-26 09:02:28.396666668 -0500
++++ iputils-s20101006/doc/rarpd.8 2011-01-08 20:09:51.270811811 -0500
+@@ -0,0 +1,84 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "RARPD" "8" "08 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++rarpd \- answer RARP REQUESTs
++.SH SYNOPSIS
++
++\fBarping\fR [\fB-aAvde\fR] [\fB-b \fIbootdir\fB\fR] [\fB\fIinterface\fB\fR]
++
++.SH "DESCRIPTION"
++.PP
++Listens
++RARP
++requests from clients. Provided MAC address of client
++is found in \fI/etc/ethers\fR database and
++obtained host name is resolvable to an IP address appropriate
++for attached network, \fBrarpd\fR answers to client with RARPD
++reply carrying an IP address.
++.PP
++To allow multiple boot servers on the network \fBrarpd\fR
++optionally checks for presence Sun-like bootable image in TFTP directory.
++It should have form \fBHexadecimal_IP.ARCH\fR, f.e. to load
++sparc 193.233.7.98 \fIC1E90762.SUN4M\fR is linked to
++an image appropriate for SUM4M in directory \fI/etc/tftpboot\fR.
++.SH "WARNING"
++.PP
++This facility is deeply obsoleted by
++BOOTP
++and later
++DHCP protocols.
++However, some clients really still need this to boot.
++.SH "OPTIONS"
++.TP
++\fB-a\fR
++Listen on all the interfaces. Currently it is an internal
++option, its function is overridden with \fIinterface\fR
++argument. It should not be used.
++.TP
++\fB-A\fR
++Listen not only RARP but also ARP messages, some rare clients
++use ARP by some unknown reason.
++.TP
++\fB-v\fR
++Be verbose.
++.TP
++\fB-d\fR
++Debug mode. Do not go to background.
++.TP
++\fB-e\fR
++Do not check for presence of a boot image, reply if MAC address
++resolves to a valid IP address using \fI/etc/ethers\fR
++database and DNS.
++.TP
++\fB-b \fIbootdir\fB\fR
++TFTP boot directory. Default is \fI/etc/tftpboot\fR
++.SH "SEE ALSO"
++.PP
++\fBarping\fR(8),
++\fBtftpd\fR(8).
++.SH "AUTHOR"
++.PP
++\fBrarpd\fR was written by
++Alexey Kuznetsov
++<kuznet@ms2.inr.ac.ru>.
++It is now maintained by
++YOSHIFUJI Hideaki
++<yoshfuji@skbuff.net>.
++.SH "SECURITY"
++.PP
++\fBrarpd\fR requires CAP_NET_RAWIO capability
++to listen and send RARP and ARP packets. It also needs CAP_NET_ADMIN
++to give to kernel hint for ARP resolution; this is not strictly required,
++but some (most of, to be more exact) clients are so badly broken that
++are not able to answer ARP before they are finally booted. This is
++not wonderful taking into account that clients using RARPD in 2002
++are all unsupported relic creatures of 90's and even earlier.
++.SH "AVAILABILITY"
++.PP
++\fBrarpd\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
+diff -Naur /dev/null iputils-s20101006/doc/tftpd.8
+--- /dev/null 2011-01-26 09:02:28.396666668 -0500
++++ iputils-s20101006/doc/tftpd.8 2011-01-08 20:09:51.723407498 -0500
+@@ -0,0 +1,85 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "TFTPD" "8" "08 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++tftpd \- Trivial File Transfer Protocol server
++.SH SYNOPSIS
++
++\fBtftpd\fR \fB\fIdirectory\fB\fR
++
++.SH "DESCRIPTION"
++.PP
++\fBtftpd\fR is a server which supports the DARPA
++Trivial File Transfer Protocol
++(RFC1350).
++The TFTP server is started
++by \fBinetd\fR(8).
++.PP
++\fIdirectory\fR is required argument; if it is not given
++\fBtftpd\fR aborts. This path is prepended to any file name requested
++via TFTP protocol, effectively chrooting \fBtftpd\fR to this directory.
++File names are validated not to escape out of this directory, however
++administrator may configure such escape using symbolic links.
++.PP
++It is in difference of variants of \fBtftpd\fR usually distributed
++with unix-like systems, which take a list of directories and match
++file names to start from one of given prefixes or to some random
++default, when no arguments were given. There are two reasons not to
++behave in this way: first, it is inconvenient, clients are not expected
++to know something about layout of filesystem on server host.
++And second, TFTP protocol is not a tool for browsing of server's filesystem,
++it is just an agent allowing to boot dumb clients.
++.PP
++In the case when \fBtftpd\fR is used together with
++\fBrarpd\fR(8),
++tftp directories in these services should coincide and it is expected
++that each client booted via TFTP has boot image corresponding
++its IP address with an architecture suffix following Sun Microsystems
++conventions. See
++\fBrarpd\fR(8)
++for more details.
++.SH "SECURITY"
++.PP
++TFTP protocol does not provide any authentication.
++Due to this capital flaw \fBtftpd\fR is not able to restrict
++access to files and will allow only publically readable
++files to be accessed. Files may be written only if they already
++exist and are publically writable.
++.PP
++Impact is evident, directory exported via TFTP \fBmust not\fR
++contain sensitive information of any kind, everyone is allowed
++to read it as soon as a client is allowed. Boot images do not contain
++such information as rule, however you should think twice before
++publishing f.e. Cisco IOS config files via TFTP, they contain
++\fBunencrypted\fR passwords and may contain some information
++about the network, which you were not going to make public.
++.PP
++The \fBtftpd\fR server should be executed by \fBinetd\fR
++with dropped root privileges, namely with a user ID giving minimal
++access to files published in tftp directory. If it is executed
++as superuser occasionally, \fBtftpd\fR drops its UID and GID
++to 65534, which is most likely not the thing which you expect.
++However, this is not very essential; remember, only files accessible
++for everyone can be read or written via TFTP.
++.SH "SEE ALSO"
++.PP
++\fBrarpd\fR(8),
++\fBtftp\fR(1),
++\fBinetd\fR(8).
++.SH "HISTORY"
++.PP
++The \fBtftpd\fR command appeared in 4.2BSD. The source in iputils
++is cleaned up both syntactically (ANSIized) and semantically (UDP socket IO).
++.PP
++It is distributed with iputils mostly as good demo of an interesting feature
++(MSG_CONFIRM) allowing to boot long images by dumb clients
++not answering ARP requests until they are finally booted.
++However, this is full functional and can be used in production.
++.SH "AVAILABILITY"
++.PP
++\fBtftpd\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
+diff -Naur /dev/null iputils-s20101006/doc/traceroute6.8
+--- /dev/null 1969-12-31 19:00:00.000000000 -0500
++++ iputils-s20101006/doc/traceroute6.8 2011-01-08 20:09:52.114781859 -0500
+@@ -0,0 +1,42 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "TRACEROUTE6" "8" "08 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++traceroute6 \- traces path to a network host
++.SH SYNOPSIS
++
++\fBtraceroute6\fR [\fB-dnrvV\fR] [\fB-i \fIinterface\fB\fR] [\fB-m \fImax_ttl\fB\fR] [\fB-p \fIport\fB\fR] [\fB-q \fImax_probes\fB\fR] [\fB-s \fIsource\fB\fR] [\fB-w \fIwait time\fB\fR] \fB\fIdestination\fB\fR [\fB\fIsize\fB\fR]
++
++.SH "DESCRIPTION"
++.PP
++Description can be found in
++\fBtraceroute\fR(8),
++all the references to IP replaced to IPv6. It is needless to copy
++the description from there.
++.SH "SEE ALSO"
++.PP
++\fBtraceroute\fR(8),
++\fBtracepath\fR(8),
++\fBping\fR(8).
++.SH "HISTORY"
++.PP
++This program has long history. Author of \fBtraceroute\fR
++is Van Jacobson and it first appeared in 1988. This clone is
++based on a port of \fBtraceroute\fR to IPv6 published
++in NRL IPv6 distribution in 1996. In turn, it was ported
++to Linux by Pedro Roque. After this it was kept in sync by
++Alexey Kuznetsov
++<kuznet@ms2.inr.ac.ru>. And eventually entered
++\fBiputils\fR package.
++.SH "SECURITY"
++.PP
++\fBtracepath6\fR requires CAP_NET_RAWIO capability
++to be executed. It is safe to be used as set-uid root.
++.SH "AVAILABILITY"
++.PP
++\fBtraceroute6\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
diff --git a/testing/iputils/permission-fix.patch b/testing/iputils/permission-fix.patch
new file mode 100644
index 000000000..c47636f84
--- /dev/null
+++ b/testing/iputils/permission-fix.patch
@@ -0,0 +1,15 @@
+--- traceroute-1.4a12/Makefile.in.old 2000-11-23 21:05:29.000000000 +0100
++++ traceroute-1.4a12/Makefile.in 2008-09-27 20:04:30.000000000 +0200
+@@ -90,10 +90,10 @@
+ sed -e 's/.*/char version[] = "&";/' $(srcdir)/VERSION > $@
+
+ install: force
+- $(INSTALL) -m 4555 -o root -g bin traceroute $(DESTDIR)$(BINDEST)
++ $(INSTALL) -m 4555 -o root -g root traceroute $(DESTDIR)$(BINDEST)
+
+ install-man: force
+- $(INSTALL) -m 444 -o bin -g bin traceroute.8 $(DESTDIR)$(MANDEST)/man8
++ $(INSTALL) -m 644 -o root -g root traceroute.8 $(DESTDIR)$(MANDEST)/man8
+
+ lint: $(GENSRC) force
+ lint -hbxn $(SRC) | \
diff --git a/testing/isdn4k-utils/PKGBUILD b/testing/isdn4k-utils/PKGBUILD
new file mode 100644
index 000000000..59f7943ca
--- /dev/null
+++ b/testing/isdn4k-utils/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 141935 2011-11-03 10:53:42Z tpowa $
+# Contributor: Dennis "Gyroplast" Herbrich <dennis@archlinux.org>
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=isdn4k-utils
+pkgver=3.2p1
+pkgrel=7
+pkgdesc="User space administration programs and tools for ISDN"
+arch=('i686' 'x86_64')
+url="http://www.isdn4linux.de/"
+license=('GPL')
+depends=('ncurses')
+backup=(etc/isdn/{callerid.conf,isdn.conf,rate.conf,isdnlog.isdnctrl0.options})
+options=('!makeflags')
+source=(ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/${pkgname}.v${pkgver}.tar.bz2
+ isdn4k-utils-3.2p1-build.patch
+ config)
+md5sums=('d347afa462e46eccfd1284aebae227b6'
+ '7f056ddac093c77d8be4e076d0e9421c'
+ '3429894039f33c114fef5ef9f866920e')
+
+build() {
+ cd $srcdir/$pkgname
+ patch -Np1 -i $srcdir/isdn4k-utils-3.2p1-build.patch
+ cp $srcdir/config ./.config
+ make subconfig
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname
+ install -dm755 $pkgdir/sbin
+ make DESTDIR=$pkgdir install
+}
diff --git a/testing/isdn4k-utils/config b/testing/isdn4k-utils/config
new file mode 100644
index 000000000..fe0810209
--- /dev/null
+++ b/testing/isdn4k-utils/config
@@ -0,0 +1,100 @@
+#
+# Automatically generated by make menuconfig: don't edit
+#
+
+#
+# Code maturity level options
+#
+# CONFIG_EXPERIMENTAL is not set
+
+#
+# General configuration
+#
+# CONFIG_BUILDX11 is not set
+CONFIG_KERNELDIR='/usr/src/linux'
+CONFIG_BINDIR='/usr/bin'
+CONFIG_SBINDIR='/sbin'
+CONFIG_MANDIR='/usr/share/man'
+CONFIG_RUNDIR='/var/run'
+CONFIG_LOCKDIR='/var/lock'
+CONFIG_LOCKFILE='LCK..'
+CONFIG_I4LCONFDIR='/etc/isdn'
+CONFIG_CONFFILE='isdn.conf'
+CONFIG_CALLERIDFILE='callerid.conf'
+CONFIG_USERCONFFILE='~/.isdn'
+CONFIG_COUNTRYCODE='49'
+CONFIG_AREACODE=''
+CONFIG_COUNTRY_PREFIX='+'
+CONFIG_AREA_PREFIX='0'
+CONFIG_DATADIR='/usr/lib/isdn'
+
+#
+# Runtime configuration tools
+#
+CONFIG_ISDNCTRL=y
+CONFIG_ISDNCTRL_CONF=y
+# CONFIG_ISDNCTRL_TIMRU is not set
+# CONFIG_IPROFD is not set
+# CONFIG_DIVERTCTRL is not set
+
+#
+# Card configuration tools
+#
+CONFIG_HISAXCTRL=y
+CONFIG_ICNCTRL=y
+# CONFIG_ICNCTRL_DEBUG is not set
+CONFIG_PCBITCTL=y
+# CONFIG_AVMCAPICTRL is not set
+# CONFIG_EICONCTRL is not set
+
+#
+# Tools for monitoring activity
+#
+CONFIG_IMON=y
+CONFIG_IMONTTY=y
+CONFIG_ISDNLOG=y
+
+#
+# Options for isdnlog package
+#
+CONFIG_ISDNLOG_SERV_PORT=20011
+CONFIG_ISDNLOG_USERFILE='isdnlog.users'
+CONFIG_ISDNLOG_CHARGEFILE='charge.dat'
+CONFIG_ISDNLOG_LOGFILE='/var/log/isdn.log'
+CONFIG_ISDNLOG_RELOADCMD='reload'
+CONFIG_ISDNLOG_STOPCMD='stop'
+CONFIG_ISDNLOG_REBOOTCMD='/sbin/reboot'
+CONFIG_ISDNLOG_OLDI4LCONFDIR='/etc/isdnlog'
+CONFIG_ISDNLOG_OLDI4LCONFFILE='isdnlog.conf'
+# CONFIG_ISDNLOG_POSTGRES is not set
+# CONFIG_ISDNLOG_MYSQLDB is not set
+# CONFIG_ISDNLOG_ORACLE is not set
+CONFIG_ISDN_LOG_DE=y
+CONFIG_ISDN_LOG_CC_DE=y
+CONFIG_ISDN_LOG_DEST_DE=y
+CONFIG_ISDN_LOG_DEST_AT=y
+CONFIG_ISDN_LOG_DEST_NL=y
+CONFIG_ISDN_LOG_DEST_CH=y
+CONFIG_IPPPSTATS=y
+# CONFIG_XISDNLOAD is not set
+# CONFIG_XMONISDN is not set
+
+#
+# Applications
+#
+# CONFIG_VBOX is not set
+CONFIG_IPPPD=y
+
+#
+# Options for ipppd
+#
+# CONFIG_IPPPD_MSCHAP is not set
+# CONFIG_IPPPD_RADIUS is not set
+# CONFIG_RADIUS_WTMP_LOGGING is not set
+RADIUS_CLIENT_CONFIG_FILE=''
+
+#
+# Documentation
+#
+CONFIG_GENMAN=y
+# CONFIG_FAQ is not set
diff --git a/testing/isdn4k-utils/isdn4k-utils-3.2p1-build.patch b/testing/isdn4k-utils/isdn4k-utils-3.2p1-build.patch
new file mode 100644
index 000000000..63239fcad
--- /dev/null
+++ b/testing/isdn4k-utils/isdn4k-utils-3.2p1-build.patch
@@ -0,0 +1,2028 @@
+diff -Naur isdn4k-utils-orig//eicon/eiconctrl.c isdn4k-utils/eicon/eiconctrl.c
+--- isdn4k-utils-orig//eicon/eiconctrl.c 2001-06-22 02:34:45.000000000 +1000
++++ isdn4k-utils/eicon/eiconctrl.c 2010-12-04 20:44:11.093338893 +1000
+@@ -1970,7 +1970,7 @@
+ val = strtol(p, &q, 16);
+ p = q;
+ val = strtol(p, &q, 16);
+- (unsigned short) *buffer = (unsigned short) val;
++ *buffer = (unsigned short) val;
+ pos = 2;
+ while ((p != q) && (*q != 0)) {
+ p = q;
+diff -Naur isdn4k-utils-orig//hisax/hisaxctrl.c isdn4k-utils/hisax/hisaxctrl.c
+--- isdn4k-utils-orig//hisax/hisaxctrl.c 2000-06-30 19:37:38.000000000 +1000
++++ isdn4k-utils/hisax/hisaxctrl.c 2010-12-04 20:44:11.093338893 +1000
+@@ -43,7 +43,8 @@
+ fprintf(stderr, "cannot open file %s\n", fname);
+ exit(-1);
+ }
+- p = (int *) buffer = (unsigned char *) malloc(MAX_SIZE+4);
++ buffer = (unsigned char *) malloc(MAX_SIZE+4);
++ p = (int *) buffer;
+ if (!buffer) {
+ fprintf(stderr, "cannot get %d byte memory\n", MAX_SIZE+4);
+ exit(-1);
+diff -Naur isdn4k-utils-orig//hisax/Makefile.in isdn4k-utils/hisax/Makefile.in
+--- isdn4k-utils-orig//hisax/Makefile.in 2002-07-20 05:03:51.000000000 +1000
++++ isdn4k-utils/hisax/Makefile.in 2010-12-04 20:44:03.726672225 +1000
+@@ -30,7 +30,7 @@
+ #.SUFFIXES:
+ #.SUFFIXES: .c .o
+
+-%.8: %.man
++%.8: %.man.in
+ cp $< $@
+
+ all: $(PROGRAMS) $(MANPAGES)
+diff -Naur isdn4k-utils-orig//ipppd/main.c isdn4k-utils/ipppd/main.c
+--- isdn4k-utils-orig//ipppd/main.c 2002-07-18 10:06:21.000000000 +1000
++++ isdn4k-utils/ipppd/main.c 2010-12-04 20:44:11.093338893 +1000
+@@ -1041,9 +1041,14 @@
+ static char line[256]; /* line to be logged accumulated here */
+ static char *linep;
+
++#ifdef __STDC__
++static void pr_log(void *arg, char *fmt, ...);
++#else /* __STDC__ */
++static void pr_log(arg, fmt, va_alist);
++#endif
++
+ void log_packet(u_char *p,int len,char *prefix,int linkunit)
+ {
+- static void pr_log __P((void *, char *, ...));
+
+ int i, n;
+ u_short proto;
+diff -Naur isdn4k-utils-orig//ipppd/options.c isdn4k-utils/ipppd/options.c
+--- isdn4k-utils-orig//ipppd/options.c 2002-07-06 10:34:08.000000000 +1000
++++ isdn4k-utils/ipppd/options.c 2010-12-04 20:43:57.890005560 +1000
+@@ -479,26 +479,24 @@
+ #define IMPLEMENTATION ""
+ #endif
+
+-static char *usage_string = "\
+-ipppd version %s patch level %d%s\n\
+-Usage: %s [ options ], where options are:\n\
+-\t<device> Communicate over the named device\n\
++static char *usage_string = "ipppd version %s patch level %d%s\n"
++"Usage: %s [ options ], where options are:\n"
++"\t<device> Communicate over the named device\n"
+ #ifdef INCLUDE_OBSOLETE_FEATURES
+-\tcrtscts Use hardware RTS/CTS flow control\n\
+-\t<speed> Set the baud rate to <speed>\n\
+-\tmodem Use modem control lines\n\
++"\tcrtscts Use hardware RTS/CTS flow control\n"
++"\t<speed> Set the baud rate to <speed>\n"
++"\tmodem Use modem control lines\n"
+ #endif
+-\t<loc>:<rem> Set the local and/or remote interface IP\n\
+-\t\taddresses. (you also may use the option 'useifip' to get IPs).\n\
+-\tasyncmap <n> Set the desired async map to hex <n>\n\
+-\tauth Require authentication from peer\n\
+-\tconnect <p> Invoke shell command <p> to set up the serial line\n\
+-\tdefaultroute Add default route through interface\n\
+-\tfile <f> Take options from file <f>\n\
+-\tmru <n> Set MRU value to <n> for negotiation\n\
+-\tnetmask <n> Set interface netmask to <n>\n\
+-See ipppd(8) for more options.\n\
+-";
++"\t<loc>:<rem> Set the local and/or remote interface IP\n"
++"\t\t\taddresses. (you also may use the option 'useifip' to get IPs).\n"
++"\tasyncmap <n> Set the desired async map to hex <n>\n"
++"\tauth Require authentication from peer\n"
++"\tconnect <p> Invoke shell command <p> to set up the serial line\n"
++"\tdefaultroute Add default route through interface\n"
++"\tfile <f> Take options from file <f>\n"
++"\tmru <n> Set MRU value to <n> for negotiation\n"
++"\tnetmask <n> Set interface netmask to <n>\n"
++"See ipppd(8) for more options.\n";
+
+ static char *current_option; /* the name of the option being parsed */
+
+diff -Naur isdn4k-utils-orig//isdnlog/isdnlog/isdnlog.h isdn4k-utils/isdnlog/isdnlog/isdnlog.h
+--- isdn4k-utils-orig//isdnlog/isdnlog/isdnlog.h 2001-06-22 02:34:56.000000000 +1000
++++ isdn4k-utils/isdnlog/isdnlog/isdnlog.h 2010-12-04 20:44:03.780005559 +1000
+@@ -460,7 +460,7 @@
+
+ _EXTERN void dotrace(void);
+ _EXTERN int morectrl(int card);
+-_EXTERN void moreinfo(void);
++extern void moreinfo(void);
+ _EXTERN void morekbd(void);
+ _EXTERN void processcint(void);
+ _EXTERN void processflow(void);
+diff -Naur isdn4k-utils-orig//isdnlog/isdnlog/processor.c isdn4k-utils/isdnlog/isdnlog/processor.c
+--- isdn4k-utils-orig//isdnlog/isdnlog/processor.c 2002-04-02 04:06:10.000000000 +1000
++++ isdn4k-utils/isdnlog/isdnlog/processor.c 2010-12-04 20:44:03.783338893 +1000
+@@ -5293,7 +5293,7 @@
+ tei = BROADCAST; /* Wenn nach einer tei-Zeile keine hex:-Zeile kommt, tei ungueltig machen! */
+
+ if ((type == SETUP) && !replay) { /* fetch additional info from "/dev/isdninfo" */
+- static void moreinfo(); /* soviel zu Objektorientiertem Denken ;-) */
++ /*static void moreinfo(); */ /* soviel zu Objektorientiertem Denken ;-) */
+ moreinfo();
+ } /* if */
+
+diff -Naur isdn4k-utils-orig//isdnlog/Makefile.in isdn4k-utils/isdnlog/Makefile.in
+--- isdn4k-utils-orig//isdnlog/Makefile.in 2002-07-20 05:03:55.000000000 +1000
++++ isdn4k-utils/isdnlog/Makefile.in 2010-12-04 20:44:03.730005560 +1000
+@@ -1842,9 +1842,6 @@
+ $(INSTALL_DATA) $$f $(DESTDIR)$(DATADIR); \
+ echo Installing $(DESTDIR)$(DATADIR)/$$f; \
+ done
+- @(grep isdnlog $(SERVICEFILE) >/dev/null) || \
+- (echo "";echo "";echo "Add a line to the file $(SERVICEFILE)" ;echo "";echo ""; \
+- echo "isdnlog $(SERV_PORT)/tcp isdnlog" >> $(SERVICEFILE))
+
+ install-strip:
+ $(MAKE) INSTALL_BIN='$(INSTALL_BIN) -s' \
+diff -Naur isdn4k-utils-orig//isdnlog/tools/cdb/cdbmake.c isdn4k-utils/isdnlog/tools/cdb/cdbmake.c
+--- isdn4k-utils-orig//isdnlog/tools/cdb/cdbmake.c 2002-02-22 21:10:25.000000000 +1000
++++ isdn4k-utils/isdnlog/tools/cdb/cdbmake.c 2010-12-04 20:44:03.786672226 +1000
+@@ -3,8 +3,6 @@
+ #include "freecdbmake.h"
+ #include <unistd.h>
+
+-extern char *malloc();
+-
+ void diesys(why) char *why; { perror(why); exit(111); }
+
+ void writeerror() { diesys("cdbmake: fatal: unable to write"); }
+diff -Naur isdn4k-utils-orig//isdnlog/tools/isdnrate.c isdn4k-utils/isdnlog/tools/isdnrate.c
+--- isdn4k-utils-orig//isdnlog/tools/isdnrate.c 2001-06-22 02:34:56.000000000 +1000
++++ isdn4k-utils/isdnlog/tools/isdnrate.c 2010-12-04 20:44:11.096672226 +1000
+@@ -304,7 +304,7 @@
+
+ static void print_header(void);
+
+-static char *myname, *myshortname;
++char *myname, *myshortname;
+ static char options[] = "ab:d:f:h:l:op:st:v::x:CD::G:HLNP:O:S:TUVX::Z";
+ static char usage[] = "%s: usage: %s [ -%s ] Destination ...\n";
+
+@@ -313,7 +313,7 @@
+ static int usestat = 0;
+ static int duration = LCR_DURATION;
+ static time_t start;
+-static int day, month, year, hour, min, sec;
++int day, month, year, hour, min, sec;
+ static char ignore[MAXPROVIDER];
+ static char *fromarea = 0;
+ static char wanted_day;
+diff -Naur isdn4k-utils-orig//isdnlog/tools/isdnrate.c.orig isdn4k-utils/isdnlog/tools/isdnrate.c.orig
+--- isdn4k-utils-orig//isdnlog/tools/isdnrate.c.orig 1970-01-01 10:00:00.000000000 +1000
++++ isdn4k-utils/isdnlog/tools/isdnrate.c.orig 2001-06-22 02:34:56.000000000 +1000
+@@ -0,0 +1,1806 @@
++/* $Id: isdnrate.c,v 1.38 2001/03/01 14:59:16 paul Exp $
++
++ * ISDN accounting for isdn4linux. (rate evaluation)
++ *
++ * Copyright 1995 .. 2000 by Andreas Kool (akool@isdn4linux.de)
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ * $Log: isdnrate.c,v $
++ * Revision 1.38 2001/03/01 14:59:16 paul
++ * Various patches to fix errors when using the newest glibc,
++ * replaced use of insecure tempnam() function
++ * and to remove warnings etc.
++ *
++ * Revision 1.37 2000/07/17 16:34:23 akool
++ * isdnlog-4.32
++ * - added new Prefixes 0160 (D1) and 0162 (D2) to "country-de.dat"
++ * - corrected all german mobil phone numbers (many thank's to
++ * Tobias Becker <i4l-projects@talypso.de> for the tool "fix_rates.pl")
++ * - isdnlog/tools/rate.c ... New R:-tag
++ * - isdnlog/tools/isdnrate.c ... print warnings from getRate if verbose
++ * - isdnlog/tools/rate-files.man ... New R:-tag
++ * - isdnlog/tools/NEWS ... New R:-tag
++ * - isdnlog/README ... New R:-tag
++ * - isdnlog/samples/rtest.dat ... example rate-file for testing R:
++ *
++ * Revision 1.36 2000/03/09 18:50:03 akool
++ * isdnlog-4.16
++ * - isdnlog/samples/isdn.conf.no ... changed VBN
++ * - isdnlog/isdnlog/isdnlog.c .. ciInterval
++ * - isdnlog/isdnlog/processor.c .. ciInterval
++ * - isdnlog/tools/tools.h .. ciInterval, abclcr conf option
++ * - isdnlog/tools/isdnconf.c .. ciInterval, abclcr conf option
++ * - isdnlog/tools/isdnrate.c .. removed a warning
++ * - isdnlog/NEWS ... updated
++ * - isdnlog/README ... updated
++ * - isdnlog/isdnlog/isdnlog.8.in ... updated
++ * - isdnlog/isdnlog/isdnlog.5.in ... updated
++ * - isdnlog/samples/provider ... NEW
++ *
++ * ==> Please run a make clean, and be sure to read isdnlog/NEWS for changes
++ * ==> and new features.
++ *
++ * Revision 1.35 2000/03/06 07:03:21 akool
++ * isdnlog-4.15
++ * - isdnlog/tools/tools.h ... moved one_call, sum_calls to isdnrep.h
++ * ==> DO A 'make clean' PLEASE
++ * - isdnlog/tools/telnum.c ... fixed a small typo
++ * - isdnlog/isdnrep/rep_main.c ... incl. dest.h
++ * - isdnlog/isdnrep/isdnrep.c ... fixed %l, %L
++ * - isdnlog/isdnrep/isdnrep.h ... struct one_call, sum_calls are now here
++ *
++ * Support for Norway added. Many thanks to Tore Ferner <torfer@pvv.org>
++ * - isdnlog/rate-no.dat ... NEW
++ * - isdnlog/holiday-no.dat ... NEW
++ * - isdnlog/samples/isdn.conf.no ... NEW
++ * - isdnlog/samples/rate.conf.no ... NEW
++ *
++ * Revision 1.34 2000/02/28 19:53:56 akool
++ * isdnlog-4.14
++ * - Patch from Roland Rosenfeld <roland@spinnaker.de> fix for isdnrep
++ * - isdnlog/tools/rate.c ... epnum
++ * - isdnlog/tools/rate-at.c ... new rates
++ * - isdnlog/rate-at.dat
++ * - isdnlog/tools/rate-files.man ... %.3f
++ * - doc/Configure.help ... unknown cc
++ * - isdnlog/configure.in ... unknown cc
++ * - isdnlog/.Config.in ... unknown cc
++ * - isdnlog/Makefile.in ... unknown cc
++ * - isdnlog/tools/dest/Makefile.in ... LANG => DEST_LANG
++ * - isdnlog/samples/rate.conf.pl ... NEW
++ * - isdnlog/samples/isdn.conf.pl ... NEW
++ * - isdnlog/rate-pl.dat ... NEW
++ * - isdnlog/tools/isdnrate.c ... fixed -P pid_dir, restarts on HUP now
++ * - isdnlog/tools/isdnrate.man ... SIGHUP documented
++ *
++ * Revision 1.33 2000/02/12 16:40:24 akool
++ * isdnlog-4.11
++ * - isdnlog/Makefile.in ... sep install-targets, installs samples, no isdnconf
++ * - isdnlog/samples/rate.conf.{lu,nl} ... NEW
++ * - isdnlog/samples/isdn.conf.lu ... chg provider
++ * - isdnlog/samples/stop ... chg \d,\d => \d.\d
++ * - isdnlog/samples/isdnlog.isdnctrl0.options ... NEW
++ * - isdnlog/samples/isdnlog.users ... NEW
++ * - isdnlog/country-de.dat ... _DEMF again
++ * - isdnlog/isdnlog/processor.c ... LCR
++ * - isdnlog/tools/isdnrate.c ... fmt of s
++ *
++ * Old config is not installed anymore, to acomplish this do
++ *
++ * make install-old-conf
++ * make install
++ *
++ * A running isdnlog is now HUP-ed not KILL-ed
++ *
++ * Revision 1.32 2000/02/03 18:24:51 akool
++ * isdnlog-4.08
++ * isdnlog/tools/rate.c ... LCR patch again
++ * isdnlog/tools/isdnrate.c ... LCR patch again
++ * isdnbill enhanced/fixed
++ * DTAG AktivPlus fixed
++ *
++ * Revision 1.31 1999/12/31 13:57:20 akool
++ * isdnlog-4.00 (Millenium-Edition)
++ * - Oracle support added by Jan Bolt (Jan.Bolt@t-online.de)
++ * - resolved *any* warnings against rate-de.dat
++ * - Many new rates
++ * - CREDITS file added
++ *
++ * Revision 1.30 1999/12/24 14:17:05 akool
++ * isdnlog-3.81
++ * - isdnlog/tools/NEWS
++ * - isdnlog/tools/telrate/info.html.in ... bugfix
++ * - isdnlog/tools/telrate/telrate.cgi.in ... new Service query
++ * - isdnlog/tools/telrate/Makefile.in ... moved tmp below telrate
++ * - isdnlog/samples/rate.conf.at ... fixed
++ * - isdnlog/tools/rate-at.c ... some changes
++ * - isdnlog/rate-at.dat ... ditto
++ * - isdnlog/tools/Makefile ... added path to pp_rate
++ * - isdnlog/tools/rate.{c,h} ... getServiceNames, Date-Range in T:-Tag
++ * - isdnlog/tools/isdnrate.c ... fixed sorting of services, -X52 rets service names
++ * - isdnlog/tools/rate-files.man ... Date-Range in T:-Tag, moved from doc
++ * - isdnlog/tools/isdnrate.man ... moved from doc
++ * - doc/Makefile.in ... moved man's from doc to tools
++ * - isdnlog/Makefile.in ... man's, install isdn.conf.5
++ * - isdnlog/configure{,.in} ... sed, awk for man's
++ * - isdnlog/tools/zone/Makefile.in ... dataclean
++ * - isdnlog/tools/dest/Makefile.in ... dataclean
++ * - isdnlog/isdnlog/isdnlog.8.in ... upd
++ * - isdnlog/isdnlog/isdn.conf.5.in ... upd
++ *
++ * Revision 1.29 1999/12/17 22:51:55 akool
++ * isdnlog-3.79
++ * - isdnlog/isdnrep/isdnrep.{c,h} ... error -handling, print_msg
++ * - isdnlog/isdnrep/rep_main.c
++ * - isdnlog/isdnrep/isdnrep.1.in
++ * - isdnlog/tools/rate.c ... dupl entry in rate.conf
++ * - isdnlog/tools/NEWS
++ * - isdnlog/tools/isdnrate.c
++ * - isdnlog/tools/dest/configure{,.in}
++ * - isdnlog/tools/zone/configure{,.in}
++ *
++ * Revision 1.28 1999/12/16 23:08:28 akool
++ * isdnlog-3.78
++ * - isdnlog/tools/isdnrate.c ... new sOcket option
++ * - isdnlog/tools/NEWS ... new sOcket option
++ * - doc/isdnrate.man ... ditto
++ * - isdnlog/tools/telrate/config.in ... ditto
++ * - isdnlog/tools/telrate/telrate.cgi.in ... ditto
++ * - isdnlog/tools/telrate/README-telrate ditto
++ *
++ * Revision 1.27 1999/12/02 19:28:02 akool
++ * isdnlog-3.73
++ * - isdnlog/tools/telrate/telrate.cgi.in faster
++ * - doc/isdnrate.man ... -P
++ * - isdnlog/tools/isdnrate.c ... -P
++ * - isdnlog/tools/NEWS ... -P
++ * - isdnlog/tools/rate-at.c ... 194040
++ * - isdnlog/rate-at.dat
++ * - isdnlog/tools/rate.c ... SIGSEGV
++ *
++ * Revision 1.26 1999/12/01 21:47:25 akool
++ * isdnlog-3.72
++ * - new rates for 01051
++ * - next version of isdnbill
++ *
++ * - isdnlog/tools/telnum.c ... cleanup
++ * - isdnlog/tools/isdnrate.c ... -s Service
++ * - isdnlog/tools/rate.{c,h} ... -s
++ * - isdnlog/tools/NEWS ... -s
++ * - doc/isdnrate.man .. updated -o, -s
++ * - doc/rate-files.man ... updated
++ * - isdnlog/tools/dest/README.makedest ... updt.
++ * - isdnlog/isdnlog/isdnlog.8.in .. updt.
++ *
++ * Telrate
++ * - isdnlog/tools/telrate/README-telrate
++ * - isdnlog/tools/telrate/config.in NEW
++ * - isdnlog/tools/telrate/configure NEW
++ * - isdnlog/tools/telrate/Makefile.in NEW
++ * - isdnlog/tools/telrate/index.html.in was index.html
++ * - isdnlog/tools/telrate/info.html.in was info.html
++ * - isdnlog/tools/telrate/telrate.cgi.in was telrate.cgi
++ * - isdnlog/tools/telrate/leo.sample NEW sample config
++ * - isdnlog/tools/telrate/alex.sample NEW sample config
++ *
++ * Revision 1.25 1999/11/08 21:09:41 akool
++ * isdnlog-3.65
++ * - added "B:" Tag to "rate-xx.dat"
++ *
++ * Revision 1.24 1999/11/07 13:29:28 akool
++ * isdnlog-3.64
++ * - new "Sonderrufnummern" handling
++ *
++ * Revision 1.22 1999/10/26 18:17:14 akool
++ * isdnlog-3.62
++ * - many new rates
++ * - next try to fix "Sonderrufnummern"
++ *
++ * isdnlog-3.58
++ * - big cleanup ( > 1.3 Mb removed!)
++ * - v0.02 of destination support - better, but not perfect
++ * (does't work with gcc-2.7.2.3 yet - use egcs!)
++ *
++ * Revision 1.21 1999/10/25 18:30:03 akool
++ * isdnlog-3.57
++ * WARNING: Experimental version!
++ * Please use isdnlog-3.56 for production systems!
++ *
++ * Revision 1.20 1999/09/19 14:16:27 akool
++ * isdnlog-3.53
++ *
++ * Revision 1.19 1999/09/16 20:27:21 akool
++ * isdnlog-3.52
++ *
++ * Revision 1.18 1999/09/13 09:09:44 akool
++ * isdnlog-3.51
++ * - changed getProvider() to not return NULL on unknown providers
++ * many thanks to Matthias Eder <mateder@netway.at>
++ * - corrected zone-processing when doing a internal -> world call
++ *
++ * Revision 1.17 1999/09/09 11:21:05 akool
++ * isdnlog-3.49
++ *
++ * Revision 1.16 1999/08/04 23:06:52 akool
++ * Better codeall for .at
++ *
++ * Revision 1.15 1999/07/31 09:25:36 akool
++ * getRate() speedup
++ *
++ * Revision 1.14 1999/07/26 16:28:41 akool
++ * getRate() speedup from Leo
++ *
++ * Revision 1.13 1999/07/25 15:57:46 akool
++ * isdnlog-3.43
++ * added "telnum" module
++ *
++ * Revision 1.12 1999/07/24 08:45:17 akool
++ * isdnlog-3.42
++ * rate-de.dat 1.02-Germany [18-Jul-1999 10:44:21]
++ * better Support for Ackermann Euracom
++ * WEB-Interface for isdnrate
++ * many small fixes
++ *
++ * Revision 1.11 1999/07/15 16:42:04 akool
++ * small enhancement's and fixes
++ *
++ * Revision 1.10 1999/07/07 19:44:07 akool
++ * patches from Michael and Leo
++ *
++ * Revision 1.9 1999/07/04 20:47:05 akool
++ * rate-de.dat V:1.02-Germany [04-Jul-1999 22:56:37]
++ *
++ * Revision 1.8 1999/07/03 10:24:14 akool
++ * fixed Makefile
++ *
++ * Revision 1.7 1999/07/02 19:18:00 akool
++ * rate-de.dat V:1.02-Germany [02-Jul-1999 21:27:20]
++ *
++ * Revision 1.6 1999/07/02 18:20:50 akool
++ * rate-de.dat V:1.02-Germany [02-Jul-1999 20:29:21]
++ * country-de.dat V:1.02-Germany [02-Jul-1999 19:13:54]
++ *
++ * Revision 1.5 1999/07/01 20:40:07 akool
++ * isdnrate optimized
++ *
++ * Revision 1.4 1999/06/30 20:53:28 akool
++ * added "-t" option to "isdnrate"
++ *
++ * Revision 1.3 1999/06/30 17:17:37 akool
++ * isdnlog Version 3.39
++ *
++ * Revision 1.2 1999/06/29 20:11:25 akool
++ * now compiles with ndbm
++ * (many thanks to Nima <nima_ghasseminejad@public.uni-hamburg.de>)
++ *
++ * Revision 1.1 1999/06/28 19:16:33 akool
++ * isdnlog Version 3.38
++ * - new utility "isdnrate" started
++ *
++ */
++
++#include "isdnlog.h"
++#include "tools/zone.h"
++#include <unistd.h>
++#include "dest.h"
++
++#define WIDTH 19
++#define _MAXLAST 20 /* the real max */
++#define MAXLAST ((best>=_MAXLAST||best<=2)?5:best)
++
++
++static void print_header(void);
++
++static char *myname, *myshortname;
++static char options[] = "ab:d:f:h:l:op:st:v::x:CD::G:HLNP:O:S:TUVX::Z";
++static char usage[] = "%s: usage: %s [ -%s ] Destination ...\n";
++
++static int header = 0, best = MAXPROVIDER, table = 0, explain = 0;
++int verbose = 0;
++static int usestat = 0;
++static int duration = LCR_DURATION;
++static time_t start;
++static int day, month, year, hour, min, sec;
++static char ignore[MAXPROVIDER];
++static char *fromarea = 0;
++static char wanted_day;
++static int list = 0;
++static char *comment;
++static char **providers = 0; /* incl these */
++static int n_providers = 0;
++static int business = 0;
++static char **xproviders = 0; /* excl these */
++static int nx_providers = 0;
++static int xbusiness = 0;
++static int all = 0;
++static int booked = 0;
++static int service = 0;
++
++#define SOCKNAME "/tmp/isdnrate"
++static int is_daemon = 0;
++static int is_client = 0;
++static int we_are_daemon = 0;
++static int takt = 99999;
++static char sortby;
++static int need_dest;
++static int h_param = 0;
++static int lcr = 0;
++static TELNUM srcnum, destnum;
++static char *pid_dir = 0;
++static char *pid_file = 0;
++static char *socket_file = 0;
++static char **hup_argv; /* args to restart with */
++
++typedef struct {
++ int prefix;
++ double rate;
++ char *name;
++ char *explain;
++} SORT;
++
++typedef struct {
++ int weight;
++ int index;
++} SORT2;
++
++static SORT sort[MAXPROVIDER];
++
++#undef MAXPROVIDER
++#define MAXPROVIDER getNProvider()
++
++#undef BUFSIZ /* sorry but 8192 is too much for me */
++#define BUFSIZ 256
++
++int print_msg(int Level, const char *fmt,...)
++{
++ auto va_list ap;
++ auto char String[BUFSIZ * 3];
++
++ if ((Level > PRT_ERR && !verbose) || (Level > PRT_WARN && verbose < 2))
++ return (1);
++
++ va_start(ap, fmt);
++ (void) vsnprintf(String, BUFSIZ * 3, fmt, ap);
++ va_end(ap);
++
++ fprintf(stderr, "%s", String);
++
++ return (0);
++} /* print_msg */
++
++
++static void init()
++{
++ auto char *version, **message;
++
++ if (readconfig(myshortname) < 0)
++ exit(1);
++
++ if (verbose)
++ message = &version;
++ else
++ message = NULL;
++
++ initHoliday(holifile, message);
++
++ if (verbose && *version)
++ print_msg(PRT_V, "%s\n", version);
++ initDest(destfile, message);
++ if (verbose && *version)
++ print_msg(PRT_V, "%s\n", version);
++
++ initRate(rateconf, ratefile, zonefile, message);
++
++ if (verbose && *version)
++ print_msg(PRT_V, "%s\n", version);
++
++} /* init */
++
++#if 0
++static void deinit(void)
++{
++ exitRate();
++ exitDest();
++ exitHoliday();
++}
++#endif
++
++/* calc a day/time W | E | H */
++static void get_day(char d)
++{
++ struct tm *tm;
++ bitfield mask;
++ int what = 0;
++
++ tm = localtime(&start); /* now */
++ switch (d) {
++ case 'W': /* we need a normal weekday, so we take
++ today and inc. day if today is
++ holiday */
++ what = WORKDAY;
++ if (!h_param)
++ hour = 10;
++ break;
++ case 'N':
++ what = WORKDAY;
++ if (!h_param)
++ hour = 23;
++ break;
++ case 'E':
++ what = SUNDAY;
++ if (!h_param)
++ hour = 10;
++ break;
++ }
++ mask = 1 << what;
++ while (isDay(tm, mask, 0) != what) {
++ tm->tm_mday++;
++ }
++ min = sec = 0;
++ day = tm->tm_mday;
++ month = tm->tm_mon + 1;
++ year = tm->tm_year + 1900;
++}
++
++static void post_init()
++{
++
++ clearNum(&srcnum);
++ if (fromarea) {
++ Strncpy(srcnum.area, fromarea, TN_MAX_AREA_LEN);
++ free(fromarea);
++ fromarea = 0;
++ }
++ initNum(&srcnum);
++
++ if (wanted_day)
++ get_day(wanted_day);
++} /* post_init */
++
++static int opts(int argc, char *argv[])
++{
++ register int c;
++ register char *p;
++ int x;
++
++ h_param = 0;
++
++ optind = 0; /* make it repeatable */
++ need_dest = 1;
++ while ((c = getopt(argc, argv, options)) != EOF) {
++ switch (c) {
++ case 'a': /* all rates old/newer */
++ all++;
++ break;
++ case 'b':
++ best = strtol(optarg, NIL, 0);
++ break;
++
++/* case 'c': country */
++ break;
++
++ case 'd':
++ for (p = optarg; *p && isspace(*p); p++) ;
++ if (isdigit(*p)) {
++ wanted_day = '\0';
++ day = atoi(optarg);
++ if ((p = strchr(optarg, '.'))) {
++ month = atoi(p + 1);
++ if ((p = strchr(p + 1, '.'))) {
++ year = atoi(p + 1);
++ if (year < 50)
++ year += 2000;
++ else if (year < 100)
++ year += 1900;
++ }
++ }
++ } /* isdigit */
++ else {
++ wanted_day = *p;
++ }
++ break;
++
++ case 'f':
++ if (optarg) { /* from */
++ for (p = optarg; (isspace(*p) || *p == '0') && *p; p++) ;
++ fromarea = strdup(p);
++ }
++ break;
++
++ case 'h':
++ hour = atoi(optarg);
++ h_param++;
++ sec = 0;
++ if ((p = strchr(optarg + 1, ':'))) {
++ min = atoi(p + 1);
++ if ((p = strchr(p + 1, ':')))
++ sec = atoi(p + 1);
++ }
++ else
++ min = 0;
++ break;
++
++ case 'l':
++ duration = strtol(optarg, NIL, 0); /* l wie lt */
++ break;
++
++ case 'o': /* booked only */
++ booked++;
++ break;
++
++ case 's': /* service */
++ service++;
++ break;
++
++ case 't':
++ x = strtol(optarg, NIL, 0);
++ if (x > 0)
++ takt = x;
++ break;
++
++ case 'x': /* eXclude Poviders */
++ {
++ char *arg = strdup(optarg);
++
++ p = strtok(arg, ",");
++ while (p) {
++ if (*p == 'B') { /* Business Provider */
++ xbusiness = 1;
++ p = strtok(0, ",");
++ continue;
++ }
++ xproviders = realloc(xproviders, (nx_providers + 1) * sizeof(char *));
++
++ xproviders[nx_providers] = strdup(p);
++ p = strtok(0, ",");
++ nx_providers++;
++ }
++ free(arg);
++ }
++ break;
++
++ case 'p': /* Providers ... */
++ {
++ char *arg = strdup(optarg);
++
++ p = strtok(arg, ",");
++ while (p) {
++ if (*p == 'B') { /* Business Provider */
++ business = 1;
++ p = strtok(0, ",");
++ continue;
++ }
++ providers = realloc(providers, (n_providers + 1) * sizeof(char *));
++
++ providers[n_providers] = strdup(p);
++ p = strtok(0, ",");
++ n_providers++;
++ }
++ free(arg);
++ }
++ break;
++
++ case 'v':
++ verbose++;
++ if (optarg && (x = atoi(optarg)))
++ verbose = x;
++ break;
++/* Uppercase options are for output format */
++
++ case 'C':
++ is_client = 1;
++ break;
++
++ case 'D':
++ is_daemon = 1;
++ need_dest = 0;
++ if (optarg) {
++ x = atoi(optarg);
++ is_daemon = x;
++ if (we_are_daemon && x == 3) {
++ kill(getppid(), SIGTERM);
++ exit(EXIT_SUCCESS);
++ }
++ }
++ break;
++
++ case 'G':
++ explain = atoi(optarg);
++ break;
++ case 'H':
++ header++;
++ break;
++ case 'L':
++ list++;
++ explain = 9;
++ break;
++ case 'N':
++ explain = 55;
++ break;
++ case 'P':
++ pid_dir = strdup(optarg);
++ break;
++ case 'O':
++ free(socket_file);
++ socket_file = strdup(optarg);
++ break;
++ case 'S':
++ sortby = *optarg;
++ break;
++ case 'T':
++ table++;
++ break;
++/* Fixme: check/warn illegal kombinations of options */
++ case 'U':
++ usestat++;
++ break;
++
++ case 'V':
++ print_version(myshortname);
++ exit(0);
++
++ case 'X':
++ if (explain == 0) {
++ explain++;
++ if (optarg && isdigit(*optarg) && (x = atoi(optarg))) {
++ explain = x;
++ if (x == 50 || x == 51 || x == 52)
++ need_dest = 0;
++ }
++ else if (optarg) {
++ comment = strdup(optarg);
++ explain = 8;
++ need_dest = 0;
++ }
++ break;
++ }
++ /* fallthrough */
++ case '?':
++ print_msg(PRT_A, usage, myshortname, myshortname, options);
++ break;
++
++ case 'Z':
++ lcr++;
++ break;
++ } /* switch */
++ } /* while */
++ if (is_client && is_daemon != 3 && is_daemon) {
++ is_daemon = 0;
++ print_msg(PRT_V, "Conflicting options, -D disabled\n");
++ }
++ if (list && table) {
++ table = 0;
++ print_msg(PRT_V, "Conflicting options, -T disabled\n");
++ }
++ if (usestat && !table)
++ print_msg(PRT_V, "Conflicting options, -U ignored\n");
++ if ((list || table) && explain >= 10) {
++ list = table = 0;
++ print_msg(PRT_V, "Conflicting options, -T, -L disabled\n");
++ }
++ if (best < 1) {
++ best = MAXPROVIDER;
++ print_msg(PRT_V, "Illegal options, -b ignored\n");
++ }
++ if ((explain == 50 || explain == 51 || explain == 52) && header) {
++ print_msg(PRT_V, "Conflicting options, -H ignored\n");
++ }
++ if (explain >= 10 && service) {
++ print_msg(PRT_V, "Conflicting options, -s ignored\n");
++ service = 0;
++ }
++ if (argc > optind)
++ return (optind);
++ else
++ return (0);
++} /* opts */
++
++
++static int (*compare_func) (const void *s1, const void *s2);
++static int compare(const void *s1, const void *s2)
++{
++ return (((SORT *) s1)->rate > ((SORT *) s2)->rate);
++} /* compare */
++static int compare_vbn(const void *s1, const void *s2)
++{
++ return (((SORT *) s1)->prefix > ((SORT *) s2)->prefix);
++}
++static int compare_name(const void *s1, const void *s2)
++{
++ return strcasecmp(((SORT *) s1)->name, ((SORT *) s2)->name);
++}
++
++static int compare2(const void *s1, const void *s2)
++{
++ return (((SORT2 *) s1)->weight < ((SORT2 *) s2)->weight);
++} /* compare2 */
++
++char *short_explainRate(RATE * Rate)
++{
++
++ static char buffer[BUFSIZ];
++ char *p = buffer;
++
++ if (service && Rate->dst[1] && *Rate->dst[1])
++ p += sprintf(p, "%s, ", Rate->dst[1]);
++
++ if (Rate->Zone && *Rate->Zone)
++ p += sprintf(p, "%s", Rate->Zone);
++ else
++ p += sprintf(p, "Zone %d", Rate->zone);
++
++ if (!Rate->domestic && Rate->Country && *Rate->Country)
++ p += sprintf(p, " (%s)", Rate->Country);
++
++ if (Rate->Day && *Rate->Day)
++ p += sprintf(p, ", %s", Rate->Day);
++
++ if (Rate->Hour && *Rate->Hour)
++ p += sprintf(p, ", %s", Rate->Hour);
++
++ return buffer;
++}
++
++static char *printrate(RATE * Rate)
++{
++ static char message[BUFSIZ];
++
++ if (Rate->Basic > 0)
++ sprintf(message, "%s + %s/%.1fs = %s + %s/Min (%s)",
++ printRate(Rate->Basic),
++ printRate(Rate->Price),
++ Rate->Duration,
++ printRate(Rate->Basic),
++ printRate(60 * Rate->Price / Rate->Duration),
++ short_explainRate(Rate));
++ else
++ sprintf(message, "%s/%.1fs = %s/Min (%s)",
++ printRate(Rate->Price),
++ Rate->Duration,
++ printRate(60 * Rate->Price / Rate->Duration),
++ short_explainRate(Rate));
++
++ return (message);
++} /* printrate */
++
++
++static void buildtime()
++{
++ auto struct tm tm;
++
++ tm.tm_sec = sec;
++ tm.tm_min = min;
++ tm.tm_hour = hour;
++ tm.tm_mday = day;
++ tm.tm_mon = month - 1;
++ tm.tm_year = year - 1900; /* ja, ja, ich weiá ;-) */
++ tm.tm_isdst = -1;
++
++ start = mktime(&tm);
++} /* buildtime */
++
++
++static void splittime()
++{
++ auto struct tm *tm;
++
++ tm = localtime(&start);
++ sec = tm->tm_sec;
++ min = tm->tm_min;
++ hour = tm->tm_hour;
++ day = tm->tm_mday;
++ month = tm->tm_mon + 1;
++ year = tm->tm_year + 1900;
++} /* splittime */
++
++static char *Provider(int prefix)
++{
++ register char *p, *p1;
++ register int l;
++ static char s[BUFSIZ];
++ char prov[TN_MAX_PROVIDER_LEN];
++
++ if (prefix == UNKNOWN)
++ return ("?");
++
++ p = getProvider(prefix);
++
++ l = max(WIDTH, strlen(p)) - strlen(p);
++
++ p1 = prefix2provider_variant(prefix, prov);
++
++ l += (8 - strlen(p1));
++
++ sprintf(s, "%s:%s%*s", p1, p, l, "");
++
++ return (s);
++} /* Provider */
++
++static char *takt_str(RATE * Rate)
++{
++ static char s[BUFSIZ];
++
++ if (floor(Rate->Rhythm[0]) == Rate->Rhythm[0])
++ sprintf(s, "%.0f/", Rate->Rhythm[0]);
++ else
++ sprintf(s, "%.3f/", Rate->Rhythm[0]);
++ if (floor(Rate->Rhythm[1]) == Rate->Rhythm[1])
++ sprintf(s + strlen(s), "%.0f", Rate->Rhythm[1]);
++ else
++ sprintf(s + strlen(s), "%.3f", Rate->Rhythm[1]);
++ return s;
++}
++
++static inline char *P_EMPTY(char *s)
++{
++ char *p = s;
++
++ return p ? p : "";
++}
++
++#define DEL ';'
++static int compute(char *num)
++{
++ register int i, n = 0;
++ register int low = 0, high = MAXPROVIDER - 1;
++ auto RATE Rate;
++ auto char s[BUFSIZ];
++ struct tm *tm;
++ char prov[TN_MAX_PROVIDER_LEN];
++ int first = 1;
++ static char BUSINESS[] = "Business"; /* in C:GT:Tag */
++
++ if (destnum.nprovider != UNKNOWN) {
++ low = high = destnum.nprovider;
++ } /* if */
++ compare_func = compare;
++ switch (sortby) {
++ case 'v':
++ compare_func = compare_vbn;
++ break;
++ case 'n':
++ compare_func = compare_name;
++ break;
++ }
++
++ buildtime();
++ if (explain == 98 || explain == 97) { /* Minutenpreis fuer
++ diese Woche */
++ tm = localtime(&start);
++ tm->tm_hour = 0;
++ tm->tm_min = 1;
++ tm->tm_sec = 0;
++ start = mktime(tm);
++ if (explain == 98) {
++ while (tm->tm_wday) { /* find last monday */
++ start -= (60 * 60 * 24);
++ tm = localtime(&start);
++ } /* while */
++ start += (60 * 60 * 24);
++ }
++ }
++ if (service) {
++ num = getServiceNum(num);
++ if (!num || !*num) {
++ return 0;
++ }
++ }
++ do {
++ for (i = low; i <= high; i++) {
++ int found, p;
++ char *t;
++
++ if (ignore[i]) /* Fixme: */
++ continue;
++ if (booked && !isProviderBooked(i))
++ continue;
++ if (!all && !isProviderValid(i, start))
++ continue;
++ t = getProvider(i);
++ if (!t || t[strlen(t) - 1] == '?') /* UNKNOWN Provider */
++ continue;
++
++ t = getComment(i, "GT"); /* get Geb. Text comment */
++ if (business) { /* only business wanted */
++ if (t == 0)
++ continue;
++ else if (strstr(t, BUSINESS) == 0)
++ continue;
++ }
++ if (xbusiness) { /* no business wanted */
++ if (t && strstr(t, BUSINESS) > 0)
++ continue;
++ }
++ found = 0;
++ if (n_providers) {
++ for (p = 0; p < n_providers; p++)
++ if (pnum2prefix_variant(providers[p], start) == i) {
++ found = 1;
++ break;
++ }
++ if (!found)
++ continue;
++ }
++ if (nx_providers) {
++ for (p = 0; p < nx_providers; p++)
++ if (pnum2prefix_variant(xproviders[p], start) == i) {
++ found = 1;
++ break;
++ }
++ if (found)
++ continue;
++ }
++ clearRate(&Rate);
++ Rate.src[0] = srcnum.country;
++ Rate.src[1] = srcnum.area;
++ Rate.src[2] = "";
++
++ destnum.nprovider = i;
++ Strncpy(destnum.provider, getProvider(i), TN_MAX_PROVIDER_LEN);
++ if (normalizeNumber(num, &destnum, TN_ALL) == UNKNOWN) {
++ continue;
++ }
++
++ Rate.dst[0] = destnum.country;
++ Rate.dst[1] = destnum.area;
++ Rate.dst[2] = destnum.msn;
++ /* Rate.Service = "Internet by call"; */
++
++ Rate.prefix = i;
++
++ Rate.start = start;
++ Rate.now = start + duration - 1;
++ if (explain == 99) {
++ int j;
++ double oldCharge = -1.0;
++
++ if (first && header)
++ print_header();
++ first = 0;
++ printf("@ %s\n", prefix2provider_variant(Rate.prefix, prov));
++ Rate.now = start + 1;
++ for (j = 1; j < duration; j++) {
++ if (!getRate(&Rate, NULL) && (Rate.Price != 99.99)) {
++ if (Rate.Charge != oldCharge || j == duration - 1) {
++ printf("%d %.4f\n", j, Rate.Charge);
++ oldCharge = Rate.Charge;
++ }
++ }
++ else
++ break;
++ Rate.now++;
++ }
++ if (Rate.Duration <= takt)
++ printf("@----- %s %s\n", currency, Rate.Provider);
++ }
++ if (explain == 98 || explain == 97) { /* Minutenpreis fuer
++ diese Woche/Tag */
++ int j;
++
++ if (first && header)
++ print_header();
++ first = 0;
++ printf("@ %s\n", prefix2provider_variant(Rate.prefix, prov));
++ for (j = 0; j < (explain == 98 ? 7 * 24 : 24); j++) {
++ if (!getRate(&Rate, NULL) && (Rate.Price != 99.99)) {
++ printf("%d %.4f\n", j, Rate.Charge);
++ }
++ else
++ break;
++ Rate.now += 3600;
++ Rate.start += 3600;
++ }
++ if (Rate.Duration <= takt)
++ printf("@----- %s %s\n", currency, Rate.Provider);
++ }
++ else if (explain == 50 || explain == 51) {
++ int fi = 1;
++
++ while (getZoneRate(&Rate, explain - 50, fi) == 0) {
++ double cpm = Rate.Duration > 0 ? 60 * Rate.Price / Rate.Duration : 99.99;
++
++ if (Rate.Price == 0)
++ cpm = Rate.Basic;
++
++ fi = 0;
++ if (Rate.Price != 99.99)
++ printf("%s%c%s%c%s%c%.2f%c%.2f%c%s\n", prefix2provider(Rate.prefix, prov), DEL,
++ Rate.Provider, DEL, currency, DEL, Rate.Charge, DEL, cpm, DEL,
++ P_EMPTY(Rate.Country));
++ free(Rate.Country);
++ }
++ }
++ else {
++ /* kludge to suppress "impossible" Rates */
++ char **message, *msg;
++ if(verbose)
++ message = &msg;
++ else
++ message = NULL;
++ if (!getRate(&Rate, message) && (Rate.Price != 99.99)) {
++ if (!(Rate.Duration <= takt))
++ continue;
++ sort[n].prefix = Rate.prefix;
++ sort[n].rate = Rate.Charge;
++ sort[n].name = Rate.Provider;
++ switch (explain) {
++ case 1:
++ if (service)
++ sprintf(s, " (%s, %s)", P_EMPTY(Rate.dst[1]), Rate.Zone);
++ else
++ sprintf(s, " (%s)", Rate.Zone);
++ sort[n].explain = strdup(s);
++ break;
++ case 2:
++ sprintf(s, " (%s)", printrate(&Rate));
++ sort[n].explain = strdup(s);
++ break;
++ case 8:
++ sort[n].explain = strdup(P_EMPTY(getComment(i, comment)));
++ break;
++ case 9: /* used by list */
++ {
++ double cpm = Rate.Duration > 0 ? 60 * Rate.Price / Rate.Duration : 99.99;
++
++ if (Rate.Price == 0)
++ cpm = Rate.Basic;
++
++ sprintf(s, "%s%c"
++ "%s%c%s%c%s%c%s%c"
++ "%s%c"
++ "%.3f%c%.4f%c%.4f%c%.2f%c%.3f%c"
++ "%s%c%.2f",
++ prefix2provider_variant(Rate.prefix, prov), DEL,
++ Rate.Provider, DEL, P_EMPTY(Rate.Zone), DEL, P_EMPTY(Rate.Day), DEL, P_EMPTY(Rate.Hour), DEL,
++ currency, DEL, /* Fixme: global or per
++ Provider?? wg. EURO */
++ Rate.Charge, DEL, Rate.Basic, DEL, Rate.Price, DEL, Rate.Duration, DEL, cpm, DEL,
++ takt_str(&Rate), DEL, Rate.Sales);
++ sort[n].explain = strdup(s);
++ }
++ break;
++ default:
++ sort[n].explain = strdup("");
++ break;
++ }
++
++ n++;
++ } /* if */
++ else if(verbose && *msg)
++ print_msg(PRT_V, "%s\n", msg);
++
++ } /* else 99 */
++ } /* for i */
++ if (service)
++ num = getServiceNum(0); /* get next service num */
++ else
++ num = 0;
++ } while (num && *num);
++ if (explain < 10) {
++ qsort((void *) sort, n, sizeof(SORT), compare_func);
++ if (lcr && n) {
++ RATE Cheap;
++ int res = getLeastCost(&Rate, &Cheap, booked, -1);
++
++ if (res != UNKNOWN) {
++ sort[n].prefix = Cheap.prefix;
++ sort[n].rate = Cheap.Charge;
++ sort[n].name = Cheap.Provider;
++ sprintf(s, "(Cheapest: %s %s %s %s)", Cheap.dst[0], Cheap.dst[1], Cheap.dst[2], P_EMPTY(Cheap.Zone));
++ sort[n].explain = strdup(s);
++ n++;
++ } /* res */
++ } /* lcr */
++ } /* explain */
++ return (n);
++} /* compute */
++
++static void print_header(void)
++{
++ printf("Eine %d Sekunden lange Verbindung von %s nach %s kostet am %s\n",
++ duration, formatNumber("%F", &srcnum), formatNumber("%F", &destnum),
++ ctime(&start));
++}
++
++static void printList(int n)
++{
++ int i;
++
++ if (header)
++ print_header();
++ if (n > best)
++ n = best;
++
++ for (i = 0; i < n; i++)
++ printf("%s\n", sort[i].explain);
++}
++
++static void result(int n)
++{
++
++ register int i;
++
++ if (header)
++ print_header();
++
++ if (n > best)
++ n = best;
++ for (i = 0; i < n; i++)
++ printf("%s %s %8.3f %s\n",
++ Provider(sort[i].prefix), currency, sort[i].rate, sort[i].explain);
++} /* result */
++
++
++static void purge(int n)
++{
++ register int i;
++
++ for (i = 0; i < n; i++)
++ if (sort[i].explain)
++ free(sort[i].explain);
++} /* purge */
++
++/*
++ Werktag
++ Wochenende
++ Ortszone
++ Regionalzone
++ Fernzone
++ Handy
++ Internet
++ 0..23 Uhr
++ */
++
++#define STARTHOUR 8
++
++static void printTable(char *num)
++{
++ register int n, d, i, h, lasthour;
++ auto struct tm *tm;
++ auto SORT last[_MAXLAST];
++ auto int used[MAXPROVIDER];
++ auto int hours[MAXPROVIDER];
++ auto int weight[MAXPROVIDER];
++ auto int useds = 0, maxhour;
++ auto SORT2 wsort[MAXPROVIDER];
++ static int firsttime = 1;
++ int first;
++ int prefix;
++
++ memset(used, 0, sizeof(used));
++ memset(hours, 0, sizeof(hours));
++ memset(weight, 0, sizeof(weight));
++
++ for (d = 0; d < 3; d++) { /* Werktag, Samstag, Sonntag */
++ last[0].prefix = UNKNOWN;
++ lasthour = UNKNOWN;
++
++ buildtime();
++ tm = localtime(&start);
++
++ if (!d) { /* first time */
++ while (tm->tm_wday != 5) { /* find next Friday */
++ start += (60 * 60 * 24);
++ tm = localtime(&start);
++ } /* while */
++ }
++ else /* erst Samstag, dann */
++ start += (60 * 60 * 24); /* Sonntag */
++
++ splittime();
++ buildtime();
++
++ hour = STARTHOUR;
++ min = 0;
++
++ first = 1;
++
++ while (1) {
++ destnum.nprovider = UNKNOWN;
++ if (provider2prefix(num, &prefix)) /* set provider if it is in number */
++ normalizeNumber(num, &destnum, TN_PROVIDER);
++ n = compute(num);
++
++ if (header && first && d == 0 && firsttime)
++ print_header();
++
++ if (header && first) {
++ switch (d) {
++ case 0 : printf("\nWerktag:\n"); break;
++ case 1 : printf("\nSamstag:\n"); break;
++ case 2 : printf("\nSonntag:\n"); break;
++ } /* switch */
++
++ first = 0;
++ } /* if */
++
++ if (last[0].prefix == UNKNOWN) {
++ for (i = 0; i < min(n, MAXLAST); i++) {
++ if (sort[i].prefix) {
++ last[i].prefix = sort[i].prefix;
++ last[i].rate = sort[i].rate;
++ last[i].explain = strdup(sort[i].explain);
++ } /* if */
++ } /* for */
++ } /* if */
++
++ if (lasthour == UNKNOWN)
++ lasthour = hour;
++
++ if (sort[0].prefix != last[0].prefix) {
++ for (i = 0; i < min(n, MAXLAST); i++) {
++
++ if (!i)
++ printf(" %02d:00 .. %02d:59 %s = %s %s%s\n",
++ lasthour, hour - 1, Provider(last[i].prefix),
++ currency,
++ double2str(last[i].rate, 5, 3, DEB),
++ last[i].explain);
++ else
++ printf(" %s = %s %s%s\n",
++ Provider(last[i].prefix),
++ currency,
++ double2str(last[i].rate, 5, 3, DEB),
++ last[i].explain);
++ } /* for */
++
++ used[last[0].prefix]++;
++
++ if (lasthour >= hour)
++ h = ((24 - lasthour) + hour);
++ else
++ h = hour - lasthour;
++
++ hours[last[0].prefix] += h;
++
++ if ((lasthour > 8) && (lasthour < 21))
++ h *= 2;
++
++ weight[last[0].prefix] += h * (d ? 1 : 5);
++
++ for (i = 0; i < min(n, MAXLAST); i++) {
++ last[i].prefix = sort[i].prefix;
++ last[i].rate = sort[i].rate;
++ last[i].explain = strdup(sort[i].explain);
++ } /* for */
++
++ lasthour = hour;
++ } /* if */
++
++ purge(n);
++
++ hour++;
++
++ if (hour == 24)
++ hour = 0;
++ else if (hour == STARTHOUR)
++ break;
++ } /* while */
++
++ for (i = 0; i < min(n, MAXLAST); i++) {
++
++ if (!i) {
++ if ((lasthour == STARTHOUR) && (hour == STARTHOUR))
++ printf(" immer %s = %s %s%s\n",
++ Provider(last[i].prefix),
++ currency,
++ double2str(last[i].rate, 5, 3, DEB),
++ last[i].explain);
++ else
++ printf(" %02d:00 .. %02d:59 %s = %s %s%s\n",
++ lasthour, hour - 1, Provider(last[i].prefix),
++ currency,
++ double2str(last[i].rate, 5, 3, DEB),
++ last[i].explain);
++ }
++ else
++ printf(" %s = %s %s%s\n",
++ Provider(last[i].prefix),
++ currency,
++ double2str(last[i].rate, 5, 3, DEB),
++ last[i].explain);
++ } /* for */
++
++ used[last[0].prefix]++;
++
++ if (lasthour >= hour)
++ h = ((24 - lasthour) + hour);
++ else
++ h = hour - lasthour;
++
++ hours[last[0].prefix] += h;
++
++ if ((lasthour > 8) && (lasthour < 21))
++ h *= 2;
++
++ weight[last[0].prefix] += h * (d ? 1 : 5);
++
++ } /* for */
++
++ if (usestat) {
++ printf("\nProvider(s) used:\n");
++
++ maxhour = 9999999;
++ useds = 0;
++
++ for (i = 0; i < MAXPROVIDER; i++)
++ if (used[i]) {
++ printf("%s %d times, %d hours, weight = %d\n",
++ Provider(i), used[i], hours[i], weight[i]);
++
++ wsort[useds].weight = weight[i];
++ wsort[useds].index = i;
++
++ useds++;
++
++ if (hours[i] < maxhour)
++ maxhour = hours[i];
++ } /* if */
++
++ if ((best < MAXPROVIDER) && (best < useds)) {
++ printf("Retrying with only %d provider(s), eliminating %d provider(s)\n", best, useds - best);
++
++ qsort((void *) wsort, useds, sizeof(SORT2), compare2);
++
++ for (i = 0; i < useds; i++) {
++ printf("%s %d times, %d hours, weight = %d\n",
++ Provider(wsort[i].index), used[wsort[i].index], hours[wsort[i].index], weight[wsort[i].index]);
++
++ if (i == best - 1)
++ printf("\n");
++
++ if (i >= best - 1)
++ ignore[wsort[i].index]++;
++ } /* for */
++
++ if (firsttime)
++ printTable(num);
++
++ firsttime = 0;
++
++ } /* if */
++ } /* if */
++} /* printTable */
++
++
++static void clean_up()
++{
++ if (providers)
++ free(providers);
++ providers = 0;
++ fromarea = 0;
++ table = list = header = explain = 0;
++ usestat = 0;
++ duration = LCR_DURATION;
++ wanted_day = '\0';
++ takt = 99999;
++ if (comment)
++ free(comment);
++ comment = 0;
++ sortby = 0;
++ need_dest = 1;
++}
++
++static char * sub_sp(char *p)
++{
++ char *o = p;
++ int allupper=1;
++ for (; *p; p++)
++ if(!isupper(*p) && *p != '_' && !isdigit(*p)) { /* e.g. _DEMD1 */
++ allupper = 0;
++ break;
++ }
++ if (!allupper)
++ for (p = o; *p; p++)
++ if(*p == '_')
++ *p = ' ';
++ return o;
++}
++static void doit(int i, int argc, char *argv[])
++{
++ int n;
++ int prefix;
++ char *num;
++
++ post_init();
++ memset(ignore, 0, sizeof(ignore));
++ if (!need_dest && i == 0) {
++ i = 0;
++ argc = 1;
++ argv[0] = "2345";
++ }
++ while (i < argc) {
++ num = sub_sp(argv[i]);
++ if (explain == 55) {
++ if (n_providers) {
++ destnum.nprovider = pnum2prefix_variant(providers[0], 0);
++ Strncpy(destnum.provider, getProvider(destnum.nprovider), TN_MAX_PROVIDER_LEN);
++ normalizeNumber(num, &destnum, TN_NO_PROVIDER);
++ }
++ else
++ normalizeNumber(num, &destnum, TN_ALL);
++ printf("%s => %s \n", num, formatNumber("%l - %p", &destnum));
++ i++;
++ continue;
++ }
++ else if (explain == 52) { // enum Servce names
++
++ int first = 1;
++ char *p;
++
++ do {
++ p = getServiceNames(first);
++ if (p)
++ printf("%s\n", p);
++ first = 0;
++ }
++ while (p);
++ return;
++ }
++ destnum.nprovider = UNKNOWN;
++ if (provider2prefix(num, &prefix)) /* set provider if it is in
++ number */
++ normalizeNumber(num, &destnum, TN_PROVIDER);
++ if (table)
++ printTable(num);
++ else {
++ n = compute(num);
++ if (list)
++ printList(n);
++ else if (explain < 10)
++ result(n);
++ purge(n);
++ }
++ i++;
++ } /* while */
++ clean_up();
++}
++
++static void err(char *s)
++{
++ print_msg(PRT_A, "%s - '%s'\n", s, strerror(errno));
++ if (is_daemon == 2)
++ kill(getppid(), SIGTERM);
++ exit(2);
++}
++
++static int handle_client(int fd)
++{
++ char buffer[BUFSIZ];
++ int argc, n, i;
++ char **argv;
++ char *p;
++
++ if ((n = read(fd, buffer, BUFSIZ)) < 0)
++ err("Read");
++ if (n) {
++ argv = calloc(sizeof(char *), 20);
++
++ buffer[n] = '\0';
++ if (verbose)
++ fprintf(stderr, "got '%s'\n", buffer);
++ argc = 0;
++ argv[argc++] = strdup(myname);
++ p = strtok(buffer, "\t\n ");
++ while (p) {
++ argv[argc++] = strdup(p);
++ p = strtok(0, "\t\n ");
++ if (argc >= 20)
++ break;
++ }
++ time(&start); /* set time of call */
++ splittime(); /* date time my be overridden by opts */
++ we_are_daemon = 1;
++ if ((i = opts(argc, argv)) || need_dest == 0) {
++ if (shutdown(fd, 0) < 0) /* no read any more */
++ err("shutdown");
++ if (dup2(fd, STDOUT_FILENO) < 0) /* stdout to sock */
++ err("dup");
++ doit(i, argc, argv);
++ fflush(stdout);
++ fclose(stdout);
++ }
++ for (i = 0; i < argc; i++)
++ free(argv[i]);
++ free(argv);
++ }
++ return n == 0 ? -1 : 0;
++}
++
++void catch_sig(int sig)
++{
++ print_msg(PRT_A, "Signal %d\n", sig);
++ unlink(socket_file);
++ if (pid_dir)
++ unlink(pid_file);
++ err("Sig");
++}
++
++static void del_sock(void)
++{
++ if (getppid() > 0) {
++ unlink(socket_file);
++ if (pid_dir)
++ unlink(pid_file);
++ }
++}
++
++static volatile sig_atomic_t stopped = 0;
++static volatile sig_atomic_t reinit = 0;
++
++static void catch_term(int sig)
++{
++ stopped = 1;
++}
++
++static void catch_hup(int sig)
++{
++ print_msg(PRT_A, "Signal %d restarting %s\n", sig, myname);
++ del_sock();
++ execvp(myname, hup_argv);
++ print_msg(PRT_A, "- failed\n");
++}
++
++static void do_reinit(void)
++{
++ /* deinit(), init() doesn't */
++ reinit=0;
++}
++
++/* thank's to Jochen Erwied for this: */
++#ifndef TEMP_FAILURE_RETRY
++#define TEMP_FAILURE_RETRY(expression) \
++ (__extension__ \
++ ({ long int __result; \
++ do __result = (long int) (expression); \
++ while (__result == -1L && errno == EINTR); \
++ __result; })) \
++
++#endif
++
++static void setup_daemon()
++{
++ int sock;
++ struct sockaddr_un sa;
++ struct sockaddr_in client;
++ fd_set active_fd_set, read_fd_set;
++ char *sock_name = socket_file;
++ socklen_t size;
++ struct stat stat_buf;
++ int i;
++ pid_t pid;
++ char pidname[] = "isdnrate.pid";
++ FILE *fp;
++
++ if (verbose)
++ fprintf(stderr, "Setup sockets\n");
++ signal(SIGTERM, catch_term);
++ signal(SIGINT, catch_sig);
++ signal(SIGHUP, catch_hup);
++
++ if (is_daemon == 2) { /* go background */
++
++ fprintf(stderr, "Going background\n");
++ verbose = 0;
++ pid = fork();
++ if (pid < 0)
++ err("Going bg failed");
++ else if (pid > 0) {
++ exit(EXIT_SUCCESS);
++ }
++ }
++ if ((sock = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
++ err("Can't open socket");
++ sa.sun_family = AF_UNIX;
++ strcpy(sa.sun_path, sock_name);
++ size = offsetof(struct sockaddr_un, sun_path) + strlen(sa.sun_path) + 1;
++
++ if (bind(sock, (struct sockaddr *) &sa, size) < 0)
++ err("Can't bind sock");
++
++ stat(sock_name, &stat_buf);
++ chmod(sock_name, stat_buf.st_mode | S_IWOTH | S_IWGRP);
++/* should better have perm wwwrun.nogroup */
++
++ if (listen(sock, SOMAXCONN) < 0)
++ err("Can't listen");
++ if (pid_dir) {
++ pid_file = malloc(strlen(pid_dir) + strlen(pidname) + 2);
++ strcpy(pid_file, pid_dir);
++ if (pid_file[strlen(pid_file) - 1] != '/')
++ strcat(pid_file, "/");
++ strcat(pid_file, pidname);
++ if ((fp = fopen(pid_file, "w")) == 0)
++ fprintf(stderr, "Can't write %s\n", pid_file);
++ else {
++ fprintf(fp, "%d\n", getpid());
++ fclose(fp);
++ }
++ }
++ atexit(del_sock);
++ FD_ZERO(&active_fd_set);
++ FD_SET(sock, &active_fd_set);
++ while (!stopped) {
++ if (reinit)
++ do_reinit();
++ read_fd_set = active_fd_set;
++ if (TEMP_FAILURE_RETRY(select(FD_SETSIZE, &read_fd_set, 0, 0, 0)) < 0)
++ err("select");
++ for (i = 0; i < FD_SETSIZE; i++)
++ if (FD_ISSET(i, &read_fd_set)) {
++ if (i == sock) { /* request on orig */
++ int new;
++
++ size = sizeof(client);
++ if ((new = accept(sock, (struct sockaddr *) &client, &size)) < 0)
++ err("accept");
++ if (verbose)
++ fprintf(stderr, "Accepted %d\n", new);
++ FD_SET(new, &active_fd_set);
++ }
++ else { /* already connected */
++ pid_t pid;
++ int status;
++
++ if (verbose)
++ fprintf(stderr, "Handle client %d\n", i);
++ pid = fork();
++ if (pid == 0) {
++ handle_client(i);
++ _exit(EXIT_SUCCESS);
++ }
++ else if (pid < 0)
++ err("fork");
++ else {
++ if (waitpid(pid, &status, 0) != pid)
++ err("waitpid");
++ close(i);
++ FD_CLR(i, &active_fd_set);
++ }
++ } /* if i */
++ } /* if ISSET */
++ } /* while */
++ del_sock();
++ exit(EXIT_SUCCESS);
++}
++
++static int connect_2_daemon(int argc, char *argv[])
++{
++ int sock;
++ struct sockaddr_un sa;
++ char *sock_name = socket_file;
++ size_t size;
++ int i, c, len;
++ char *p, *q, buffer[BUFSIZ];
++
++ if ((sock = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
++ err("Can't open socket");
++ sa.sun_family = AF_UNIX;
++ strcpy(sa.sun_path, sock_name);
++ size = offsetof(struct sockaddr_un, sun_path) + strlen(sa.sun_path) + 1;
++
++ if (connect(sock, (struct sockaddr *) &sa, size) < 0)
++ err("Can't connect sock");
++ p = buffer;
++ optind = 0; /* reinit */
++ len = 0;
++ while ((c = getopt(argc, argv, options)) != EOF && len < BUFSIZ - 10) {
++ switch (c) {
++ case '?':
++ case 'C':
++ break;
++ case 'D':
++ if (optarg && atoi(optarg) == 3) ; /* goon, kill a running
++ daemon */
++ else
++ break;
++ default:
++ *p++ = '-';
++ *p++ = c;
++ len += 3;
++ if (optarg)
++ for (q = optarg; *q && len < BUFSIZ - 10; len++)
++ *p++ = *q++;
++ *p++ = ' ';
++ break;
++ }
++ }
++ for (i = optind; i < argc; i++) {
++ for (q = argv[i]; *q && len < BUFSIZ - 10; len++)
++ *p++ = *q++;
++ *p++ = ' ';
++ len++;
++ }
++ *--p = '\x0';
++ i = write(sock, buffer, strlen(buffer) + 1);
++ if (i < 0)
++ err("Write sock");
++ while ((i = read(sock, buffer, BUFSIZ)) > 0)
++ write(1, buffer, i);
++ close(sock);
++ return EXIT_SUCCESS;
++}
++
++
++int main(int argc, char *argv[], char *envp[])
++{
++ register int i;
++ sigset_t unblock_set;
++
++ myname = argv[0];
++ myshortname = basename(myname);
++
++ time(&start);
++ splittime();
++ socket_file = strdup(SOCKNAME);
++ /* borrowed from isdnlog.c, thanks */
++ hup_argv = argv;
++ sigemptyset(&unblock_set);
++ sigaddset(&unblock_set, SIGHUP);
++ sigprocmask(SIG_UNBLOCK, &unblock_set, NULL);
++
++ if ((i = opts(argc, argv)) || need_dest == 0) {
++ if (is_client)
++ exit(connect_2_daemon(argc, argv));
++ else
++ init();
++ if (is_daemon) {
++ clean_up();
++ setup_daemon();
++ }
++ else
++ doit(i, argc, argv);
++ }
++ else {
++ print_msg(PRT_A, usage, myshortname, myshortname, options);
++ print_msg(PRT_A, "\n");
++ print_msg(PRT_A, "\t-a \tall=show old and newer rates (default actual only)\n", MAXPROVIDER);
++ print_msg(PRT_A, "\t-b best\tshow only the first <best> provider(s) (default %d)\n", MAXPROVIDER);
++ print_msg(PRT_A, "\t-d d[.m[.y]] | {W|N|E}\tstart date of call (default now)\n");
++ print_msg(PRT_A, "\t-f areacode\tyou are calling from <areacode>\n");
++ print_msg(PRT_A, "\t-h h[:m[:s]]\tstart time of call (default now)\n");
++ print_msg(PRT_A, "\t-l duration\tduration of call in seconds (default %d seconds)\n", LCR_DURATION);
++ print_msg(PRT_A, "\t-o \t show only booked providers\n");
++ print_msg(PRT_A, "\t-p prov|B[,prov...]\t show only these providers\n");
++ print_msg(PRT_A, "\t-s \t consider 'Destination' as a service name\n");
++ print_msg(PRT_A, "\t-t takt\t\tshow providers if chargeduration<=takt\n");
++ print_msg(PRT_A, "\t-v [level]\tverbose\n");
++ print_msg(PRT_A, "\t-x prov|B[,prov...]\t exclude these providers\n");
++
++ print_msg(PRT_A, "\tOutput and run options\n");
++ print_msg(PRT_A, "\t-C\trun as client, connecting to a running daemon\n");
++ print_msg(PRT_A, "\t-CD3\tkill a running daemon\n");
++ print_msg(PRT_A, "\t-D\trun as daemon\n");
++ print_msg(PRT_A, "\t-D2\trun as daemon & go background\n");
++ print_msg(PRT_A, "\t-G which\tshow raw data\n");
++ print_msg(PRT_A, "\t-H\tshow a header\n");
++ print_msg(PRT_A, "\t-L\tshow a detailed list\n");
++ print_msg(PRT_A, "\t-O sOcket-path\twrite socket to this file (def:tmp/isdnrate)\n");
++ print_msg(PRT_A, "\t-P pid-dir\twrite own PID to pid-dir/isdnrate.pid\n");
++ print_msg(PRT_A, "\t-N\tparse the given telefon numbers\n");
++ print_msg(PRT_A, "\t-S[v|n]\tsort by v=VBN, n=Name, default=Charge\n");
++ print_msg(PRT_A, "\t-T\tshow a table of day/night week/weekend\n");
++ print_msg(PRT_A, "\t-U\tshow usage stats for table\n");
++ print_msg(PRT_A, "\t-V\tshow version info\n");
++ print_msg(PRT_A, "\t-X\texplain each rate\n");
++ print_msg(PRT_A, "\t-X2\texplain more\n");
++ print_msg(PRT_A, "\t-X comment\tprint <comment> from C:tag\n");
++ print_msg(PRT_A, "\t-Z show entry from getLeastCost\n");
++ print_msg(PRT_A, "\n\te.g.\t%s -b5 -f30 -TH -t1 Zaire\n", myshortname);
++ } /* else */
++/* deinit(); Fixme: this SIGSEGVs in exitHoliday */
++ return (0);
++} /* isdnrate */
+diff -Naur isdn4k-utils-orig//isdnlog/tools/rate.c isdn4k-utils/isdnlog/tools/rate.c
+--- isdn4k-utils-orig//isdnlog/tools/rate.c 2002-07-06 09:22:33.000000000 +1000
++++ isdn4k-utils/isdnlog/tools/rate.c 2010-12-04 20:44:03.786672226 +1000
+@@ -1773,6 +1773,7 @@
+ number=realloc(number, numbers*sizeof(int));
+ number[numbers-1]=i;
+ skip:
++ ;
+ }
+
+ while (isblank(*s)) s++;
+@@ -2344,6 +2345,7 @@
+ }
+ return UNKNOWN;
+ done:
++ ;
+ }
+ }
+ }
+diff -Naur isdn4k-utils-orig//lib/libtools.c isdn4k-utils/lib/libtools.c
+--- isdn4k-utils-orig//lib/libtools.c 1999-11-04 02:13:36.000000000 +1000
++++ isdn4k-utils/lib/libtools.c 2010-12-04 20:44:03.786672226 +1000
+@@ -711,6 +711,7 @@
+ case 'r': _mode |= R_OK;
+ break;
+ default :
++ ;
+ }
+ }
+
+diff -Naur isdn4k-utils-orig//Makefile isdn4k-utils/Makefile
+--- isdn4k-utils-orig//Makefile 2002-07-20 05:03:49.000000000 +1000
++++ isdn4k-utils/Makefile 2010-12-04 20:43:57.890005560 +1000
+@@ -132,12 +132,6 @@
+
+ install: rootperm
+ set -e; for i in `echo $(SUBDIRS)`; do $(MAKE) -C $$i install; done
+- @if [ -c $(DESTDIR)/dev/isdnctrl0 ] && ls -l $(DESTDIR)/dev/isdnctrl0 | egrep "[[:space:]]45,[[:space:]]+64[[:space:]]" > /dev/null; \
+- then \
+- /bin/echo -e '(some) ISDN devices already exist, not creating them.\nUse scripts/makedev.sh manually if necessary.'; \
+- else \
+- sh scripts/makedev.sh $(DESTDIR) ; \
+- fi
+
+ uninstall: rootperm
+ set -e; for i in `echo $(SUBDIRS)`; do $(MAKE) -C $$i uninstall; done
diff --git a/testing/less/PKGBUILD b/testing/less/PKGBUILD
new file mode 100644
index 000000000..15b855a33
--- /dev/null
+++ b/testing/less/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 141923 2011-11-03 07:35:28Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=less
+pkgver=444
+pkgrel=2
+pkgdesc="A terminal based program for viewing text files"
+license=('GPL3')
+arch=('i686' 'x86_64')
+url="http://www.greenwoodsoftware.com/less"
+groups=('base')
+depends=('ncurses' 'pcre')
+source=(http://www.greenwoodsoftware.com/$pkgname/$pkgname-$pkgver.tar.gz{,.sig})
+md5sums=('56f9f76ffe13f70155f47f6b3c87d421'
+ 'd5fafbd94a9cfdeaad0c82143a033fe5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --with-regex=pcre
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix="${pkgdir}"/usr install
+ install -dm755 "${pkgdir}"/bin
+ mv "${pkgdir}"/usr/bin/${pkgname} "${pkgdir}"/bin
+}
diff --git a/testing/libcap/PKGBUILD b/testing/libcap/PKGBUILD
new file mode 100644
index 000000000..fd51da547
--- /dev/null
+++ b/testing/libcap/PKGBUILD
@@ -0,0 +1,27 @@
+#$Id: PKGBUILD 141933 2011-11-03 09:57:57Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+
+pkgname=libcap
+pkgver=2.22
+pkgrel=2
+pkgdesc="POSIX 1003.1e capabilities"
+arch=('i686' 'x86_64')
+url="http://sites.google.com/site/fullycapable/"
+license=('GPL2')
+depends=('glibc' 'attr')
+source=(http://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${pkgname}-${pkgver}.tar.gz{,.asc})
+md5sums=('b4896816b626bea445f0b3849bdd4077'
+ '9d0983e25e5a251d098507f9561d2b27')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make prefix=/usr DESTDIR=${pkgdir} LIBDIR=${pkgdir}/lib RAISE_SETFCAP=no install
+ rm ${pkgdir}/lib/*.a
+ chmod 755 ${pkgdir}/lib/libcap.so.${pkgver}
+}
diff --git a/testing/libpcap/Add-support-for-libnl-2.x-adapted-from-a-newer-versi.patch b/testing/libpcap/Add-support-for-libnl-2.x-adapted-from-a-newer-versi.patch
new file mode 100644
index 000000000..1fce472b7
--- /dev/null
+++ b/testing/libpcap/Add-support-for-libnl-2.x-adapted-from-a-newer-versi.patch
@@ -0,0 +1,344 @@
+From bc937fc4ff6715e9bee939041fa02be0755d7d58 Mon Sep 17 00:00:00 2001
+From: Guy Harris <guy@alum.mit.edu>
+Date: Sat, 13 Nov 2010 17:42:47 -0800
+Subject: [PATCH] Add support for libnl 2.x, adapted from a newer version of the iw command.
+
+---
+ config.h.in | 3 ++
+ configure | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
+ configure.in | 40 ++++++++++++++++++----
+ pcap-linux.c | 58 ++++++++++++++++++++++++-------
+ 4 files changed, 184 insertions(+), 25 deletions(-)
+
+diff --git a/config.h.in b/config.h.in
+index f988e8f..3b9ce3c 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -52,6 +52,9 @@
+ /* if libnl exists */
+ #undef HAVE_LIBNL
+
++/* if libnl exists and is version 2.x */
++#undef HAVE_LIBNL_2_x
++
+ /* Define to 1 if you have the <limits.h> header file. */
+ #undef HAVE_LIMITS_H
+
+diff --git a/configure b/configure
+index c99c1ab..7338dee 100755
+--- a/configure
++++ b/configure
+@@ -7340,7 +7340,93 @@ fi
+
+
+ if test x$with_libnl != xno ; then
+- { echo "$as_me:$LINENO: checking for nl_handle_alloc in -lnl" >&5
++ #
++ # Try libnl 2.x first.
++ #
++ { echo "$as_me:$LINENO: checking for nl_socket_alloc in -lnl" >&5
++echo $ECHO_N "checking for nl_socket_alloc in -lnl... $ECHO_C" >&6; }
++if test "${ac_cv_lib_nl_nl_socket_alloc+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lnl $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h. */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h. */
++
++/* Override any GCC internal prototype to avoid an error.
++ Use char because int might match the return type of a GCC
++ builtin and then its argument prototype would still apply. */
++#ifdef __cplusplus
++extern "C"
++#endif
++char nl_socket_alloc ();
++int
++main ()
++{
++return nl_socket_alloc ();
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (ac_try="$ac_link"
++case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
++ (eval "$ac_link") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest$ac_exeext &&
++ $as_test_x conftest$ac_exeext; then
++ ac_cv_lib_nl_nl_socket_alloc=yes
++else
++ echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ ac_cv_lib_nl_nl_socket_alloc=no
++fi
++
++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
++ conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++{ echo "$as_me:$LINENO: result: $ac_cv_lib_nl_nl_socket_alloc" >&5
++echo "${ECHO_T}$ac_cv_lib_nl_nl_socket_alloc" >&6; }
++if test $ac_cv_lib_nl_nl_socket_alloc = yes; then
++
++ #
++ # Yes, we have libnl 2.x.
++ #
++ LIBS="-lnl-genl -lnl $LIBS"
++
++cat >>confdefs.h <<\_ACEOF
++#define HAVE_LIBNL 1
++_ACEOF
++
++
++cat >>confdefs.h <<\_ACEOF
++#define HAVE_LIBNL_2_x 1
++_ACEOF
++
++
++else
++
++ #
++ # No, we don't; do we have libnl 1.x?
++ #
++ { echo "$as_me:$LINENO: checking for nl_handle_alloc in -lnl" >&5
+ echo $ECHO_N "checking for nl_handle_alloc in -lnl... $ECHO_C" >&6; }
+ if test "${ac_cv_lib_nl_nl_handle_alloc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -7402,18 +7488,30 @@ fi
+ { echo "$as_me:$LINENO: result: $ac_cv_lib_nl_nl_handle_alloc" >&5
+ echo "${ECHO_T}$ac_cv_lib_nl_nl_handle_alloc" >&6; }
+ if test $ac_cv_lib_nl_nl_handle_alloc = yes; then
+- LIBS="-lnl $LIBS"
++
++ #
++ # Yes.
++ #
++ LIBS="-lnl $LIBS"
+
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_LIBNL 1
+ _ACEOF
+
++
+ else
+- if test x$with_libnl = xyes ; then
+- { { echo "$as_me:$LINENO: error: libnl support requested but libnl not found" >&5
++
++ #
++ # No, we don't have libnl at all.
++ #
++ if test x$with_libnl = xyes ; then
++ { { echo "$as_me:$LINENO: error: libnl support requested but libnl not found" >&5
+ echo "$as_me: error: libnl support requested but libnl not found" >&2;}
+ { (exit 1); exit 1; }; }
+- fi
++ fi
++
++fi
++
+
+ fi
+
+diff --git a/configure.in b/configure.in
+index 16eadf9..ef801ed 100644
+--- a/configure.in
++++ b/configure.in
+@@ -445,13 +445,39 @@ linux)
+ with_libnl=$withval,,)
+
+ if test x$with_libnl != xno ; then
+- AC_CHECK_LIB(nl, nl_handle_alloc,
+- LIBS="-lnl $LIBS"
+- AC_DEFINE(HAVE_LIBNL,1,[if libnl exists]),
+- if test x$with_libnl = xyes ; then
+- AC_MSG_ERROR([libnl support requested but libnl not found])
+- fi
+- )
++ #
++ # Try libnl 2.x first.
++ #
++ AC_CHECK_LIB(nl, nl_socket_alloc,
++ [
++ #
++ # Yes, we have libnl 2.x.
++ #
++ LIBS="-lnl-genl -lnl $LIBS"
++ AC_DEFINE(HAVE_LIBNL,1,[if libnl exists])
++ AC_DEFINE(HAVE_LIBNL_2_x,1,[if libnl exists and is version 2.x])
++ ],
++ [
++ #
++ # No, we don't; do we have libnl 1.x?
++ #
++ AC_CHECK_LIB(nl, nl_handle_alloc,
++ [
++ #
++ # Yes.
++ #
++ LIBS="-lnl $LIBS"
++ AC_DEFINE(HAVE_LIBNL,1,[if libnl exists])
++ ],
++ [
++ #
++ # No, we don't have libnl at all.
++ #
++ if test x$with_libnl = xyes ; then
++ AC_MSG_ERROR([libnl support requested but libnl not found])
++ fi
++ ])
++ ])
+ fi
+
+ AC_LBL_TPACKET_STATS
+diff --git a/pcap-linux.c b/pcap-linux.c
+index f8b3f10..deabbc4 100644
+--- a/pcap-linux.c
++++ b/pcap-linux.c
+@@ -527,8 +527,37 @@ get_mac80211_phydev(pcap_t *handle, const char *device, char *phydev_path,
+ return 1;
+ }
+
++#ifndef HAVE_LIBNL_2_x
++/* libnl 2.x compatibility code */
++
++#define nl_sock nl_handle
++
++static inline struct nl_handle *
++nl_socket_alloc(void)
++{
++ return nl_handle_alloc();
++}
++
++static inline void
++nl_socket_free(struct nl_handle *h)
++{
++ nl_handle_destroy(h);
++}
++
++static inline int
++__genl_ctrl_alloc_cache(struct nl_handle *h, struct nl_cache **cache)
++{
++ struct nl_cache *tmp = genl_ctrl_alloc_cache(h);
++ if (!tmp)
++ return -ENOMEM;
++ *cache = tmp;
++ return 0;
++}
++#define genl_ctrl_alloc_cache __genl_ctrl_alloc_cache
++#endif /* !HAVE_LIBNL_2_x */
++
+ struct nl80211_state {
+- struct nl_handle *nl_handle;
++ struct nl_sock *nl_sock;
+ struct nl_cache *nl_cache;
+ struct genl_family *nl80211;
+ };
+@@ -536,23 +565,26 @@ struct nl80211_state {
+ static int
+ nl80211_init(pcap_t *handle, struct nl80211_state *state, const char *device)
+ {
+- state->nl_handle = nl_handle_alloc();
+- if (!state->nl_handle) {
++ int err;
++
++ state->nl_sock = nl_socket_alloc();
++ if (!state->nl_sock) {
+ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+ "%s: failed to allocate netlink handle", device);
+ return PCAP_ERROR;
+ }
+
+- if (genl_connect(state->nl_handle)) {
++ if (genl_connect(state->nl_sock)) {
+ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+ "%s: failed to connect to generic netlink", device);
+ goto out_handle_destroy;
+ }
+
+- state->nl_cache = genl_ctrl_alloc_cache(state->nl_handle);
+- if (!state->nl_cache) {
++ err = genl_ctrl_alloc_cache(state->nl_sock, &state->nl_cache);
++ if (err < 0) {
+ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+- "%s: failed to allocate generic netlink cache", device);
++ "%s: failed to allocate generic netlink cache: %s",
++ device, strerror(-err));
+ goto out_handle_destroy;
+ }
+
+@@ -568,7 +600,7 @@ nl80211_init(pcap_t *handle, struct nl80211_state *state, const char *device)
+ out_cache_free:
+ nl_cache_free(state->nl_cache);
+ out_handle_destroy:
+- nl_handle_destroy(state->nl_handle);
++ nl_socket_free(state->nl_sock);
+ return PCAP_ERROR;
+ }
+
+@@ -577,7 +609,7 @@ nl80211_cleanup(struct nl80211_state *state)
+ {
+ genl_family_put(state->nl80211);
+ nl_cache_free(state->nl_cache);
+- nl_handle_destroy(state->nl_handle);
++ nl_socket_free(state->nl_sock);
+ }
+
+ static int
+@@ -605,7 +637,7 @@ add_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+ NLA_PUT_STRING(msg, NL80211_ATTR_IFNAME, mondevice);
+ NLA_PUT_U32(msg, NL80211_ATTR_IFTYPE, NL80211_IFTYPE_MONITOR);
+
+- err = nl_send_auto_complete(state->nl_handle, msg);
++ err = nl_send_auto_complete(state->nl_sock, msg);
+ if (err < 0) {
+ if (err == -ENFILE) {
+ /*
+@@ -626,7 +658,7 @@ add_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+ return PCAP_ERROR;
+ }
+ }
+- err = nl_wait_for_ack(state->nl_handle);
++ err = nl_wait_for_ack(state->nl_sock);
+ if (err < 0) {
+ if (err == -ENFILE) {
+ /*
+@@ -685,7 +717,7 @@ del_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+ 0, NL80211_CMD_DEL_INTERFACE, 0);
+ NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, ifindex);
+
+- err = nl_send_auto_complete(state->nl_handle, msg);
++ err = nl_send_auto_complete(state->nl_sock, msg);
+ if (err < 0) {
+ if (err == -ENFILE) {
+ /*
+@@ -706,7 +738,7 @@ del_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+ return PCAP_ERROR;
+ }
+ }
+- err = nl_wait_for_ack(state->nl_handle);
++ err = nl_wait_for_ack(state->nl_sock);
+ if (err < 0) {
+ if (err == -ENFILE) {
+ /*
+--
+1.7.3.5
+
diff --git a/testing/libpcap/Libnl-2.x-returns-its-own-error-codes-not-errnos-han.patch b/testing/libpcap/Libnl-2.x-returns-its-own-error-codes-not-errnos-han.patch
new file mode 100644
index 000000000..219494200
--- /dev/null
+++ b/testing/libpcap/Libnl-2.x-returns-its-own-error-codes-not-errnos-han.patch
@@ -0,0 +1,159 @@
+From 9545ff8e2670db02652f9cf781aafdd6bac58ac4 Mon Sep 17 00:00:00 2001
+From: Guy Harris <guy@alum.mit.edu>
+Date: Sun, 14 Nov 2010 13:48:19 -0800
+Subject: [PATCH] Libnl 2.x returns its own error codes, not errnos; handle that.
+
+While we're at it, don't special-case ENFILE for "delete monitor device"
+operations; that's not like "add monitor device", where we want to drive
+on if a device with that name already exists.
+---
+ pcap-linux.c | 76 ++++++++++++++++++++++++++--------------------------------
+ 1 files changed, 34 insertions(+), 42 deletions(-)
+
+diff --git a/pcap-linux.c b/pcap-linux.c
+index deabbc4..5d291e9 100644
+--- a/pcap-linux.c
++++ b/pcap-linux.c
+@@ -527,7 +527,9 @@ get_mac80211_phydev(pcap_t *handle, const char *device, char *phydev_path,
+ return 1;
+ }
+
+-#ifndef HAVE_LIBNL_2_x
++#ifdef HAVE_LIBNL_2_x
++#define get_nl_errmsg nl_geterror
++#else
+ /* libnl 2.x compatibility code */
+
+ #define nl_sock nl_handle
+@@ -544,6 +546,8 @@ nl_socket_free(struct nl_handle *h)
+ nl_handle_destroy(h);
+ }
+
++#define get_nl_errmsg strerror
++
+ static inline int
+ __genl_ctrl_alloc_cache(struct nl_handle *h, struct nl_cache **cache)
+ {
+@@ -584,7 +588,7 @@ nl80211_init(pcap_t *handle, struct nl80211_state *state, const char *device)
+ if (err < 0) {
+ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+ "%s: failed to allocate generic netlink cache: %s",
+- device, strerror(-err));
++ device, get_nl_errmsg(-err));
+ goto out_handle_destroy;
+ }
+
+@@ -639,10 +643,17 @@ add_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+
+ err = nl_send_auto_complete(state->nl_sock, msg);
+ if (err < 0) {
++#ifdef HAVE_LIBNL_2_x
++ if (err == -NLE_FAILURE) {
++#else
+ if (err == -ENFILE) {
++#endif
+ /*
+ * Device not available; our caller should just
+- * keep trying.
++ * keep trying. (libnl 2.x maps ENFILE to
++ * NLE_FAILURE; it can also map other errors
++ * to that, but there's not much we can do
++ * about that.)
+ */
+ nlmsg_free(msg);
+ return 0;
+@@ -653,17 +664,24 @@ add_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+ */
+ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+ "%s: nl_send_auto_complete failed adding %s interface: %s",
+- device, mondevice, strerror(-err));
++ device, mondevice, get_nl_errmsg(-err));
+ nlmsg_free(msg);
+ return PCAP_ERROR;
+ }
+ }
+ err = nl_wait_for_ack(state->nl_sock);
+ if (err < 0) {
++#ifdef HAVE_LIBNL_2_x
++ if (err == -NLE_FAILURE) {
++#else
+ if (err == -ENFILE) {
++#endif
+ /*
+ * Device not available; our caller should just
+- * keep trying.
++ * keep trying. (libnl 2.x maps ENFILE to
++ * NLE_FAILURE; it can also map other errors
++ * to that, but there's not much we can do
++ * about that.)
+ */
+ nlmsg_free(msg);
+ return 0;
+@@ -674,7 +692,7 @@ add_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+ */
+ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+ "%s: nl_wait_for_ack failed adding %s interface: %s",
+- device, mondevice, strerror(-err));
++ device, mondevice, get_nl_errmsg(-err));
+ nlmsg_free(msg);
+ return PCAP_ERROR;
+ }
+@@ -719,45 +737,19 @@ del_mon_if(pcap_t *handle, int sock_fd, struct nl80211_state *state,
+
+ err = nl_send_auto_complete(state->nl_sock, msg);
+ if (err < 0) {
+- if (err == -ENFILE) {
+- /*
+- * Device not available; our caller should just
+- * keep trying.
+- */
+- nlmsg_free(msg);
+- return 0;
+- } else {
+- /*
+- * Real failure, not just "that device is not
+- * available.
+- */
+- snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+- "%s: nl_send_auto_complete failed deleting %s interface: %s",
+- device, mondevice, strerror(-err));
+- nlmsg_free(msg);
+- return PCAP_ERROR;
+- }
++ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
++ "%s: nl_send_auto_complete failed deleting %s interface: %s",
++ device, mondevice, get_nl_errmsg(-err));
++ nlmsg_free(msg);
++ return PCAP_ERROR;
+ }
+ err = nl_wait_for_ack(state->nl_sock);
+ if (err < 0) {
+- if (err == -ENFILE) {
+- /*
+- * Device not available; our caller should just
+- * keep trying.
+- */
+- nlmsg_free(msg);
+- return 0;
+- } else {
+- /*
+- * Real failure, not just "that device is not
+- * available.
+- */
+- snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
+- "%s: nl_wait_for_ack failed adding %s interface: %s",
+- device, mondevice, strerror(-err));
+- nlmsg_free(msg);
+- return PCAP_ERROR;
+- }
++ snprintf(handle->errbuf, PCAP_ERRBUF_SIZE,
++ "%s: nl_wait_for_ack failed adding %s interface: %s",
++ device, mondevice, get_nl_errmsg(-err));
++ nlmsg_free(msg);
++ return PCAP_ERROR;
+ }
+
+ /*
+--
+1.7.3.5
+
diff --git a/testing/libpcap/PKGBUILD b/testing/libpcap/PKGBUILD
new file mode 100644
index 000000000..ee36e3354
--- /dev/null
+++ b/testing/libpcap/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 141970 2011-11-03 18:57:47Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=libpcap
+pkgver=1.1.1
+pkgrel=4
+pkgdesc="A system-independent interface for user-level packet capture"
+arch=('i686' 'x86_64')
+url="http://www.tcpdump.org/"
+license=('BSD')
+depends=('glibc' 'libnl' 'sh')
+makedepends=('flex')
+source=(http://www.tcpdump.org/release/libpcap-${pkgver}.tar.gz)
+ #Add-support-for-libnl-2.x-adapted-from-a-newer-versi.patch
+ #Libnl-2.x-returns-its-own-error-codes-not-errnos-han.patch)
+sha256sums=('508cca15547e55d1318498b838456a21770c450beb2dc7d7d4a96d90816e5a85')
+ #'194aa268a3397be3ba406b7102dbdbc14fc16c6e4b535d0a0fab6b04d414563a'
+ #'f1f31c3e2b064f4c9d0e643e8ed1874a65ec17f770362f8ffa3b3f9ee9dc71bb')
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ #patch -p1 -i "${srcdir}"/Add-support-for-libnl-2.x-adapted-from-a-newer-versi.patch
+ #patch -p1 -i "${srcdir}"/Libnl-2.x-returns-its-own-error-codes-not-errnos-han.patch
+ ./configure --prefix=/usr --enable-ipv6
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -d -m755 ${pkgdir}/usr/bin
+ make DESTDIR=${pkgdir} install
+ # remove static library
+ rm -rf ${pkgdir}/usr/lib/libpcap.a
+
+ # backwards compatibility, programs often look for net/bpf.h
+ mkdir -p ${pkgdir}/usr/include/net
+ cd ${pkgdir}/usr/include/net
+ ln -s ../pcap-bpf.h bpf.h
+
+ #install the license
+ install -D -m644 ${srcdir}/$pkgname-$pkgver/LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/testing/librpcsecgss/PKGBUILD b/testing/librpcsecgss/PKGBUILD
new file mode 100644
index 000000000..b492e3218
--- /dev/null
+++ b/testing/librpcsecgss/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 141978 2011-11-03 20:10:28Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Andrew Krawchyk <krawch_a@denison.edu>, Marco Lima <cipparello gmail com>
+
+pkgname=librpcsecgss
+pkgver=0.19
+pkgrel=7
+pkgdesc="Library for RPCSECGSS support"
+arch=('i686' 'x86_64')
+url="http://www.citi.umich.edu/projects/nfsv4/linux/"
+license=('GPL')
+depends=('glibc' 'krb5' 'libgssglue')
+makedepends=('pkg-config' 'autoconf')
+options=('!libtool')
+source=("http://www.citi.umich.edu/projects/nfsv4/linux/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('b45ed565bdc3099023aa35830ec92997')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/testing/librpcsecgss/librpcsecgss-0.18-heimdal.patch b/testing/librpcsecgss/librpcsecgss-0.18-heimdal.patch
new file mode 100644
index 000000000..deb039123
--- /dev/null
+++ b/testing/librpcsecgss/librpcsecgss-0.18-heimdal.patch
@@ -0,0 +1,33 @@
+diff -NaurwB librpcsecgss-0.18.orig/configure.in librpcsecgss-0.18/configure.in
+--- librpcsecgss-0.18.orig/configure.in 2008-04-09 00:05:40.000000000 +0200
++++ librpcsecgss-0.18/configure.in 2008-06-12 19:05:51.000000000 +0200
+@@ -12,10 +12,15 @@
+ AC_PROG_RANLIB
+
+ # Checks for libraries.
+-PKG_CHECK_MODULES([GSSGLUE], [libgssglue >= 0.1], [],
++PKG_CHECK_MODULES([GSSGLUE], [libgssglue >= 0.1],
++ [echo GSSGLUE found; GSSAPI_IMPLEMENTATION=libgssglue],
++ [PKG_CHECK_MODULES([GSSGLUE], [heimdal-gssapi],
++ [echo HEIMDAL found; GSSAPI_IMPLEMENTATION=heimdal-gssapi],
+ [AC_MSG_ERROR([Unable to locate information required to use libgssglue.
+ If you have pkgconfig installed, you might try setting environment
+- variable PKG_CONFIG_PATH to /usr/local/lib/pkgconfig])])
++ variable PKG_CONFIG_PATH to /usr/local/lib/pkgconfig])])])
++
++AC_SUBST([GSSAPI_IMPLEMENTATION])
+
+ # Checks for header files.
+ AC_HEADER_STDC
+diff -NaurwB librpcsecgss-0.18.orig/librpcsecgss.pc.in librpcsecgss-0.18/librpcsecgss.pc.in
+--- librpcsecgss-0.18.orig/librpcsecgss.pc.in 2007-09-06 17:39:04.000000000 +0200
++++ librpcsecgss-0.18/librpcsecgss.pc.in 2008-06-12 19:06:40.000000000 +0200
+@@ -5,7 +5,7 @@
+
+ Name: librpcsecgss
+ Description: Library that implements rpcsec_gss interface.
+-Requires: libgssglue
++Requires: @GSSAPI_IMPLEMENTATION@
+ Version: @PACKAGE_VERSION@
+ Libs: -L@libdir@ -lrpcsecgss
+ Cflags: -I@includedir@/rpcsecgss
diff --git a/testing/libusb-compat/PKGBUILD b/testing/libusb-compat/PKGBUILD
new file mode 100644
index 000000000..1e8f2a3d9
--- /dev/null
+++ b/testing/libusb-compat/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 142008 2011-11-03 22:50:48Z andrea $
+# Maintainer:
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: arjan <arjan@archlinux.org>
+
+pkgname=libusb-compat
+pkgver=0.1.3
+pkgrel=2
+pkgdesc="Library to enable user space application programs to communicate with USB devices"
+arch=('i686' 'x86_64')
+depends=('libusb' 'sh')
+url="http://libusb.sourceforge.net/"
+license=('LGPL')
+source=("http://downloads.sourceforge.net/${pkgname%-*}/${pkgname}-${pkgver%.*}/$pkgname-$pkgver/${pkgname}-${pkgver}.tar.bz2")
+options=('!libtool')
+md5sums=('570ac2ea085b80d1f74ddc7c6a93c0eb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/testing/libusb/PKGBUILD b/testing/libusb/PKGBUILD
new file mode 100644
index 000000000..f99afb302
--- /dev/null
+++ b/testing/libusb/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 141981 2011-11-03 20:12:06Z tpowa $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libusb
+pkgver=1.0.8
+pkgrel=2
+depends=('glibc')
+pkgdesc="Library to enable user space application programs to communicate with USB devices."
+arch=(i686 x86_64)
+url="http://libusb.sourceforge.net/"
+license=('LGPL')
+source=(http://downloads.sourceforge.net/libusb/libusb-${pkgver}.tar.bz2)
+options=(!libtool)
+replaces=(libusb1)
+md5sums=('37d34e6eaa69a4b645a19ff4ca63ceef')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package () {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/linux-atm/PKGBUILD b/testing/linux-atm/PKGBUILD
new file mode 100644
index 000000000..ad76db0b5
--- /dev/null
+++ b/testing/linux-atm/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 141992 2011-11-03 20:43:33Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Surain Mallawa Arachchi <mas@crc32.net>
+
+pkgname=linux-atm
+pkgver=2.5.2
+pkgrel=1
+pkgdesc="Drivers and tools to support ATM networking under Linux."
+arch=('i686' 'x86_64')
+depends=('glibc')
+url="http://linux-atm.sourceforge.net/"
+license=(GPL)
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ man-pages.patch)
+options=(!libtool !makeflags)
+md5sums=('d49499368c3cf15f73a05d9bce8824a8'
+ '181390736336cdb615ae32f1ae5acfa6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ../man-pages.patch
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/linux-atm/man-pages.patch b/testing/linux-atm/man-pages.patch
new file mode 100644
index 000000000..c504cfe87
--- /dev/null
+++ b/testing/linux-atm/man-pages.patch
@@ -0,0 +1,45 @@
+diff -up linux-atm-2.5.1/src/led/zeppelin.8.fixman linux-atm-2.5.1/src/led/zeppelin.8
+--- linux-atm-2.5.1/src/led/zeppelin.8.fixman 2003-05-02 19:35:04.000000000 +0200
++++ linux-atm-2.5.1/src/led/zeppelin.8 2010-10-13 12:58:18.000000000 +0200
+@@ -99,7 +99,7 @@ Ring and ATM parts of the ELAN, so using
+ recommended. Token Ring support has received less testing than its
+ Ethernet counterpart.
+ .SH FILES
+-.IP \fI/var/run/lec[interface number].pid\fP
++\fI/var/run/lec[interface number].pid\fP
+ The file containing the process id of zeppelin.
+ .SH BUGS
+ John Bonham died 1980 and Led Zeppelin broke.
+diff -up linux-atm-2.5.1/src/mpoad/mpcd.8.fixman linux-atm-2.5.1/src/mpoad/mpcd.8
+--- linux-atm-2.5.1/src/mpoad/mpcd.8.fixman 2001-10-10 00:33:07.000000000 +0200
++++ linux-atm-2.5.1/src/mpoad/mpcd.8 2010-10-13 12:59:14.000000000 +0200
+@@ -28,7 +28,7 @@ mpcd \- ATM MPOA (Multi\-Protocol Over A
+ .B ]]
+ .SH DESCRIPTION
+ MPOA client
+-.SM(MPC) is responsible for creating and receiving
++.SM (MPC) is responsible for creating and receiving
+ internetwork layer shortcuts. Using these shortcuts MPCs forward
+ unicast internetwork layer packets effectively over ATM without need
+ for routing protocols.
+@@ -43,7 +43,7 @@ accepts shortcuts and packets arriving o
+ shortcuts is done with the help of
+ .SM MPOA
+ server
+-.SM(MPS).
++.SM (MPS).
+ .PP
+ Just as the Linux
+ .SM LAN
+diff -up linux-atm-2.5.1/src/sigd/atmsigd.conf.4.fixman linux-atm-2.5.1/src/sigd/atmsigd.conf.4
+--- linux-atm-2.5.1/src/sigd/atmsigd.conf.4.fixman 2001-10-10 00:33:07.000000000 +0200
++++ linux-atm-2.5.1/src/sigd/atmsigd.conf.4 2010-10-13 12:58:49.000000000 +0200
+@@ -125,7 +125,7 @@ a comment. The `#' character cannot be e
+ .P
+ If an option is specified in \fBatmsigd.conf\fP and on the command
+ line, the command line has priority.
+-.COMPATIBILITY
++.SH COMPATIBILITY
+ Certain options used by past versions of \fBatmsigd\fP but no longer documented
+ on the man page are still recognized and supported, but they also yield a
+ warning message. Future versions of \fBatmsigd\fP will not recognize those
diff --git a/testing/m4/PKGBUILD b/testing/m4/PKGBUILD
new file mode 100644
index 000000000..917fbdad3
--- /dev/null
+++ b/testing/m4/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 141937 2011-11-03 10:57:23Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=m4
+pkgver=1.4.16
+pkgrel=2
+pkgdesc="The GNU macro processor"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/m4"
+license=('GPL3')
+groups=('base-devel')
+depends=('glibc' 'bash')
+install=m4.install
+source=(ftp://ftp.gnu.org/gnu/m4/$pkgname-$pkgver.tar.xz{,.sig}
+ m4-1.4.16-readlink-einval.patch)
+md5sums=('7548ec061a1ba993790159764f522d0e'
+ 'eebe5c94e74e7551e2e30c5844f1b653'
+ 'cea138fa9b568d06e46269611cec8dd0')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ patch -Np1 -i $srcdir/m4-1.4.16-readlink-einval.patch
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make prefix=${pkgdir}/usr install
+}
diff --git a/testing/m4/m4-1.4.16-readlink-einval.patch b/testing/m4/m4-1.4.16-readlink-einval.patch
new file mode 100644
index 000000000..6a987510d
--- /dev/null
+++ b/testing/m4/m4-1.4.16-readlink-einval.patch
@@ -0,0 +1,12 @@
+diff -up m4-1.4.16/tests/test-readlink.h.orig m4-1.4.16/tests/test-readlink.h
+--- m4-1.4.16/tests/test-readlink.h.orig 2011-09-19 12:44:58.745546826 +0200
++++ m4-1.4.16/tests/test-readlink.h 2011-09-19 12:46:00.079548410 +0200
+@@ -38,7 +38,7 @@ test_readlink (ssize_t (*func) (char con
+ ASSERT (errno == ENOENT);
+ errno = 0;
+ ASSERT (func ("", buf, sizeof buf) == -1);
+- ASSERT (errno == ENOENT);
++ ASSERT (errno == ENOENT || errno == EINVAL);
+ errno = 0;
+ ASSERT (func (".", buf, sizeof buf) == -1);
+ ASSERT (errno == EINVAL);
diff --git a/testing/m4/m4.install b/testing/m4/m4.install
new file mode 100644
index 000000000..be4138170
--- /dev/null
+++ b/testing/m4/m4.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(m4.info m4.info-1 m4.info-2)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/mlocate/PKGBUILD b/testing/mlocate/PKGBUILD
new file mode 100644
index 000000000..aa7c002f3
--- /dev/null
+++ b/testing/mlocate/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 141941 2011-11-03 11:28:39Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: lydgate
+
+pkgname=mlocate
+pkgver=0.24
+pkgrel=2
+pkgdesc="Faster merging drop-in for slocate"
+arch=('i686' 'x86_64')
+url="http://carolina.mff.cuni.cz/~trmac/blog/mlocate"
+license=('GPL')
+conflicts=('slocate')
+provides=('slocate')
+replaces=('slocate')
+depends=('glibc' 'coreutils' 'sh')
+backup=('etc/updatedb.conf'
+ 'etc/cron.daily/updatedb')
+install=mlocate.install
+source=(https://fedorahosted.org/releases/m/l/mlocate/mlocate-$pkgver.tar.xz
+ updatedb.conf
+ updatedb.cron.daily)
+md5sums=('a9c221e5bc489a2ed710c943990137bd'
+ 'c374ff223f2e07b5e602ba22359f2335'
+ 'cde5da81bebad2de556ef2e43d895e13')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ sed -i '/^groupname /s/mlocate/locate/' Makefile.in
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib
+ make
+
+}
+
+check() {
+ cd $srcdir/$pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # Set up a default updatedb.conf and a daily cronjob
+ install -Dm644 ${srcdir}/updatedb.conf $pkgdir/etc/updatedb.conf
+ install -Dm744 ${srcdir}/updatedb.cron.daily $pkgdir/etc/cron.daily/updatedb
+
+ # Install Mlocate
+ make DESTDIR=$pkgdir install
+
+ ln -sv locate $pkgdir/usr/bin/slocate
+ chgrp -v 21 $pkgdir/usr/bin/locate
+ chmod -v 2755 $pkgdir/usr/bin/locate
+
+ install -dm755 $pkgdir/var/lib
+ install -d -m750 -g21 $pkgdir/var/lib/locate
+}
diff --git a/testing/mlocate/mlocate.install b/testing/mlocate/mlocate.install
new file mode 100644
index 000000000..c7b7f9cf7
--- /dev/null
+++ b/testing/mlocate/mlocate.install
@@ -0,0 +1,18 @@
+post_install() {
+ post_upgrade "$1" "$1"
+ echo "mlocate command is technically locate, but slocate is symlinked and still works."
+ echo "You should run updatedb as root."
+}
+
+post_upgrade() {
+ # This can be removed after {m,x}locate have both been updated
+ getent group slocate &>/dev/null && usr/sbin/groupdel slocate &>/dev/null
+ getent group mlocate &>/dev/null && usr/sbin/groupdel mlocate &>/dev/null
+
+ getent group locate &>/dev/null || usr/sbin/groupadd -g 21 locate &>/dev/null
+ chown -R root:locate var/lib/mlocate
+}
+
+pre_remove() {
+ getent group locate &>/dev/null && usr/sbin/groupdel locate &>/dev/null
+}
diff --git a/testing/mlocate/updatedb.conf b/testing/mlocate/updatedb.conf
new file mode 100644
index 000000000..722b04205
--- /dev/null
+++ b/testing/mlocate/updatedb.conf
@@ -0,0 +1,5 @@
+# directories to exclude from the slocate database:
+PRUNEPATHS="/media /mnt /tmp /var/tmp /var/cache /var/lock /var/run /var/spool"
+
+# filesystems to exclude from the slocate database:
+PRUNEFS="afs auto autofs binfmt_misc cifs coda configfs cramfs debugfs devpts devtmpfs ftpfs iso9660 mqueue ncpfs nfs nfs4 proc ramfs securityfs shfs smbfs sshfs sysfs tmpfs udf usbfs vboxsf"
diff --git a/testing/mlocate/updatedb.cron.daily b/testing/mlocate/updatedb.cron.daily
new file mode 100755
index 000000000..cac9bb063
--- /dev/null
+++ b/testing/mlocate/updatedb.cron.daily
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+# nicenesses range from -20 (most favorable scheduling) to 19 (least favorable)
+NICE=19
+
+# 0 for none, 1 for real time, 2 for best-effort, 3 for idle
+IONICE_CLASS=2
+
+# 0-7 (for IONICE_CLASS 1 and 2 only), 0=highest, 7=lowest
+IONICE_PRIORITY=7
+
+UPDATEDB="/usr/bin/updatedb"
+
+if [ -x /usr/bin/nice ]; then
+ UPDATEDB="/usr/bin/nice -n ${NICE:-19} ${UPDATEDB}"
+fi
+
+if [ -x /usr/bin/ionice ]; then
+ UPDATEDB="/usr/bin/ionice -c ${IONICE_CLASS:-2} -n ${IONICE_PRIORITY:-7} ${UPDATEDB}"
+fi
+
+# Update the "locate" database
+if [ -x /usr/bin/updatedb ]; then
+ if [ -f /etc/updatedb.conf ]; then
+ ${UPDATEDB}
+ else
+ ${UPDATEDB} -f proc
+ fi
+fi
diff --git a/testing/ncurses/PKGBUILD b/testing/ncurses/PKGBUILD
new file mode 100644
index 000000000..1c2df2889
--- /dev/null
+++ b/testing/ncurses/PKGBUILD
@@ -0,0 +1,74 @@
+# $Id: PKGBUILD 141943 2011-11-03 11:43:21Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=ncurses
+pkgver=5.9
+pkgrel=2
+pkgdesc="System V Release 4.0 curses emulation library"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/ncurses/"
+license=('MIT')
+depends=('glibc')
+source=(ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz{,.sig})
+md5sums=('8cb9c412e5f2d96bc6f459aa8c6282a1'
+ '014ffdbbfec6d41a9a89d6cbe6434638')
+
+build() {
+ cd ${srcdir}/
+ mkdir ncurses{,w}-build
+
+ cd ${srcdir}/ncursesw-build
+ ../${pkgname}-${pkgver}/configure --prefix=/usr --mandir=/usr/share/man \
+ --with-shared --with-normal --without-debug --without-ada \
+ --with-install-prefix=${pkgdir} --enable-widec
+ # add --enable-ext-colors with next soname bump
+ make
+
+ # libncurses.so.5 for external binary support
+ cd ${srcdir}/ncurses-build
+ [ $CARCH = "x86_64" ] && CONFIGFLAG="--with-chtype=long"
+ ../${pkgname}-${pkgver}/configure --prefix=/usr \
+ --with-shared --with-normal --without-debug --without-ada \
+ --with-install-prefix=${pkgdir} $CONFIGFLAG
+ make
+}
+
+package() {
+ cd ${srcdir}/ncursesw-build
+ make install
+
+ # move libraries needed for boot to /lib (we call tput in initscripts)
+ install -dm755 ${pkgdir}/lib
+ mv ${pkgdir}/usr/lib/libncursesw.so.5* ${pkgdir}/lib
+ ln -sf ../../lib/libncursesw.so.5 ${pkgdir}/usr/lib/libncursesw.so
+
+ # Fool packages looking to link to non-wide-character ncurses libraries
+ for lib in curses ncurses form panel menu; do
+ rm -f ${pkgdir}/usr/lib/lib${lib}.so
+ echo "INPUT(-l${lib}w)" >${pkgdir}/usr/lib/lib${lib}.so
+ ln -sf lib${lib}w.a ${pkgdir}/usr/lib/lib${lib}.a
+ done
+ ln -sf libncurses++w.a ${pkgdir}/usr/lib/libncurses++.a
+
+ # install tput to /bin
+ install -dm755 ${pkgdir}/bin/
+ mv ${pkgdir}/usr/bin/tput ${pkgdir}/bin/tput
+
+ # Some packages look for -lcurses during build
+ rm -f ${pkgdir}/usr/lib/libcursesw.so
+ echo "INPUT(-lncursesw)" >${pkgdir}/usr/lib/libcursesw.so
+ ln -sf libncurses.so ${pkgdir}/usr/lib/libcurses.so
+ ln -sf libncursesw.a ${pkgdir}/usr/lib/libcursesw.a
+ ln -sf libncurses.a ${pkgdir}/usr/lib/libcurses.a
+
+ # non-widec compatibility library
+ cd ${srcdir}/ncurses-build
+ install -Dm755 lib/libncurses.so.${pkgver} ${pkgdir}/usr/lib/libncurses.so.${pkgver}
+ ln -sf libncurses.so.${pkgver} ${pkgdir}/usr/lib/libncurses.so.5
+
+ # install license, rip it from the readme
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -dm755 ${pkgdir}/usr/share/licenses/$pkgname
+ grep -B 100 '$Id' README > ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
+}
diff --git a/testing/net-tools/PKGBUILD b/testing/net-tools/PKGBUILD
new file mode 100644
index 000000000..abd59addb
--- /dev/null
+++ b/testing/net-tools/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 142002 2011-11-03 21:20:18Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=net-tools
+pkgver=1.60.20110819cvs
+pkgrel=2
+pkgdesc="Configuration tools for Linux networking"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://www.tazenda.demon.co.uk/phil/net-tools"
+depends=('glibc')
+
+# http://www.tazenda.demon.co.uk/phil/$pkgname/$pkgname-$pkgver.tar.bz2
+# use cvs checkout instead
+source=(ftp://ftp.archlinux.org/other/net-tools/net-tools-1.60.20110819cvs.tar.bz2
+ net-tools-1.60-miiioctl.patch
+ net-tools-1.60-nameif_strncpy.patch)
+options=(!makeflags)
+install=net-tools.install
+sha1sums=('02946449191ff279f9f0f7fd7bc65ae21059a2bf'
+ '654a96bc6575efb4a2e04b49de45d448d240eb6e'
+ '7888000d8fe867e58b5b00fe2bcf6c3041d716b4')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+# patch -Np1 -i ../net-tools-1.60-miiioctl.patch
+# patch -Np1 -i ${srcdir}/net-tools-1.60-nameif_strncpy.patch
+ yes "" | make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make BASEDIR=$pkgdir update
+
+ # the following is provided by yp-tools
+ rm "${pkgdir}"/bin/{nis,yp}domainname
+ rm "${pkgdir}"/usr/share/man/man1/{nis,yp}domainname.1
+
+ # hostname is provided by inetutils
+# rm "${pkgdir}"/bin/{hostname,dnsdomainname,domainname}
+# rm -rf "${pkgdir}"/usr/share/man/man1
+}
diff --git a/testing/net-tools/gcc340.patch b/testing/net-tools/gcc340.patch
new file mode 100644
index 000000000..8089bf217
--- /dev/null
+++ b/testing/net-tools/gcc340.patch
@@ -0,0 +1,46 @@
+diff -Naur net-tools-1.60-orig/hostname.c net-tools-1.60/hostname.c
+--- net-tools-1.60-orig/hostname.c 2001-04-08 10:04:23.000000000 -0700
++++ net-tools-1.60/hostname.c 2004-05-07 17:22:14.000000000 -0700
+@@ -78,6 +78,7 @@
+ fprintf(stderr, _("%s: name too long\n"), program_name);
+ break;
+ default:
++ ;
+ }
+ exit(1);
+ }
+@@ -98,6 +99,7 @@
+ fprintf(stderr, _("%s: name too long\n"), program_name);
+ break;
+ default:
++ ;
+ }
+ exit(1);
+ };
+@@ -117,6 +119,7 @@
+ fprintf(stderr, _("%s: name too long\n"), program_name);
+ break;
+ default:
++ ;
+ }
+ exit(1);
+ };
+@@ -174,6 +177,7 @@
+ printf("%s\n", hp->h_name);
+ break;
+ default:
++ ;
+ }
+ }
+
+diff -Naur net-tools-1.60-orig/lib/inet_sr.c net-tools-1.60/lib/inet_sr.c
+--- net-tools-1.60-orig/lib/inet_sr.c 2000-02-20 13:46:45.000000000 -0800
++++ net-tools-1.60/lib/inet_sr.c 2004-05-07 17:20:14.000000000 -0700
+@@ -105,6 +105,7 @@
+ case 2:
+ isnet = 0; break;
+ default:
++ ;
+ }
+
+ /* Fill in the other fields. */
diff --git a/testing/net-tools/net-tools-1.60-2.6-compilefix.patch b/testing/net-tools/net-tools-1.60-2.6-compilefix.patch
new file mode 100644
index 000000000..92ce90128
--- /dev/null
+++ b/testing/net-tools/net-tools-1.60-2.6-compilefix.patch
@@ -0,0 +1,23 @@
+diff -ruN net-tools-1.60.orig/lib/x25_sr.c net-tools-1.60/lib/x25_sr.c
+--- net-tools-1.60.orig/lib/x25_sr.c 2000-05-20 15:38:10.000000000 +0200
++++ net-tools-1.60/lib/x25_sr.c 2003-10-18 20:33:31.927574928 +0200
+@@ -22,6 +22,7 @@
+ #include <sys/socket.h>
+ #include <sys/ioctl.h>
+ #include <linux/x25.h>
++#include <linux/version.h>
+ #include <ctype.h>
+ #include <errno.h>
+ #include <netdb.h>
+@@ -77,7 +78,11 @@
+ rt.sigdigits=sigdigits;
+
+ /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
+ memcpy(&rt.address, &sx25.sx25_addr, sizeof(x25_address));
++#else
++ memcpy(&rt.address, &sx25.sx25_addr, sizeof(struct x25_address));
++#endif
+
+ while (*args) {
+ if (!strcmp(*args,"device") || !strcmp(*args,"dev")) {
diff --git a/testing/net-tools/net-tools-1.60-miiioctl.patch b/testing/net-tools/net-tools-1.60-miiioctl.patch
new file mode 100644
index 000000000..6c7f0693d
--- /dev/null
+++ b/testing/net-tools/net-tools-1.60-miiioctl.patch
@@ -0,0 +1,17 @@
+--- net-tools-1.60.20110819cvs/include/mii.h 2011-08-19 10:14:00.743873299 +0200
++++ net-tools-1.60.20110819cvs/include/mii.h.new 2011-08-19 10:28:26.500524160 +0200
+@@ -14,11 +14,9 @@
+ /* network interface ioctl's for MII commands */
+ #ifndef SIOCGMIIPHY
+ #warning "SIOCGMIIPHY is not defined by your kernel source"
+-#define SIOCGMIIPHY (SIOCDEVPRIVATE) /* Read from current PHY */
+-#define SIOCGMIIREG (SIOCDEVPRIVATE+1) /* Read any PHY register */
+-#define SIOCSMIIREG (SIOCDEVPRIVATE+2) /* Write any PHY register */
+-#define SIOCGPARAMS (SIOCDEVPRIVATE+3) /* Read operational parameters */
+-#define SIOCSPARAMS (SIOCDEVPRIVATE+4) /* Set operational parameters */
++#define SIOCGMIIPHY 0x8947 /* Read from current PHY */
++#define SIOCGMIIREG 0x8948 /* Read any PHY register */
++#define SIOCSMIIREG 0x8949 /* Write any PHY register */
+ #endif
+
+ #include <linux/types.h>
diff --git a/testing/net-tools/net-tools-1.60-nameif.patch b/testing/net-tools/net-tools-1.60-nameif.patch
new file mode 100644
index 000000000..54def00c2
--- /dev/null
+++ b/testing/net-tools/net-tools-1.60-nameif.patch
@@ -0,0 +1,58 @@
+--- net-tools-1.60/nameif.c.nameif 2000-10-18 19:26:29.000000000 +0200
++++ net-tools-1.60/nameif.c 2003-03-19 11:02:01.000000000 +0100
+@@ -117,7 +117,8 @@
+ }
+
+ struct change {
+- struct change *next,**pprev;
++ struct change *next;
++ int found;
+ char ifname[IFNAMSIZ+1];
+ unsigned char mac[6];
+ };
+@@ -139,10 +140,7 @@
+ ch->ifname, pos);
+ if (parsemac(p,ch->mac) < 0)
+ complain(_("cannot parse MAC `%s' at %s"), p, pos);
+- if (clist)
+- clist->pprev = &ch->next;
+ ch->next = clist;
+- ch->pprev = &clist;
+ clist = ch;
+ return 0;
+ }
+@@ -200,7 +198,7 @@
+
+ void usage(void)
+ {
+- fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}"));
++ fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}\n"));
+ exit(1);
+ }
+
+@@ -277,21 +275,21 @@
+ ch = lookupmac(mac);
+ if (!ch)
+ continue;
+-
+- *ch->pprev = ch->next;
++
++ ch->found = 1;
+ if (strcmp(p, ch->ifname)) {
+ if (setname(p, ch->ifname) < 0)
+ complain(_("cannot change name of %s to %s: %s"),
+ p, ch->ifname, strerror(errno));
+ }
+- free(ch);
+ }
+ fclose(ifh);
+
+ while (clist) {
+ struct change *ch = clist;
+ clist = clist->next;
+- warning(_("interface '%s' not found"), ch->ifname);
++ if (!ch->found)
++ warning(_("interface '%s' not found"), ch->ifname);
+ free(ch);
+ }
+
diff --git a/testing/net-tools/net-tools-1.60-nameif_strncpy.patch b/testing/net-tools/net-tools-1.60-nameif_strncpy.patch
new file mode 100644
index 000000000..7568e21a2
--- /dev/null
+++ b/testing/net-tools/net-tools-1.60-nameif_strncpy.patch
@@ -0,0 +1,13 @@
+--- net-tools-1.60/nameif.c.ncpy 2006-10-03 14:24:21.000000000 +0200
++++ net-tools-1.60/nameif.c 2006-10-03 14:22:43.000000000 +0200
+@@ -100,8 +100,8 @@
+ struct ifreq ifr;
+ opensock();
+ memset(&ifr,0,sizeof(struct ifreq));
+- strcpy(ifr.ifr_name, oldname);
+- strcpy(ifr.ifr_newname, newname);
++ strncpy(ifr.ifr_name, oldname, IF_NAMESIZE);
++ strncpy(ifr.ifr_newname, newname, IF_NAMESIZE);
+ return ioctl(ctl_sk, SIOCSIFNAME, &ifr);
+ }
+
diff --git a/testing/net-tools/net-tools.install b/testing/net-tools/net-tools.install
new file mode 100644
index 000000000..9eee9e51b
--- /dev/null
+++ b/testing/net-tools/net-tools.install
@@ -0,0 +1,12 @@
+post_upgrade() {
+ if [ "$(vercmp $2 1.60-16)" -lt 0 ]; then
+ echo "hostname and {,yp,nis}domainname has moved:"
+ echo "----------"
+ echo "hostname is now in coreutils"
+ echo "domainname is now in yp-tools"
+ echo "their functionality might have changed slightly"
+ echo ""
+ echo "dnsdomainname remains in net-tools"
+ echo "----------"
+ fi
+}
diff --git a/testing/net-tools/net-tools.patch b/testing/net-tools/net-tools.patch
new file mode 100644
index 000000000..8af2d2159
--- /dev/null
+++ b/testing/net-tools/net-tools.patch
@@ -0,0 +1,30 @@
+diff -Naur net-tools-1.60-orig/mii-tool.c net-tools-1.60/mii-tool.c
+--- net-tools-1.60-orig/mii-tool.c 2000-05-21 07:31:17.000000000 -0700
++++ net-tools-1.60/mii-tool.c 2004-05-31 12:35:21.000000000 -0700
+@@ -379,16 +379,16 @@
+ /*--------------------------------------------------------------------*/
+
+ const char *usage =
+-"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]
+- -V, --version display version information
+- -v, --verbose more verbose output
+- -R, --reset reset MII to poweron state
+- -r, --restart restart autonegotiation
+- -w, --watch monitor for link status changes
+- -l, --log with -w, write events to syslog
+- -A, --advertise=media,... advertise only specified media
+- -F, --force=media force specified media technology
+-media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,
++"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]\n\
++ -V, --version display version information\n\
++ -v, --verbose more verbose output\n\
++ -R, --reset reset MII to poweron state\n\
++ -r, --restart restart autonegotiation\n\
++ -w, --watch monitor for link status changes\n\
++ -l, --log with -w, write events to syslog\n\
++ -A, --advertise=media,... advertise only specified media\n\
++ -F, --force=media force specified media technology\n\
++media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,\n\
+ (to advertise both HD and FD) 100baseTx, 10baseT\n";
+
+ int main(int argc, char **argv)
diff --git a/testing/openldap/PKGBUILD b/testing/openldap/PKGBUILD
new file mode 100644
index 000000000..93bc18d02
--- /dev/null
+++ b/testing/openldap/PKGBUILD
@@ -0,0 +1,96 @@
+# $Id: PKGBUILD 141927 2011-11-03 08:03:29Z eric $
+# Maintainer:
+
+pkgbase=openldap
+pkgname=('libldap' 'openldap')
+pkgver=2.4.26
+pkgrel=5
+arch=('i686' 'x86_64')
+url="http://www.openldap.org/"
+license=('custom')
+makedepends=('libfetch' 'libltdl' 'libsasl')
+source=(ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${pkgbase}-${pkgver}.tgz
+ slapd slapd.default ntlm.patch)
+md5sums=('f36f3086031dd56ae94f722ffae8df5e'
+ '40fdbdd6c343019cbadf4eb26c6189f2'
+ '6be69f6b7e522cb64cce8703da81ed32'
+ '4258ddbef923d1f29f2843bc050f8c56')
+
+build() {
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ patch -Np1 -i "${srcdir}"/ntlm.patch
+ sed -i 's|-m 644 $(LIBRARY)|-m 755 $(LIBRARY)|' libraries/{liblber,libldap,libldap_r}/Makefile.in
+ sed -i 's|#define LDAPI_SOCK LDAP_RUNDIR LDAP_DIRSEP "run" LDAP_DIRSEP "ldapi"|#define LDAPI_SOCK LDAP_DIRSEP "run" LDAP_DIRSEP "openldap" LDAP_DIRSEP "ldapi"|' include/ldap_defaults.h
+ sed -i 's|%LOCALSTATEDIR%/run|/run/openldap|' servers/slapd/slapd.conf
+ sed -i 's|-$(MKDIR) $(DESTDIR)$(localstatedir)/run|-$(MKDIR) $(DESTDIR)/run/openldap|' servers/slapd/Makefile.in
+
+ LDFLAGS="$LDFLAGS -L\"${pkgdir}\"/libldap/usr/lib"
+ ./configure --prefix=/usr --mandir=/usr/share/man --libexecdir=/usr/lib \
+ --sysconfdir=/etc --localstatedir=/var/lib/openldap \
+ --enable-ipv6 --enable-syslog --enable-local \
+ --enable-bdb --enable-hdb \
+ --enable-crypt --enable-dynamic \
+ --with-threads --disable-wrappers \
+ --enable-spasswd --with-cyrus-sasl \
+ --enable-overlays=mod --enable-modules=yes
+ make
+}
+
+check() {
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ make test
+}
+
+package_libldap() {
+ pkgdesc="Lightweight Directory Access Protocol (LDAP) client libraries"
+ depends=('libsasl' 'libfetch')
+ backup=('etc/openldap/ldap.conf')
+ options=('!libtool')
+
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ for dir in include libraries doc/man/man3 ; do
+ pushd ${dir}
+ make DESTDIR="${pkgdir}" install
+ popd
+ done
+ install -Dm644 doc/man/man5/ldap.conf.5.tmp "${pkgdir}"/usr/share/man/man5/ldap.conf.5
+
+# get rid of duplicate default conf files
+ rm "${pkgdir}"/etc/openldap/*.default
+
+ ln -sf liblber.so "${pkgdir}"/usr/lib/liblber.so.2
+ ln -sf libldap.so "${pkgdir}"/usr/lib/libldap.so.2
+
+ install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
+
+package_openldap() {
+ pkgdesc="Lightweight Directory Access Protocol (LDAP) client and server"
+ depends=("libldap>=${pkgver}" 'libltdl')
+ backup=('etc/openldap/slapd.conf' 'etc/conf.d/slapd')
+ options=('!libtool' 'emptydirs')
+ install=openldap.install
+
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ for dir in clients servers doc/man/man{1,5,8} ; do
+ pushd ${dir}
+ make DESTDIR="${pkgdir}" install
+ popd
+ done
+ rm "${pkgdir}"/usr/share/man/man5/ldap.conf.5
+ rm -r "${pkgdir}"/run
+
+# get rid of duplicate default conf files
+ rm "${pkgdir}"/etc/openldap/*.default
+
+ ln -s ../lib/slapd "${pkgdir}"/usr/sbin/slapd
+
+ chown root:439 "${pkgdir}"/etc/openldap/{slapd.conf,DB_CONFIG.example}
+ chmod 640 "${pkgdir}"/etc/openldap/{slapd.conf,DB_CONFIG.example}
+
+ install -dm700 -o 439 -g 439 "${pkgdir}"/var/lib/openldap
+ install -dm700 -o 439 -g 439 "${pkgdir}"/etc/openldap/slapd.d
+ install -Dm755 "${srcdir}"/slapd "${pkgdir}"/etc/rc.d/slapd
+ install -Dm644 "${srcdir}"/slapd.default "${pkgdir}"/etc/conf.d/slapd
+ install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/testing/openldap/ntlm.patch b/testing/openldap/ntlm.patch
new file mode 100644
index 000000000..6804b610d
--- /dev/null
+++ b/testing/openldap/ntlm.patch
@@ -0,0 +1,230 @@
+Patch from evolution-exchange (2.10.3). The ldap_ntlm_bind function is
+actually called by evolution-data-server, checked at version 1.12.2.
+Without this patch, the Exchange addressbook integration uses simple binds
+with cleartext passwords.
+
+Russ checked with openldap-software for upstream's opinion on this patch
+on 2007-12-21. Upstream had never received it as a patch submission and
+given that it's apparently only for older Exchange servers that can't do
+SASL and DIGEST-MD5, it's not very appealing.
+
+Bug#457374 filed against evolution-data-server asking if this support is
+still required on 2007-12-21.
+
+Index: trunk/include/ldap.h
+===================================================================
+--- trunk.orig/include/ldap.h
++++ trunk/include/ldap.h
+@@ -2461,5 +2461,25 @@
+ LDAPControl **ctrls,
+ LDAPDerefRes **drp ));
+
++/*
++ * hacks for NTLM
++ */
++#define LDAP_AUTH_NTLM_REQUEST ((ber_tag_t) 0x8aU)
++#define LDAP_AUTH_NTLM_RESPONSE ((ber_tag_t) 0x8bU)
++LDAP_F( int )
++ldap_ntlm_bind LDAP_P((
++ LDAP *ld,
++ LDAP_CONST char *dn,
++ ber_tag_t tag,
++ struct berval *cred,
++ LDAPControl **sctrls,
++ LDAPControl **cctrls,
++ int *msgidp ));
++LDAP_F( int )
++ldap_parse_ntlm_bind_result LDAP_P((
++ LDAP *ld,
++ LDAPMessage *res,
++ struct berval *challenge));
++
+ LDAP_END_DECL
+ #endif /* _LDAP_H */
+Index: trunk/libraries/libldap/ntlm.c
+===================================================================
+--- /dev/null
++++ trunk/libraries/libldap/ntlm.c
+@@ -0,0 +1,138 @@
++/* $OpenLDAP: pkg/ldap/libraries/libldap/ntlm.c,v 1.1.4.10 2002/01/04 20:38:21 kurt Exp $ */
++/*
++ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
++ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
++ */
++
++/* Mostly copied from sasl.c */
++
++#include "portable.h"
++
++#include <stdlib.h>
++#include <stdio.h>
++
++#include <ac/socket.h>
++#include <ac/string.h>
++#include <ac/time.h>
++#include <ac/errno.h>
++
++#include "ldap-int.h"
++
++int
++ldap_ntlm_bind(
++ LDAP *ld,
++ LDAP_CONST char *dn,
++ ber_tag_t tag,
++ struct berval *cred,
++ LDAPControl **sctrls,
++ LDAPControl **cctrls,
++ int *msgidp )
++{
++ BerElement *ber;
++ int rc;
++ ber_int_t id;
++
++ Debug( LDAP_DEBUG_TRACE, "ldap_ntlm_bind\n", 0, 0, 0 );
++
++ assert( ld != NULL );
++ assert( LDAP_VALID( ld ) );
++ assert( msgidp != NULL );
++
++ if( msgidp == NULL ) {
++ ld->ld_errno = LDAP_PARAM_ERROR;
++ return ld->ld_errno;
++ }
++
++ /* create a message to send */
++ if ( (ber = ldap_alloc_ber_with_options( ld )) == NULL ) {
++ ld->ld_errno = LDAP_NO_MEMORY;
++ return ld->ld_errno;
++ }
++
++ assert( LBER_VALID( ber ) );
++
++ LDAP_NEXT_MSGID( ld, id );
++ rc = ber_printf( ber, "{it{istON}" /*}*/,
++ id, LDAP_REQ_BIND,
++ ld->ld_version, dn, tag,
++ cred );
++
++ /* Put Server Controls */
++ if( ldap_int_put_controls( ld, sctrls, ber ) != LDAP_SUCCESS ) {
++ ber_free( ber, 1 );
++ return ld->ld_errno;
++ }
++
++ if ( ber_printf( ber, /*{*/ "N}" ) == -1 ) {
++ ld->ld_errno = LDAP_ENCODING_ERROR;
++ ber_free( ber, 1 );
++ return ld->ld_errno;
++ }
++
++ /* send the message */
++ *msgidp = ldap_send_initial_request( ld, LDAP_REQ_BIND, dn, ber, id );
++
++ if(*msgidp < 0)
++ return ld->ld_errno;
++
++ return LDAP_SUCCESS;
++}
++
++int
++ldap_parse_ntlm_bind_result(
++ LDAP *ld,
++ LDAPMessage *res,
++ struct berval *challenge)
++{
++ ber_int_t errcode;
++ ber_tag_t tag;
++ BerElement *ber;
++ ber_len_t len;
++
++ Debug( LDAP_DEBUG_TRACE, "ldap_parse_ntlm_bind_result\n", 0, 0, 0 );
++
++ assert( ld != NULL );
++ assert( LDAP_VALID( ld ) );
++ assert( res != NULL );
++
++ if ( ld == NULL || res == NULL ) {
++ return LDAP_PARAM_ERROR;
++ }
++
++ if( res->lm_msgtype != LDAP_RES_BIND ) {
++ ld->ld_errno = LDAP_PARAM_ERROR;
++ return ld->ld_errno;
++ }
++
++ if ( ld->ld_error ) {
++ LDAP_FREE( ld->ld_error );
++ ld->ld_error = NULL;
++ }
++ if ( ld->ld_matched ) {
++ LDAP_FREE( ld->ld_matched );
++ ld->ld_matched = NULL;
++ }
++
++ /* parse results */
++
++ ber = ber_dup( res->lm_ber );
++
++ if( ber == NULL ) {
++ ld->ld_errno = LDAP_NO_MEMORY;
++ return ld->ld_errno;
++ }
++
++ tag = ber_scanf( ber, "{ioa" /*}*/,
++ &errcode, challenge, &ld->ld_error );
++ ber_free( ber, 0 );
++
++ if( tag == LBER_ERROR ) {
++ ld->ld_errno = LDAP_DECODING_ERROR;
++ return ld->ld_errno;
++ }
++
++ ld->ld_errno = errcode;
++
++ return( ld->ld_errno );
++}
++
+Index: trunk/libraries/libldap/Makefile.in
+===================================================================
+--- trunk.orig/libraries/libldap/Makefile.in
++++ trunk/libraries/libldap/Makefile.in
+@@ -27,7 +27,7 @@
+ init.c options.c print.c string.c util-int.c schema.c \
+ charray.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \
+ tls2.c tls_o.c tls_g.c tls_m.c \
+- turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c \
++ turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c ntlm.c \
+ assertion.c deref.c ldif.c fetch.c
+
+ OBJS = bind.lo open.lo result.lo error.lo compare.lo search.lo \
+@@ -40,7 +40,7 @@
+ init.lo options.lo print.lo string.lo util-int.lo schema.lo \
+ charray.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \
+ tls2.lo tls_o.lo tls_g.lo tls_m.lo \
+- turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo \
++ turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo ntlm.lo \
+ assertion.lo deref.lo ldif.lo fetch.lo
+
+ LDAP_INCDIR= ../../include
+Index: trunk/libraries/libldap_r/Makefile.in
+===================================================================
+--- trunk.orig/libraries/libldap_r/Makefile.in
++++ trunk/libraries/libldap_r/Makefile.in
+@@ -29,7 +29,7 @@
+ init.c options.c print.c string.c util-int.c schema.c \
+ charray.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \
+ tls2.c tls_o.c tls_g.c tls_m.c \
+- turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c \
++ turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c ntlm.c \
+ assertion.c deref.c ldif.c fetch.c
+ SRCS = threads.c rdwr.c rmutex.c tpool.c rq.c \
+ thr_posix.c thr_cthreads.c thr_thr.c thr_lwp.c thr_nt.c \
+@@ -47,7 +47,7 @@
+ init.lo options.lo print.lo string.lo util-int.lo schema.lo \
+ charray.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \
+ tls2.lo tls_o.lo tls_g.lo tls_m.lo \
+- turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo \
++ turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo ntlm.lo \
+ assertion.lo deref.lo ldif.lo fetch.lo
+
+ LDAP_INCDIR= ../../include
diff --git a/testing/openldap/openldap.install b/testing/openldap/openldap.install
new file mode 100644
index 000000000..cf3cb9f25
--- /dev/null
+++ b/testing/openldap/openldap.install
@@ -0,0 +1,20 @@
+post_install(){
+ groupadd -g 439 ldap &>/dev/null
+ useradd -u 439 -g ldap -d /var/lib/openldap -s /bin/false ldap &>/dev/null
+ chown -R ldap:ldap var/lib/openldap &>/dev/null
+}
+
+post_upgrade(){
+ getent group ldap >/dev/null 2>&1 || groupadd -g 439 ldap &>/dev/null
+ getent passwd ldap >/dev/null 2>&1 || useradd -u 439 -g ldap -d /var/lib/openldap -s /bin/false ldap &>/dev/null
+ chown -R ldap:ldap var/lib/openldap &>/dev/null
+}
+
+post_remove(){
+ if getent passwd ldap >/dev/null 2>&1; then
+ userdel ldap
+ fi
+ if getent group ldap >/dev/null 2>&1; then
+ groupdel ldap
+ fi
+}
diff --git a/testing/openldap/slapd b/testing/openldap/slapd
new file mode 100755
index 000000000..4f212da66
--- /dev/null
+++ b/testing/openldap/slapd
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[ -f "/etc/conf.d/slapd" ] && . /etc/conf.d/slapd
+
+PID=`pidof -o %PPID /usr/sbin/slapd`
+case "$1" in
+ start)
+ stat_busy "Starting OpenLDAP"
+ [ ! -d /run/openldap ] && install -d -m755 -o ldap -g ldap /run/openldap
+ if [ -z "$PID" ]; then
+ if [ -z "$SLAPD_SERVICES" ]; then
+ /usr/sbin/slapd -u ldap -g ldap $SLAPD_OPTIONS
+ else
+ /usr/sbin/slapd -u ldap -g ldap -h "$SLAPD_SERVICES" $SLAPD_OPTIONS
+ fi
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ add_daemon slapd
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping OpenLDAP"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /run/openldap/slapd.pid
+ rm -f /run/openldap/slapd.args
+ rm_daemon slapd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/openldap/slapd.default b/testing/openldap/slapd.default
new file mode 100644
index 000000000..72ae2a6a7
--- /dev/null
+++ b/testing/openldap/slapd.default
@@ -0,0 +1,6 @@
+# slapd normally serves ldap only on all TCP-ports 389. slapd can also
+# service requests on TCP-port 636 (ldaps) and requests via unix
+# sockets.
+# Example usage:
+#SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:/// ldapi:///"
+SLAPD_OPTIONS=""
diff --git a/testing/patch/PKGBUILD b/testing/patch/PKGBUILD
new file mode 100644
index 000000000..dcef9714f
--- /dev/null
+++ b/testing/patch/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 141945 2011-11-03 12:04:44Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=patch
+pkgver=2.6.1
+pkgrel=3
+pkgdesc="A utility to apply patch files to original sources"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/patch/patch.html"
+license=('GPL')
+groups=('base-devel')
+depends=('glibc')
+makedepends=('ed')
+optdepends=('ed: Interpret the patch as an ed script; for patch -e functionality(deprecated)')
+source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz{,.sig}
+ patch-2.6.1-get-arg.patch)
+md5sums=('d758eb96d3f75047efc004a720d33daf'
+ 'f7953f3e472fae5118815e6138372e22'
+ '45cd5709adbbcdcb3ab95dc43559c07c')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # Fixed argument type for --get
+ # see https://bugzilla.redhat.com/show_bug.cgi?id=553624
+ patch -Np1 -i $srcdir/patch-2.6.1-get-arg.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make prefix=${pkgdir}/usr mandir=${pkgdir}/usr/share/man install
+}
diff --git a/testing/patch/patch-2.6.1-get-arg.patch b/testing/patch/patch-2.6.1-get-arg.patch
new file mode 100644
index 000000000..45f3bc8a5
--- /dev/null
+++ b/testing/patch/patch-2.6.1-get-arg.patch
@@ -0,0 +1,12 @@
+diff -up patch-2.6.1/src/patch.c.get-arg patch-2.6.1/src/patch.c
+--- patch-2.6.1/src/patch.c.get-arg 2010-07-27 18:05:26.217150510 +0100
++++ patch-2.6.1/src/patch.c 2010-07-27 18:05:47.464150892 +0100
+@@ -558,7 +558,7 @@ static struct option const longopts[] =
+ {"remove-empty-files", no_argument, NULL, 'E'},
+ {"force", no_argument, NULL, 'f'},
+ {"fuzz", required_argument, NULL, 'F'},
+- {"get", no_argument, NULL, 'g'},
++ {"get", required_argument, NULL, 'g'},
+ {"input", required_argument, NULL, 'i'},
+ {"ignore-whitespace", no_argument, NULL, 'l'},
+ #ifdef ENABLE_MERGE
diff --git a/testing/pkg-config/PKGBUILD b/testing/pkg-config/PKGBUILD
new file mode 100644
index 000000000..a8dd714da
--- /dev/null
+++ b/testing/pkg-config/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 141947 2011-11-03 12:12:51Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=pkg-config
+pkgver=0.26
+pkgrel=2
+pkgdesc="A system for managing library compile/link flags"
+arch=('i686' 'x86_64')
+url="http://pkgconfig.freedesktop.org/wiki/"
+license=('GPL')
+groups=('base-devel')
+depends=('glibc' 'popt' 'glib2')
+provides=("pkgconfig=${pkgver}")
+conflicts=('pkgconfig')
+replaces=('pkgconfig')
+source=(http://pkgconfig.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz)
+md5sums=('47525c26a9ba7ba14bf85e01509a7234')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # Use system popt
+ ./configure --prefix=/usr --with-installed-popt
+
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/testing/pkg-config/autoconf-2.66.patch b/testing/pkg-config/autoconf-2.66.patch
new file mode 100644
index 000000000..14cabdf9f
--- /dev/null
+++ b/testing/pkg-config/autoconf-2.66.patch
@@ -0,0 +1,12 @@
+diff -Naur pkg-config-0.25-old//pkg.m4 pkg-config-0.25/pkg.m4
+--- pkg-config-0.25-old//pkg.m4 2009-12-07 06:39:02.000000000 +1000
++++ pkg-config-0.25/pkg.m4 2010-07-15 14:44:37.466942978 +1000
+@@ -135,7 +135,7 @@
+ Consider adjusting the PKG_CONFIG_PATH environment variable if you
+ installed software in a non-standard prefix.
+
+-_PKG_TEXT])dnl
++_PKG_TEXT])[]dnl
+ ])
+ elif test $pkg_failed = untried; then
+ AC_MSG_RESULT([no])
diff --git a/testing/ppp/PKGBUILD b/testing/ppp/PKGBUILD
new file mode 100644
index 000000000..06940052d
--- /dev/null
+++ b/testing/ppp/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 141972 2011-11-03 19:01:44Z thomas $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+pkgname=ppp
+pkgver=2.4.5
+pkgrel=3
+pkgdesc="A daemon which implements the Point-to-Point Protocol for dial-up networking"
+arch=(i686 x86_64)
+url="http://www.samba.org/ppp/"
+license=('custom:GPL/BSD')
+groups=('base')
+depends=('glibc' 'libpcap>=1.0.0')
+backup=(etc/ppp/{chap-secrets,pap-secrets,options,ip-up,ip-down})
+source=(ftp://ftp.samba.org/pub/ppp/ppp-${pkgver}.tar.gz
+ options
+ pon
+ poff
+ ppp
+ plog
+ pon.1
+ ip-up
+ ip-down
+ ip-up.d.dns.sh
+ ip-down.d.dns.sh)
+md5sums=('4621bc56167b6953ec4071043fe0ec57'
+ '7a9259a8f038073eeea7e4552ff1849f'
+ '48c024f73a80c8b69c4def22f86902cc'
+ '2d811f8470ccdea3b8c4505a438483e9'
+ '7561c73b557292d5ba1a9c5dbd270fde'
+ '86cdaf133f7a79fb464f02d83afc7734'
+ '44cc662ba9aa61dd9add3ddd4c5ded57'
+ 'e4beb16ed600b61336d50b2bd2df7cd5'
+ '2fa0671f40711e69194ccf60979f8b33'
+ '4a074d74c29625b254a1db720cb87b99'
+ '8d1be5af8e46393ba6eb273377831e38')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # fix CFLAGS
+ # -D_GNU_SOURCE is needed for IPv6 to work apparently
+ export CFLAGS="$CFLAGS -D_GNU_SOURCE"
+ sed -i "s:-O2 -pipe -Wall -g:${CFLAGS}:" pppd/Makefile.linux
+ sed -i "s:-g -O2:${CFLAGS}:" pppd/plugins/Makefile.linux
+ sed -i "s:-O2:${CFLAGS}:" pppstats/Makefile.linux
+ sed -i "s:-O2 -g -pipe:${CFLAGS}:" chat/Makefile.linux
+ sed -i "s:-O:${CFLAGS}:" pppdump/Makefile.linux
+
+ # enable active filter
+ sed -i "s:^#FILTER=y:FILTER=y:" pppd/Makefile.linux
+ # enable ipv6 support
+ sed -i "s:^#HAVE_INET6=y:HAVE_INET6=y:" pppd/Makefile.linux
+ # Enable Microsoft proprietary Callback Control Protocol
+ sed -i "s:^#CBCP=y:CBCP=y:" pppd/Makefile.linux
+
+ # Fix build error with recent kernels
+ rm include/linux/if_pppol2tp.h
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}/usr" install
+ install -D -m644 ../options "${pkgdir}/etc/ppp/options"
+ install -D -m755 ../ip-up "${pkgdir}/etc/ppp/ip-up"
+ install -D -m755 ../ip-down "${pkgdir}/etc/ppp/ip-down"
+ install -d -m755 "${pkgdir}/etc/ppp/ip-up.d"
+ install -d -m755 "${pkgdir}/etc/ppp/ip-down.d"
+ install -m755 ../ip-up.d.dns.sh "${pkgdir}/etc/ppp/ip-up.d/00-dns.sh"
+ install -m755 ../ip-down.d.dns.sh "${pkgdir}/etc/ppp/ip-down.d/00-dns.sh"
+ install -D -m755 ../pon "${pkgdir}/usr/bin/pon"
+ install -D -m755 ../poff "${pkgdir}/usr/bin/poff"
+ install -D -m755 ../plog "${pkgdir}/usr/sbin/plog"
+ install -D -m600 etc.ppp/pap-secrets "${pkgdir}/etc/ppp/pap-secrets"
+ install -D -m600 etc.ppp/chap-secrets "${pkgdir}/etc/ppp/chap-secrets"
+ install -D -m755 ${srcdir}/ppp "${pkgdir}/etc/rc.d/ppp"
+ install -D -m644 ${srcdir}/pon.1 "${pkgdir}/usr/share/man/man1/pon.1"
+ install -d -m755 "${pkgdir}/etc/ppp/peers"
+ chmod 0755 "${pkgdir}/usr/lib/pppd/${pkgver}"/*.so
+}
diff --git a/testing/ppp/ip-down b/testing/ppp/ip-down
new file mode 100644
index 000000000..301f3ab9b
--- /dev/null
+++ b/testing/ppp/ip-down
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# This script is run by pppd after the connection has ended.
+#
+
+# Execute all scripts in /etc/ppp/ip-up.d/
+for ipdown in /etc/ppp/ip-down.d/*.sh; do
+ if [ -x $ipdown ]; then
+ # Parameters: interface-name tty-device speed local-IP-address remote-IP-address ipparam
+ $ipdown "$@"
+ fi
+done
diff --git a/testing/ppp/ip-down.d.dns.sh b/testing/ppp/ip-down.d.dns.sh
new file mode 100644
index 000000000..9e19f7d1b
--- /dev/null
+++ b/testing/ppp/ip-down.d.dns.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+[ -e /etc/resolv.conf.backup.${IFNAME} ] && mv /etc/resolv.conf.backup.${IFNAME} /etc/resolv.conf
diff --git a/testing/ppp/ip-up b/testing/ppp/ip-up
new file mode 100644
index 000000000..20473d73a
--- /dev/null
+++ b/testing/ppp/ip-up
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# This script is run by pppd when there's a successful ppp connection.
+#
+
+# Execute all scripts in /etc/ppp/ip-up.d/
+for ipup in /etc/ppp/ip-up.d/*.sh; do
+ if [ -x $ipup ]; then
+ # Parameters: interface-name tty-device speed local-IP-address remote-IP-address ipparam
+ $ipup "$@"
+ fi
+done
diff --git a/testing/ppp/ip-up.d.dns.sh b/testing/ppp/ip-up.d.dns.sh
new file mode 100644
index 000000000..f9df543a4
--- /dev/null
+++ b/testing/ppp/ip-up.d.dns.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if [ "$USEPEERDNS" = "1" -a -f /etc/ppp/resolv.conf ]; then
+ [ -e /etc/resolv.conf ] && mv /etc/resolv.conf /etc/resolv.conf.backup.${IFNAME}
+ mv /etc/ppp/resolv.conf /etc/resolv.conf
+ chmod 644 /etc/resolv.conf
+fi
diff --git a/testing/ppp/options b/testing/ppp/options
new file mode 100644
index 000000000..63691842c
--- /dev/null
+++ b/testing/ppp/options
@@ -0,0 +1,352 @@
+# /etc/ppp/options
+#
+# Originally created by Jim Knoble <jmknoble@mercury.interpath.net>
+# Modified for Debian by alvar Bray <alvar@meiko.co.uk>
+# Modified for PPP Server setup by Christoph Lameter <clameter@debian.org>
+# Modified for ArchLinux by Manolis Tzanidakis <manolis@archlinux.org>
+#
+# To quickly see what options are active in this file, use this command:
+# egrep -v '#|^ *$' /etc/ppp/options
+
+# Specify which DNS Servers the incoming Win95 or WinNT Connection should use
+# Two Servers can be remotely configured
+# ms-dns 192.168.1.1
+# ms-dns 192.168.1.2
+
+# Specify which WINS Servers the incoming connection Win95 or WinNT should use
+# ms-wins 192.168.1.50
+# ms-wins 192.168.1.51
+
+# Run the executable or shell command specified after pppd has
+# terminated the link. This script could, for example, issue commands
+# to the modem to cause it to hang up if hardware modem control signals
+# were not available.
+#disconnect "chat -- \d+++\d\c OK ath0 OK"
+
+# async character map -- 32-bit hex; each bit is a character
+# that needs to be escaped for pppd to receive it. 0x00000001
+# represents '\x01', and 0x80000000 represents '\x1f'.
+asyncmap 0
+
+# Require the peer to authenticate itself before allowing network
+# packets to be sent or received.
+# Please do not disable this setting. It is expected to be standard in
+# future releases of pppd. Use the call option (see manpage) to disable
+# authentication for specific peers.
+auth
+
+# Use hardware flow control (i.e. RTS/CTS) to control the flow of data
+# on the serial port.
+crtscts
+
+# Use software flow control (i.e. XON/XOFF) to control the flow of data
+# on the serial port.
+#xonxoff
+
+# Specifies that certain characters should be escaped on transmission
+# (regardless of whether the peer requests them to be escaped with its
+# async control character map). The characters to be escaped are
+# specified as a list of hex numbers separated by commas. Note that
+# almost any character can be specified for the escape option, unlike
+# the asyncmap option which only allows control characters to be
+# specified. The characters which may not be escaped are those with hex
+# values 0x20 - 0x3f or 0x5e.
+#escape 11,13,ff
+
+# Don't use the modem control lines.
+#local
+
+# Specifies that pppd should use a UUCP-style lock on the serial device
+# to ensure exclusive access to the device.
+lock
+
+# Don't show the passwords when logging the contents of PAP packets.
+# This is the default.
+hide-password
+
+# When logging the contents of PAP packets, this option causes pppd to
+# show the password string in the log message.
+#show-password
+
+# Use the modem control lines. On Ultrix, this option implies hardware
+# flow control, as for the crtscts option. (This option is not fully
+# implemented.)
+modem
+
+# Set the MRU [Maximum Receive Unit] value to <n> for negotiation. pppd
+# will ask the peer to send packets of no more than <n> bytes. The
+# minimum MRU value is 128. The default MRU value is 1500. A value of
+# 296 is recommended for slow links (40 bytes for TCP/IP header + 256
+# bytes of data).
+#mru 542
+
+# Set the interface netmask to <n>, a 32 bit netmask in "decimal dot"
+# notation (e.g. 255.255.255.0).
+#netmask 255.255.255.0
+
+# Disables the default behaviour when no local IP address is specified,
+# which is to determine (if possible) the local IP address from the
+# hostname. With this option, the peer will have to supply the local IP
+# address during IPCP negotiation (unless it specified explicitly on the
+# command line or in an options file).
+#noipdefault
+
+# Enables the "passive" option in the LCP. With this option, pppd will
+# attempt to initiate a connection; if no reply is received from the
+# peer, pppd will then just wait passively for a valid LCP packet from
+# the peer (instead of exiting, as it does without this option).
+#passive
+
+# With this option, pppd will not transmit LCP packets to initiate a
+# connection until a valid LCP packet is received from the peer (as for
+# the "passive" option with old versions of pppd).
+#silent
+
+# Don't request or allow negotiation of any options for LCP and IPCP
+# (use default values).
+#-all
+
+# Disable Address/Control compression negotiation (use default, i.e.
+# address/control field disabled).
+#-ac
+
+# Disable asyncmap negotiation (use the default asyncmap, i.e. escape
+# all control characters).
+#-am
+
+# Don't fork to become a background process (otherwise pppd will do so
+# if a serial device is specified).
+#-detach
+
+# Disable IP address negotiation (with this option, the remote IP
+# address must be specified with an option on the command line or in
+# an options file).
+#-ip
+
+# Disable IPCP negotiation and IP communication. This option should
+# only be required if the peer is buggy and gets confused by requests
+# from pppd for IPCP negotiation.
+#noip
+
+# Disable magic number negotiation. With this option, pppd cannot
+# detect a looped-back line.
+#-mn
+
+# Disable MRU [Maximum Receive Unit] negotiation (use default, i.e.
+# 1500).
+#-mru
+
+# Disable protocol field compression negotiation (use default, i.e.
+# protocol field compression disabled).
+#-pc
+
+# Require the peer to authenticate itself using PAP.
+#+pap
+
+# Don't agree to authenticate using PAP.
+#-pap
+
+# Require the peer to authenticate itself using CHAP [Cryptographic
+# Handshake Authentication Protocol] authentication.
+#+chap
+
+# Don't agree to authenticate using CHAP.
+#-chap
+
+# Disable negotiation of Van Jacobson style IP header compression (use
+# default, i.e. no compression).
+#-vj
+
+# Increase debugging level (same as -d). If this option is given, pppd
+# will log the contents of all control packets sent or received in a
+# readable form. The packets are logged through syslog with facility
+# daemon and level debug. This information can be directed to a file by
+# setting up /etc/syslog.conf appropriately (see syslog.conf(5)). (If
+# pppd is compiled with extra debugging enabled, it will log messages
+# using facility local2 instead of daemon).
+#debug
+
+# Append the domain name <d> to the local host name for authentication
+# purposes. For example, if gethostname() returns the name porsche,
+# but the fully qualified domain name is porsche.Quotron.COM, you would
+# use the domain option to set the domain name to Quotron.COM.
+#domain <d>
+
+# Enable debugging code in the kernel-level PPP driver. The argument n
+# is a number which is the sum of the following values: 1 to enable
+# general debug messages, 2 to request that the contents of received
+# packets be printed, and 4 to request that the contents of transmitted
+# packets be printed.
+#kdebug n
+
+# Set the MTU [Maximum Transmit Unit] value to <n>. Unless the peer
+# requests a smaller value via MRU negotiation, pppd will request that
+# the kernel networking code send data packets of no more than n bytes
+# through the PPP network interface.
+#mtu <n>
+
+# Set the name of the local system for authentication purposes to <n>.
+# This is a privileged option. With this option, pppd will use lines in the
+# secrets files which have <n> as the second field when looking for a
+# secret to use in authenticating the peer. In addition, unless overridden
+# with the user option, <n> will be used as the name to send to the peer
+# when authenticating the local system to the peer. (Note that pppd does
+# not append the domain name to <n>.)
+#name <n>
+
+# Enforce the use of the hostname as the name of the local system for
+# authentication purposes (overrides the name option).
+#usehostname
+
+# Set the assumed name of the remote system for authentication purposes
+# to <n>.
+#remotename <n>
+
+# Add an entry to this system's ARP [Address Resolution Protocol]
+# table with the IP address of the peer and the Ethernet address of this
+# system.
+proxyarp
+
+# Use the system password database for authenticating the peer using
+# PAP. Note: mgetty already provides this option. If this is specified
+# then dialin from users using a script under Linux to fire up ppp wont work.
+# login
+
+# If this option is given, pppd will send an LCP echo-request frame to the
+# peer every n seconds. Normally the peer should respond to the echo-request
+# by sending an echo-reply. This option can be used with the
+# lcp-echo-failure option to detect that the peer is no longer connected.
+lcp-echo-interval 30
+
+# If this option is given, pppd will presume the peer to be dead if n
+# LCP echo-requests are sent without receiving a valid LCP echo-reply.
+# If this happens, pppd will terminate the connection. Use of this
+# option requires a non-zero value for the lcp-echo-interval parameter.
+# This option can be used to enable pppd to terminate after the physical
+# connection has been broken (e.g., the modem has hung up) in
+# situations where no hardware modem control lines are available.
+lcp-echo-failure 4
+
+# Set the LCP restart interval (retransmission timeout) to <n> seconds
+# (default 3).
+#lcp-restart <n>
+
+# Set the maximum number of LCP terminate-request transmissions to <n>
+# (default 3).
+#lcp-max-terminate <n>
+
+# Set the maximum number of LCP configure-request transmissions to <n>
+# (default 10).
+#lcp-max-configure <n>
+
+# Set the maximum number of LCP configure-NAKs returned before starting
+# to send configure-Rejects instead to <n> (default 10).
+#lcp-max-failure <n>
+
+# Set the IPCP restart interval (retransmission timeout) to <n>
+# seconds (default 3).
+#ipcp-restart <n>
+
+# Set the maximum number of IPCP terminate-request transmissions to <n>
+# (default 3).
+#ipcp-max-terminate <n>
+
+# Set the maximum number of IPCP configure-request transmissions to <n>
+# (default 10).
+#ipcp-max-configure <n>
+
+# Set the maximum number of IPCP configure-NAKs returned before starting
+# to send configure-Rejects instead to <n> (default 10).
+#ipcp-max-failure <n>
+
+# Set the PAP restart interval (retransmission timeout) to <n> seconds
+# (default 3).
+#pap-restart <n>
+
+# Set the maximum number of PAP authenticate-request transmissions to
+# <n> (default 10).
+#pap-max-authreq <n>
+
+# Set the maximum time that pppd will wait for the peer to authenticate
+# itself with PAP to <n> seconds (0 means no limit).
+#pap-timeout <n>
+
+# Set the CHAP restart interval (retransmission timeout for
+# challenges) to <n> seconds (default 3).
+#chap-restart <n>
+
+# Set the maximum number of CHAP challenge transmissions to <n>
+# (default 10).
+#chap-max-challenge
+
+# If this option is given, pppd will rechallenge the peer every <n>
+# seconds.
+#chap-interval <n>
+
+# With this option, pppd will accept the peer's idea of our local IP
+# address, even if the local IP address was specified in an option.
+#ipcp-accept-local
+
+# With this option, pppd will accept the peer's idea of its (remote) IP
+# address, even if the remote IP address was specified in an option.
+#ipcp-accept-remote
+
+# Disable the IPXCP and IPX protocols.
+# To let pppd pass IPX packets comment this out --- you'll probably also
+# want to install ipxripd, and have the Internal IPX Network option enabled
+# in your kernel. /usr/doc/HOWTO/IPX-HOWTO.gz contains more info.
+noipx
+
+# Exit once a connection has been made and terminated. This is the default,
+# unless the `persist' or `demand' option has been specified.
+#nopersist
+
+# Do not exit after a connection is terminated; instead try to reopen
+# the connection.
+#persist
+
+# Terminate after n consecutive failed connection attempts.
+# A value of 0 means no limit. The default value is 10.
+#maxfail <n>
+
+# Initiate the link only on demand, i.e. when data traffic is present.
+# With this option, the remote IP address must be specified by the user on
+# the command line or in an options file. Pppd will initially configure
+# the interface and enable it for IP traffic without connecting to the peer.
+# When traffic is available, pppd will connect to the peer and perform
+# negotiation, authentication, etc. When this is completed, pppd will
+# commence passing data packets (i.e., IP packets) across the link.
+#demand
+
+# Specifies that pppd should disconnect if the link is idle for <n> seconds.
+# The link is idle when no data packets (i.e. IP packets) are being sent or
+# received. Note: it is not advisable to use this option with the persist
+# option without the demand option. If the active-filter option is given,
+# data packets which are rejected by the specified activity filter also
+# count as the link being idle.
+#idle <n>
+
+# Specifies how many seconds to wait before re-initiating the link after
+# it terminates. This option only has any effect if the persist or demand
+# option is used. The holdoff period is not applied if the link was
+# terminated because it was idle.
+#holdoff <n>
+
+# Wait for up n milliseconds after the connect script finishes for a valid
+# PPP packet from the peer. At the end of this time, or when a valid PPP
+# packet is received from the peer, pppd will commence negotiation by
+# sending its first LCP packet. The default value is 1000 (1 second).
+# This wait period only applies if the connect or pty option is used.
+#connect-delay <n>
+
+# Packet filtering: for more information, see pppd(8)
+# Any packets matching the filter expression will be interpreted as link
+# activity, and will cause a "demand" connection to be activated, and reset
+# the idle connection timer. (idle option)
+# The filter expression is akin to that of tcpdump(1)
+#active-filter <filter-expression>
+
+# uncomment the line below this if you use PPPoE
+#plugin /usr/lib/pppd/plugins/pppoe.so
+
+# ---<End of File>---
diff --git a/testing/ppp/plog b/testing/ppp/plog
new file mode 100644
index 000000000..84d2c7340
--- /dev/null
+++ b/testing/ppp/plog
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if [ -s /var/log/ppp.log ]; then
+ exec tail "$@" /var/log/ppp.log
+else
+ exec tail "$@" /var/log/syslog | grep ' \(pppd\|chat\)\['
+fi
diff --git a/testing/ppp/poff b/testing/ppp/poff
new file mode 100644
index 000000000..8b4dffc59
--- /dev/null
+++ b/testing/ppp/poff
@@ -0,0 +1,103 @@
+#!/bin/sh
+
+# Written by John Hasler <john@dhh.gt.org> and based on work
+# by Phil Hands <phil@hands.com>. Distributed under the GNU GPL
+
+if [ -x /usr/bin/kill ]; then
+ KILL="/usr/bin/kill"
+else
+ KILL="/bin/kill"
+fi
+SIG=TERM
+DONE="stopped"
+MODE=""
+
+usage ()
+{
+ cat <<!EOF!
+usage: $0 [option] [provider]
+options:
+ -r Cause pppd to drop the line and redial.
+ -d Toggle the state of pppd's debug option.
+ -c Cause pppd to renegotiate compression.
+ -a Stop all pppd's. 'provider' will be ignored.
+ -h Print this help summary and exit.
+ -v Print version and exit.
+ none Stop pppd.
+
+Options may not be combined.
+
+If 'provider' is omitted pppd will be stopped or signalled if and only if
+there is exactly one running unless the '-a' option was given. If
+'provider' is supplied the pppd controlling the connection to that
+provider will be stopped or signalled.
+!EOF!
+}
+
+# Get option. If there are none replace the "?" that getopts puts in
+# FLAG on error with "null".
+getopts rdcavh FLAG
+if [ "$?" -ne 0 ]; then
+ FLAG="null"
+fi
+
+# Check for additional options. Should be none.
+getopts :rdcavh DUMMY
+if [ "$?" -eq 0 ]; then
+ echo "$0: Illegal option -- ${OPTARG}."
+ exit 1
+fi
+
+case $FLAG in
+ "r") SIG=HUP; DONE=signalled; shift ;;
+ "d") SIG=USR1; DONE=signalled; shift ;;
+ "c") SIG=USR2; DONE=signalled; shift ;;
+ "a") MODE="all"; shift ;;
+ "v") echo "$0$Revision: 1.1 $_TrickToPrint_RCS_Revision"; exit 0 ;;
+ "h") usage; exit 0 ;;
+ "?") exit 1;
+esac
+
+# Get the PIDs of all the pppds running. Could also get these from
+# /var/run, but pppd doesn't create .pid files until ppp is up.
+PIDS=`pidof pppd`
+
+# poff is pointless if pppd isn't running.
+if test -z "$PIDS"; then
+ echo "$0: No pppd is running. None ${DONE}."
+ exit 1
+fi
+
+# Find out how many pppd's are running.
+N=`echo "$PIDS" | wc -w`
+
+# If there are no arguments we can't do anything if there is more than one
+# pppd running.
+if test "$#" -eq 0 -a "$N" -gt 1 -a $FLAG != "a" ; then
+ echo "$0: More than one pppd running and no "-a" option and
+no arguments supplied. Nothing ${DONE}."
+ exit 1
+fi
+
+# If either there are no arguments or '-a' was specified kill all the
+# pppd's.
+if test "$#" -eq 0 -o "$MODE" = "all" ; then
+ $KILL -$SIG $PIDS || {
+ echo "$0: $KILL failed. None ${DONE}."
+ exit 1
+ }
+ exit 0
+fi
+
+# There is an argument, so kill the pppd started on that provider.
+PID=`ps axw | grep "[ /]pppd call $1 *\$" | awk '{print $1}'`
+if test -n "$PID" ; then
+ $KILL -$SIG $PID || {
+ echo "$0: $KILL failed. None ${DONE}."
+ exit 1
+ }
+else
+ echo "$0: I could not find a pppd process for provider '$1'. None ${DONE}."
+ exit 1
+fi
+exit 0
diff --git a/testing/ppp/pon b/testing/ppp/pon
new file mode 100644
index 000000000..36885050b
--- /dev/null
+++ b/testing/ppp/pon
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+case "$1" in
+ -*) echo "
+Usage: pon [provider] [arguments]
+
+If you specify one argument, a PPP connection will be started using
+settings from the appropriate file in the /etc/ppp/peers/ directory, and
+any additional arguments supplied will be passed as extra arguments to
+pppd.
+"
+ exit 0
+ ;;
+esac
+
+if [ -z "$1" -a ! -f /etc/ppp/peers/provider ]; then
+ echo "
+Please configure /etc/ppp/peers/provider or use a command line argument to
+use another file in /etc/ppp/peers/ directory.
+"
+ exit 1
+fi
+
+if [ "$1" -a ! -f "/etc/ppp/peers/$1" ]; then
+ echo "
+The file /etc/ppp/peers/$1 does not exist.
+"
+ exit 1
+fi
+
+exec /usr/sbin/pppd call ${@:-provider}
+
diff --git a/testing/ppp/pon.1 b/testing/ppp/pon.1
new file mode 100644
index 000000000..bb3220564
--- /dev/null
+++ b/testing/ppp/pon.1
@@ -0,0 +1,121 @@
+.\" This manual is published under the GPL.
+.\" All guidelines specified in the GPL apply here.
+.\" To get an ascii file:
+.\" groff -man -Tascii pon.1 > pon.txt
+.\"
+.TH PON 1 "July 2000" "Debian Project" "Debian PPPD"
+.SH NAME
+pon, poff, plog \- starts up, shuts down or lists the log of PPP connections
+.SH SYNOPSIS
+.B pon
+[ isp-name [ options ] ]
+.br
+.B poff
+[ -r ] [ -d ] [ -c ] [ -a ] [ -h ] [ isp-name ]
+.br
+.B plog
+[ arguments ]
+.SH DESCRIPTION
+This manual page describes the \fBpon\fP, \fBplog\fP and \fBpoff\fP
+scripts, which allow users to control PPP connections.
+..
+.SS pon
+\fBpon\fP, invoked without arguments, runs the \fI/etc/ppp/ppp_on_boot\fP
+file, if it exists and is executable. Otherwise, a PPP connection will be
+started using configuration from \fI/etc/ppp/peers/provider\fP.
+This is the default behaviour unless an \fBisp-name\fP argument is given.
+.PP
+For instance, to use ISP configuration "myisp" run:
+.IP
+pon myisp
+.PP
+\fBpon\fP will then use the options file \fI/etc/ppp/peers/myisp\fP.
+You can pass additional \fBoptions\fP after the ISP name, too.
+\fBpon\fP can be used to run multiple, simultaneous PPP connections.
+..
+.SS poff
+\fBpoff\fP closes a PPP connection. If more than one PPP connection exists,
+the one named in the argument to \fBpoff\fP will be killed, e.g.
+.IP
+poff myprovider2
+.PP
+will terminate the connection to myprovider2, and leave the PPP connections
+to e.g. "myprovider1" or "myprovider3" up and running.
+.PP
+\fBpoff\fP takes the following command line options:
+.RS
+.TP
+.B "\-r"
+causes the connection to be redialed after it is dropped.
+.TP
+.B "\-d"
+toggles the state of pppd's debug option.
+.TP
+.B "\-c"
+causes
+.BR pppd (8)
+to renegotiate compression.
+.TP
+.B "\-a"
+stops all running ppp connections. If the argument \fBisp-name\fP
+is given it will be ignored.
+.TP
+.B "\-h"
+displays help information.
+.TP
+.B "\-v"
+prints the version and exits.
+.PP
+If no argument is given, \fBpoff\fP will stop or signal pppd if and only
+if there is exactly one running. If more than one connection is active,
+it will exit with an error code of 1.
+..
+.SS plog
+\fBplog\fP shows you the last few lines of \fI/var/log/ppp.log\fP. If that
+file doesn't exist, it shows you the last few lines of your
+\fI/var/log/syslog\fP file, but excluding the lines not generated by pppd.
+This script makes use of the
+.BR tail (1)
+command, so arguments that can be passed to
+.BR tail (1)
+can also be passed to \fBplog\fP.
+.PP
+Note: the \fBplog\fP script can only be used by root or another system
+administrator in group "adm", due to security reasons. Also, to have all
+pppd-generated information in one logfile, that plog can show, you need the
+following line in your \fI/etc/syslog.conf\fP file:
+.PP
+local2.* -/var/log/ppp.log
+.RE
+.SH FILES
+.TP
+.I /etc/ppp/options
+PPPd system options file.
+.TP
+.I /etc/ppp/pap-secrets
+System PAP passwords file.
+.TP
+.I /etc/ppp/chap-secrets
+System CHAP passwords file.
+.TP
+.I /etc/ppp/peers/
+Directory holding the peer options files. The default file is called
+\fIprovider\fP.
+.TP
+.I /etc/chatscripts/provider
+The chat script invoked from the default \fI/etc/ppp/peers/provider\fP.
+.TP
+.I /var/log/ppp.log
+The default PPP log file.
+.SH AUTHORS
+The p-commands were written by Christoph Lameter <clameter@debian.org>.
+Updated and revised by Philip Hands <phil@hands.com>.
+.br
+This manual was written by Othmar Pasteka <othmar@tron.at>. Modified
+by Rob Levin <lilo@openprojects.net>, with some extensions taken from
+the old p-commands manual written by John Hasler <jhasler@debian.org>.
+.SH "SEE ALSO"
+.BR pppd (8),
+.BR chat (8),
+.BR tail (1).
+
diff --git a/testing/ppp/ppp b/testing/ppp/ppp
new file mode 100644
index 000000000..16e01bad7
--- /dev/null
+++ b/testing/ppp/ppp
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/pppd`
+case "$1" in
+ start)
+ stat_busy "Starting PPP daemon"
+ [ -z "$PID" ] && /usr/bin/pon
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon ppp
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping PPP daemon"
+ [ ! -z "$PID" ] && poff -a &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon ppp
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/readline/PKGBUILD b/testing/readline/PKGBUILD
new file mode 100644
index 000000000..f1ebbc270
--- /dev/null
+++ b/testing/readline/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 141949 2011-11-03 12:23:03Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=readline
+_basever=6.2
+_patchlevel=001 #prepare for some patches
+pkgver=$_basever.$_patchlevel
+pkgrel=3
+pkgdesc="GNU readline library"
+arch=('i686' 'x86_64')
+url="http://tiswww.case.edu/php/chet/readline/rltop.html"
+license=('GPL')
+depends=('glibc' 'ncurses')
+backup=('etc/inputrc')
+options=('!emptydirs')
+install=readline.install
+source=(http://ftp.gnu.org/gnu/readline/readline-$_basever.tar.gz{,.sig}
+ inputrc)
+if [ $_patchlevel -gt 00 ]; then
+ for (( p=1; p<=$((10#${_patchlevel})); p++ )); do
+ source=(${source[@]} http://ftp.gnu.org/gnu/readline/readline-$_basever-patches/readline${_basever//./}-$(printf "%03d" $p){,.sig})
+ done
+fi
+md5sums=('67948acb2ca081f23359d0256e9a271c'
+ '928f7d248320a65e43c2dc427e99582b'
+ '58d54966c1191db45973cb3191ac621a'
+ '83287d52a482f790dfb30ec0a8746669'
+ '8e6a51e2e0e6e45a82752e3692c111ac')
+
+build() {
+ cd ${srcdir}/${pkgname}-$_basever
+ for (( p=1; p<=$((10#${_patchlevel})); p++ )); do
+ msg "applying patch readline${_basever//./}-$(printf "%03d" $p)"
+ patch -Np0 -i $srcdir/readline${_basever//./}-$(printf "%03d" $p)
+ done
+
+ # Remove RPATH from shared objects (FS#14366)
+ sed -i 's|-Wl,-rpath,$(libdir) ||g' support/shobj-conf
+
+ # build with -fPIC for x86_64 (FS#15634)
+ [ $CARCH == "x86_64" ] && CFLAGS="$CFLAGS -fPIC"
+
+ ./configure --prefix=/usr --libdir=/lib
+ make SHLIB_LIBS=-lncurses
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-$_basever
+ make DESTDIR=${pkgdir} install
+
+ install -Dm644 ${srcdir}/inputrc ${pkgdir}/etc/inputrc
+
+ # FHS recommends only shared libs in /lib
+ install -dm755 $pkgdir/usr/lib
+ mv $pkgdir/lib/*.a $pkgdir/usr/lib
+
+ # to make the linker find the shared lib and fix compile issues
+ cd ${pkgdir}/usr/lib
+ ln -sv /lib/libreadline.so .
+ ln -sv /lib/libhistory.so .
+}
diff --git a/testing/readline/inputrc b/testing/readline/inputrc
new file mode 100644
index 000000000..fd13a673b
--- /dev/null
+++ b/testing/readline/inputrc
@@ -0,0 +1,36 @@
+# do not bell on tab-completion
+#set bell-style none
+
+set meta-flag on
+set input-meta on
+set convert-meta off
+set output-meta on
+
+$if mode=emacs
+
+# for linux console and RH/Debian xterm
+"\e[1~": beginning-of-line
+"\e[4~": end-of-line
+"\e[5~": beginning-of-history
+"\e[6~": end-of-history
+"\e[7~": beginning-of-line
+"\e[3~": delete-char
+"\e[2~": quoted-insert
+"\e[5C": forward-word
+"\e[5D": backward-word
+"\e\e[C": forward-word
+"\e\e[D": backward-word
+"\e[1;5C": forward-word
+"\e[1;5D": backward-word
+
+# for rxvt
+"\e[8~": end-of-line
+
+# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
+"\eOH": beginning-of-line
+"\eOF": end-of-line
+
+# for freebsd console
+"\e[H": beginning-of-line
+"\e[F": end-of-line
+$endif
diff --git a/testing/readline/readline.install b/testing/readline/readline.install
new file mode 100644
index 000000000..06b646f23
--- /dev/null
+++ b/testing/readline/readline.install
@@ -0,0 +1,17 @@
+infodir=usr/share/info
+filelist=(history.info readline.info rluserman.info)
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/testing/rpcbind/PKGBUILD b/testing/rpcbind/PKGBUILD
new file mode 100644
index 000000000..c7600e76c
--- /dev/null
+++ b/testing/rpcbind/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 141984 2011-11-03 20:14:20Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=rpcbind
+pkgver=0.2.0
+pkgrel=5
+pkgdesc="portmap replacement which supports RPC over various protocols"
+arch=(i686 x86_64)
+depends=('bash' 'glibc' 'libtirpc')
+url="http://rpcbind.sourceforge.net"
+license=('custom')
+replaces=('portmap')
+source=(http://downloads.sourceforge.net/sourceforge/rpcbind/rpcbind-0.2.0.tar.bz2
+ rpcbind-sunrpc.patch
+ rpcbind)
+md5sums=('1a77ddb1aaea8099ab19c351eeb26316'
+ 'c02ac36a98baac70b8a26190524b7b73'
+ '78a963654f57cbb209e228884767836e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ # patch for iana services file
+ patch -Np1 -i ../rpcbind-sunrpc.patch
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd $srcdir/$pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ # install missing man page - https://bugs.archlinux.org/task/21271
+ install -m644 man/rpcinfo.8 $pkgdir/usr/share/man/man8/
+ # install daemon
+ install -D -m755 $srcdir/rpcbind $pkgdir/etc/rc.d/rpcbind
+ # install license
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/rpcbind/COPYING
+}
diff --git a/testing/rpcbind/rpcbind b/testing/rpcbind/rpcbind
new file mode 100755
index 000000000..87c5b50da
--- /dev/null
+++ b/testing/rpcbind/rpcbind
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID="$(pidof -o %PPID /usr/bin/rpcbind)"
+case "$1" in
+ start)
+ stat_busy "Starting rpcbind"
+ [ -z "$PID" ] && /usr/bin/rpcbind &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=$(pidof -o %PPID /usr/bin/rpcbind)
+ echo $PID > /var/run/rpcbind.pid
+ add_daemon rpcbind
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping rpcbind"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/rpcbind.pid
+ rm_daemon rpcbind
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/rpcbind/rpcbind-sunrpc.patch b/testing/rpcbind/rpcbind-sunrpc.patch
new file mode 100644
index 000000000..76cf54ba9
--- /dev/null
+++ b/testing/rpcbind/rpcbind-sunrpc.patch
@@ -0,0 +1,22 @@
+--- rpcbind-0.1.7/src/rpcbind.c.orig 2008-11-19 14:17:34.000000000 +0100
++++ rpcbind-0.1.7/src/rpcbind.c 2010-01-07 13:03:37.416632894 +0100
+@@ -114,7 +114,7 @@
+ char *udp_uaddr; /* Universal UDP address */
+ char *tcp_uaddr; /* Universal TCP address */
+ #endif
+-static char servname[] = "rpcbind";
++static char servname[] = "sunrpc";
+ static char superuser[] = "superuser";
+
+ int main __P((int, char *[]));
+--- rpcbind-0.1.7/src/rpcinfo.c~ 2010-01-08 16:14:24.592156602 +0000
++++ rpcbind-0.1.7/src/rpcinfo.c 2010-01-08 16:14:31.578838609 +0000
+@@ -633,7 +633,7 @@
+ {
+ memset (&hints, 0, sizeof hints);
+ hints.ai_family = AF_INET;
+- if ((error = getaddrinfo (host, "rpcbind", &hints, &res)) != 0 &&
++ if ((error = getaddrinfo (host, "sunrpc", &hints, &res)) != 0 &&
+ (error = getaddrinfo (host, "portmapper", &hints, &res)) != 0)
+ {
+ fprintf (stderr, "rpcinfo: %s: %s\n",
diff --git a/testing/sed/PKGBUILD b/testing/sed/PKGBUILD
new file mode 100644
index 000000000..1fb61309d
--- /dev/null
+++ b/testing/sed/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 141951 2011-11-03 13:36:47Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=sed
+pkgver=4.2.1
+pkgrel=4
+pkgdesc="GNU stream editor"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/sed"
+license=('GPL3')
+groups=('base')
+depends=('acl' 'sh')
+makedepends=('gettext')
+install=sed.install
+source=(ftp://ftp.gnu.org/pub/gnu/sed/${pkgname}-${pkgver}.tar.gz{,.sig})
+md5sums=('f0fd4d7da574d4707e442285fd2d3b86'
+ '91871b227dbf0916e019ba1fb0fbfdf3')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --bindir=/bin --without-included-regex
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/testing/sed/sed.install b/testing/sed/sed.install
new file mode 100644
index 000000000..c0524038b
--- /dev/null
+++ b/testing/sed/sed.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(sed.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/sysfsutils/PKGBUILD b/testing/sysfsutils/PKGBUILD
new file mode 100644
index 000000000..fd238c0c4
--- /dev/null
+++ b/testing/sysfsutils/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 141986 2011-11-03 20:17:26Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=sysfsutils
+pkgver=2.1.0
+pkgrel=7
+pkgdesc="System Utilities Based on Sysfs"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+url="http://linux-diag.sourceforge.net/Sysfsutils.html"
+groups=('base')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/sourceforge/linux-diag/${pkgname}-${pkgver}.tar.gz)
+md5sums=('14e7dcd0436d2f49aa403f67e1ef7ddc')
+options=(!libtool)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ cd "${pkgdir}"
+ mkdir -v lib
+ mv -v usr/lib/libsysfs.so.2* lib/
+ ln -svf ../../lib/libsysfs.so.2 usr/lib/libsysfs.so
+}
diff --git a/testing/tar/PKGBUILD b/testing/tar/PKGBUILD
new file mode 100644
index 000000000..4ebcbd5fd
--- /dev/null
+++ b/testing/tar/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 141953 2011-11-03 14:13:05Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=tar
+pkgver=1.26
+pkgrel=2
+pkgdesc="Utility used to store, backup, and transport files"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/tar/tar.html"
+license=('GPL3')
+groups=('base')
+depends=('glibc' 'sh')
+options=('!emptydirs')
+install=tar.install
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig}
+ tar.1)
+md5sums=('0ced6f20b9fa1bea588005b5ad4b52c1'
+ '6618d5fe7785e138c27d7d6a24e998b2'
+ 'e97e7343f4e23724b4c48bca2f033e38')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib/tar --bindir=/bin
+ make
+}
+
+check() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR=${pkgdir} install
+ install -Dm644 ${srcdir}/tar.1 ${pkgdir}/usr/share/man/man1/tar.1
+}
diff --git a/testing/tar/tar.1 b/testing/tar/tar.1
new file mode 100644
index 000000000..75bbcd38c
--- /dev/null
+++ b/testing/tar/tar.1
@@ -0,0 +1,367 @@
+.\" generated by script on Fri Aug 19 16:19:30 2011
+.Dd Aug 19, 2011
+.Dt TAR 1
+.Sh NAME
+.Nm tar
+.Nd The GNU version of the tar archiving utility
+.Sh SYNOPSIS
+.Nm tar
+.Oo Fl Oc Cm A Fl \-catenate \-concatenate Cm \||\| c Fl \-create Cm \||\| d Fl \-diff \-compare Cm \||\| Fl \-delete Cm \||\| r Fl \-append Cm \||\| t Fl \-list Cm \||\| Fl \-test\-label Cm \||\| u Fl \-update Cm \||\| x Fl \-extract \-get
+.Op Ar options
+.Op Ar pathname ...
+.Sh DESCRIPTION
+.Nm Tar
+stores and extracts files from a tape or disk archive.
+.Pp
+The first argument to
+tar
+should be a function; either one of the letters
+.Cm Acdrtux ,
+or one of the long function names.
+A function letter need not be prefixed with ``\-'', and may be combined
+with other single-letter options.
+A long function name must be prefixed with
+.Cm \\-\\- .
+Some options take a parameter; with the single-letter form
+these must be given as separate arguments.
+With the long form, they may be given by appending
+.Cm = Ns Ar value
+to the option.
+.Sh FUNCTION LETTERS
+Main operation mode:
+.Bl -tag -width flag
+.It Fl A , Fl \-catenate , Fl \-concatenate
+append tar files to an archive
+.It Fl c , Fl \-create
+create a new archive
+.It Fl d , Fl \-diff , Fl \-compare
+find differences between archive and file system
+.It Fl \-delete
+delete from the archive (not on mag tapes!)
+.It Fl r , Fl \-append
+append files to the end of an archive
+.It Fl t , Fl \-list
+list the contents of an archive
+.It Fl \-test\-label
+test the archive volume label and exit
+.It Fl u , Fl \-update
+only append files newer than copy in archive
+.It Fl x , Fl \-extract , Fl \-get
+extract files from an archive
+.El
+.Sh OTHER OPTIONS
+Operation modifiers:
+.Bl -tag -width flag
+.It \-[0\-7][lmh]
+specify drive and density
+.It Fl a , Fl \-auto\-compress
+use archive suffix to determine the compression program
+.It Fl \-add\-file Ns \= Ns Ar FILE
+add given FILE to the archive (useful if its name starts with a dash)
+.It Fl \-anchored
+patterns match file name start
+.It Fl \-no\-anchored
+patterns match after any `/' (default for exclusion)
+.It Fl \-atime\-preserve
+preserve access times on dumped files, either by restoring the times
+.It Fl \-no\-auto\-compress
+do not use archive suffix to determine the compression program
+.It Fl b , Fl \-blocking\-factor Ar BLOCKS
+BLOCKS x 512 bytes per record
+.It Fl B , Fl \-read\-full\-records
+reblock as we read (for 4.2BSD pipes)
+.It Fl \-backup
+backup before removal, choose version CONTROL
+.It Fl C , Fl \-directory Ar DIR
+change to directory DIR
+.It Fl \-check\-device
+check device numbers when creating incremental archives (default)
+.It Fl \-no\-check\-device
+do not check device numbers when creating incremental archives
+.It Fl \-checkpoint
+display progress messages every NUMBERth record (default 10)
+.It Fl \-checkpoint\-action Ns \= Ns Ar ACTION
+execute ACTION on each checkpoint
+.It Fl \-delay\-directory\-restore
+delay setting modification times and permissions of extracted
+.It Fl \-no\-delay\-directory\-restore
+cancel the effect of --delay-directory-restore option
+.It Fl \-exclude Ns \= Ns Ar PATTERN
+exclude files, given as a PATTERN
+.It Fl \-exclude\-backups
+exclude backup and lock files
+.It Fl \-exclude\-caches
+exclude contents of directories containing CACHEDIR.TAG,
+.It Fl \-exclude\-caches\-all
+exclude directories containing CACHEDIR.TAG
+.It Fl \-exclude\-caches\-under
+exclude everything under directories containing CACHEDIR.TAG
+.It Fl \-exclude\-tag Ns \= Ns Ar FILE
+exclude contents of directories containing FILE, except
+.It Fl \-exclude\-tag\-all Ns \= Ns Ar FILE
+exclude directories containing FILE
+.It Fl \-exclude\-tag\-under Ns \= Ns Ar FILE
+exclude everything under directories containing FILE
+.It Fl \-exclude\-vcs
+exclude version control system directories
+.It Fl f , Fl \-file Ar ARCHIVE
+use archive file or device ARCHIVE
+.It Fl F , Fl \-info\-script , Fl \-new\-volume\-script Ar NAME
+run script at end of each tape (implies -M)
+.It Fl \-force\-local
+archive file is local even if it has a colon
+.It Fl \-full\-time
+print file time to its full resolution
+.It Fl g , Fl \-listed\-incremental Ar FILE
+handle new GNU-format incremental backup
+.It Fl G , Fl \-incremental
+handle old GNU-format incremental backup
+.It Fl \-group Ns \= Ns Ar NAME
+force NAME as group for added files
+.It Fl h , Fl \-dereference
+follow symlinks; archive and dump the files they point to
+.It Fl H , Fl \-format Ar FORMAT
+create archive of the given formatFORMAT is one of the following:
+.Bl -tag -width flag
+.It Fl \-format=gnu
+GNU tar 1.13.x format
+.It Fl \-format=oldgnu
+GNU format as per tar <= 1.12
+.It Fl \-format=pax
+POSIX 1003.1-2001 (pax) format
+.It Fl \-format=posix
+same as pax
+.It Fl \-format=ustar
+POSIX 1003.1-1988 (ustar) format
+.It Fl \-format=v7
+old V7 tar format
+.El
+.It Fl \-hard\-dereference
+follow hard links; archive and dump the files they refer to
+.It Fl i , Fl \-ignore\-zeros
+ignore zeroed blocks in archive (means EOF)
+.It Fl I , Fl \-use\-compress\-program Ar PROG
+filter through PROG (must accept -d)
+.It Fl \-ignore\-case
+ignore case
+.It Fl \-no\-ignore\-case
+case sensitive matching (default)
+.It Fl \-ignore\-command\-error
+ignore exit codes of children
+.It Fl \-no\-ignore\-command\-error
+treat non-zero exit codes of children as error
+.It Fl \-ignore\-failed\-read
+do not exit with nonzero on unreadable files
+.It Fl \-index\-file Ns \= Ns Ar FILE
+send verbose output to FILE
+.It Fl j , Fl \-bzip2
+
+.It Fl J , Fl \-xz
+
+.It Fl k , Fl \-keep\-old\-files
+don't replace existing files when extracting
+.It Fl K , Fl \-starting\-file Ar MEMBER-NAME
+begin at member MEMBER-NAME in the archive
+.It Fl \-keep\-newer\-files
+don't replace existing files that are newer than their archive copies
+.It Fl l , Fl \-check\-links
+print a message if not all links are dumped
+.It Fl L , Fl \-tape\-length Ar NUMBER
+change tape after writing NUMBER x 1024 bytes
+.It Fl \-level Ns \= Ns Ar NUMBER
+dump level for created listed-incremental archive
+.It Fl \-lzip
+
+.It Fl \-lzma
+
+.It Fl \-lzop
+
+.It Fl m , Fl \-touch
+don't extract file modified time
+.It Fl M , Fl \-multi\-volume
+create/list/extract multi-volume archive
+.It Fl \-mode Ns \= Ns Ar CHANGES
+force (symbolic) mode CHANGES for added files
+.It Fl \-mtime Ns \= Ns Ar DATE-OR-FILE
+set mtime for added files from DATE-OR-FILE
+.It Fl n , Fl \-seek
+archive is seekable
+.It Fl N , Fl \-newer , Fl \-after\-date Ar DATE-OR-FILE
+only store files newer than DATE-OR-FILE
+.It Fl \-newer\-mtime Ns \= Ns Ar DATE
+compare date and time when data changed only
+.It Fl \-null
+-T reads null-terminated names, disable -C
+.It Fl \-no\-null
+disable the effect of the previous --null option
+.It Fl \-numeric\-owner
+always use numbers for user/group names
+.It Fl O , Fl \-to\-stdout
+extract files to standard output
+.It Fl \-occurrence
+process only the NUMBERth occurrence of each file in the archive;
+.It Fl \-old\-archive , Fl \-portability
+same as --format=v7
+.It Fl \-one\-file\-system
+stay in local file system when creating archive
+.It Fl \-overwrite
+overwrite existing files when extracting
+.It Fl \-overwrite\-dir
+overwrite metadata of existing directories when extracting (default)
+.It Fl \-no\-overwrite\-dir
+preserve metadata of existing directories
+.It Fl \-owner Ns \= Ns Ar NAME
+force NAME as owner for added files
+.It Fl p , Fl \-preserve\-permissions , Fl \-same\-permissions
+extract information about file permissions (default for superuser)
+.It Fl P , Fl \-absolute\-names
+don't strip leading `/'s from file names
+.It Fl \-pax\-option Ns \= Ns Ar keyword[[:]=value][,keyword[[:]=value]]...
+control pax keywords
+.It Fl \-posix
+same as --format=posix
+.It Fl \-preserve
+same as both -p and -s
+.It Fl \-quote\-chars Ns \= Ns Ar STRING
+additionally quote characters from STRING
+.It Fl \-no\-quote\-chars Ns \= Ns Ar STRING
+disable quoting for characters from STRING
+.It Fl \-quoting\-style Ns \= Ns Ar STYLE
+set name quoting style; see below for valid STYLE values
+.It Fl R , Fl \-block\-number
+show block number within archive with each message
+.It Fl \-record\-size Ns \= Ns Ar NUMBER
+NUMBER of bytes per record, multiple of 512
+.It Fl \-recursion
+recurse into directories (default)
+.It Fl \-no\-recursion
+avoid descending automatically in directories
+.It Fl \-recursive\-unlink
+empty hierarchies prior to extracting directory
+.It Fl \-remove\-files
+remove files after adding them to the archive
+.It Fl \-restrict
+disable use of some potentially harmful options
+.It Fl \-rmt\-command Ns \= Ns Ar COMMAND
+use given rmt COMMAND instead of rmt
+.It Fl \-rsh\-command Ns \= Ns Ar COMMAND
+use remote COMMAND instead of rsh
+.It Fl s , Fl \-preserve\-order , Fl \-same\-order
+sort names to extract to match archive
+.It Fl S , Fl \-sparse
+handle sparse files efficiently
+.It Fl \-same\-owner
+try extracting files with the same ownership as exists in the archive (default for superuser)
+.It Fl \-no\-same\-owner
+extract files as yourself (default for ordinary users)
+.It Fl \-no\-same\-permissions
+apply the user's umask when extracting permissions from the archive (default for ordinary users)
+.It Fl \-no\-seek
+archive is not seekable
+.It Fl \-show\-defaults
+show tar defaults
+.It Fl \-show\-omitted\-dirs
+when listing or extracting, list each directory that does not match search criteria
+.It Fl \-show\-transformed\-names , Fl \-show\-stored\-names
+show file or archive names after transformation
+.It Fl \-sparse\-version Ns \= Ns Ar MAJOR[.MINOR]
+set version of the sparse format to use (implies --sparse)
+.It Fl \-strip\-components Ns \= Ns Ar NUMBER
+strip NUMBER leading components from file names on extraction
+.It Fl \-suffix Ns \= Ns Ar STRING
+backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)
+.It Fl T , Fl \-files\-from Ar FILE
+get names to extract or create from FILE
+.It Fl \-to\-command Ns \= Ns Ar COMMAND
+pipe extracted files to another program
+.It Fl \-totals
+print total bytes after processing the archive;
+.It Fl \-transform , Fl \-xform Ar EXPRESSION
+use sed replace EXPRESSION to transform file names
+.It Fl U , Fl \-unlink\-first
+remove each file prior to extracting over it
+.It Fl \-unquote
+unquote filenames read with -T (default)
+.It Fl \-no\-unquote
+do not unquote filenames read with -T
+.It Fl \-utc
+print file modification times in UTC
+.It Fl v , Fl \-verbose
+verbosely list files processed
+.It Fl V , Fl \-label Ar TEXT
+create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name
+.It Fl \-volno\-file Ns \= Ns Ar FILE
+use/update the volume number in FILE
+.It Fl w , Fl \-interactive , Fl \-confirmation
+ask for confirmation for every action
+.It Fl W , Fl \-verify
+attempt to verify the archive after writing it
+.It Fl \-warning Ns \= Ns Ar KEYWORD
+warning control
+.It Fl \-wildcards
+use wildcards (default for exclusion)
+.It Fl \-wildcards\-match\-slash
+wildcards match `/' (default for exclusion)
+.It Fl \-no\-wildcards\-match\-slash
+wildcards do not match `/'
+.It Fl \-no\-wildcards
+verbatim string matching
+.It Fl X , Fl \-exclude\-from Ar FILE
+exclude patterns listed in FILE
+.It Fl z , Fl \-gzip , Fl \-gunzip Fl \-ungzip
+
+.It Fl Z , Fl \-compress , Fl \-uncompress
+
+.El
+.Sh ENVIRONMENT
+The behavior of tar is controlled by the following environment variables,
+among others:
+.Bl -tag -width Ds
+.It Ev SIMPLE_BACKUP_SUFFIX
+Backup prefix to use when extracting, if
+.Fl \-suffix
+is not specified.
+The backup suffix defaults to `~' if neither is specified.
+.It Ev TAR_OPTIONS
+Options to prepend to those specified on the command line, separated by
+whitespace. Embedded backslashes may be used to escape whitespace or
+backslashes within an option.
+.It Ev TAPE
+Device or file to use for the archive if
+.Fl \-file
+is not specified.
+If this environment variable is unset, use stdin or stdout instead.
+.It Ev TAR_LONGLINK_100
+.El
+.Sh EXAMPLES
+Create archive.tar from files foo and bar.
+.Bd -literal -offset indent -compact
+tar \-cf archive.tar foo bar
+.Ed
+List all files in archive.tar verbosely.
+.Bd -literal -offset indent -compact
+tar \-tvf archive.tar
+.Ed
+Extract all files from archive.tar.
+.Bd -literal -offset indent -compact
+tar \-xf archive.tar
+.Ed
+.Sh SEE ALSO
+.\" libarchive
+.Xr tar 5 ,
+.\" man-pages
+.Xr symlink 7 ,
+.Xr rmt 8
+.Sh HISTORY
+The
+.Nm tar
+command appeared in
+.At v7 .
+.Sh BUGS
+The GNU folks, in general, abhor man pages, and create info documents instead.
+Unfortunately, the info document describing tar is licensed under the GFDL with
+invariant cover texts, which makes it impossible to include any text
+from that document in this man page.
+Most of the text in this document was automatically extracted from the usage
+text in the source.
+It may not completely describe all features of the program.
diff --git a/testing/tar/tar.install b/testing/tar/tar.install
new file mode 100644
index 000000000..8de1f9766
--- /dev/null
+++ b/testing/tar/tar.install
@@ -0,0 +1,21 @@
+infodir=usr/share/info
+filelist=(tar.info tar.info-1 tar.info-2)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/testing/texinfo/PKGBUILD b/testing/texinfo/PKGBUILD
new file mode 100644
index 000000000..b5120227e
--- /dev/null
+++ b/testing/texinfo/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 141955 2011-11-03 14:24:19Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=texinfo
+pkgver=4.13a
+pkgrel=6
+pkgdesc="Utilities to work with and produce manuals, ASCII text, and on-line documentation from a single source file"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/texinfo/"
+license=('GPL3')
+groups=('base')
+depends=('ncurses' 'findutils' 'gzip')
+install=texinfo.install
+source=(ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz{,.sig})
+md5sums=('71ba711519209b5fb583fed2b3d86fcb'
+ 'db2ca82c831684cd7cef181234017c46')
+
+build() {
+ cd ${srcdir}/${pkgname}-4.13
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-4.13
+ make DESTDIR=${pkgdir} install
+
+ # fix this here as it prevents make from trying to rebuild manual pages
+ sed -i 's#A-z#A-Za-z#' ${pkgdir}/usr/bin/texi2dvi
+}
diff --git a/testing/texinfo/texinfo.install b/testing/texinfo/texinfo.install
new file mode 100644
index 000000000..f1554e4f4
--- /dev/null
+++ b/testing/texinfo/texinfo.install
@@ -0,0 +1,21 @@
+infodir=usr/share/info
+filelist=(info.info info-stnd.info texinfo texinfo-1 texinfo-2 texinfo-3)
+
+post_install() {
+ # Scan *all* info files on install
+ for file in $(find $infodir -type f ! -name dir); do
+ install-info $file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/which/PKGBUILD b/testing/which/PKGBUILD
new file mode 100644
index 000000000..a5f893aaa
--- /dev/null
+++ b/testing/which/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 141957 2011-11-03 14:30:48Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=which
+pkgver=2.20
+pkgrel=5
+pkgdesc="A utility to show the full path of commands"
+arch=('i686' 'x86_64')
+url="http://www.xs4all.nl/~carlo17/which"
+license=('GPL3')
+groups=('base')
+depends=('glibc' 'sh')
+install=which.install
+source=(http://www.xs4all.nl/~carlo17/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('95be0501a466e515422cde4af46b2744')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/testing/which/which.install b/testing/which/which.install
new file mode 100644
index 000000000..167e2506e
--- /dev/null
+++ b/testing/which/which.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(which.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/xfsprogs/PKGBUILD b/testing/xfsprogs/PKGBUILD
new file mode 100644
index 000000000..c062147da
--- /dev/null
+++ b/testing/xfsprogs/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 141990 2011-11-03 20:33:03Z tpowa $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+pkgname=xfsprogs
+pkgver=3.1.6
+pkgrel=1
+pkgdesc="XFS filesystem utilities"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://oss.sgi.com/projects/xfs/"
+groups=('base')
+depends=('util-linux-ng>=2.16')
+options=('!makeflags' '!libtool')
+# We mirror the sources as upstream tends to move them once a new release is out
+source=("ftp://ftp.archlinux.org/other/xfsprogs/${pkgname}-${pkgver}.tar.gz")
+md5sums=('fbd2c1c5abed4b11047bea6ce53bc6e4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export OPTIMIZER="-march=${CARCH/_/-} -O1"
+ export DEBUG=-DNDEBUG
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DIST_ROOT="${pkgdir}" install install-dev
+ chown -R root $pkgdir
+ chgrp -R root $pkgdir
+}
diff --git a/testing/xinetd/PKGBUILD b/testing/xinetd/PKGBUILD
new file mode 100644
index 000000000..5a2935c13
--- /dev/null
+++ b/testing/xinetd/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 141988 2011-11-03 20:19:56Z tpowa $
+# Maintainer:
+# Contributor: Judd <jvinet@zeroflux.org>
+
+pkgname=xinetd
+pkgver=2.3.14
+pkgrel=8
+pkgdesc="A secure replacement for inetd"
+arch=('i686' 'x86_64')
+url="http://www.xinetd.org/"
+license=('custom')
+optdepends=('perl: for xconv.pl script')
+backup=('etc/xinetd.conf' 'etc/xinetd.d/servers' 'etc/xinetd.d/services')
+source=(http://www.xinetd.org/xinetd-$pkgver.tar.gz
+ xinetd.conf
+ xinetd
+ servers
+ services)
+md5sums=('567382d7972613090215c6c54f9b82d9'
+ 'f109f699a07bc8cfb5791060f5e87f9e'
+ 'ea37a2794f202e6b953d9b6956dad16a'
+ '21f47b4aa20921cfaddddd9f9a407f81'
+ '9fa2061dc7dd738c8424251deb86f81e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i "s#${prefix}/man#${prefix}/share/man#" configure
+ ./configure --prefix=/usr --without-libwrap
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr install
+
+ install -Dm755 $srcdir/xinetd $pkgdir/etc/rc.d/xinetd
+ install -Dm644 $srcdir/xinetd.conf $pkgdir/etc/xinetd.conf
+ install -Dm644 $srcdir/servers $pkgdir/etc/xinetd.d/servers
+ install -Dm644 $srcdir/services $pkgdir/etc/xinetd.d/services
+
+ # install license
+ install -Dm644 COPYRIGHT $pkgdir/usr/share/licenses/$pkgname/COPYRIGHT
+}
diff --git a/testing/xinetd/servers b/testing/xinetd/servers
new file mode 100644
index 000000000..f064c8d7a
--- /dev/null
+++ b/testing/xinetd/servers
@@ -0,0 +1,10 @@
+service servers
+{
+ type = INTERNAL UNLISTED
+ port = 9099
+ socket_type = stream
+ protocol = tcp
+ wait = no
+ disable = yes
+ only_from = 127.0.0.1
+}
diff --git a/testing/xinetd/services b/testing/xinetd/services
new file mode 100644
index 000000000..4ea304c4f
--- /dev/null
+++ b/testing/xinetd/services
@@ -0,0 +1,10 @@
+service services
+{
+ type = INTERNAL UNLISTED
+ port = 9098
+ socket_type = stream
+ protocol = tcp
+ wait = no
+ disable = yes
+ only_from = 127.0.0.1
+}
diff --git a/testing/xinetd/xinetd b/testing/xinetd/xinetd
new file mode 100755
index 000000000..4b8fa369a
--- /dev/null
+++ b/testing/xinetd/xinetd
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/xinetd`
+case "$1" in
+ start)
+ stat_busy "Starting xinetd"
+ [ -z "$PID" ] && /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > /var/run/xinetd.pid
+ add_daemon xinetd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping xinetd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/xinetd.pid
+ rm_daemon xinetd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/xinetd/xinetd.conf b/testing/xinetd/xinetd.conf
new file mode 100644
index 000000000..b15d9f649
--- /dev/null
+++ b/testing/xinetd/xinetd.conf
@@ -0,0 +1,14 @@
+#
+# /etc/xinetd.conf
+#
+
+defaults
+{
+ instances = 60
+ log_type = SYSLOG authpriv
+ log_on_success = HOST PID
+ log_on_failure = HOST
+ cps = 25 30
+}
+
+includedir /etc/xinetd.d
diff --git a/~mtjm/h-client/PKGBUILD b/~mtjm/h-client/PKGBUILD
index 81b0c0a92..a92c2eb6d 100644
--- a/~mtjm/h-client/PKGBUILD
+++ b/~mtjm/h-client/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
pkgname=h-client
-_pkgver=0.0a0.dev-r26
+_pkgver=0.0a0.dev-r50
pkgver=${_pkgver/-/.}
pkgrel=1
pkgdesc="A client for an h-source server (such as http://www.h-node.com)"
@@ -12,10 +12,18 @@ depends=('python2' 'python2-distribute' 'python-pycurl' 'pygtk')
options=(!emptydirs)
# Official source is in SVN, this is made by "python2 setup.py sdist".
source=("http://mtjm.eu/releases/hclient-${_pkgver}.tar.gz")
-md5sums=('1dee91bbd4f5985b986e21953a05c477')
+sha512sums=('fa9c494d32d900bf34d9af1a68e79abbffb29380fbc1812290130e4183b496c1c29f09da216ada7898d69c8ecda58621862507672193cc4fd14ce942dfb7c986')
+
+check() {
+ cd "$srcdir/hclient-${_pkgver}"
+ python2 setup.py test
+}
package() {
cd "$srcdir/hclient-${_pkgver}"
+ # Remove tests, they aren't useful after installation.
+ rm -rf {,build/lib/}tests_hclient
+ rm -rf {,build/lib/}hclient.egg-info
python2 setup.py install --root="$pkgdir/" --optimize=1
}