summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community-testing/r8168-lts/PKGBUILD4
-rw-r--r--community/fish/PKGBUILD4
-rw-r--r--community/fish/fish.install2
-rw-r--r--community/libfm/PKGBUILD4
-rw-r--r--community/libfm/libfm.install2
-rw-r--r--community/multipath-tools/PKGBUILD16
-rw-r--r--community/multipath-tools/rc.d35
-rw-r--r--community/multipath-tools/service12
-rw-r--r--community/ntop/PKGBUILD23
-rw-r--r--community/ntop/ntop.service14
-rw-r--r--community/oidentd/PKGBUILD6
-rw-r--r--community/oidentd/socket1
-rw-r--r--community/python-psutil/PKGBUILD6
-rw-r--r--community/redshift/PKGBUILD7
-rw-r--r--community/supercollider/PKGBUILD10
-rw-r--r--community/zaz/PKGBUILD6
-rw-r--r--extra/nmap/PKGBUILD12
-rw-r--r--extra/nmap/kdesu.patch14
-rw-r--r--extra/rsync/PKGBUILD13
-rw-r--r--extra/rsync/rsyncd.socket11
-rw-r--r--extra/rsync/rsyncd@.service11
-rw-r--r--extra/subversion/PKGBUILD20
-rw-r--r--extra/subversion/subversion-1.7.6-kwallet-gcc47.patch56
-rw-r--r--kernels/linux-libre-lts-rt/PKGBUILD14
-rw-r--r--kernels/linux-libre-lts-rt/linux-libre-lts-rt.install2
-rw-r--r--libre/virtualbox-libre-modules-lts/PKGBUILD2
-rw-r--r--testing/cyrus-sasl/0003_saslauthd_mdoc.patch35
-rw-r--r--testing/cyrus-sasl/0010_maintainer_mode.patch19
-rw-r--r--testing/cyrus-sasl/0011_saslauthd_ac_prog_libtool.patch15
-rw-r--r--testing/cyrus-sasl/0012_xopen_crypt_prototype.patch20
-rw-r--r--testing/cyrus-sasl/0016_pid_file_lock_creation_mask.patch27
-rw-r--r--testing/cyrus-sasl/0018_auth_rimap_quotes.patch35
-rw-r--r--testing/cyrus-sasl/0019_ldap_deprecated.patch22
-rw-r--r--testing/cyrus-sasl/0022_gcc4.4_preprocessor_syntax.patch26
-rw-r--r--testing/cyrus-sasl/0025_ld_as_needed.patch27
-rw-r--r--testing/cyrus-sasl/0026_drop_krb5support_dependency.patch14
-rw-r--r--testing/cyrus-sasl/0027_db5_support.patch24
-rw-r--r--testing/cyrus-sasl/0030-dont_use_la_files_for_opening_plugins.patch134
-rw-r--r--testing/cyrus-sasl/PKGBUILD203
-rw-r--r--testing/cyrus-sasl/cyrus-sasl-2.1.19-checkpw.c.patch170
-rw-r--r--testing/cyrus-sasl/cyrus-sasl-2.1.22-as-needed.patch11
-rw-r--r--testing/cyrus-sasl/cyrus-sasl-2.1.22-automake-1.10.patch94
-rw-r--r--testing/cyrus-sasl/cyrus-sasl-2.1.22-crypt.patch71
-rw-r--r--testing/cyrus-sasl/cyrus-sasl-2.1.22-qa.patch22
-rw-r--r--testing/cyrus-sasl/cyrus-sasl-2.1.23-authd-fix.patch28
-rw-r--r--testing/cyrus-sasl/saslauthd49
-rw-r--r--testing/cyrus-sasl/saslauthd.conf.d1
-rw-r--r--testing/cyrus-sasl/saslauthd.service11
-rw-r--r--testing/dhcp/PKGBUILD13
-rw-r--r--testing/dhcp/dhcpd4.service13
-rw-r--r--testing/dhcp/dhcpd6.service13
-rw-r--r--testing/gdm/PKGBUILD69
-rw-r--r--testing/gdm/fix_external_program_directories.patch34
-rwxr-xr-xtesting/gdm/gdm36
-rw-r--r--testing/gdm/gdm-autologin.pam20
-rw-r--r--testing/gdm/gdm-fingerprint.pam20
-rw-r--r--testing/gdm/gdm-password.pam22
-rw-r--r--testing/gdm/gdm-smartcard.pam20
-rw-r--r--testing/gdm/gdm-vt-allocation-hack.patch118
-rw-r--r--testing/gdm/gdm-welcome.pam12
-rw-r--r--testing/gdm/gdm.install30
-rw-r--r--testing/gdm/gdm.pam10
-rw-r--r--testing/gdm/gdm.service10
-rw-r--r--testing/modemmanager/PKGBUILD38
-rw-r--r--testing/modemmanager/modem-manager.service10
-rw-r--r--testing/openvpn/PKGBUILD75
-rw-r--r--testing/openvpn/openvpn-tapdev.conf12
-rwxr-xr-xtesting/openvpn/openvpn-tapdev.rc40
-rwxr-xr-xtesting/openvpn/openvpn.rc43
-rw-r--r--testing/openvpn/openvpn@.service10
-rw-r--r--testing/postgresql/PKGBUILD154
-rwxr-xr-xtesting/postgresql/postgresql-initdb33
-rw-r--r--testing/postgresql/postgresql.confd11
-rw-r--r--testing/postgresql/postgresql.install26
-rw-r--r--testing/postgresql/postgresql.logrotate4
-rw-r--r--testing/postgresql/postgresql.pam3
-rwxr-xr-xtesting/postgresql/postgresql.rcd79
-rw-r--r--testing/postgresql/postgresql.service20
-rw-r--r--testing/udisks/PKGBUILD37
-rw-r--r--testing/udisks/udisks.service10
80 files changed, 2342 insertions, 68 deletions
diff --git a/community-testing/r8168-lts/PKGBUILD b/community-testing/r8168-lts/PKGBUILD
index f7a332181..62afc9066 100644
--- a/community-testing/r8168-lts/PKGBUILD
+++ b/community-testing/r8168-lts/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 74765 2012-08-03 18:03:24Z tpowa $
+# $Id: PKGBUILD 75279 2012-08-17 18:35:26Z tpowa $
# Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
pkgname=r8168-lts
_pkgname=r8168
pkgver=8.031.00
-pkgrel=4
+pkgrel=5
pkgdesc="A kernel module for Realtek 8168 network cards for linux-lts"
url="http://www.realtek.com.tw"
license=("GPL")
diff --git a/community/fish/PKGBUILD b/community/fish/PKGBUILD
index 00ec0ef53..fdfdabd1c 100644
--- a/community/fish/PKGBUILD
+++ b/community/fish/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 74993 2012-08-11 09:42:41Z bpiotrowski $
+# $Id: PKGBUILD 75266 2012-08-17 10:28:57Z bpiotrowski $
# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
@@ -7,7 +7,7 @@
pkgname=fish
pkgver=2.0b2
-pkgrel=2
+pkgrel=3
pkgdesc='Smart and user friendly shell intended mostly for interactive use'
arch=('i686' 'x86_64')
url='http://ridiculousfish.com/shell/'
diff --git a/community/fish/fish.install b/community/fish/fish.install
index 765006f95..49a65ad82 100644
--- a/community/fish/fish.install
+++ b/community/fish/fish.install
@@ -1,5 +1,5 @@
post_install() {
- grep -q '/usr/bin/zsh' etc/shells || echo '/usr/bin/zsh' >> etc/shells
+ grep -q '/usr/bin/fish' etc/shells || echo '/usr/bin/fish' >> etc/shells
}
post_upgrade() {
diff --git a/community/libfm/PKGBUILD b/community/libfm/PKGBUILD
index 5f5d0e842..7186b054b 100644
--- a/community/libfm/PKGBUILD
+++ b/community/libfm/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 75065 2012-08-13 13:28:06Z bpiotrowski $
+# $Id: PKGBUILD 75270 2012-08-17 10:52:47Z bpiotrowski $
# Maintainer: Bartłomiej Piotrowski <barthalion@gmail.com>
# Contributor: Unknown47 <unknown47r@gmail.com>
# Contributor: Angel Velasquez <angvp@archlinux.org>
@@ -6,7 +6,7 @@
pkgname=libfm
pkgver=1.0
-pkgrel=1
+pkgrel=2
pkgdesc="A library for file management"
url="http://pcmanfm.sourceforge.net/"
arch=('i686' 'x86_64')
diff --git a/community/libfm/libfm.install b/community/libfm/libfm.install
index 1a6a34b9a..e83eccb55 100644
--- a/community/libfm/libfm.install
+++ b/community/libfm/libfm.install
@@ -1,7 +1,7 @@
post_install() {
update-mime-database /usr/share/mime > /dev/null
update-desktop-database -q
- [ -d /usr/lib/gio/modules ] && gio-querymodules /usr/lib/gio/modules
+ #[ -d /usr/lib/gio/modules ] && gio-querymodules /usr/lib/gio/modules
}
post_upgrade() {
diff --git a/community/multipath-tools/PKGBUILD b/community/multipath-tools/PKGBUILD
index 658ad75f9..3312fe01f 100644
--- a/community/multipath-tools/PKGBUILD
+++ b/community/multipath-tools/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 73313 2012-07-06 07:32:23Z bpiotrowski $
+# $Id: PKGBUILD 75262 2012-08-17 10:00:23Z bpiotrowski $
# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
# Contributor: Thomas S Hatch <thatch45 ar gmail dot com>
# Contributor: Michael P <ptchinster@archlinux.us>
@@ -6,7 +6,7 @@
pkgname=multipath-tools
pkgver=0.4.9
-pkgrel=9
+pkgrel=10
pkgdesc='Multipath tools for Linux'
arch=('i686' 'x86_64')
url="http://christophe.varoqui.free.fr/"
@@ -16,13 +16,14 @@ backup=('etc/multipath.conf' 'etc/multipath.conf.annotated')
install=multipath-tools.install
options=(!emptydirs)
source=(http://christophe.varoqui.free.fr/multipath-tools/$pkgname-$pkgver.tar.bz2
- multipath.conf multipath.conf.annotated multipathd.rc
+ rc.d service multipath.conf multipath.conf.annotated
fix-build.patch buffer-overflows.patch log_enquery_overflow.patch
blacklist-cciss-devices.patch explicitly-include-posix_types.h.patch)
md5sums=('a6d4b48afc28f1f50f5ee4b1b06d2765'
+ '7c04ef96441363b0d43a2ebb13a87659'
+ '4843e91a83660e4b3acfb2d804fa344e'
'9324ff0ba8330dcb21b2fcf64988026f'
'be11462922eeeb9fcd2ba5f3f137b7d9'
- '7c04ef96441363b0d43a2ebb13a87659'
'885c0ba9c90b73cc93aa3f78005f81d6'
'c5aab36777b0304a3525533cdd31bddc'
'00eae05e02f1b85062e998574ab1b833'
@@ -45,7 +46,8 @@ build() {
package() {
make LIB='usr/lib' DESTDIR="$pkgdir" bindir='/usr/bin' libudevdir='/usr/lib/udev' install
- install -D -m 644 multipath.conf "$pkgdir"/etc/multipath.conf
- install -D -m 644 multipath.conf.annotated "$pkgdir"/etc/multipath.conf.annotated
- install -D -m 755 multipathd.rc "$pkgdir"/etc/rc.d/multipathd
+ install -Dm644 multipath.conf "$pkgdir"/etc/multipath.conf
+ install -Dm644 multipath.conf.annotated "$pkgdir"/etc/multipath.conf.annotated
+ install -Dm755 rc.d "$pkgdir"/etc/rc.d/multipathd
+ install -Dm644 service "$pkgdir"/usr/lib/systemd/system/multipathd.service
}
diff --git a/community/multipath-tools/rc.d b/community/multipath-tools/rc.d
new file mode 100644
index 000000000..7f5ef5d6a
--- /dev/null
+++ b/community/multipath-tools/rc.d
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting multipathd"
+ /usr/bin/multipathd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon multipathd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping multipathd"
+ [ -f /var/run/multipathd.pid ] && kill `cat /var/run/multipathd.pid` >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon multipathd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/multipath-tools/service b/community/multipath-tools/service
new file mode 100644
index 000000000..a70d0ee1f
--- /dev/null
+++ b/community/multipath-tools/service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Device-Mapper Multipath Device Controller
+After=syslog.target
+
+[Service]
+Type=forking
+PIDFile=/var/run/multipathd.pid
+ExecStart=/sbin/multipathd
+ExecReload=/sbin/multipathd reconfigure
+
+[Install]
+WantedBy=multi-user.target
diff --git a/community/ntop/PKGBUILD b/community/ntop/PKGBUILD
index a44a800cd..98584e1ce 100644
--- a/community/ntop/PKGBUILD
+++ b/community/ntop/PKGBUILD
@@ -1,28 +1,35 @@
-# $Id: PKGBUILD 59714 2011-11-29 13:35:19Z stephane $
+# $Id: PKGBUILD 75281 2012-08-17 18:35:49Z lfleischer $
# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
pkgname=ntop
-pkgver=4.1.0
+pkgver=5.0
pkgrel=2
pkgdesc='A network traffic probe that shows the network usage.'
arch=('i686' 'x86_64')
url='http://www.ntop.org/'
license=('GPL')
-depends=('libevent' 'libpcap' 'gd' 'glib' 'libxml2' 'openssl' 'rrdtool' 'pcre' 'geoip' 'lua')
+depends=('libevent' 'libpcap' 'gd' 'glibc' 'libxml2' 'openssl' 'rrdtool' 'pcre' 'geoip' 'lua')
+makedepends=('subversion' 'ca-certificates')
options=('!libtool' '!makeflags')
install='ntop.install'
source=("http://sourceforge.net/projects/${pkgname}/files/${pkgname}/Stable/${pkgname}-${pkgver}.tar.gz"
'ntop'
- 'ntop.conf.d')
-md5sums=('116df99cf548431393991ea15443c52f'
+ 'ntop.conf.d'
+ 'ntop.service')
+md5sums=('e4115a6609fd2def2dce177772f9a789'
'7b0d7bb57432e768ff387e9f7236f87c'
- '6a9371de1dcf31d8ef13a4cf349c02b3')
+ '6a9371de1dcf31d8ef13a4cf349c02b3'
+ 'bcb2bcfb4b573babdee7d9321591e3e3')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- ./autogen.sh --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --disable-snmp
+ echo 't' | svn export -r 5614 'https://svn.ntop.org/svn/ntop/trunk/nDPI/'
+ tar -czvf nDPI-svn5614.tar.gz nDPI
+
+ ./autogen.sh --noconfig
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --disable-snmp
make
}
@@ -41,4 +48,6 @@ package() {
_plug="$(basename ${_f})"
ln -sf "../../lib${_plug}" "${_f}"
done
+
+ install -Dm0644 "${srcdir}/ntop.service" "${pkgdir}/usr/lib/systemd/system/ntop.service"
}
diff --git a/community/ntop/ntop.service b/community/ntop/ntop.service
new file mode 100644
index 000000000..20a9c66f9
--- /dev/null
+++ b/community/ntop/ntop.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=A network traffic probe similar to the UNIX top command
+Requires=network.target
+ConditionPathExists=/var/lib/ntop/ntop_pw.db
+After=syslog.target network.target
+
+[Service]
+Environment=LANG=C
+ExecStart=/usr/sbin/ntop -i eth0 -w 3000
+Type=simple
+StandardError=syslog
+
+[Install]
+WantedBy=multi-user.target
diff --git a/community/oidentd/PKGBUILD b/community/oidentd/PKGBUILD
index 18807fdf7..8841f76cc 100644
--- a/community/oidentd/PKGBUILD
+++ b/community/oidentd/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 72791 2012-06-22 12:51:10Z dreisner $
+# $Id: PKGBUILD 75286 2012-08-17 22:22:42Z heftig $
# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
# Contributor: simo <simo@archlinux.org>
# Contributor: Mateusz Herych <heniekk@gmail.com>
@@ -6,7 +6,7 @@
pkgname=oidentd
pkgver=2.0.8
-pkgrel=6
+pkgrel=7
pkgdesc='An RFC1413 compliant ident daemon'
arch=('i686' 'x86_64')
url="http://dev.ojnk.net/"
@@ -18,7 +18,7 @@ md5sums=('c3d9a56255819ef8904b867284386911'
'93cbf742cdd0b053f67482273d715f25'
'603307525771724b0f55a2c34fbc3f3e'
'b215bee5764cdecb0939f44d5d2dccbe'
- '651c2ef45d1d345d95056ef0787e29e6')
+ '4442fb9fc10754914568e6ffc3d5fc42')
build() {
cd $srcdir/$pkgname-$pkgver
diff --git a/community/oidentd/socket b/community/oidentd/socket
index 63df7036e..cf00b55b8 100644
--- a/community/oidentd/socket
+++ b/community/oidentd/socket
@@ -1,6 +1,5 @@
[Unit]
Description=Ident (RFC 1413) socket
-Conflicts=oidentd.service
[Socket]
ListenStream=113
diff --git a/community/python-psutil/PKGBUILD b/community/python-psutil/PKGBUILD
index ae4015e87..043ae3513 100644
--- a/community/python-psutil/PKGBUILD
+++ b/community/python-psutil/PKGBUILD
@@ -1,16 +1,16 @@
-# $Id: PKGBUILD 75110 2012-08-14 07:14:59Z seblu $
+# $Id: PKGBUILD 75268 2012-08-17 10:49:54Z seblu $
# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
pkgbase=python-psutil
pkgname=('python-psutil' 'python2-psutil')
-pkgver=0.6.0
+pkgver=0.6.1
pkgrel=1
arch=('i686' 'x86_64')
url='http://code.google.com/p/psutil/'
license=('custom: BSD')
makedepends=('python' 'python-distribute' 'python2' 'python2-distribute')
source=("https://psutil.googlecode.com/files/psutil-$pkgver.tar.gz")
-sha1sums=('67d3292c39af79c1e43b7fce84d7ff51a1b79d8e')
+sha1sums=('f7a76e201601d8e06a1fdf434422f884888aac86')
build() {
cd psutil-$pkgver
diff --git a/community/redshift/PKGBUILD b/community/redshift/PKGBUILD
index 828bfefb6..4296079e6 100644
--- a/community/redshift/PKGBUILD
+++ b/community/redshift/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 66452 2012-02-25 01:45:00Z lfleischer $
+# $Id: PKGBUILD 75276 2012-08-17 13:33:29Z lfleischer $
# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
# Contributor: Geoffrey Teale <tealeg@stop-squark>
# Contributor: Mark, Huo Mian <markhuomian[at]gmail[dot]com>
@@ -6,13 +6,14 @@
pkgname=redshift
pkgver=1.7
-pkgrel=3
+pkgrel=4
pkgdesc='Adjusts the color temperature of your screen according to your surroundings.'
arch=('i686' 'x86_64')
url='http://jonls.dk/redshift/'
license=('GPL3')
depends=('gconf' 'libxxf86vm')
-optdepends=('pyxdg: for gtk-redshift'
+optdepends=('pygtk: for gtk-redshift'
+ 'pyxdg: for gtk-redshift'
'librsvg: for gtk-redshift')
makedepends=('python2')
install='redshift.install'
diff --git a/community/supercollider/PKGBUILD b/community/supercollider/PKGBUILD
index e9f6cde95..ab22feaba 100644
--- a/community/supercollider/PKGBUILD
+++ b/community/supercollider/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 73052 2012-06-29 16:50:17Z speps $
+# $Id: PKGBUILD 75278 2012-08-17 15:40:58Z speps $
# Maintainer : speps <speps at aur dot archlinux dot org>
# Contributor: <farid at archlinux-br.org>
_name=SuperCollider
pkgname=supercollider
-pkgver=3.5.3
+pkgver=3.5.4
pkgrel=1
pkgdesc="An environment and programming language for real time audio synthesis and algorithmic composition"
arch=('i686' 'x86_64')
@@ -18,11 +18,15 @@ optdepends=('emacs: emacs interface'
'ruby: vim support')
install="$pkgname.install"
source=("http://download.sourceforge.net/project/$pkgname/Source/$pkgver/$_name-$pkgver-Source-linux.tar.bz2")
-md5sums=('84fde920c32e9644902f989136a35b91')
+md5sums=('8f0cd3a77e3adf0fd44cf6882ad39703')
build() {
cd "$srcdir/$_name-Source"
+ ## glibc 2.16 + boost 1.49 fix
+ # https://svn.boost.org/trac/boost/ticket/6940
+ sed -i "s/TIME_UTC/&_/" `grep -rl TIME_UTC .`
+
[ -d bld ] || mkdir bld && cd bld
cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release
diff --git a/community/zaz/PKGBUILD b/community/zaz/PKGBUILD
index 87c196109..7a4684d6d 100644
--- a/community/zaz/PKGBUILD
+++ b/community/zaz/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 64723 2012-02-18 02:57:50Z svenstaro $
+# $Id: PKGBUILD 75255 2012-08-17 04:30:40Z svenstaro $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Adrián Chaves Fernández (aka Gallaecio) <adriyetichaves@gmail.com>
# Contributor: Todd Partridge (aka Gen2ly) <toddrpartridge@gmail.com>
pkgname=zaz
pkgver=1.0.0
-pkgrel=2
+pkgrel=3
pkgdesc="Puzzle game where the player has to arrange balls in triplets."
arch=('i686' 'x86_64')
url="http://sourceforge.net/projects/zaz/"
@@ -18,7 +18,7 @@ install=zaz.install
build() {
cd "$srcdir/$pkgname-$pkgver"
- ./configure --prefix=/usr
+ ./configure --prefix=/usr --disable-splash
make
}
diff --git a/extra/nmap/PKGBUILD b/extra/nmap/PKGBUILD
index b519d8c37..1609326b3 100644
--- a/extra/nmap/PKGBUILD
+++ b/extra/nmap/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 161987 2012-06-17 23:52:34Z bisson $
+# $Id: PKGBUILD 165381 2012-08-17 08:46:12Z bisson $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Angel Velasquez <angvp@archlinux.org>
# Contributor: Hugo Doria <hugo@archlinux.org>
pkgname=nmap
pkgver=6.01
-pkgrel=1
+pkgrel=2
pkgdesc='Utility for network discovery and security auditing'
url='http://nmap.org/'
arch=('i686' 'x86_64')
@@ -13,8 +13,10 @@ license=('GPL')
makedepends=('pygtk')
optdepends=('pygtk: zenmap')
depends=('pcre' 'openssl' 'libpcap' 'lua')
-source=("http://nmap.org/dist/${pkgname}-${pkgver}.tar.bz2")
-sha1sums=('e397e453893930d14e9bb33a847d15b94b7ee83a')
+source=("http://nmap.org/dist/${pkgname}-${pkgver}.tar.bz2"
+ 'kdesu.patch')
+sha1sums=('e397e453893930d14e9bb33a847d15b94b7ee83a'
+ '159bc1243564d3a9dee820291bf07168870cbaf6')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
@@ -23,6 +25,8 @@ build() {
echo 'TryExec=/usr/bin/pygtk-demo' >> zenmap/install_scripts/unix/zenmap.desktop
echo 'TryExec=/usr/bin/pygtk-demo' >> zenmap/install_scripts/unix/zenmap-root.desktop
+ patch -p1 -i ../kdesu.patch # FS#31158
+
./configure \
--prefix=/usr \
--libexecdir=/usr/lib \
diff --git a/extra/nmap/kdesu.patch b/extra/nmap/kdesu.patch
new file mode 100644
index 000000000..daed631d6
--- /dev/null
+++ b/extra/nmap/kdesu.patch
@@ -0,0 +1,14 @@
+diff -Naur old/zenmap/install_scripts/unix/su-to-zenmap.sh new/zenmap/install_scripts/unix/su-to-zenmap.sh
+--- old/zenmap/install_scripts/unix/su-to-zenmap.sh 2012-08-17 18:34:05.863827354 +1000
++++ new/zenmap/install_scripts/unix/su-to-zenmap.sh 2012-08-17 18:35:53.872952226 +1000
+@@ -40,8 +40,8 @@
+ fi
+ case $SU_TO_ROOT_X in
+ gksu) gksu -u "$PRIV" "$COMMAND";;
+- kdesu) kdesu -u "$PRIV" "$COMMAND";;
+- kde4su) /usr/lib/kde4/libexec/kdesu -u "$PRIV" "$COMMAND";;
++ kdesu) kdesu -u "$PRIV" -c "$COMMAND";;
++ kde4su) /usr/lib/kde4/libexec/kdesu -u "$PRIV" -c "$COMMAND";;
+ ktsuss) ktsuss -u "$PRIV" "$COMMAND";;
+ # As a last resort, open a new xterm use sudo/su
+ sdterm) xterm -e "sudo -u $PRIV $COMMAND";;
diff --git a/extra/rsync/PKGBUILD b/extra/rsync/PKGBUILD
index 122453775..756d5bb35 100644
--- a/extra/rsync/PKGBUILD
+++ b/extra/rsync/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 160933 2012-06-07 05:56:33Z pierre $
+# $Id: PKGBUILD 165402 2012-08-18 01:22:52Z heftig $
pkgname=rsync
pkgver=3.0.9
-pkgrel=3
+pkgrel=4
pkgdesc="A file transfer program to keep remote files in sync"
arch=('i686' 'x86_64')
url="http://samba.anu.edu.au/rsync/"
@@ -10,12 +10,15 @@ license=('GPL3')
depends=('perl')
backup=('etc/rsyncd.conf' 'etc/xinetd.d/rsync')
source=("http://rsync.samba.org/ftp/rsync/$pkgname-$pkgver.tar.gz"
- 'rsyncd.conf' 'rsyncd' 'rsync.xinetd' 'rsyncd.service')
+ 'rsyncd.conf' 'rsyncd' 'rsync.xinetd' 'rsyncd.service'
+ 'rsyncd.socket' 'rsyncd@.service')
md5sums=('5ee72266fe2c1822333c407e1761b92b'
'bce64d122a8e0f86872a4a21a03bc7f3'
'ba413da4ebca05c57860151fda21efbc'
'ea3e9277dc908bc51f9eddc0f6b935c1'
- 'ec96f9089d71109557cdcaa3f0633ed6')
+ 'ec96f9089d71109557cdcaa3f0633ed6'
+ 'af4eabd94380050191b20ab03e6f6076'
+ '53f94e613e0bc502d38dd61bd2cd7636')
build() {
cd "$srcdir/$pkgname-$pkgver"
@@ -35,5 +38,7 @@ package() {
install -Dm644 ../rsyncd.conf "$pkgdir/etc/rsyncd.conf"
install -Dm644 ../rsync.xinetd "$pkgdir/etc/xinetd.d/rsync"
install -Dm644 ../rsyncd.service "$pkgdir/usr/lib/systemd/system/rsyncd.service"
+ install -m644 ../rsyncd.socket "$pkgdir/usr/lib/systemd/system/rsyncd.socket"
+ install -m644 ../rsyncd@.service "$pkgdir/usr/lib/systemd/system/rsyncd@.service"
install -Dm755 support/rrsync "$pkgdir/usr/lib/rsync/rrsync"
}
diff --git a/extra/rsync/rsyncd.socket b/extra/rsync/rsyncd.socket
new file mode 100644
index 000000000..83724159f
--- /dev/null
+++ b/extra/rsync/rsyncd.socket
@@ -0,0 +1,11 @@
+[Unit]
+Description=Rsync Socket
+After=network.target
+Conflicts=rsyncd.service
+
+[Socket]
+ListenStream=873
+Accept=true
+
+[Install]
+WantedBy=sockets.target
diff --git a/extra/rsync/rsyncd@.service b/extra/rsync/rsyncd@.service
new file mode 100644
index 000000000..33db95c4c
--- /dev/null
+++ b/extra/rsync/rsyncd@.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=A file transfer program to keep remote files in sync
+After=network.target
+
+[Service]
+ExecStart=-/usr/bin/rsync --daemon
+StandardInput=socket
+StandardOutput=inherit
+StandardError=journal
+User=nobody
+Group=nobody
diff --git a/extra/subversion/PKGBUILD b/extra/subversion/PKGBUILD
index c38ea4a3a..8dee5bf18 100644
--- a/extra/subversion/PKGBUILD
+++ b/extra/subversion/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 165293 2012-08-15 00:13:54Z stephane $
+# $Id: PKGBUILD 165382 2012-08-17 10:46:53Z stephane $
# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Paul Mattal <paul@archlinux.org>
# Contributor: Jason Chu <jason@archlinux.org>
pkgname=subversion
-pkgver=1.7.5
-pkgrel=3
+pkgver=1.7.6
+pkgrel=1
pkgdesc="A Modern Concurrent Version Control System"
arch=('i686' 'x86_64')
license=('APACHE')
depends=('neon' 'apr-util' 'sqlite' 'file')
optdepends=('libgnome-keyring' 'kdeutils-kwallet' 'bash-completion: for svn bash completion' \
- 'python2: for some hook scripts') # 'ruby: for some hook scripts' 'java-environment')
+ 'python2: for some hook scripts' 'java-environment') #'ruby: for some hook scripts')
makedepends=('krb5' 'apache' 'python2' 'perl' 'swig' 'java-runtime' 'java-environment'
'autoconf' 'db' 'e2fsprogs' 'libgnome-keyring' 'kdelibs')
backup=('etc/xinetd.d/svn' 'etc/conf.d/svnserve')
@@ -24,10 +24,10 @@ source=(http://apache.mirror.rafal.ca/subversion/$pkgname-$pkgver.tar.bz2{,.asc}
svnserve.conf
svnserve.tmpfiles
svnserve.service
- subversion-1.7.5-kwallet-gcc47.patch
+ subversion-1.7.6-kwallet-gcc47.patch
subversion.rpath.fix.patch)
-sha1sums=('05c079762690d5ac1ccd2549742e7ef70fa45cf1'
- 'b267cba19b4f56360657a5bf5b231950e027a45a'
+sha1sums=('5b76a9f49e2c4bf064041a7d6b1bfcc3aa4ed068'
+ 'd8d99c01c49b189047389816b720923f1d9dbf2a'
'64ba3e6ebafc08ac62f59d788f7a825fdce69573'
'73b36c046c09cec2093354911c89e3ba8056af6c'
'ad117bf3b2a838a9a678a93fd8db1a066ad46c41'
@@ -43,7 +43,7 @@ build() {
patch -p0 -i ../subversion.rpath.fix.patch
sed -i 's|/usr/bin/env python|/usr/bin/env python2|' tools/hook-scripts/{,mailer/{,tests/}}*.py
- patch -Np1 -i ../subversion-1.7.5-kwallet-gcc47.patch
+ patch -Np1 -i ../subversion-1.7.6-kwallet-gcc47.patch
./configure --prefix=/usr --with-apr=/usr --with-apr-util=/usr \
--with-zlib=/usr --with-neon=/usr --with-apxs \
@@ -53,7 +53,7 @@ build() {
make external-all
make LT_LDFLAGS="-L$Fdestdir/usr/lib" local-all
make swig_pydir=/usr/lib/python2.7/site-packages/libsvn \
- swig_pydir_extra=/usr/lib/python2.7/site-packages/svn swig-py swig-pl javahl # swig-rb
+ swig_pydir_extra=/usr/lib/python2.7/site-packages/svn swig-py swig-pl javahl #swig-rb
}
#check() {
@@ -69,7 +69,7 @@ package() {
make DESTDIR="${pkgdir}" INSTALLDIRS=vendor \
swig_pydir=/usr/lib/python2.7/site-packages/libsvn \
swig_pydir_extra=/usr/lib/python2.7/site-packages/svn \
- install install-swig-py install-swig-pl install-javahl # install-swig-rb
+ install install-swig-py install-swig-pl install-javahl #install-swig-rb
install -dm755 "${pkgdir}"/usr/share/subversion
cp -a tools/hook-scripts "${pkgdir}"/usr/share/subversion/
diff --git a/extra/subversion/subversion-1.7.6-kwallet-gcc47.patch b/extra/subversion/subversion-1.7.6-kwallet-gcc47.patch
new file mode 100644
index 000000000..a571c3c3c
--- /dev/null
+++ b/extra/subversion/subversion-1.7.6-kwallet-gcc47.patch
@@ -0,0 +1,56 @@
+diff -Naur subversion-1.7.5.ori/subversion/libsvn_auth_kwallet/kwallet.cpp subversion-1.7.5/subversion/libsvn_auth_kwallet/kwallet.cpp
+--- subversion-1.7.5.ori/subversion/libsvn_auth_kwallet/kwallet.cpp 2010-12-30 15:46:50.000000000 -0500
++++ subversion-1.7.5/subversion/libsvn_auth_kwallet/kwallet.cpp 2012-08-14 19:43:16.694275908 -0400
+@@ -60,6 +60,9 @@
+ /* KWallet simple provider, puts passwords in KWallet */
+ /*-----------------------------------------------------------------------*/
+
++static int q_argc = 1;
++static char q_argv0[] = "svn"; // Build non-const char * from string constant
++static char *q_argv[] = { q_argv0 };
+
+ static const char *
+ get_application_name(apr_hash_t *parameters,
+@@ -175,6 +178,10 @@
+ "kwallet-initialized",
+ APR_HASH_KEY_STRING,
+ NULL);
++ apr_hash_set(parameters,
++ "kwallet-wallet",
++ APR_HASH_KEY_STRING,
++ NULL);
+ }
+ return APR_SUCCESS;
+ }
+@@ -203,12 +210,11 @@
+ QCoreApplication *app;
+ if (! qApp)
+ {
+- int argc = 1;
+- app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"});
++ int argc = q_argc;
++ app = new QCoreApplication(argc, q_argv);
+ }
+
+- KCmdLineArgs::init(1,
+- (char *[1]) {(char *) "svn"},
++ KCmdLineArgs::init(q_argc, q_argv,
+ get_application_name(parameters, pool),
+ "subversion",
+ ki18n(get_application_name(parameters, pool)),
+@@ -273,12 +279,11 @@
+ QCoreApplication *app;
+ if (! qApp)
+ {
+- int argc = 1;
+- app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"});
++ int argc = q_argc;
++ app = new QCoreApplication(argc, q_argv);
+ }
+
+- KCmdLineArgs::init(1,
+- (char *[1]) {(char *) "svn"},
++ KCmdLineArgs::init(q_argc, q_argv,
+ get_application_name(parameters, pool),
+ "subversion",
+ ki18n(get_application_name(parameters, pool)),
diff --git a/kernels/linux-libre-lts-rt/PKGBUILD b/kernels/linux-libre-lts-rt/PKGBUILD
index b531454f3..74a883c1b 100644
--- a/kernels/linux-libre-lts-rt/PKGBUILD
+++ b/kernels/linux-libre-lts-rt/PKGBUILD
@@ -11,12 +11,12 @@
pkgbase=linux-libre-lts-rt # Build stock -LIBRE-LTS-RT kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
_basekernel=3.0
-_releasever=40
-_rtpatchver=rt60
+_releasever=41
+_rtpatchver=rt61
_pkgver=${_basekernel}.${_releasever}
pkgver=${_basekernel}.${_releasever}_${_rtpatchver}
-pkgrel=1.2
-_lxopkgver=${_basekernel}.39 # nearly always the same as pkgver
+pkgrel=1
+_lxopkgver=${_basekernel}.41 # nearly always the same as pkgver
arch=('i686' 'x86_64' 'mips64el')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
@@ -41,8 +41,8 @@ _kernelname=${pkgbase#linux-libre}
_localversionname=-LIBRE-LTS-RT
_aurversionkernelname=-rt-lts # in this case, in the aur version on Archlinux, the kernel name is different than ours
md5sums=('5f64180fe7df4e574dac5911b78f5067'
- '4c42d5680df7921c20dda6f5fa44b275'
- 'b7e3a739f569ecac90880624ab05ec6c'
+ 'b4ebaa2ebf8418c75aba96fd4dd6daf3'
+ '11bb95e505726abd1e1adfa522ef178f'
'7266f5e7af09cc6e4b15d7a952e3b350'
'5387f0cf51652c071190789569adf9c7'
'85f04a9555bdc295f7c387a6564f0c81'
@@ -52,7 +52,7 @@ md5sums=('5f64180fe7df4e574dac5911b78f5067'
'9d3c56a4b999c8bfbd4018089a62f662'
'263725f20c0b9eb9c353040792d644e5'
'c8299cf750a84e12d60b372c8ca7e1e8'
- 'eea9aa0065f636fc924a23b3ffd24343')
+ '1f082cc9e5a18e227f7a044ff429914a')
if [ "$CARCH" != "mips64el" ]; then
# Don't use the Loongson-specific patches on non-mips64el arches.
unset source[${#source[@]}-1]
diff --git a/kernels/linux-libre-lts-rt/linux-libre-lts-rt.install b/kernels/linux-libre-lts-rt/linux-libre-lts-rt.install
index 05ceaa33f..7f7e3a11f 100644
--- a/kernels/linux-libre-lts-rt/linux-libre-lts-rt.install
+++ b/kernels/linux-libre-lts-rt/linux-libre-lts-rt.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-lts-rt
-KERNEL_VERSION=3.0.40-1.2-rt60-LIBRE-LTS-RT
+KERNEL_VERSION=3.0.41-1-rt61-LIBRE-LTS-RT
# set a sane PATH to ensure that critical utils like depmod will be found
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
diff --git a/libre/virtualbox-libre-modules-lts/PKGBUILD b/libre/virtualbox-libre-modules-lts/PKGBUILD
index 1758bc305..1d5f60079 100644
--- a/libre/virtualbox-libre-modules-lts/PKGBUILD
+++ b/libre/virtualbox-libre-modules-lts/PKGBUILD
@@ -7,7 +7,7 @@
pkgbase=virtualbox-libre-modules-lts
pkgname=('virtualbox-libre-modules-lts' 'virtualbox-libre-parabola-modules-lts')
pkgver=4.1.18
-pkgrel=4.2
+pkgrel=7
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL')
diff --git a/testing/cyrus-sasl/0003_saslauthd_mdoc.patch b/testing/cyrus-sasl/0003_saslauthd_mdoc.patch
new file mode 100644
index 000000000..694f4bb67
--- /dev/null
+++ b/testing/cyrus-sasl/0003_saslauthd_mdoc.patch
@@ -0,0 +1,35 @@
+0003_saslauthd_mdoc.dpatch by <fabbe@debian.org>
+
+Use the correct path for the saslauthd.conf file, and use another
+date format (cosmetic).
+
+diff -urNad trunk~/saslauthd/saslauthd.mdoc trunk/saslauthd/saslauthd.mdoc
+--- trunk~/saslauthd/saslauthd.mdoc 2006-05-29 22:52:42.000000000 +0300
++++ trunk/saslauthd/saslauthd.mdoc 2006-07-12 15:05:25.000000000 +0300
+@@ -10,7 +10,7 @@
+ .\" manpage in saslauthd.8 whenever you change this source
+ .\" version. Only the pre-formatted manpage is installed.
+ .\"
+-.Dd 10 24 2002
++.Dd October 24 2002
+ .Dt SASLAUTHD 8
+ .Os "CMU-SASL"
+ .Sh NAME
+@@ -216,7 +216,7 @@
+ .Em (All platforms that support OpenLDAP 2.0 or higher)
+ .Pp
+ Authenticate against an ldap server. The ldap configuration parameters are
+-read from /usr/local/etc/saslauthd.conf. The location of this file can be
++read from /etc/saslauthd.conf. The location of this file can be
+ changed with the -O parameter. See the LDAP_SASLAUTHD file included with the
+ distribution for the list of available parameters.
+ .It Li sia
+@@ -249,7 +249,7 @@
+ .Bl -tag -width "/var/run/saslauthd/mux"
+ .It Pa /var/run/saslauthd/mux
+ The default communications socket.
+-.It Pa /usr/local/etc/saslauthd.conf
++.It Pa /etc/saslauthd.conf
+ The default configuration file for ldap support.
+ .El
+ .Sh SEE ALSO
diff --git a/testing/cyrus-sasl/0010_maintainer_mode.patch b/testing/cyrus-sasl/0010_maintainer_mode.patch
new file mode 100644
index 000000000..cf3d02a08
--- /dev/null
+++ b/testing/cyrus-sasl/0010_maintainer_mode.patch
@@ -0,0 +1,19 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 0010_maintainer_mode.dpatch by <fabbe@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Enable maintainer mode to avoid auto* problems.
+
+@DPATCH@
+diff -urNad trunk~/configure.in trunk/configure.in
+--- trunk~/configure.in 2006-05-29 22:52:46.000000000 +0300
++++ trunk/configure.in 2006-11-01 23:24:55.000000000 +0200
+@@ -62,6 +62,8 @@
+ AM_INIT_AUTOMAKE(cyrus-sasl, 2.1.22)
+ CMU_INIT_AUTOMAKE
+
++AM_MAINTAINER_MODE
++
+ # and include our config dir scripts
+ ACLOCAL="$ACLOCAL -I \$(top_srcdir)/config"
+
diff --git a/testing/cyrus-sasl/0011_saslauthd_ac_prog_libtool.patch b/testing/cyrus-sasl/0011_saslauthd_ac_prog_libtool.patch
new file mode 100644
index 000000000..3805b4857
--- /dev/null
+++ b/testing/cyrus-sasl/0011_saslauthd_ac_prog_libtool.patch
@@ -0,0 +1,15 @@
+0011_saslauthd_ac_prog_libtool.dpatch by <fabbe@debian.org>
+
+Enable libtool use.
+
+diff -urNad trunk~/saslauthd/configure.in trunk/saslauthd/configure.in
+--- trunk~/saslauthd/configure.in 2006-05-29 22:52:42.000000000 +0300
++++ trunk/saslauthd/configure.in 2006-11-01 23:41:51.000000000 +0200
+@@ -25,6 +25,7 @@
+ AC_PROG_MAKE_SET
+ AC_PROG_LN_S
+ AC_PROG_INSTALL
++AC_PROG_LIBTOOL
+
+ dnl Checks for build foo
+ CMU_C___ATTRIBUTE__
diff --git a/testing/cyrus-sasl/0012_xopen_crypt_prototype.patch b/testing/cyrus-sasl/0012_xopen_crypt_prototype.patch
new file mode 100644
index 000000000..d50ec8343
--- /dev/null
+++ b/testing/cyrus-sasl/0012_xopen_crypt_prototype.patch
@@ -0,0 +1,20 @@
+0012_xopen_crypt_prototype.dpatch by <dannf@debian.org>
+
+When _XOPEN_SOURCE is defined, the subsequent #include <unistd.h>
+will define a correct function prototype for the crypt function.
+This avoids segfaults on architectures where the size of a pointer
+is greater than the size of an integer (ia64 and amd64 are examples).
+This may be detected by looking for build log lines such as the
+following:
+auth_shadow.c:183: warning: implicit declaration of function ‘crypt’
+auth_shadow.c:183: warning: cast to pointer from integer of different
+size
+
+diff -urNad trunk~/saslauthd/auth_shadow.c trunk/saslauthd/auth_shadow.c
+--- trunk~/saslauthd/auth_shadow.c 2006-05-29 22:52:42.000000000 +0300
++++ trunk/saslauthd/auth_shadow.c 2006-11-08 13:44:23.000000000 +0200
+@@ -1,3 +1,4 @@
++#define _XOPEN_SOURCE
+ #define PWBUFSZ 256 /***SWB***/
+
+ /* MODULE: auth_shadow */
diff --git a/testing/cyrus-sasl/0016_pid_file_lock_creation_mask.patch b/testing/cyrus-sasl/0016_pid_file_lock_creation_mask.patch
new file mode 100644
index 000000000..e9170cef3
--- /dev/null
+++ b/testing/cyrus-sasl/0016_pid_file_lock_creation_mask.patch
@@ -0,0 +1,27 @@
+0016_pid_file_lock_creation_mask.dpatch by Sam Hocevar <sam@zoy.org>
+
+pid_file_lock is created with a mask of 644 instead of 0644.
+This patch fixes this octal/decimal confusion as well as the
+(harmless) one in the previous umask() call.
+
+diff -urNad trunk~/saslauthd/saslauthd-main.c trunk/saslauthd/saslauthd-main.c
+--- trunk~/saslauthd/saslauthd-main.c 2006-05-29 22:52:42.000000000 +0300
++++ trunk/saslauthd/saslauthd-main.c 2007-06-26 12:07:10.000000000 +0300
+@@ -276,7 +276,7 @@
+ exit(1);
+ }
+
+- umask(077);
++ umask(0077);
+
+ pid_file_size = strlen(run_path) + sizeof(PID_FILE_LOCK) + 1;
+ if ((pid_file_lock = malloc(pid_file_size)) == NULL) {
+@@ -287,7 +287,7 @@
+ strlcpy(pid_file_lock, run_path, pid_file_size);
+ strlcat(pid_file_lock, PID_FILE_LOCK, pid_file_size);
+
+- if ((pid_file_lock_fd = open(pid_file_lock, O_CREAT|O_TRUNC|O_RDWR, 644)) < 0) {
++ if ((pid_file_lock_fd = open(pid_file_lock, O_CREAT|O_TRUNC|O_RDWR, 0644)) < 0) {
+ rc = errno;
+ logger(L_ERR, L_FUNC, "could not open pid lock file: %s", pid_file_lock);
+ logger(L_ERR, L_FUNC, "open: %s", strerror(rc));
diff --git a/testing/cyrus-sasl/0018_auth_rimap_quotes.patch b/testing/cyrus-sasl/0018_auth_rimap_quotes.patch
new file mode 100644
index 000000000..13fa999f0
--- /dev/null
+++ b/testing/cyrus-sasl/0018_auth_rimap_quotes.patch
@@ -0,0 +1,35 @@
+0016_auth_rimap_quotes.dpatch by <fabbe@debian.org>
+
+All lines beginning with `## DP:' are a description of the patch.
+Avoid infinite loop when username/password has a double quote character.
+Upstream change: https://bugzilla.andrew.cmu.edu/cgi-bin/cvsweb.cgi/src/sasl/saslauthd/auth_rimap.c.diff?r1=1.12;r2=1.13
+
+diff -urNad etch~/saslauthd/auth_rimap.c etch/saslauthd/auth_rimap.c
+--- etch~/saslauthd/auth_rimap.c 2007-03-29 15:16:20.000000000 +0300
++++ etch/saslauthd/auth_rimap.c 2008-02-13 13:42:53.000000000 +0200
+@@ -162,6 +162,7 @@
+ num_quotes = 0;
+ p1 = s;
+ while ((p1 = strchr(p1, '"')) != NULL) {
++ p1++;
+ num_quotes++;
+ }
+
+@@ -438,7 +439,7 @@
+ syslog(LOG_WARNING, "auth_rimap: writev: %m");
+ memset(qlogin, 0, strlen(qlogin));
+ free(qlogin);
+- memset(qpass, 0, strlen(qlogin));
++ memset(qpass, 0, strlen(qpass));
+ free(qpass);
+ (void)close(s);
+ return strdup(RESP_IERROR);
+@@ -447,7 +448,7 @@
+ /* don't need these any longer */
+ memset(qlogin, 0, strlen(qlogin));
+ free(qlogin);
+- memset(qpass, 0, strlen(qlogin));
++ memset(qpass, 0, strlen(qpass));
+ free(qpass);
+
+ /* read and parse the LOGIN response */
diff --git a/testing/cyrus-sasl/0019_ldap_deprecated.patch b/testing/cyrus-sasl/0019_ldap_deprecated.patch
new file mode 100644
index 000000000..8825256cb
--- /dev/null
+++ b/testing/cyrus-sasl/0019_ldap_deprecated.patch
@@ -0,0 +1,22 @@
+0019_ldap_deprecated.dpatch by dann frazier <dannf@debian.org>
+
+The function ldap_get_values, used in saslauthd/lak.c, is deprecated.
+Therefore, its prototype is not included by default when compiling
+against the ldap.h headers. As a result, the compiler cannot know the
+return type of the function at compile time, and will implicitly
+convert to a pointer. This has implications on 64-bit systems.
+This patch sets the deprecation mode on, so that the function prototype
+gets included when compiling.
+(Description by Fabian Fagerholm <fabbe@debian.org>)
+
+diff -urNad trunk~/saslauthd/lak.c trunk/saslauthd/lak.c
+--- trunk~/saslauthd/lak.c 2006-06-04 12:26:20.000000000 +0300
++++ trunk/saslauthd/lak.c 2008-02-15 14:32:11.000000000 +0200
+@@ -55,6 +55,7 @@
+ #include <openssl/des.h>
+ #endif
+
++#define LDAP_DEPRECATED 1
+ #include <ldap.h>
+ #include <lber.h>
+ #include <sasl.h>
diff --git a/testing/cyrus-sasl/0022_gcc4.4_preprocessor_syntax.patch b/testing/cyrus-sasl/0022_gcc4.4_preprocessor_syntax.patch
new file mode 100644
index 000000000..a49b553f0
--- /dev/null
+++ b/testing/cyrus-sasl/0022_gcc4.4_preprocessor_syntax.patch
@@ -0,0 +1,26 @@
+0022_gcc4.4_preprocessor_syntax.dpatch by <fabbe@paniq.net>
+
+The #elif preprocessor directive requires a test condition.
+GCC 4.4 enforces this rule.
+
+diff -urNad trunk~/plugins/digestmd5.c trunk/plugins/digestmd5.c
+--- trunk~/plugins/digestmd5.c 2006-06-04 12:26:19.000000000 +0300
++++ trunk/plugins/digestmd5.c 2009-01-26 13:29:40.000000000 +0200
+@@ -2715,7 +2715,7 @@
+ "DIGEST-MD5", /* mech_name */
+ #ifdef WITH_RC4
+ 128, /* max_ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+ 112,
+ #else
+ 1,
+@@ -4034,7 +4034,7 @@
+ "DIGEST-MD5",
+ #ifdef WITH_RC4 /* mech_name */
+ 128, /* max ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+ 112,
+ #else
+ 1,
diff --git a/testing/cyrus-sasl/0025_ld_as_needed.patch b/testing/cyrus-sasl/0025_ld_as_needed.patch
new file mode 100644
index 000000000..67b48b4a4
--- /dev/null
+++ b/testing/cyrus-sasl/0025_ld_as_needed.patch
@@ -0,0 +1,27 @@
+Author: Matthias Klose <doko@ubuntu.com>
+Desription: Fix FTBFS, add $(SASL_DB_LIB) as dependency to libsasldb, and use
+it.
+--- a/saslauthd/Makefile.am
++++ b/saslauthd/Makefile.am
+@@ -16,7 +16,7 @@ EXTRA_saslauthd_sources = getaddrinfo.c
+ saslauthd_DEPENDENCIES = saslauthd-main.o @LTLIBOBJS@
+ saslauthd_LDADD = @SASL_KRB_LIB@ \
+ @GSSAPIBASE_LIBS@ @GSSAPI_LIBS@ @LIB_CRYPT@ @LIB_SIA@ \
+- @LIB_SOCKET@ @SASL_DB_LIB@ @LIB_PAM@ @LDAP_LIBS@ @LTLIBOBJS@
++ @LIB_SOCKET@ ../sasldb/libsasldb.la @LIB_PAM@ @LDAP_LIBS@ @LTLIBOBJS@
+
+ testsaslauthd_SOURCES = testsaslauthd.c utils.c
+ testsaslauthd_LDADD = @LIB_SOCKET@
+--- a/sasldb/Makefile.am
++++ b/sasldb/Makefile.am
+@@ -55,8 +55,8 @@ noinst_LIBRARIES = libsasldb.a
+
+ libsasldb_la_SOURCES = allockey.c sasldb.h
+ EXTRA_libsasldb_la_SOURCES = $(extra_common_sources)
+-libsasldb_la_DEPENDENCIES = $(SASL_DB_BACKEND)
+-libsasldb_la_LIBADD = $(SASL_DB_BACKEND)
++libsasldb_la_DEPENDENCIES = $(SASL_DB_BACKEND) $(SASL_DB_LIB)
++libsasldb_la_LIBADD = $(SASL_DB_BACKEND) $(SASL_DB_LIB)
+
+ # Prevent make dist stupidity
+ libsasldb_a_SOURCES =
diff --git a/testing/cyrus-sasl/0026_drop_krb5support_dependency.patch b/testing/cyrus-sasl/0026_drop_krb5support_dependency.patch
new file mode 100644
index 000000000..cc00867ef
--- /dev/null
+++ b/testing/cyrus-sasl/0026_drop_krb5support_dependency.patch
@@ -0,0 +1,14 @@
+Author: Roberto C. Sanchez <roberto@connexer.com>
+Description: Drop gratuitous dependency on krb5support
+--- a/cmulocal/sasl2.m4
++++ b/cmulocal/sasl2.m4
+@@ -112,9 +112,6 @@ if test "$gssapi" != no; then
+ fi
+
+ if test "$gss_impl" = "auto" -o "$gss_impl" = "mit"; then
+- # check for libkrb5support first
+- AC_CHECK_LIB(krb5support,krb5int_getspecific,K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a,,${LIB_SOCKET})
+-
+ gss_failed=0
+ AC_CHECK_LIB(gssapi_krb5,gss_unwrap,gss_impl="mit",gss_failed=1,
+ ${GSSAPIBASE_LIBS} -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${K5SUP} ${LIB_SOCKET})
diff --git a/testing/cyrus-sasl/0027_db5_support.patch b/testing/cyrus-sasl/0027_db5_support.patch
new file mode 100644
index 000000000..522824074
--- /dev/null
+++ b/testing/cyrus-sasl/0027_db5_support.patch
@@ -0,0 +1,24 @@
+Author: Ondřej Surý <ondrej@debian.org>
+Description: Support newer Berkeley DB versions
+--- a/sasldb/db_berkeley.c
++++ b/sasldb/db_berkeley.c
+@@ -101,7 +101,7 @@ static int berkeleydb_open(const sasl_ut
+ ret = db_create(mbdb, NULL, 0);
+ if (ret == 0 && *mbdb != NULL)
+ {
+-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
++#if (DB_VERSION_MAJOR > 4) || ((DB_VERSION_MAJOR == 4) && (DB_VERSION_MINOR >= 1))
+ ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, flags, 0660);
+ #else
+ ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, flags, 0660);
+--- a/utils/dbconverter-2.c
++++ b/utils/dbconverter-2.c
+@@ -214,7 +214,7 @@ static int berkeleydb_open(const char *p
+ ret = db_create(mbdb, NULL, 0);
+ if (ret == 0 && *mbdb != NULL)
+ {
+-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
++#if (DB_VERSION_MAJOR > 4) || ((DB_VERSION_MAJOR == 4) && (DB_VERSION_MINOR >= 1))
+ ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, DB_CREATE, 0664);
+ #else
+ ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, DB_CREATE, 0664);
diff --git a/testing/cyrus-sasl/0030-dont_use_la_files_for_opening_plugins.patch b/testing/cyrus-sasl/0030-dont_use_la_files_for_opening_plugins.patch
new file mode 100644
index 000000000..14a322496
--- /dev/null
+++ b/testing/cyrus-sasl/0030-dont_use_la_files_for_opening_plugins.patch
@@ -0,0 +1,134 @@
+--- a/lib/dlopen.c
++++ b/lib/dlopen.c
+@@ -247,105 +247,6 @@ static int _sasl_plugin_load(char *plugi
+ return result;
+ }
+
+-/* this returns the file to actually open.
+- * out should be a buffer of size PATH_MAX
+- * and may be the same as in. */
+-
+-/* We'll use a static buffer for speed unless someone complains */
+-#define MAX_LINE 2048
+-
+-static int _parse_la(const char *prefix, const char *in, char *out)
+-{
+- FILE *file;
+- size_t length;
+- char line[MAX_LINE];
+- char *ntmp = NULL;
+-
+- if(!in || !out || !prefix || out == in) return SASL_BADPARAM;
+-
+- /* Set this so we can detect failure */
+- *out = '\0';
+-
+- length = strlen(in);
+-
+- if (strcmp(in + (length - strlen(LA_SUFFIX)), LA_SUFFIX)) {
+- if(!strcmp(in + (length - strlen(SO_SUFFIX)),SO_SUFFIX)) {
+- /* check for a .la file */
+- strcpy(line, prefix);
+- strcat(line, in);
+- length = strlen(line);
+- *(line + (length - strlen(SO_SUFFIX))) = '\0';
+- strcat(line, LA_SUFFIX);
+- file = fopen(line, "r");
+- if(file) {
+- /* We'll get it on the .la open */
+- fclose(file);
+- return SASL_FAIL;
+- }
+- }
+- strcpy(out, prefix);
+- strcat(out, in);
+- return SASL_OK;
+- }
+-
+- strcpy(line, prefix);
+- strcat(line, in);
+-
+- file = fopen(line, "r");
+- if(!file) {
+- _sasl_log(NULL, SASL_LOG_WARN,
+- "unable to open LA file: %s", line);
+- return SASL_FAIL;
+- }
+-
+- while(!feof(file)) {
+- if(!fgets(line, MAX_LINE, file)) break;
+- if(line[strlen(line) - 1] != '\n') {
+- _sasl_log(NULL, SASL_LOG_WARN,
+- "LA file has too long of a line: %s", in);
+- return SASL_BUFOVER;
+- }
+- if(line[0] == '\n' || line[0] == '#') continue;
+- if(!strncmp(line, "dlname=", sizeof("dlname=") - 1)) {
+- /* We found the line with the name in it */
+- char *end;
+- char *start;
+- size_t len;
+- end = strrchr(line, '\'');
+- if(!end) continue;
+- start = &line[sizeof("dlname=")-1];
+- len = strlen(start);
+- if(len > 3 && start[0] == '\'') {
+- ntmp=&start[1];
+- *end='\0';
+- /* Do we have dlname="" ? */
+- if(ntmp == end) {
+- _sasl_log(NULL, SASL_LOG_DEBUG,
+- "dlname is empty in .la file: %s", in);
+- return SASL_FAIL;
+- }
+- strcpy(out, prefix);
+- strcat(out, ntmp);
+- }
+- break;
+- }
+- }
+- if(ferror(file) || feof(file)) {
+- _sasl_log(NULL, SASL_LOG_WARN,
+- "Error reading .la: %s\n", in);
+- fclose(file);
+- return SASL_FAIL;
+- }
+- fclose(file);
+-
+- if(!(*out)) {
+- _sasl_log(NULL, SASL_LOG_WARN,
+- "Could not find a dlname line in .la file: %s", in);
+- return SASL_FAIL;
+- }
+-
+- return SASL_OK;
+-}
+ #endif /* DO_DLOPEN */
+
+ /* loads a plugin library */
+@@ -499,18 +400,18 @@ int _sasl_load_plugins(const add_plugin_
+ if (length + pos>=PATH_MAX) continue; /* too big */
+
+ if (strcmp(dir->d_name + (length - strlen(SO_SUFFIX)),
+- SO_SUFFIX)
+- && strcmp(dir->d_name + (length - strlen(LA_SUFFIX)),
+- LA_SUFFIX))
++ SO_SUFFIX))
+ continue;
+
++ /* We only use .so files for loading plugins */
++
+ memcpy(name,dir->d_name,length);
+ name[length]='\0';
+
+- result = _parse_la(prefix, name, tmp);
+- if(result != SASL_OK)
+- continue;
+-
++ /* Create full name with path */
++ strncpy(tmp, prefix, PATH_MAX);
++ strncat(tmp, name, PATH_MAX);
++
+ /* skip "lib" and cut off suffix --
+ this only need be approximate */
+ strcpy(plugname, name + 3);
diff --git a/testing/cyrus-sasl/PKGBUILD b/testing/cyrus-sasl/PKGBUILD
new file mode 100644
index 000000000..b6c2a29bc
--- /dev/null
+++ b/testing/cyrus-sasl/PKGBUILD
@@ -0,0 +1,203 @@
+# $Id: PKGBUILD 165399 2012-08-17 23:39:59Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+# This package spans multiple repositories.
+# Always build from cyrus-sasl/trunk and merge changes to libsasl/trunk.
+
+pkgbase=('cyrus-sasl')
+pkgname=('cyrus-sasl' 'cyrus-sasl-gssapi' 'cyrus-sasl-ldap' 'cyrus-sasl-sql')
+#pkgname=libsasl
+pkgver=2.1.23
+pkgrel=10
+pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library"
+arch=('i686' 'x86_64')
+url="http://cyrusimap.web.cmu.edu/"
+license=('custom')
+options=('!makeflags' '!libtool')
+makedepends=('postgresql-libs' 'libmysqlclient' 'libldap' 'krb5' 'openssl')
+source=(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-${pkgver}.tar.gz
+ cyrus-sasl-2.1.19-checkpw.c.patch
+ cyrus-sasl-2.1.22-crypt.patch
+ cyrus-sasl-2.1.22-qa.patch
+ cyrus-sasl-2.1.22-automake-1.10.patch
+ cyrus-sasl-2.1.23-authd-fix.patch
+ 0003_saslauthd_mdoc.patch
+ 0010_maintainer_mode.patch
+ 0011_saslauthd_ac_prog_libtool.patch
+ 0012_xopen_crypt_prototype.patch
+ 0016_pid_file_lock_creation_mask.patch
+ 0018_auth_rimap_quotes.patch
+ 0019_ldap_deprecated.patch
+ 0022_gcc4.4_preprocessor_syntax.patch
+ 0025_ld_as_needed.patch
+ 0026_drop_krb5support_dependency.patch
+ 0027_db5_support.patch
+ 0030-dont_use_la_files_for_opening_plugins.patch
+ saslauthd.service
+ saslauthd.conf.d
+ saslauthd)
+md5sums=('2eb0e48106f0e9cd8001e654f267ecbc'
+ 'e27ddff076342e7a3041c4759817d04b'
+ 'd7e6886e88af04d05f3dec7f0a59ccf7'
+ '79b8a5e8689989e2afd4b7bda595a7b1'
+ 'f4131b077ddb5240b375d749162f1b7a'
+ 'c7ad2c70c1ef814eb4b119f316c064f2'
+ 'caeeac3feba19cbbd36e7345cc805600'
+ 'f45d8b60e8f74dd7f7c2ec1665fa602a'
+ '9d93880514cb5ff5da969f1ceb64a661'
+ 'dfdc052a7e678db9f687482c5d52f34e'
+ '4a09f6b24b91f8450892a78e378860da'
+ '213abe7c5dfe0d7f446992787da1e780'
+ '5a0321177ad30cb5518c8b6812e3961a'
+ '0c965748970eea29fa295524821d43f0'
+ '62bf892fe4d1df41ff748e91a1afaf67'
+ 'b7848957357e7c02d6490102be496bf9'
+ 'd86a5aa2e3b5b7c1bad6f8b548b7ea36'
+ '8e7106f32e495e9ade69014fd1b3352a'
+ '00f6b781549a274630e22173f77bd41d'
+ '49219af5641150edec288a3fdb65e7c1'
+ '75542f613185d5a90520ad0d7d926a20')
+
+build() {
+ cd "${srcdir}/cyrus-sasl-${pkgver}"
+ patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.19-checkpw.c.patch"
+ patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-crypt.patch"
+ patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-qa.patch"
+ patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-automake-1.10.patch"
+ patch -Np0 -i "${srcdir}/cyrus-sasl-2.1.23-authd-fix.patch"
+ patch -Np1 -i "${srcdir}/0003_saslauthd_mdoc.patch"
+ patch -Np1 -i "${srcdir}/0010_maintainer_mode.patch"
+ patch -Np1 -i "${srcdir}/0011_saslauthd_ac_prog_libtool.patch"
+ patch -Np1 -i "${srcdir}/0012_xopen_crypt_prototype.patch"
+ patch -Np1 -i "${srcdir}/0016_pid_file_lock_creation_mask.patch"
+ patch -Np1 -i "${srcdir}/0018_auth_rimap_quotes.patch"
+ patch -Np1 -i "${srcdir}/0019_ldap_deprecated.patch"
+ patch -Np1 -i "${srcdir}/0022_gcc4.4_preprocessor_syntax.patch"
+ patch -Np1 -i "${srcdir}/0025_ld_as_needed.patch"
+ patch -Np1 -i "${srcdir}/0026_drop_krb5support_dependency.patch"
+ patch -Np1 -i "${srcdir}/0027_db5_support.patch"
+ patch -Np1 -i "${srcdir}/0030-dont_use_la_files_for_opening_plugins.patch"
+
+ rm -f config/config.guess config/config.sub
+ rm -f config/ltconfig config/ltmain.sh config/libtool.m4
+ rm -fr autom4te.cache
+ libtoolize -c
+ aclocal -I config -I cmulocal
+ automake -a -c
+ autoheader
+ autoconf
+
+ pushd saslauthd
+ rm -f config/config.guess config/config.sub
+ rm -f config/ltconfig config/ltmain.sh config/libtool.m4
+ rm -fr autom4te.cache
+ libtoolize -c
+ aclocal -I config -I ../cmulocal -I ../config
+ automake -a -c
+ autoheader
+ autoconf
+ popd
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --disable-static \
+ --enable-shared \
+ --enable-alwaystrue \
+ --enable-checkapop \
+ --enable-cram \
+ --enable-digest \
+ --disable-otp \
+ --disable-srp \
+ --disable-srp-setpass \
+ --disable-krb4 \
+ --enable-gssapi \
+ --enable-auth-sasldb \
+ --enable-plain \
+ --enable-anon \
+ --enable-login \
+ --enable-ntlm \
+ --disable-passdss \
+ --enable-sql \
+ --enable-ldapdb \
+ --disable-macos-framework \
+ --with-pam \
+ --with-saslauthd=/var/run/saslauthd \
+ --with-ldap \
+ --with-configdir=/etc/sasl2:/etc/sasl:/usr/lib/sasl2 \
+ --sysconfdir=/etc \
+ --with-devrandom=/dev/urandom
+ make
+}
+
+package_libsasl() {
+ pkgdesc="Cyrus Simple Authentication Service Layer (SASL) Library"
+ depends=('openssl')
+ conflicts=('cyrus-sasl-plugins')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}"
+ for dir in include lib sasldb plugins utils; do
+ pushd ${dir}
+ make DESTDIR="${pkgdir}" install
+ popd
+ done
+ rm -f "${pkgdir}"/usr/lib/sasl2/libsql.so*
+ rm -f "${pkgdir}"/usr/lib/sasl2/libgssapiv2.so*
+ rm -f "${pkgdir}"/usr/lib/sasl2/libldapdb.so*
+ install -m755 -d "${pkgdir}/usr/share/licenses/libsasl"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/libsasl/"
+}
+
+package_cyrus-sasl() {
+ depends=("libsasl=${pkgver}")
+ pkgdesc="Cyrus saslauthd SASL authentication daemon"
+ backup=('etc/conf.d/saslauthd')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}/saslauthd"
+ make DESTDIR="${pkgdir}" install
+ install -Dm755 "${srcdir}/saslauthd" "${pkgdir}/etc/rc.d/saslauthd"
+ install -Dm644 "${srcdir}/saslauthd.conf.d" "${pkgdir}/etc/conf.d/saslauthd"
+ install -Dm644 "${srcdir}/saslauthd.service" "${pkgdir}/usr/lib/systemd/system/saslauthd.service"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl"
+ ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl/"
+}
+
+package_cyrus-sasl-gssapi() {
+ pkgdesc="GSSAPI authentication mechanism for Cyrus SASL"
+ depends=("libsasl=${pkgver}" 'krb5')
+ replaces=('cyrus-sasl-plugins')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
+ install -m755 -d "${pkgdir}/usr/lib/sasl2"
+ cp -a .libs/libgssapiv2.so* "${pkgdir}/usr/lib/sasl2/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-gssapi"
+ ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-gssapi/"
+}
+
+package_cyrus-sasl-ldap() {
+ pkgdesc="ldapdb auxprop module for Cyrus SASL"
+ depends=("libsasl=${pkgver}" 'libldap')
+ replaces=('cyrus-sasl-plugins')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
+ install -m755 -d "${pkgdir}/usr/lib/sasl2"
+ cp -a .libs/libldapdb.so* "${pkgdir}/usr/lib/sasl2/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-ldap"
+ ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-ldap/"
+}
+
+package_cyrus-sasl-sql() {
+ pkgdesc="SQL auxprop module for Cyrus SASL"
+ depends=("libsasl=${pkgver}" 'postgresql-libs' 'libmysqlclient')
+ replaces=('cyrus-sasl-plugins')
+
+ cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
+ install -m755 -d "${pkgdir}/usr/lib/sasl2"
+ cp -a .libs/libsql.so* "${pkgdir}/usr/lib/sasl2/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-sql"
+ ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-sql/"
+}
diff --git a/testing/cyrus-sasl/cyrus-sasl-2.1.19-checkpw.c.patch b/testing/cyrus-sasl/cyrus-sasl-2.1.19-checkpw.c.patch
new file mode 100644
index 000000000..f7bf44b79
--- /dev/null
+++ b/testing/cyrus-sasl/cyrus-sasl-2.1.19-checkpw.c.patch
@@ -0,0 +1,170 @@
+diff -ur ../cyrus-sasl-2.1.19.orig/lib/Makefile.in ./lib/Makefile.in
+--- ../cyrus-sasl-2.1.19.orig/lib/Makefile.in 2004-07-02 21:40:15.000000000 +0200
++++ ./lib/Makefile.in 2004-09-07 13:21:22.746680576 +0200
+@@ -120,7 +120,7 @@
+ JAVA_TRUE = @JAVA_TRUE@
+ LDFLAGS = @LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+-LIBS = @LIBS@
++LIBS = -lcrypt @LIBS@
+ LIBTOOL = @LIBTOOL@
+ LIB_CRYPT = @LIB_CRYPT@
+ LIB_DES = @LIB_DES@
+diff -ur ../cyrus-sasl-2.1.19.orig/lib/checkpw.c ./lib/checkpw.c
+--- ../cyrus-sasl-2.1.19.orig/lib/checkpw.c 2004-03-17 14:58:13.000000000 +0100
++++ ./lib/checkpw.c 2004-09-07 13:21:12.645916147 +0200
+@@ -94,6 +94,23 @@
+ # endif
+ #endif
+
++/******************************
++ * crypt(3) patch start *
++ ******************************/
++char *crypt(const char *key, const char *salt);
++
++/* cleartext password formats */
++#define PASSWORD_FORMAT_CLEARTEXT 1
++#define PASSWORD_FORMAT_CRYPT 2
++#define PASSWORD_FORMAT_CRYPTTRAD 3
++#define PASSWORD_SALT_BUF_LEN 22
++
++/* weeds out crypt(3) password's salt */
++int _sasl_get_salt (char *dest, char *src, int format);
++
++/******************************
++ * crypt(3) patch stop *
++ ******************************/
+
+ /* we store the following secret to check plaintext passwords:
+ *
+@@ -143,7 +160,51 @@
+ "*cmusaslsecretPLAIN",
+ NULL };
+ struct propval auxprop_values[3];
+-
++
++ /******************************
++ * crypt(3) patch start *
++ * for password format check *
++ ******************************/
++ sasl_getopt_t *getopt;
++ void *context;
++ const char *p = NULL;
++ /**
++ * MD5: 12 char salt
++ * BLOWFISH: 16 char salt
++ */
++ char salt[PASSWORD_SALT_BUF_LEN];
++ int password_format;
++
++ /* get password format from auxprop configuration */
++ if (_sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context) == SASL_OK) {
++ getopt(context, NULL, "password_format", &p, NULL);
++ }
++
++ /* set password format */
++ if (p) {
++ /*
++ memset(pass_format_str, '\0', PASSWORD_FORMAT_STR_LEN);
++ strncpy(pass_format_str, p, (PASSWORD_FORMAT_STR_LEN - 1));
++ */
++ /* modern, modular crypt(3) */
++ if (strncmp(p, "crypt", 11) == 0)
++ password_format = PASSWORD_FORMAT_CRYPT;
++ /* traditional crypt(3) */
++ else if (strncmp(p, "crypt_trad", 11) == 0)
++ password_format = PASSWORD_FORMAT_CRYPTTRAD;
++ /* cleartext password */
++ else
++ password_format = PASSWORD_FORMAT_CLEARTEXT;
++ } else {
++ /* cleartext password */
++ password_format = PASSWORD_FORMAT_CLEARTEXT;
++ }
++
++ /******************************
++ * crypt(3) patch stop *
++ * for password format check *
++ ******************************/
++
+ if (!conn || !userstr)
+ return SASL_BADPARAM;
+
+@@ -180,14 +241,31 @@
+ goto done;
+ }
+
+- /* At the point this has been called, the username has been canonified
+- * and we've done the auxprop lookup. This should be easy. */
+- if(auxprop_values[0].name
+- && auxprop_values[0].values
+- && auxprop_values[0].values[0]
+- && !strcmp(auxprop_values[0].values[0], passwd)) {
+- /* We have a plaintext version and it matched! */
+- return SASL_OK;
++
++ /******************************
++ * crypt(3) patch start *
++ ******************************/
++
++ /* get salt */
++ _sasl_get_salt(salt, (char *) auxprop_values[0].values[0], password_format);
++
++ /* crypt(3)-ed password? */
++ if (password_format != PASSWORD_FORMAT_CLEARTEXT) {
++ /* compare password */
++ if (auxprop_values[0].name && auxprop_values[0].values && auxprop_values[0].values[0] && strcmp(crypt(passwd, salt), auxprop_values[0].values[0]) == 0)
++ return SASL_OK;
++ else
++ ret = SASL_BADAUTH;
++ }
++ else if (password_format == PASSWORD_FORMAT_CLEARTEXT) {
++ /* compare passwords */
++ if (auxprop_values[0].name && auxprop_values[0].values && auxprop_values[0].values[0] && strcmp(auxprop_values[0].values[0], passwd) == 0)
++ return SASL_OK;
++ else
++ ret = SASL_BADAUTH;
++ /******************************
++ * crypt(3) patch stop *
++ ******************************/
+ } else if(auxprop_values[1].name
+ && auxprop_values[1].values
+ && auxprop_values[1].values[0]) {
+@@ -975,3 +1053,37 @@
+ #endif
+ { NULL, NULL }
+ };
++
++/* weeds out crypt(3) password's salt */
++int _sasl_get_salt (char *dest, char *src, int format) {
++ int num; /* how many characters is salt long? */
++ switch (format) {
++ case PASSWORD_FORMAT_CRYPT:
++ /* md5 crypt */
++ if (src[1] == '1')
++ num = 12;
++ /* blowfish crypt */
++ else if (src[1] == '2')
++ num = (src[1] == '2' && src[2] == 'a') ? 17 : 16;
++ /* traditional crypt */
++ else
++ num = 2;
++ break;
++
++ case PASSWORD_FORMAT_CRYPTTRAD:
++ num = 2;
++ break;
++
++ default:
++ return 1;
++ }
++
++ /* destroy destination */
++ memset(dest, '\0', (num + 1));
++
++ /* copy salt to destination */
++ strncpy(dest, src, num);
++
++ return 1;
++}
++
diff --git a/testing/cyrus-sasl/cyrus-sasl-2.1.22-as-needed.patch b/testing/cyrus-sasl/cyrus-sasl-2.1.22-as-needed.patch
new file mode 100644
index 000000000..1294cb507
--- /dev/null
+++ b/testing/cyrus-sasl/cyrus-sasl-2.1.22-as-needed.patch
@@ -0,0 +1,11 @@
+--- saslauthd/configure.in.orig 2006-05-23 15:53:17.000000000 -0700
++++ saslauthd/configure.in 2006-05-23 15:53:33.000000000 -0700
+@@ -77,7 +77,7 @@
+ AC_DEFINE(AUTH_SASLDB,[],[Include SASLdb Support])
+ SASL_DB_PATH_CHECK()
+ SASL_DB_CHECK()
+- SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.al"
++ SASL_DB_LIB="../sasldb/.libs/libsasldb.a $SASL_DB_LIB"
+ fi
+
+ AC_ARG_ENABLE(httpform, [ --enable-httpform enable HTTP form authentication [[no]] ],
diff --git a/testing/cyrus-sasl/cyrus-sasl-2.1.22-automake-1.10.patch b/testing/cyrus-sasl/cyrus-sasl-2.1.22-automake-1.10.patch
new file mode 100644
index 000000000..8cd71c0c5
--- /dev/null
+++ b/testing/cyrus-sasl/cyrus-sasl-2.1.22-automake-1.10.patch
@@ -0,0 +1,94 @@
+Re-merged patch by Robert Scheck <redhat@linuxnetz.de> for cyrus-sasl >= 2.1.22, which was
+originally written by Jacek Konieczny <jajcus@pld-linux.org> and makes cyrus-sasl building
+using automake 1.10.
+
+--- cyrus-sasl-2.1.22/plugins/Makefile.am 2006-05-17 18:46:16.000000000 +0200
++++ cyrus-sasl-2.1.22/plugins/Makefile.am.am110 2007-02-16 15:42:07.000000000 +0100
+@@ -82,73 +82,73 @@
+ libntlm.la libpassdss.la libsasldb.la libsql.la libldapdb.la
+
+ libplain_la_SOURCES = plain.c plain_init.c $(common_sources)
+-libplain_la_LDFLAGS = -version-info $(plain_version)
++libplain_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(plain_version)
+ libplain_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libplain_la_LIBADD = $(PLAIN_LIBS) $(COMPAT_OBJS)
+
+ libanonymous_la_SOURCES = anonymous.c anonymous_init.c $(common_sources)
+-libanonymous_la_LDFLAGS = -version-info $(anonymous_version)
++libanonymous_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(anonymous_version)
+ libanonymous_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libanonymous_la_LIBADD = $(COMPAT_OBJS)
+
+ libkerberos4_la_SOURCES = kerberos4.c kerberos4_init.c $(common_sources)
+-libkerberos4_la_LDFLAGS = -version-info $(kerberos4_version)
++libkerberos4_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(kerberos4_version)
+ libkerberos4_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libkerberos4_la_LIBADD = $(SASL_KRB_LIB) $(LIB_SOCKET) $(COMPAT_OBJS)
+
+ libgssapiv2_la_SOURCES = gssapi.c gssapiv2_init.c $(common_sources)
+-libgssapiv2_la_LDFLAGS = -version-info $(gssapiv2_version)
++libgssapiv2_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(gssapiv2_version)
+ libgssapiv2_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libgssapiv2_la_LIBADD = $(GSSAPIBASE_LIBS) $(GSSAPI_LIBS) $(LIB_SOCKET) $(COMPAT_OBJS)
+
+ libcrammd5_la_SOURCES = cram.c crammd5_init.c $(common_sources)
+-libcrammd5_la_LDFLAGS = -version-info $(crammd5_version)
++libcrammd5_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(crammd5_version)
+ libcrammd5_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libcrammd5_la_LIBADD = $(COMPAT_OBJS)
+
+ libdigestmd5_la_SOURCES = digestmd5.c digestmd5_init.c $(common_sources)
+-libdigestmd5_la_LDFLAGS = -version-info $(digestmd5_version)
++libdigestmd5_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(digestmd5_version)
+ libdigestmd5_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libdigestmd5_la_LIBADD = $(LIB_DES) $(LIB_SOCKET) $(COMPAT_OBJS)
+
+ liblogin_la_SOURCES = login.c login_init.c $(common_sources)
+-liblogin_la_LDFLAGS = -version-info $(login_version)
++liblogin_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(login_version)
+ liblogin_la_DEPENDENCIES = $(COMPAT_OBJS)
+ liblogin_la_LIBADD = $(PLAIN_LIBS) $(COMPAT_OBJS)
+
+ libsrp_la_SOURCES = srp.c srp_init.c $(common_sources)
+-libsrp_la_LDFLAGS = -version-info $(srp_version)
++libsrp_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(srp_version)
+ libsrp_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libsrp_la_LIBADD = $(SRP_LIBS) $(COMPAT_OBJS)
+
+ libotp_la_SOURCES = otp.c otp_init.c otp.h $(common_sources)
+-libotp_la_LDFLAGS = -version-info $(otp_version)
++libotp_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(otp_version)
+ libotp_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libotp_la_LIBADD = $(OTP_LIBS) $(COMPAT_OBJS)
+
+ libntlm_la_SOURCES = ntlm.c ntlm_init.c $(common_sources)
+-libntlm_la_LDFLAGS = -version-info $(ntlm_version)
++libntlm_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(ntlm_version)
+ libntlm_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libntlm_la_LIBADD = $(NTLM_LIBS) $(COMPAT_OBJS)
+
+ libpassdss_la_SOURCES = passdss.c passdss_init.c $(common_sources)
+-libpassdss_la_LDFLAGS = -version-info $(passdss_version)
++libpassdss_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(passdss_version)
+ libpassdss_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libpassdss_la_LIBADD = $(PASSDSS_LIBS) $(COMPAT_OBJS)
+
+ # Auxprop Plugins
+ libsasldb_la_SOURCES = sasldb.c sasldb_init.c $(common_sources)
+-libsasldb_la_LDFLAGS = -version-info $(sasldb_version)
++libsasldb_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(sasldb_version)
+ libsasldb_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libsasldb_la_LIBADD = ../sasldb/libsasldb.la $(SASL_DB_LIB) $(COMPAT_OBJS)
+
+ libldapdb_la_SOURCES = ldapdb.c ldapdb_init.c $(common_sources)
+-libldapdb_la_LDFLAGS = $(LIB_LDAP) -version-info $(ldapdb_version)
++libldapdb_la_LDFLAGS = $(AM_LDFLAGS) $(LIB_LDAP) -version-info $(ldapdb_version)
+ libldapdb_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libldapdb_la_LIBADD = $(COMPAT_OBJS)
+
+ libsql_la_SOURCES = sql.c sql_init.c $(common_sources)
+-libsql_la_LDFLAGS = $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE) -version-info $(sql_version)
++libsql_la_LDFLAGS = $(AM_LDFLAGS) $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE) -version-info $(sql_version)
+ libsql_la_DEPENDENCIES = $(COMPAT_OBJS)
+ libsql_la_LIBADD = $(COMPAT_OBJS)
+
diff --git a/testing/cyrus-sasl/cyrus-sasl-2.1.22-crypt.patch b/testing/cyrus-sasl/cyrus-sasl-2.1.22-crypt.patch
new file mode 100644
index 000000000..fd356327b
--- /dev/null
+++ b/testing/cyrus-sasl/cyrus-sasl-2.1.22-crypt.patch
@@ -0,0 +1,71 @@
+http://bugs.gentoo.org/152544
+
+--- cyrus-sasl-2.1.22/lib/Makefile.am
++++ cyrus-sasl-2.1.22/lib/Makefile.am
+@@ -45,6 +45,7 @@ sasl_version = 2:22:0
+
+ INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/plugins -I$(top_builddir)/include -I$(top_srcdir)/sasldb
+
++AM_CFLAGS = -fPIC
+ EXTRA_DIST = windlopen.c staticopen.h NTMakefile
+ EXTRA_LIBRARIES = libsasl2.a
+ noinst_LIBRARIES = @SASL_STATIC_LIBS@
+--- cyrus-sasl-2.1.22/plugins/Makefile.am
++++ cyrus-sasl-2.1.22/plugins/Makefile.am
+@@ -63,6 +63,7 @@ srp_version = 2:22:0
+
+ INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/lib -I$(top_srcdir)/sasldb -I$(top_builddir)/include
+ AM_LDFLAGS = -module -export-dynamic -rpath $(plugindir)
++AM_CFLAGS = -fPIC
+
+ COMPAT_OBJS = @LTGETADDRINFOOBJS@ @LTGETNAMEINFOOBJS@ @LTSNPRINTFOBJS@
+
+--- cyrus-sasl-2.1.22/sasldb/Makefile.am
++++ cyrus-sasl-2.1.22/sasldb/Makefile.am
+@@ -48,6 +48,7 @@ INCLUDES=-I$(top_srcdir)/include -I$(top
+
+ extra_common_sources = db_none.c db_ndbm.c db_gdbm.c db_berkeley.c
+
++AM_CFLAGS = -fPIC
+ EXTRA_DIST = NTMakefile
+
+ noinst_LTLIBRARIES = libsasldb.la
+--- cyrus-sasl-2.1.22/utils/Makefile.am
++++ cyrus-sasl-2.1.22/utils/Makefile.am
+@@ -42,7 +42,7 @@
+ #
+ ################################################################
+
+-all_sasl_libs = ../lib/libsasl2.la $(SASL_DB_LIB) $(LIB_SOCKET)
++all_sasl_libs = ../lib/libsasl2.la $(SASL_DB_LIB) $(LIB_SOCKET) $(LIB_CRYPT)
+ all_sasl_static_libs = ../lib/.libs/libsasl2.a $(SASL_DB_LIB) $(LIB_SOCKET) $(GSSAPIBASE_LIBS) $(GSSAPI_LIBS) $(SASL_KRB_LIB) $(LIB_DES) $(PLAIN_LIBS) $(SRP_LIBS) $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE)
+
+ sbin_PROGRAMS = @SASL_DB_UTILS@ @SMTPTEST_PROGRAM@ pluginviewer
+--- cyrus-sasl-2.1.22/sample/Makefile.am
++++ cyrus-sasl-2.1.22/sample/Makefile.am
+@@ -54,10 +54,10 @@ sample_server_SOURCES = sample-server.c
+ server_SOURCES = server.c common.c common.h
+ client_SOURCES = client.c common.c common.h
+
+-server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
+-client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
++server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
++client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
+
+-sample_client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
+-sample_server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
++sample_client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
++sample_server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
+
+ EXTRA_DIST = NTMakefile
+--- cyrus-sasl-2.1.22/lib/Makefile.am
++++ cyrus-sasl-2.1.22/lib/Makefile.am
+@@ -63,7 +63,7 @@ lib_LTLIBRARIES = libsasl2.la
+ libsasl2_la_SOURCES = $(common_sources) $(common_headers)
+ libsasl2_la_LDFLAGS = -version-info $(sasl_version)
+ libsasl2_la_DEPENDENCIES = $(LTLIBOBJS)
+-libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR)
++libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR) $(LIB_CRYPT)
+
+ if MACOSX
+ framedir = /Library/Frameworks/SASL2.framework
diff --git a/testing/cyrus-sasl/cyrus-sasl-2.1.22-qa.patch b/testing/cyrus-sasl/cyrus-sasl-2.1.22-qa.patch
new file mode 100644
index 000000000..4f7b04f13
--- /dev/null
+++ b/testing/cyrus-sasl/cyrus-sasl-2.1.22-qa.patch
@@ -0,0 +1,22 @@
+fix missing prototype warnings
+
+--- cyrus-sasl-2.1.22/lib/auxprop.c
++++ cyrus-sasl-2.1.22/lib/auxprop.c
+@@ -43,6 +43,7 @@
+ */
+
+ #include <config.h>
++#include <stdio.h>
+ #include <sasl.h>
+ #include <prop.h>
+ #include <ctype.h>
+--- cyrus-sasl-2.1.22/pwcheck/pwcheck_getspnam.c
++++ cyrus-sasl-2.1.22/pwcheck/pwcheck_getspnam.c
+@@ -24,6 +24,7 @@ OF OR IN CONNECTION WITH THE USE OR PERF
+ ******************************************************************/
+
+ #include <shadow.h>
++#include <string.h>
+
+ extern char *crypt();
+
diff --git a/testing/cyrus-sasl/cyrus-sasl-2.1.23-authd-fix.patch b/testing/cyrus-sasl/cyrus-sasl-2.1.23-authd-fix.patch
new file mode 100644
index 000000000..f5f372d17
--- /dev/null
+++ b/testing/cyrus-sasl/cyrus-sasl-2.1.23-authd-fix.patch
@@ -0,0 +1,28 @@
+fix warnings:
+
+auth_sasldb.c: In function ‘auth_sasldb’:
+auth_sasldb.c:144: warning: implicit declaration of function ‘gethostname’
+
+auth_sasldb.c:153: warning: passing argument 8 of ‘_sasldb_getdata’ from incompatible pointer type
+../sasldb/sasldb.h:60: note: expected ‘size_t *’ but argument is of type ‘int *’
+
+--- saslauthd/auth_sasldb.c
++++ saslauthd/auth_sasldb.c
+@@ -41,6 +41,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <pwd.h>
++#include <unistd.h>
+ /* END PUBLIC DEPENDENCIES */
+
+ #define RETURN(x) return strdup(x)
+@@ -131,7 +132,8 @@
+ /* VARIABLES */
+ char pw[1024]; /* pointer to passwd file entry */
+ sasl_utils_t utils;
+- int ret, outsize;
++ int ret;
++ size_t outsize;
+ const char *use_realm;
+ char realm_buf[MAXHOSTNAMELEN];
+ /* END VARIABLES */
diff --git a/testing/cyrus-sasl/saslauthd b/testing/cyrus-sasl/saslauthd
new file mode 100644
index 000000000..6afafae0b
--- /dev/null
+++ b/testing/cyrus-sasl/saslauthd
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+# source application-specific settings
+[ -f /etc/conf.d/saslauthd ] && . /etc/conf.d/saslauthd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+DAEMON_NAME="saslauthd"
+SASLAUTHD_BIN=/usr/sbin/saslauthd
+SASLAUTHD_RUN=/var/run/saslauthd
+SASLAUTHD_PID=$SASLAUTHD_RUN/saslauthd.pid
+
+case "$1" in
+ start)
+ stat_busy "Starting $DAEMON_NAME"
+ [ ! -d /var/run/saslauthd ] && install -d /var/run/saslauthd
+ if $SASLAUTHD_BIN $SASLAUTHD_OPTS >/dev/null; then
+ add_daemon $DAEMON_NAME
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $DAEMON_NAME"
+ [ -f $SASLAUTHD_PID ] && kill `cat $SASLAUTHD_PID` &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm_daemon $DAEMON_NAME
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+# vim: ts=2 sw=2 et ft=sh
diff --git a/testing/cyrus-sasl/saslauthd.conf.d b/testing/cyrus-sasl/saslauthd.conf.d
new file mode 100644
index 000000000..167211290
--- /dev/null
+++ b/testing/cyrus-sasl/saslauthd.conf.d
@@ -0,0 +1 @@
+SASLAUTHD_OPTS="-a pam"
diff --git a/testing/cyrus-sasl/saslauthd.service b/testing/cyrus-sasl/saslauthd.service
new file mode 100644
index 000000000..42d8ad768
--- /dev/null
+++ b/testing/cyrus-sasl/saslauthd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Cyrus SASL authentication daemon
+
+[Service]
+Type=forking
+EnvironmentFile=/etc/conf.d/saslauthd
+ExecStart=/usr/sbin/saslauthd $SASLAUTHD_OPTS
+PidFile=/var/run/saslauthd/saslauthd.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/testing/dhcp/PKGBUILD b/testing/dhcp/PKGBUILD
index 05b00a406..31ace7328 100644
--- a/testing/dhcp/PKGBUILD
+++ b/testing/dhcp/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 164255 2012-07-28 22:37:00Z eric $
+# $Id: PKGBUILD 165396 2012-08-17 23:27:19Z heftig $
# Maintainer: Daniel Isenmann <daniel @archlinux.org>
pkgbase=dhcp
@@ -8,13 +8,13 @@ pkgname=('dhcp' 'dhclient')
pkgver=4.2.4.1
_pkgver=4.2.4-P1
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
license=('custom:isc-dhcp')
url="https://www.isc.org/software/dhcp"
makedepends=('bash' 'iproute2' 'net-tools')
source=(ftp://ftp.isc.org/isc/${pkgbase}/${_pkgver}/${pkgbase}-${_pkgver}.tar.gz{,.asc}
- dhcp4 dhcp6 dhcp
+ dhcp4 dhcp6 dhcp dhcpd4.service dhcpd6.service
dhcp-4.1.1-missing-ipv6-not-fatal.patch
dhclient-script-pathFixes.patch)
md5sums=('0ca7181024651f6323951d5498c8020b'
@@ -22,6 +22,8 @@ md5sums=('0ca7181024651f6323951d5498c8020b'
'c49b1497837ba56c54e401a66e1bab9b'
'12c2f3ae47ed23eb698eb7f1bfd80f20'
'8f357e46e1efcbb746f38737a3f977a2'
+ '1076444f22e13eb5f6bff7821fd0f446'
+ '9310f2d8b1d7e97ace06d68cb41d9998'
'fd64aeb4f399dcc41ea43089a3811094'
'541b415a25a169eaf64b681405f79a80')
@@ -59,6 +61,11 @@ package_dhcp(){
install -D -m644 "${srcdir}/dhcp" "${pkgdir}/etc/conf.d/${pkgbase}"
install -d "${pkgdir}/var/state/dhcp"
+ install -D -m644 "${srcdir}/dhcpd4.service" "${pkgdir}/usr/lib/systemd/system/dhcpd4.service"
+ install -D -m644 "${srcdir}/dhcpd6.service" "${pkgdir}/usr/lib/systemd/system/dhcpd6.service"
+ ln -s dhcpd4.service "${pkgdir}/usr/lib/systemd/system/dhcp4.service"
+ ln -s dhcpd6.service "${pkgdir}/usr/lib/systemd/system/dhcp6.service"
+
# Remove dhclient
make -C client DESTDIR="${pkgdir}" uninstall
diff --git a/testing/dhcp/dhcpd4.service b/testing/dhcp/dhcpd4.service
new file mode 100644
index 000000000..2ef4a9f26
--- /dev/null
+++ b/testing/dhcp/dhcpd4.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=IPv4 DHCP server
+After=network.target
+
+[Service]
+Type=forking
+PIDFile=/run/dhcpd4.pid
+ExecStart=/usr/sbin/dhcpd -4 -q -pf /run/dhcpd4.pid
+ExecReload=/bin/kill -TERM $MAINPID
+KillSignal=SIGINT
+
+[Install]
+WantedBy=multi-user.target
diff --git a/testing/dhcp/dhcpd6.service b/testing/dhcp/dhcpd6.service
new file mode 100644
index 000000000..eb3b337c6
--- /dev/null
+++ b/testing/dhcp/dhcpd6.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=IPv6 DHCP server
+After=network.target
+
+[Service]
+Type=forking
+PIDFile=/run/dhcpd6.pid
+ExecStart=/usr/sbin/dhcpd -6 -q -pf /run/dhcpd6.pid
+ExecReload=/bin/kill -TERM $MAINPID
+KillSignal=SIGINT
+
+[Install]
+WantedBy=multi-user.target
diff --git a/testing/gdm/PKGBUILD b/testing/gdm/PKGBUILD
new file mode 100644
index 000000000..71b0db89f
--- /dev/null
+++ b/testing/gdm/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 165393 2012-08-17 23:22:35Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gdm
+pkgver=3.4.1
+pkgrel=3
+pkgdesc="Gnome Display Manager (a reimplementation of xdm)"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org"
+backup=('etc/pam.d/gdm-autologin' 'etc/pam.d/gdm-fingerprint' 'etc/pam.d/gdm' 'etc/pam.d/gdm-password'
+ 'etc/pam.d/gdm-smartcard' 'etc/pam.d/gdm-welcome' 'etc/gdm/custom.conf')
+groups=('gnome-extra')
+options=('!libtool')
+depends=('libcanberra' 'libxklavier' 'gnome-session' 'gnome-settings-daemon' 'metacity' 'upower' 'accountsservice' 'consolekit' 'xorg-xrdb' 'nss')
+makedepends=('intltool' 'gnome-doc-utils' 'xorg-server' 'gobject-introspection')
+optdepends=('gnome-shell: new login interface'
+ 'fprintd: fingerprint authentication')
+install=gdm.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+ fix_external_program_directories.patch
+ gdm-vt-allocation-hack.patch
+ gdm gdm.service
+ gdm-autologin.pam gdm-fingerprint.pam gdm.pam gdm-password.pam gdm-smartcard.pam gdm-welcome.pam)
+sha256sums=('6292968dff5fc89877b5e1aaa3c7d1484dd3ed2d4f388e935841d053439be665'
+ 'f68600ccf80f475deb417d58ab3306c4a1ba4622688e2901996c8549c85a9ee6'
+ '3c8b588d4af08d94dc93bcd5e4c2a983c3f4fbbbe40833bceac2a1df4f1e8215'
+ '272c08d8e8b50bf424d0705ac864d4c18c47ec4f6893b1af732c2efbc86c9550'
+ 'b7b91c682ff4c7cfb2d395c65abeca9dad8c0997b399dcf22abdf481c3e61349'
+ '6a8b286d1ffa04150b3cc401f64e6ddec778c7b65f5bfc831031b64345d7e6b2'
+ 'dd50f5bd28807a16c5ebe89fc868b7c47fa571138498e879f2b1c9da1ad6eb84'
+ 'f1dfa4d88288d4b0a631a68a51b46c2da537bee8fe5a99f9f288c8ff75a50b19'
+ '1a1e9b3f26de4eb9f45d1e9a0b5d0db902ca734461ba46b4bb620b0298bb98aa'
+ '844d5fae0df59241d34099a3d458289bd95707b2aae976627c663904294043d8'
+ '39bf3824cc505043dc3136356da16dab9df9f369f1077435a324be2ac16cf834')
+
+build() {
+ cd "$pkgname-$pkgver"
+ patch -Np1 -i "$srcdir/fix_external_program_directories.patch"
+ patch -Np1 -i "$srcdir/gdm-vt-allocation-hack.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gdm \
+ --localstatedir=/var \
+ --with-at-spi-registryd-directory=/usr/lib/at-spi2-core \
+ --disable-scrollkeeper \
+ --disable-static \
+ --without-tcp-wrappers \
+ --disable-schemas-compile \
+ --with-systemd=no
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ for i in gdm-autologin.pam gdm-fingerprint.pam gdm.pam gdm-password.pam gdm-smartcard.pam gdm-welcome.pam;do
+ install -m644 "$srcdir/$i" "$pkgdir/etc/pam.d/${i%.pam}"
+ done
+
+ install -Dm755 "$srcdir/gdm" "$pkgdir/etc/rc.d/gdm"
+ install -Dm644 "$srcdir/gdm.service" "$pkgdir/usr/lib/systemd/system/gdm.service"
+
+ chmod 1770 "$pkgdir/var/log/gdm"
+ chmod 700 "$pkgdir/var/lib/gdm/.config/dconf"
+ rm -rf "$pkgdir/var/run" "$pkgdir/var/gdm"
+}
diff --git a/testing/gdm/fix_external_program_directories.patch b/testing/gdm/fix_external_program_directories.patch
new file mode 100644
index 000000000..b3a0f0cf6
--- /dev/null
+++ b/testing/gdm/fix_external_program_directories.patch
@@ -0,0 +1,34 @@
+diff -Nur gdm-3.3.92.orig/daemon/gdm-server.c gdm-3.3.92/daemon/gdm-server.c
+--- gdm-3.3.92.orig/daemon/gdm-server.c 2012-03-19 22:30:05.311490006 +0000
++++ gdm-3.3.92/daemon/gdm-server.c 2012-03-19 22:30:17.004732251 +0000
+@@ -139,7 +139,7 @@
+ g_return_val_if_fail (GDM_IS_SERVER (server), NULL);
+
+ error = NULL;
+- command = g_strdup_printf (LIBEXECDIR "/ck-get-x11-display-device --display %s",
++ command = g_strdup_printf ("/usr/lib/ConsoleKit/ck-get-x11-display-device --display %s",
+ server->priv->display_name);
+
+ g_debug ("GdmServer: Running helper %s", command);
+diff -Nur gdm-3.3.92.orig/data/gdm-shell.session.in gdm-3.3.92/data/gdm-shell.session.in
+--- gdm-3.3.92.orig/data/gdm-shell.session.in 2012-03-19 22:30:05.311490006 +0000
++++ gdm-3.3.92/data/gdm-shell.session.in 2012-03-19 22:30:17.004732251 +0000
+@@ -1,5 +1,5 @@
+ [GNOME Session]
+ Name=Display Manager
+ RequiredComponents=gnome-shell;gnome-settings-daemon;
+-IsRunnableHelper=bash -c 'gnome-shell --help | grep -q gdm-mode && @libexecdir@/gnome-session-check-accelerated'
++IsRunnableHelper=bash -c 'gnome-shell --help | grep -q gdm-mode && /usr/lib/gnome-session/gnome-session-check-accelerated'
+ FallbackSession=gdm-fallback
+diff -Nur gdm-3.3.92.orig/gui/simple-chooser/gdm-chooser-session.c gdm-3.3.92/gui/simple-chooser/gdm-chooser-session.c
+--- gdm-3.3.92.orig/gui/simple-chooser/gdm-chooser-session.c 2012-03-19 22:30:05.304823391 +0000
++++ gdm-3.3.92/gui/simple-chooser/gdm-chooser-session.c 2012-03-19 22:30:17.004732251 +0000
+@@ -131,7 +131,7 @@
+ ret = FALSE;
+
+ error = NULL;
+- g_spawn_command_line_async (LIBEXECDIR "/gnome-settings-daemon", &error);
++ g_spawn_command_line_async ("/usr/lib/gnome-settings-daemon/gnome-settings-daemon", &error);
+ if (error != NULL) {
+ g_warning ("Error starting settings daemon: %s", error->message);
+ g_error_free (error);
diff --git a/testing/gdm/gdm b/testing/gdm/gdm
new file mode 100755
index 000000000..c3e635a6d
--- /dev/null
+++ b/testing/gdm/gdm
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting GDM"
+ /usr/sbin/gdm &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+
+ add_daemon gdm
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping GDM"
+ [ -f /var/run/gdm.pid ] && kill `cat /var/run/gdm.pid` &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon gdm
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/gdm/gdm-autologin.pam b/testing/gdm/gdm-autologin.pam
new file mode 100644
index 000000000..bc0193df0
--- /dev/null
+++ b/testing/gdm/gdm-autologin.pam
@@ -0,0 +1,20 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+
+auth requisite pam_permit.so
+
+auth sufficient pam_succeed_if.so uid >= 1000 quiet
+auth required pam_deny.so
+
+account required pam_access.so
+account required pam_time.so
+account required pam_unix.so
+
+password required pam_deny.so
+
+session required pam_loginuid.so
+-session optional pam_systemd.so
+session optional pam_keyinit.so revoke
+session required pam_limits.so
+session required pam_unix.so
diff --git a/testing/gdm/gdm-fingerprint.pam b/testing/gdm/gdm-fingerprint.pam
new file mode 100644
index 000000000..38fab5782
--- /dev/null
+++ b/testing/gdm/gdm-fingerprint.pam
@@ -0,0 +1,20 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+
+auth requisite pam_fprintd.so
+
+auth sufficient pam_succeed_if.so uid >= 1000 quiet
+auth required pam_deny.so
+
+account required pam_access.so
+account required pam_time.so
+account required pam_unix.so
+
+password required pam_deny.so
+
+session required pam_loginuid.so
+-session optional pam_systemd.so
+session optional pam_keyinit.so revoke
+session required pam_limits.so
+session required pam_unix.so
diff --git a/testing/gdm/gdm-password.pam b/testing/gdm/gdm-password.pam
new file mode 100644
index 000000000..eed5e1003
--- /dev/null
+++ b/testing/gdm/gdm-password.pam
@@ -0,0 +1,22 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+
+auth requisite pam_unix.so nullok
+auth optional pam_gnome_keyring.so
+
+auth sufficient pam_succeed_if.so uid >= 1000 quiet
+auth required pam_deny.so
+
+account required pam_access.so
+account required pam_time.so
+account required pam_unix.so
+
+password required pam_unix.so
+
+session required pam_loginuid.so
+-session optional pam_systemd.so
+session optional pam_keyinit.so force revoke
+session required pam_limits.so
+session required pam_unix.so
+session optional pam_gnome_keyring.so auto_start
diff --git a/testing/gdm/gdm-smartcard.pam b/testing/gdm/gdm-smartcard.pam
new file mode 100644
index 000000000..c5c29e73f
--- /dev/null
+++ b/testing/gdm/gdm-smartcard.pam
@@ -0,0 +1,20 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+
+auth requisite pam_pkcs11.so wait_for_card card_only
+
+auth sufficient pam_succeed_if.so uid >= 1000 quiet
+auth required pam_deny.so
+
+account required pam_access.so
+account required pam_time.so
+account required pam_unix.so
+
+password required pam_pkcs11.so
+
+session required pam_loginuid.so
+-session optional pam_systemd.so
+session optional pam_keyinit.so revoke
+session required pam_limits.so
+session required pam_unix.so
diff --git a/testing/gdm/gdm-vt-allocation-hack.patch b/testing/gdm/gdm-vt-allocation-hack.patch
new file mode 100644
index 000000000..56fa5a151
--- /dev/null
+++ b/testing/gdm/gdm-vt-allocation-hack.patch
@@ -0,0 +1,118 @@
+diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
+index 39def47..03488fd 100644
+--- a/daemon/gdm-server.c
++++ b/daemon/gdm-server.c
+@@ -33,6 +33,8 @@
+ #include <grp.h>
+ #include <signal.h>
+ #include <sys/resource.h>
++#include <sys/ioctl.h>
++#include <sys/vt.h>
+
+ #include <glib.h>
+ #include <glib/gi18n.h>
+@@ -150,6 +152,92 @@ _gdm_server_query_ck_for_display_device (GdmServer *server)
+ return out;
+ }
+
++#ifndef O_NOCTTY
++# define O_NOCTTY 0
++#endif
++
++static int
++open_vt (int vtno)
++{
++ char *vtname;
++ int fd;
++
++ vtname = g_strdup_printf ("/dev/tty%d", vtno);
++
++ do {
++ errno = 0;
++ fd = open (vtname, O_RDWR | O_NOCTTY, 0);
++ } while (errno == EINTR);
++
++ g_free (vtname);
++ return fd;
++}
++
++static gint
++find_first_probably_free_vt (void)
++{
++ int fd, fdv;
++ int vtno;
++ unsigned short vtmask;
++ struct vt_stat vtstat;
++ guint v_state;
++
++ fdv = -1;
++
++ do {
++ errno = 0;
++ fd = open ("/dev/console", O_WRONLY | O_NOCTTY, 0);
++ } while (errno == EINTR);
++
++ if (fd >= 0) {
++ if (ioctl (fd, VT_GETSTATE, &vtstat) >= 0) {
++ v_state = vtstat.v_state;
++ } else {
++ close (fd);
++ v_state = 0;
++ fd = -1;
++ }
++ } else {
++ v_state = 0;
++ }
++
++ if (fd < 0) {
++ do {
++ errno = 0;
++ fd = open ("/dev/console", O_RDONLY | O_NOCTTY, 0);
++ } while (errno == EINTR);
++
++ if (fd >= 0) {
++ if (ioctl (fd, VT_GETSTATE, &vtstat) >= 0)
++ v_state = vtstat.v_state;
++ }
++ }
++
++ for (vtno = 7, vtmask = 1 << vtno; vtmask; vtno++, vtmask <<= 1) {
++ /* Is this console in use? */
++ if (v_state & vtmask)
++ continue;
++
++ /* No, try to open it */
++ fdv = open_vt (vtno);
++ if (fdv >= 0)
++ break;
++
++ /* If we're here, kernel indicated that the console was free,
++ * but we failed to open it. Just go on to higher VTs. */
++ }
++
++ if (fdv >= 0)
++ close (fdv);
++ else
++ vtno = -1;
++
++ if (fd >= 0)
++ close (fd);
++
++ return vtno;
++}
++
+ char *
+ gdm_server_get_display_device (GdmServer *server)
+ {
+@@ -310,6 +398,11 @@ gdm_server_resolve_command_line (GdmServer *server,
+
+ if (vtarg != NULL && ! gotvtarg) {
+ argv[len++] = g_strdup (vtarg);
++ } else if (!query_in_arglist && !gotvtarg) {
++ gint vtnum = find_first_probably_free_vt ();
++
++ if (vtnum > 0)
++ argv [len++] = g_strdup_printf ("vt%d", vtnum);
+ }
+
+ argv[len++] = NULL;
diff --git a/testing/gdm/gdm-welcome.pam b/testing/gdm/gdm-welcome.pam
new file mode 100644
index 000000000..cc3811c19
--- /dev/null
+++ b/testing/gdm/gdm-welcome.pam
@@ -0,0 +1,12 @@
+#%PAM-1.0
+auth required pam_env.so
+auth required pam_permit.so
+
+account required pam_nologin.so
+account required pam_unix.so
+
+password required pam_deny.so
+
+session required pam_loginuid.so
+-session optional pam_systemd.so
+session optional pam_keyinit.so force revoke
diff --git a/testing/gdm/gdm.install b/testing/gdm/gdm.install
new file mode 100644
index 000000000..c48faf4ae
--- /dev/null
+++ b/testing/gdm/gdm.install
@@ -0,0 +1,30 @@
+pkgname=gdm
+
+post_install() {
+ getent group gdm >/dev/null 2>&1 || groupadd -g 120 gdm
+ getent passwd gdm > /dev/null 2>&1 || usr/sbin/useradd -c 'Gnome Display Manager' -u 120 -g gdm -d /var/lib/gdm -s /sbin/nologin gdm
+ passwd -l gdm > /dev/null
+ chown -R gdm:gdm /var/lib/gdm > /dev/null
+
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ dconf update
+}
+
+pre_upgrade() {
+ if [ -f /usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ gconfpkg --uninstall ${pkgname}
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ dconf update
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ getent passwd gdm >/dev/null 2>&1 && userdel gdm
+ getent group gdm >/dev/null 2>&1 && groupdel gdm
+}
diff --git a/testing/gdm/gdm.pam b/testing/gdm/gdm.pam
new file mode 100644
index 000000000..655299cb7
--- /dev/null
+++ b/testing/gdm/gdm.pam
@@ -0,0 +1,10 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+auth required pam_unix.so
+auth optional pam_gnome_keyring.so
+account required pam_unix.so
+session required pam_limits.so
+session required pam_unix.so
+session optional pam_gnome_keyring.so auto_start
+password required pam_unix.so
diff --git a/testing/gdm/gdm.service b/testing/gdm/gdm.service
new file mode 100644
index 000000000..0125934d6
--- /dev/null
+++ b/testing/gdm/gdm.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Gnome Display Manager
+After=systemd-user-sessions.service
+
+[Service]
+ExecStart=/usr/sbin/gdm -nodaemon
+Restart=always
+
+[Install]
+Alias=display-manager.service
diff --git a/testing/modemmanager/PKGBUILD b/testing/modemmanager/PKGBUILD
new file mode 100644
index 000000000..403673c39
--- /dev/null
+++ b/testing/modemmanager/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 165395 2012-08-17 23:24:24Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=modemmanager
+_realname=ModemManager
+pkgver=0.5.2.0
+pkgrel=3
+pkgdesc="Mobile broadband modem management service"
+arch=('i686' 'x86_64')
+url="http://cgit.freedesktop.org/ModemManager/ModemManager/"
+license=('GPL2')
+depends=('dbus-glib' 'udev' 'ppp')
+makedepends=('intltool')
+optdepends=('usb_modeswitch: install if your modem shows up as a storage drive')
+options=('!libtool')
+source=(http://download.gnome.org/sources/$_realname/0.5/$_realname-$pkgver.tar.xz
+ modem-manager.service)
+sha256sums=('7f8b3e1996a24e031df7534e226a0f0c7c2dd8b30322e6c5f4611dc1a848e6c8'
+ '66c9947972066dd5494c3a18b0e833f236e0866b455675368b5994900cbaf384')
+
+build() {
+ cd "$_realname-$pkgver"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-udev-base-dir=/usr/lib/udev \
+ --disable-static
+ make
+}
+
+package() {
+ cd "$_realname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$srcdir/modem-manager.service" \
+ "$pkgdir/usr/lib/systemd/system/modem-manager.service"
+ echo "SystemdService=modem-manager.service" \
+ >> "$pkgdir/usr/share/dbus-1/system-services/org.freedesktop.ModemManager.service"
+}
diff --git a/testing/modemmanager/modem-manager.service b/testing/modemmanager/modem-manager.service
new file mode 100644
index 000000000..4e0c43c8c
--- /dev/null
+++ b/testing/modemmanager/modem-manager.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Modem Manager
+
+[Service]
+Type=dbus
+BusName=org.freedesktop.ModemManager
+ExecStart=/usr/sbin/modem-manager
+
+[Install]
+WantedBy=multi-user.target
diff --git a/testing/openvpn/PKGBUILD b/testing/openvpn/PKGBUILD
new file mode 100644
index 000000000..ea7443098
--- /dev/null
+++ b/testing/openvpn/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 165397 2012-08-17 23:28:47Z heftig $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=openvpn
+pkgver=2.2.2
+pkgrel=2
+pkgdesc="An easy-to-use, robust, and highly configurable VPN (Virtual Private Network)"
+arch=(i686 x86_64)
+url="http://openvpn.net/index.php/open-source.html"
+depends=('openssl' 'lzo2' 'iproute2')
+license=('custom')
+backup=(usr/share/openvpn/easy-rsa/vars
+ usr/share/openvpn/easy-rsa/openssl-1.0.0.cnf
+ etc/conf.d/openvpn-tapdev)
+source=(http://swupdate.openvpn.net/community/releases/openvpn-${pkgver}.tar.gz
+ http://swupdate.openvpn.net/community/releases/openvpn-${pkgver}.tar.gz.asc
+ openvpn@.service
+ openvpn.rc
+ openvpn-tapdev.rc
+ openvpn-tapdev.conf)
+md5sums=('c5181e27b7945fa6276d21873329c5c7'
+ '81ff11ec8cd9fc3c8bc646aae24c4298'
+ '44047df812a3fcd57a7e36a61732a9b9'
+ 'a3809b9727f0c2af2d0770f5c7442db2'
+ 'd2c48e970088d679dd3c2afd914ff731'
+ '722f483c9e3ce2ec66d3301aaf7cf3d5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ # Build openvpn
+ CFLAGS="$CFLAGS -DPLUGIN_LIBDIR=\\\"/usr/lib/openvpn\\\"" ./configure \
+ --prefix=/usr \
+ --enable-password-save \
+ --mandir=/usr/share/man \
+ --enable-iproute2
+ make
+
+ # Build plugins
+ for plug in auth-pam down-root; do
+ cd $srcdir/$pkgname-$pkgver/plugin/$plug
+ make
+ done
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ # Install openvpn
+ make DESTDIR=$pkgdir install
+ install -d -m755 $pkgdir/etc/openvpn
+ # Install examples
+ install -d -m755 $pkgdir/usr/share/openvpn
+ cp -r sample-config-files $pkgdir/usr/share/openvpn/examples
+ find $pkgdir/usr/share/openvpn -type f -exec chmod 644 {} \;
+ find $pkgdir/usr/share/openvpn -type d -exec chmod 755 {} \;
+ # Install license
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+ # Install plugins
+ for plug in auth-pam down-root; do
+ cd $srcdir/$pkgname-$pkgver/plugin/$plug
+ install -D -m755 openvpn-$plug.so $pkgdir/usr/lib/openvpn/openvpn-$plug.so
+ cd -
+ done
+ # Install contrib
+ install -d -m755 $pkgdir/usr/share/openvpn/contrib
+ cp -r contrib $pkgdir/usr/share/openvpn
+ # Install easy-rsa
+ cd $srcdir/$pkgname-$pkgver
+ make -C easy-rsa/2.0 install DESTDIR=$pkgdir PREFIX=usr/share/openvpn/easy-rsa
+ rm -f ${pkgdir}/usr/share/openvpn/easy-rsa/openssl-0.9.?.cnf
+ # Install rc scripts
+ install -D -m755 $srcdir/openvpn.rc $pkgdir/etc/rc.d/openvpn
+ install -D -m755 $srcdir/openvpn-tapdev.rc $pkgdir/etc/rc.d/openvpn-tapdev
+ install -D -m644 $srcdir/openvpn-tapdev.conf $pkgdir/etc/conf.d/openvpn-tapdev
+ install -D -m644 $srcdir/openvpn@.service $pkgdir/usr/lib/systemd/system/openvpn@.service
+}
diff --git a/testing/openvpn/openvpn-tapdev.conf b/testing/openvpn/openvpn-tapdev.conf
new file mode 100644
index 000000000..afa5586dd
--- /dev/null
+++ b/testing/openvpn/openvpn-tapdev.conf
@@ -0,0 +1,12 @@
+#
+# /etc/conf.d/openvpn-tapdev
+#
+# Place openvpn-tapdev before network into your DAEMONS array
+# This will create permanent tap devices which you can use for bridging
+#
+# Example:
+# TAPDEVS="work home"
+# Will create two tap devices "work" and "home"
+#
+
+TAPDEVS=""
diff --git a/testing/openvpn/openvpn-tapdev.rc b/testing/openvpn/openvpn-tapdev.rc
new file mode 100755
index 000000000..2c51f8248
--- /dev/null
+++ b/testing/openvpn/openvpn-tapdev.rc
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+. /etc/conf.d/openvpn-tapdev
+
+case "$1" in
+ start)
+ stat_busy "Creating tap devices for OpenVPN ... "
+ success=0
+ for tapdev in ${TAPDEVS}; do
+ stat_append "${tapdev} "
+ /usr/sbin/openvpn --mktun --dev-type tap --dev ${tapdev} >/dev/null 2>&1 || success=$?
+ done
+ if [ $success -eq 0 ]; then
+ add_daemon openvpn-tapdev
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Destroying tap devices for OpenVPN ..."
+ for tapdev in ${TAPDEVS}; do
+ stat_append "${tapdev} "
+ /usr/sbin/openvpn --rmtun --dev-type tap --dev ${tapdev} >/dev/null 2>&1 || success=$?
+ done
+ rm_daemon openvpn-tapdev
+ stat_done
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/openvpn/openvpn.rc b/testing/openvpn/openvpn.rc
new file mode 100755
index 000000000..96c28b641
--- /dev/null
+++ b/testing/openvpn/openvpn.rc
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+CFGDIR="/etc/openvpn"
+STATEDIR="/var/run/openvpn"
+
+case "$1" in
+ start)
+ stat_busy "Starting OpenVPN ... "
+ success=0
+ mkdir -p "${STATEDIR}"
+ for cfg in "${CFGDIR}"/*.conf; do
+ stat_append "$(basename "${cfg}" .conf) "
+ /usr/sbin/openvpn --daemon --writepid "${STATEDIR}"/"$(basename "${cfg}" .conf)".pid --cd "${CFGDIR}" --config "${cfg}" || success=$?
+ done
+ if [ $success -eq 0 ]; then
+ add_daemon openvpn
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping OpenVPN ..."
+ for pidfile in "${STATEDIR}"/*.pid; do
+ stat_append "$(basename "${pidfile}" .pid) "
+ kill $(cat "${pidfile}" 2>/dev/null) 2>/dev/null
+ rm -f "${pidfile}"
+ done
+ rm_daemon openvpn
+ stat_done
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/openvpn/openvpn@.service b/testing/openvpn/openvpn@.service
new file mode 100644
index 000000000..c3de3bdf7
--- /dev/null
+++ b/testing/openvpn/openvpn@.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=OpenVPN connection to %i
+After=network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/openvpn --config /etc/openvpn/%i.conf --daemon openvpn@%i --cd /etc/openvpn
+
+[Install]
+WantedBy=multi-user.target
diff --git a/testing/postgresql/PKGBUILD b/testing/postgresql/PKGBUILD
new file mode 100644
index 000000000..e7f743d8e
--- /dev/null
+++ b/testing/postgresql/PKGBUILD
@@ -0,0 +1,154 @@
+# $Id: PKGBUILD 165398 2012-08-17 23:34:22Z heftig $
+# Maintainer: Dan McGee <dan@archlinux.org>
+
+pkgbase=postgresql
+pkgname=('postgresql-libs' 'postgresql-docs' 'postgresql')
+pkgver=9.1.4
+_majorver=${pkgver%.*}
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://www.postgresql.org/"
+license=('custom:PostgreSQL')
+makedepends=('krb5' 'libxml2' 'python2' 'perl' 'tcl' 'openssl>=1.0.0')
+source=(ftp://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.tar.bz2
+ postgresql.rcd postgresql.confd postgresql.pam postgresql.logrotate
+ postgresql.service postgresql-initdb)
+md5sums=('a8035688dba988b782725ac1aec60186'
+ '1ddd1df8010549f237e7983bb326025e'
+ 'a54d09a20ab1672adf08f037df188d53'
+ '96f82c38f3f540b53f3e5144900acf17'
+ 'd28e443f9f65a5712c52018b84e27137'
+ '1ec1fbf1ce998324248c543e6cc2c5e6'
+ '1488a98a5d5d96a04416e4f5872223bf')
+sha256sums=('a0795a8eb3ae2d1a2914b63bf143d20182835d90699915ff43567c041d3c9712'
+ '9f6307b1358892e304f9474a456f0cb9160cfb8812a9da0430abe647f8a9cf45'
+ '3de5c059eead8816db15c2c5588e6196d6c4b0d704faf1a20912796cf589ba81'
+ '57dfd072fd7ef0018c6b0a798367aac1abb5979060ff3f9df22d1048bb71c0d5'
+ '6abb842764bbed74ea4a269d24f1e73d1c0b1d8ecd6e2e6fb5fb10590298605e'
+ '7014ccc8f3bbac8be9473a43fca2ed4037ee04e56d8e07d6027b3b4ef0317c89'
+ 'c22f82a3cf5b555935039853fab2d7e5ff6188cdb1fb528fa9171a87b94f42b0')
+
+build() {
+ cd "${srcdir}/postgresql-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --datadir=/usr/share/postgresql \
+ --with-krb5 \
+ --with-libxml \
+ --with-openssl \
+ --with-perl \
+ --with-python PYTHON=/usr/bin/python2 \
+ --with-tcl \
+ --with-pam \
+ --with-system-tzdata=/usr/share/zoneinfo \
+ --enable-nls \
+ --enable-thread-safety
+
+ make world
+}
+
+package_postgresql-libs() {
+ pkgdesc="Libraries for use with PostgreSQL"
+ depends=('krb5' 'openssl>=1.0.0' 'readline>=6.0')
+ provides=('postgresql-client')
+ conflicts=('postgresql-client')
+
+ cd "${srcdir}/postgresql-${pkgver}"
+
+ # install license
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/postgresql-libs/LICENSE"
+
+ # install libs
+ for dir in src/interfaces src/bin/pg_config src/bin/psql; do
+ make -C ${dir} DESTDIR="${pkgdir}" install
+ done
+
+ install -D -m644 doc/src/sgml/man1/pg_config.1 "${pkgdir}/usr/share/man/man1/pg_config.1"
+ install -D -m644 doc/src/sgml/man1/psql.1 "${pkgdir}/usr/share/man/man1/psql.1"
+
+ cd src/include
+
+ mkdir -p "${pkgdir}"/usr/include/{libpq,postgresql/internal/libpq}
+
+ # these headers are needed by the public headers of the interfaces
+ install -m644 pg_config.h "${pkgdir}/usr/include/"
+ install -m644 pg_config_os.h "${pkgdir}/usr/include/"
+ install -m644 postgres_ext.h "${pkgdir}/usr/include/"
+ install -m644 libpq/libpq-fs.h "${pkgdir}/usr/include/libpq/"
+ install -m644 pg_config_manual.h "${pkgdir}/usr/include/"
+
+ # these headers are needed by the not-so-public headers of the interfaces
+ install -m644 c.h "${pkgdir}/usr/include/postgresql/internal/"
+ install -m644 port.h "${pkgdir}/usr/include/postgresql/internal/"
+ install -m644 postgres_fe.h "${pkgdir}/usr/include/postgresql/internal/"
+ install -m644 libpq/pqcomm.h "${pkgdir}/usr/include/postgresql/internal/libpq/"
+}
+
+package_postgresql-docs() {
+ pkgdesc="HTML documentation for PostgreSQL"
+ options=(docs)
+
+ cd "${srcdir}/postgresql-${pkgver}"
+
+ # install license
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/postgresql-docs/LICENSE"
+
+ make -C doc/src/sgml DESTDIR="${pkgdir}" install-html
+ chown -R root:root "${pkgdir}/usr/share/doc/postgresql/html/"
+
+ # clean up
+ rmdir "${pkgdir}"/usr/share/man/man{1,3,7}
+ rmdir "${pkgdir}"/usr/share/man
+}
+
+package_postgresql() {
+ pkgdesc="A sophisticated object-relational DBMS"
+ backup=('etc/conf.d/postgresql' 'etc/pam.d/postgresql' 'etc/logrotate.d/postgresql')
+ depends=("postgresql-libs>=${pkgver}" 'krb5' 'libxml2' 'readline>=6.0' 'openssl>=1.0.0')
+ optdepends=('python2: for PL/Python support'
+ 'perl: for PL/Perl support'
+ 'tcl: for PL/Tcl support'
+ 'postgresql-old-upgrade: upgrade from previous major version using pg_upgrade')
+ install=postgresql.install
+
+ cd "${srcdir}/postgresql-${pkgver}"
+
+ # install
+ make DESTDIR="${pkgdir}" install
+ make -C contrib DESTDIR="${pkgdir}" install
+ make -C doc/src/sgml DESTDIR="${pkgdir}" install-man
+
+ # we don't want these, they are in the -libs package
+ for dir in src/interfaces src/bin/pg_config src/bin/psql; do
+ make -C ${dir} DESTDIR="${pkgdir}" uninstall
+ done
+ rm "${pkgdir}/usr/share/man/man1/pg_config.1"
+ rm "${pkgdir}/usr/share/man/man1/psql.1"
+
+ # install license
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgbase}/LICENSE"
+
+ # clean up unneeded installed items
+ rm -rf "${pkgdir}/usr/include/postgresql/internal"
+ rm -rf "${pkgdir}/usr/include/libpq"
+ find "${pkgdir}/usr/include" -maxdepth 1 -type f -execdir rm {} +
+ rmdir "${pkgdir}/usr/share/doc/postgresql/html"
+
+ # install launch script
+ install -D -m755 "${srcdir}/postgresql.rcd" "${pkgdir}/etc/rc.d/postgresql"
+ install -D -m644 "${srcdir}/postgresql.service" \
+ "${pkgdir}/usr/lib/systemd/system/postgresql.service"
+ install -D -m755 "${srcdir}/postgresql-initdb" \
+ "${pkgdir}/usr/lib/systemd/scripts/postgresql-initdb"
+
+ # install conf file
+ install -D -m644 ${srcdir}/postgresql.confd \
+ "${pkgdir}/etc/conf.d/postgresql"
+
+ install -D -m644 ${srcdir}/postgresql.pam \
+ "${pkgdir}/etc/pam.d/postgresql"
+
+ install -D -m644 ${srcdir}/postgresql.logrotate \
+ "${pkgdir}/etc/logrotate.d/postgresql"
+}
diff --git a/testing/postgresql/postgresql-initdb b/testing/postgresql/postgresql-initdb
new file mode 100755
index 000000000..a691a83ff
--- /dev/null
+++ b/testing/postgresql/postgresql-initdb
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+set -e
+
+. /etc/conf.d/postgresql
+
+# 2nd clause is necessary to prevent symlinking the directory to itself when it
+# doesn't exist yet
+if [ ! /var/lib/postgres -ef "$PGROOT" ] && [ /var/lib/postgres != "$PGROOT" ]; then
+ echo "Creating symlink /var/lib/postgres -> $PGROOT"
+
+ # Remove /var/lib/postgres if empty dir, but not if symlink
+ if [ ! -L /var/lib/postgres ] && [ -d /var/lib/postgres ]; then
+ rmdir /var/lib/postgres
+ fi
+
+ ln -sf "$PGROOT" /var/lib/postgres
+fi
+
+PGDATA="$PGROOT/data"
+
+if [ ! -d "$PGDATA" ]; then
+ echo "Initializing database in $PGDATA"
+
+ mkdir -p "$PGDATA"
+ chown -R postgres:postgres "$PGDATA"
+
+ su - postgres -m -c "/usr/bin/initdb $INITOPTS -D '$PGDATA'" >/dev/null
+
+ if [ -f /etc/postgresql/postgresql.conf ]; then
+ ln -sf /etc/postgresql/postgresql.conf "$PGDATA/postgresql.conf"
+ fi
+fi
diff --git a/testing/postgresql/postgresql.confd b/testing/postgresql/postgresql.confd
new file mode 100644
index 000000000..6001c16d1
--- /dev/null
+++ b/testing/postgresql/postgresql.confd
@@ -0,0 +1,11 @@
+##
+## Parameters to be passed to postgresql
+##
+## Default data directory location
+#PGROOT="/var/lib/postgres"
+## Passed to initdb if necessary
+INITOPTS="--locale en_US.UTF-8"
+## Default log file location
+#PGLOG="/var/log/postgresql.log"
+## Additional options to pass via pg_ctl's '-o' option
+#PGOPTS=""
diff --git a/testing/postgresql/postgresql.install b/testing/postgresql/postgresql.install
new file mode 100644
index 000000000..c52432271
--- /dev/null
+++ b/testing/postgresql/postgresql.install
@@ -0,0 +1,26 @@
+post_install() {
+ if [ ! -d '/var/lib/postgres' ]; then
+ mkdir -p '/var/lib/postgres'
+ fi
+ getent group postgres >/dev/null || groupadd -g 88 postgres
+ getent passwd postgres >/dev/null || useradd -c 'PostgreSQL user' -u 88 -g postgres -d '/var/lib/postgres' -s /bin/bash postgres
+ passwd -l postgres >/dev/null
+}
+
+post_upgrade() {
+ post_install $1
+ # FS#23858, fix postgres user shell issue
+ postgres_shell=$(getent passwd postgres | cut -d: -f7)
+ if [ "$postgres_shell" = "/sbin/nologin" ]; then
+ chsh -s /bin/bash postgres
+ fi
+}
+
+post_remove() {
+ if getent passwd postgres >/dev/null; then
+ userdel postgres
+ fi
+ if getent group postgres >/dev/null; then
+ groupdel postgres
+ fi
+}
diff --git a/testing/postgresql/postgresql.logrotate b/testing/postgresql/postgresql.logrotate
new file mode 100644
index 000000000..9c36918be
--- /dev/null
+++ b/testing/postgresql/postgresql.logrotate
@@ -0,0 +1,4 @@
+/var/log/postgresql.log {
+ copytruncate
+ missingok
+}
diff --git a/testing/postgresql/postgresql.pam b/testing/postgresql/postgresql.pam
new file mode 100644
index 000000000..53724d1f8
--- /dev/null
+++ b/testing/postgresql/postgresql.pam
@@ -0,0 +1,3 @@
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/testing/postgresql/postgresql.rcd b/testing/postgresql/postgresql.rcd
new file mode 100755
index 000000000..f3600b30b
--- /dev/null
+++ b/testing/postgresql/postgresql.rcd
@@ -0,0 +1,79 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/postgresql
+
+# Default PGROOT if it wasn't defined in the conf.d file
+PGROOT=${PGROOT:-/var/lib/postgres}
+PGLOG=${PGLOG:-/var/log/postgresql.log}
+PGCTL_BIN=/usr/bin/pg_ctl
+PGCTL_ARGS=(-D "$PGROOT/data" -l "$PGLOG" -s -w)
+[[ $PGOPTS ]] && PGCTL_ARGS+=(-o "$PGOPTS")
+
+postgres_init() {
+ # initialization
+ if [[ ! -d "$PGROOT/data" ]]; then
+ mkdir -p "$PGROOT/data" && chown -R postgres:postgres "$PGROOT"
+ su - postgres -c "/usr/bin/initdb $INITOPTS -D '$PGROOT/data'"
+ fi
+ if [[ ! -e "$PGLOG" ]]; then
+ touch "$PGLOG"
+ chown postgres "$PGLOG"
+ fi
+}
+
+do_postgres() {
+ su - postgres -c "'$PGCTL_BIN' $(printf '%q ' "${PGCTL_ARGS[@]}" "$@")"
+}
+
+case $1 in
+ start)
+ postgres_init
+ stat_busy "Starting PostgreSQL"
+ if do_postgres start; then
+ add_daemon postgresql
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping PostgreSQL"
+ if do_postgres stop -m fast; then
+ rm_daemon postgresql
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ reload)
+ stat_busy "Reloading PostgreSQL"
+ if do_postgres reload; then
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ restart)
+ postgres_init
+ stat_busy "Restarting PostgreSQL"
+ if do_postgres restart -m fast; then
+ add_daemon postgresql
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ status)
+ stat_busy "Checking PostgreSQL status";
+ ck_status postgresql
+ ;;
+ *)
+ echo "usage: $0 {start|stop|reload|restart|status}"
+ exit 1
+esac
diff --git a/testing/postgresql/postgresql.service b/testing/postgresql/postgresql.service
new file mode 100644
index 000000000..2fcd3e93d
--- /dev/null
+++ b/testing/postgresql/postgresql.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=PostgreSQL database server
+
+[Service]
+Type=forking
+SyslogIdentifier=postgres
+PIDFile=/var/lib/postgres/data/postmaster.pid
+
+# initdb script takes care for symlinking $PGROOT to /var/lib/postgres
+ExecStartPre=/usr/lib/systemd/scripts/postgresql-initdb
+ExecStart= /bin/su - postgres -m -c "/usr/bin/pg_ctl -s -D /var/lib/postgres/data start"
+ExecReload=/bin/su - postgres -m -c "/usr/bin/pg_ctl -s -D /var/lib/postgres/data reload"
+ExecStop= /bin/su - postgres -m -c "/usr/bin/pg_ctl -s -D /var/lib/postgres/data stop -m fast"
+
+# Due to PostgreSQL's use of shared memory, OOM killer is often overzealous in
+# killing Postgres
+OOMScoreAdjust=-200
+
+[Install]
+WantedBy=multi-user.target
diff --git a/testing/udisks/PKGBUILD b/testing/udisks/PKGBUILD
new file mode 100644
index 000000000..f7fbd187d
--- /dev/null
+++ b/testing/udisks/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 165394 2012-08-17 23:23:28Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=udisks
+pkgver=1.0.4
+pkgrel=5
+pkgdesc="Disk Management Service"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/udisks"
+license=('GPL')
+depends=('udev' 'sg3_utils' 'glib2' 'dbus-glib' 'polkit' 'parted' 'device-mapper' 'libatasmart' 'lsof' 'eject')
+makedepends=('intltool' 'docbook-xsl')
+options=(!libtool)
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz udisks.service)
+sha256sums=('854b89368733b9c3a577101b761ad5397ae75a05110c8698ac5b29de9a8bf8f5'
+ '0b9cbf41935feed3e4e2430fd4e06eb29864554dbb9f330c9d2a5fa2ef185131')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/udisks --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make profiledir=/usr/share/bash-completion/completions DESTDIR="${pkgdir}" install
+ chmod 644 "${pkgdir}/usr/share/bash-completion/completions/udisks-bash-completion.sh"
+
+ # move udev helpers and rules to /usr/lib
+ mv "${pkgdir}"/lib/udev "${pkgdir}"/usr/lib/
+ rm -r "${pkgdir}"/lib
+
+ install -Dm644 "$srcdir/udisks.service" "$pkgdir/usr/lib/systemd/system/udisks.service"
+ echo "SystemdService=udisks.service" \
+ >> "$pkgdir/usr/share/dbus-1/system-services/org.freedesktop.UDisks.service"
+}
diff --git a/testing/udisks/udisks.service b/testing/udisks/udisks.service
new file mode 100644
index 000000000..7105e90be
--- /dev/null
+++ b/testing/udisks/udisks.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=UDisks
+
+[Service]
+Type=dbus
+BusName=org.freedesktop.UDisks
+ExecStart=/usr/lib/udisks/udisks-daemon
+
+[Install]
+WantedBy=graphical.target