summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community-testing/fcron/PKGBUILD72
-rw-r--r--community-testing/fcron/fcron.rc36
-rw-r--r--community-testing/fcron/run-cron14
-rw-r--r--community-testing/fcron/systabbin0 -> 478 bytes
-rw-r--r--community-testing/fcron/systab.orig4
-rw-r--r--community-testing/gogglesmm/PKGBUILD17
-rw-r--r--community-testing/packagekit/PKGBUILD6
-rw-r--r--community/courier-authlib/PKGBUILD11
-rw-r--r--community/courier-authlib/authdaemond.rc.d13
-rw-r--r--community/dmenu/PKGBUILD6
-rw-r--r--community/filezilla/PKGBUILD11
-rw-r--r--community/gmtk/PKGBUILD4
-rw-r--r--community/libvirt/PKGBUILD8
-rw-r--r--community/mingw32-binutils/PKGBUILD10
-rw-r--r--community/mingw32-gcc-base/PKGBUILD12
-rw-r--r--community/mingw32-gcc/PKGBUILD10
-rw-r--r--community/torcs/PKGBUILD11
-rw-r--r--community/vym/PKGBUILD6
-rw-r--r--community/vym/vym.changelog3
-rw-r--r--extra/git/PKGBUILD8
-rw-r--r--extra/glsof/PKGBUILD12
-rw-r--r--extra/gmime/PKGBUILD10
-rw-r--r--extra/msmtp/PKGBUILD6
-rw-r--r--extra/re-alpine/PKGBUILD4
-rw-r--r--extra/transmission/0001-gtk-conf-set-correct-download-dir-default.patch31
-rw-r--r--extra/transmission/PKGBUILD47
-rw-r--r--extra/transmission/fix_minimize.patch27
-rw-r--r--testing/coreutils/PKGBUILD70
-rw-r--r--testing/coreutils/coreutils-pam.patch428
-rw-r--r--testing/coreutils/coreutils-uname.patch173
-rw-r--r--testing/coreutils/coreutils.install21
-rw-r--r--testing/coreutils/su.pam9
-rw-r--r--testing/kmod/PKGBUILD14
-rw-r--r--testing/kmod/fix-error-path-when-loading-deps.patch35
-rw-r--r--testing/kmod/use-path-max-for-alias-names.patch147
35 files changed, 1188 insertions, 108 deletions
diff --git a/community-testing/fcron/PKGBUILD b/community-testing/fcron/PKGBUILD
new file mode 100644
index 000000000..2efb43d1e
--- /dev/null
+++ b/community-testing/fcron/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 61839 2012-01-08 19:56:09Z ttopper $
+# Contributor: Giorgio Lando <lando at imap dot cc>
+# Contributor: Sergej Pupykin
+# Contributor: Thomas Bächler
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+
+pkgname=fcron
+pkgver=3.0.6
+pkgrel=5
+pkgdesc="feature-rich cron implementation"
+arch=(i686 x86_64)
+url="http://fcron.free.fr"
+license=('GPL')
+depends=('pam')
+makedepends=('smtp-server')
+optdepends=('smtp-server: to receive mails from cron jobs')
+provides=('cron')
+conflicts=('dcron')
+backup=(etc/fcron/fcron.conf etc/fcron/fcron.allow etc/fcron/fcron.deny \
+ var/spool/fcron/systab var/spool/fcron/systab.orig)
+options=('emptydirs' '!makeflags')
+source=(http://fcron.free.fr/archives/$pkgname-$pkgver.src.tar.gz fcron.rc \
+ systab systab.orig run-cron)
+md5sums=('69ebcb41921e2a282f41ebecb3a27053'
+ 'e0c3f0bdc3c98fbbe46eff19001c18f2'
+ '938722c6654ef7b07f4aa10001905ba1'
+ 'bfb7daa22ebe22b9917e455c1ca4a382'
+ '5ff0cdcb9ec99778938ac6ef26800327')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/fcron \
+ --with-answer-all=no \
+ --with-boot-install=no \
+ --with-username=root \
+ --with-groupname=root \
+ --datarootdir=/usr/share \
+ --datadir=/usr/share \
+ --with-docdir=/usr/share/doc \
+ --localstatedir=/var \
+ --with-editor=/usr/bin/vi \
+ --with-sendmail=/usr/sbin/sendmail
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+ install -D -m755 "$srcdir/fcron.rc" "$pkgdir/etc/rc.d/fcron"
+ install -D -m644 "$srcdir/$pkgname-$pkgver/files/fcron.pam" "$pkgdir/etc/pam.d/fcron"
+
+ install -D -m644 "$srcdir/$pkgname-$pkgver/files/fcrontab.pam" "$pkgdir/etc/pam.d/fcrontab"
+ # Install default fcrontab so that fcron can completely replace dcron
+
+ install -D -m600 "$srcdir/systab" "$pkgdir/var/spool/fcron/systab"
+ # In order to preserve the systab crontab in any case it is better to have
+ # it in non-binary form too
+ install -D -m600 "$srcdir/systab.orig" "$pkgdir/var/spool/fcron/systab.orig"
+
+ # Add cron.* directories
+ install -d -m755 "$pkgdir/etc/cron.daily"
+ install -d -m755 "$pkgdir/etc/cron.hourly"
+ install -d -m755 "$pkgdir/etc/cron.monthly"
+ install -d -m755 "$pkgdir/etc/cron.weekly"
+
+ # Install run-cron script to make fcron run without dcron
+ install -D -m755 "$srcdir/run-cron" "$pkgdir/usr/sbin/run-cron"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/fcron/fcron.rc b/community-testing/fcron/fcron.rc
new file mode 100644
index 000000000..880439a1d
--- /dev/null
+++ b/community-testing/fcron/fcron.rc
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/fcron`
+case "$1" in
+ start)
+ stat_busy "Starting Fcron Daemon"
+ [ -z "$PID" ] && /usr/sbin/fcron -b
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon fcron
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Fcron Daemon"
+ [ -n "$PID" ] && kill $PID >/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon fcron
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/fcron/run-cron b/community-testing/fcron/run-cron
new file mode 100644
index 000000000..51007a15a
--- /dev/null
+++ b/community-testing/fcron/run-cron
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+
+if [ -z $1 ]; then
+ echo "Usage: $0 crondir"
+ exit 1
+fi
+
+for cron in $1/* ; do
+ if [ -x $cron ]; then
+ $cron
+ fi
+done
+unset cron
diff --git a/community-testing/fcron/systab b/community-testing/fcron/systab
new file mode 100644
index 000000000..11c7e2fd0
--- /dev/null
+++ b/community-testing/fcron/systab
Binary files differ
diff --git a/community-testing/fcron/systab.orig b/community-testing/fcron/systab.orig
new file mode 100644
index 000000000..5b0045626
--- /dev/null
+++ b/community-testing/fcron/systab.orig
@@ -0,0 +1,4 @@
+&bootrun 01 * * * * /usr/sbin/run-cron /etc/cron.hourly
+&bootrun 02 00 * * * /usr/sbin/run-cron /etc/cron.daily
+&bootrun 22 00 * * 0 /usr/sbin/run-cron /etc/cron.weekly
+&bootrun 42 00 1 * * /usr/sbin/run-cron /etc/cron.monthly
diff --git a/community-testing/gogglesmm/PKGBUILD b/community-testing/gogglesmm/PKGBUILD
index c73bd1ae6..1ba275a25 100644
--- a/community-testing/gogglesmm/PKGBUILD
+++ b/community-testing/gogglesmm/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 61727 2012-01-07 05:10:55Z ebelanger $
+# $Id: PKGBUILD 61833 2012-01-08 19:51:55Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Sander Jansen <sander@knology.net>
pkgname=gogglesmm
-pkgver=0.12.5
-pkgrel=2
+pkgver=0.12.6
+pkgrel=1
pkgdesc="Music Manager and Player"
arch=('i686' 'x86_64')
url="http://code.google.com/p/gogglesmm/"
@@ -15,19 +15,10 @@ makedepends=('pkgconfig' 'glproto' 'dri2proto')
replaces=('musicmanager')
conflicts=('musicmanager')
source=(http://gogglesmm.googlecode.com/files/gogglesmm-$pkgver.tar.bz2)
-md5sums=('07e92bcf2daf39d6b380590816edd013')
+md5sums=('19505ee514690fe3372621685666db4c')
build() {
cd $srcdir/gogglesmm-$pkgver
- patch configure <<EOF
-diff gogglesmm-0.12.5/configure gogglesmm-0.12.5.my/configure
-206,207c206,207
-< XINE_MINOR=\${XINE_MINOR:-1}
-< XINE_LEVEL=\${XINE_LEVEL:-16}
----
-> XINE_MINOR=\${XINE_MINOR:-2}
-> XINE_LEVEL=\${XINE_LEVEL:-0}
-EOF
./configure --prefix=/usr
make
}
diff --git a/community-testing/packagekit/PKGBUILD b/community-testing/packagekit/PKGBUILD
index 05ff25d99..a4b82edcd 100644
--- a/community-testing/packagekit/PKGBUILD
+++ b/community-testing/packagekit/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 59823 2011-11-30 18:36:32Z lfleischer $
+# $Id: PKGBUILD 61812 2012-01-08 10:29:29Z jconder $
# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
pkgbase='packagekit'
pkgname=('packagekit' 'packagekit-qt' 'packagekit-qt2' 'packagekit-python')
pkgver=0.6.19
-pkgrel=3
+pkgrel=5
pkgdesc="A system designed to make installation and updates of packages easier."
arch=('i686' 'x86_64')
url="http://www.packagekit.org"
@@ -30,6 +30,8 @@ build() {
sed -i 's@bin/python@bin/python2@' 'lib/python/packagekit/'*.py
export PYTHON=/usr/bin/python2
+ # TODO: remove when upstream is patched
+ autoreconf
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
diff --git a/community/courier-authlib/PKGBUILD b/community/courier-authlib/PKGBUILD
index eeb601311..bbc05db55 100644
--- a/community/courier-authlib/PKGBUILD
+++ b/community/courier-authlib/PKGBUILD
@@ -5,7 +5,7 @@
pkgname=courier-authlib
pkgver=0.63.0
-pkgrel=6
+pkgrel=7
pkgdesc="Authentification library for the courier mailserver(s)"
arch=(i686 x86_64)
license=('GPL2')
@@ -22,7 +22,7 @@ install=${pkgname}.install
source=(http://downloads.sourceforge.net/project/courier/authlib/${pkgver}/${pkgname}-${pkgver}.tar.bz2
authdaemond.rc.d)
md5sums=('411a927d178f783a1e8fab9964ce0dd2'
- '911ee9f40d70fafc6bb4cc636c5ad531')
+ '7de75a9a74796f4fd2e81fd3ca16ed8d')
build() {
#export MAKEFLAGS="-j1"
@@ -36,7 +36,8 @@ build() {
--with-mailuser=courier --with-mailgroup=courier \
--with-authpam --with-authpwd --with-authshadow \
--with-authldap --with-authmysql --with-authpgsql \
- --with-authuserdb --with-authcram --with-authdaemon
+ --with-authuserdb --with-authcram --with-authdaemon \
+ --with-authdaemonvar=/var/run/authdaemon
make
}
@@ -55,9 +56,11 @@ package() {
###############################################################################
# Install daemon, that wraps couriers bashscript
install -Dm 755 ${srcdir}/authdaemond.rc.d ${pkgdir}/etc/rc.d/authdaemond
+ mkdir -p ${pkgdir}/var/spool/authdaemon
chown -R 72:72 ${pkgdir}/var/spool/authdaemon
- mkdir ${pkgdir}/var/spool/courier
+ mkdir -p ${pkgdir}/var/spool/courier
chown -R 72:72 ${pkgdir}/var/spool/courier
+ chown -R 72:72 ${pkgdir}/var/run/authdaemon
# docs say we can remove .a files after make
find ${pkgdir} -name '*\.a' -exec rm -f {} \;
# Make libs available to /usr/lib
diff --git a/community/courier-authlib/authdaemond.rc.d b/community/courier-authlib/authdaemond.rc.d
index ff4abb182..791c3d122 100644
--- a/community/courier-authlib/authdaemond.rc.d
+++ b/community/courier-authlib/authdaemond.rc.d
@@ -4,12 +4,14 @@
. /etc/rc.d/functions
start() {
+ [ -d /var/run/authdaemon ] || mkdir -p /var/run/authdaemon
+ chown courier:courier /var/run/authdaemon
+
stat_busy "Starting Authdaemond"
/usr/sbin/authdaemond start &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
else
- ln -s /var/spool/authdaemon/pid /var/run/authdaemond.pid
add_daemon authdaemond
stat_done
fi
@@ -21,10 +23,13 @@ stop() {
if [ $? -gt 0 ]; then
stat_fail
else
- rm -f /var/run/authdaemond.pid
- rm_daemon authdaemond
- # housecleaning; just like kids'n toys - don't care when it's needed anymore
+ rm -f /var/run/authdaemon/{pid.lock,pid,socket} &> /dev/null
+
+ # TODO: Take these out at some point, they're only cleanup for old way
+ rm -f /var/run/authdaemond.pid &> /dev/null
rm -f /var/spool/authdaemon/{pid.lock,pid,socket} &> /dev/null
+
+ rm_daemon authdaemond
stat_done
fi
}
diff --git a/community/dmenu/PKGBUILD b/community/dmenu/PKGBUILD
index db7dc7373..050157357 100644
--- a/community/dmenu/PKGBUILD
+++ b/community/dmenu/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 55762 2011-09-19 13:35:20Z ttopper $
+# $Id: PKGBUILD 61824 2012-01-08 18:20:40Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
# Contributor: Thayer Williams <thayer@archlinux.org>
# Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org>
pkgname=dmenu
-pkgver=4.4.1
+pkgver=4.5
pkgrel=1
pkgdesc="A generic menu for X"
url="http://tools.suckless.org/dmenu/"
@@ -13,7 +13,7 @@ arch=('i686' 'x86_64')
license=('MIT')
depends=('sh' 'libxinerama')
source=("http://dl.suckless.org/tools/$pkgname-$pkgver.tar.gz")
-md5sums=('d18aaa9ac3265f92ec34a0df0cb6ebd4')
+md5sums=('9c46169ed703732ec52ed946c27d84b4')
build(){
cd $srcdir/$pkgname-$pkgver
diff --git a/community/filezilla/PKGBUILD b/community/filezilla/PKGBUILD
index d46042547..f495f7475 100644
--- a/community/filezilla/PKGBUILD
+++ b/community/filezilla/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 58248 2011-11-09 10:50:52Z bluewind $
+# $Id: PKGBUILD 61830 2012-01-08 19:17:47Z bluewind $
# Contributor: Alexander Fehr <pizzapunk gmail com>
# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=filezilla
-pkgver=3.5.2
+pkgver=3.5.3
pkgrel=1
pkgdesc="Fast and reliable FTP, FTPS and SFTP client"
arch=('i686' 'x86_64')
@@ -11,14 +11,11 @@ url="http://filezilla-project.org/"
license=('GPL')
depends=('dbus-core' 'xdg-utils' 'wxgtk' 'libidn' 'hicolor-icon-theme' 'sqlite3')
install=filezilla.install
-source=("http://downloads.sourceforge.net/project/filezilla/FileZilla_Client/${pkgver}/FileZilla_${pkgver}_src.tar.bz2"
-gnutls-3.patch)
-md5sums=('ec4847be44932dc872a7e83b94ae2c9f'
- '0646cf7d6f90766961724102cf2cebd6')
+source=("http://downloads.sourceforge.net/project/filezilla/FileZilla_Client/${pkgver}/FileZilla_${pkgver}_src.tar.bz2")
+md5sums=('a1a2848db0c5c8f3321ebe4ee3842e31')
build() {
cd "${pkgname}-${pkgver}"
- patch -p1 -i "$srcdir/gnutls-3.patch"
./autogen.sh
./configure \
--prefix=/usr \
diff --git a/community/gmtk/PKGBUILD b/community/gmtk/PKGBUILD
index f7c68c23b..0704b7726 100644
--- a/community/gmtk/PKGBUILD
+++ b/community/gmtk/PKGBUILD
@@ -3,12 +3,12 @@
pkgname=gmtk
pkgver=1.0.5
-pkgrel=1
+pkgrel=2
pkgdesc='Common functions for gnome-mplayer and gecko-mediaplay.'
arch=('i686' 'x86_64')
url='http://gmtk.googlecode.com/'
license=('GPL')
-depends=('glib' 'gtk3' 'dconf')
+depends=('glib2' 'gtk3' 'dconf')
makedepends=('intltool' 'pkg-config')
options=(!libtool)
source=("http://gmtk.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
diff --git a/community/libvirt/PKGBUILD b/community/libvirt/PKGBUILD
index e12494bab..5038f5816 100644
--- a/community/libvirt/PKGBUILD
+++ b/community/libvirt/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 60347 2011-12-11 20:18:29Z spupykin $
+# $Id: PKGBUILD 61826 2012-01-08 18:22:27Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Jonathan Wiersma <archaur at jonw dot org>
pkgname=libvirt
-pkgver=0.9.8
-pkgrel=2
+pkgver=0.9.9
+pkgrel=1
pkgdesc="API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)"
arch=('i686' 'x86_64')
url="http://libvirt.org/"
@@ -37,7 +37,7 @@ source=("http://libvirt.org/sources/$pkgname-$pkgver.tar.gz"
openbsd-netcat-default.patch
unixperms.patch
yajl-2.x.patch)
-md5sums=('5bb74092e469d773c3d63128a8c57501'
+md5sums=('37c4bf8cdd4c76150bc0c1d249945d27'
'c43244c40a0437038c82089618e7beaa'
'3ed0e24f5b5e25bf553f5427d64915e6'
'737ec24aa56871fbabfa892789457db4'
diff --git a/community/mingw32-binutils/PKGBUILD b/community/mingw32-binutils/PKGBUILD
index f4b23c144..930f97380 100644
--- a/community/mingw32-binutils/PKGBUILD
+++ b/community/mingw32-binutils/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 59022 2011-11-20 20:22:21Z spupykin $
+# $Id: PKGBUILD 61841 2012-01-08 20:30:41Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Ondrej Jirman <megous@megous.com>
# Contributor: mosra <mosra@centrum.cz>
pkgname=mingw32-binutils
-pkgver=2.21.53
+pkgver=2.22
pkgrel=1
_uprel=1
arch=(i686 x86_64)
@@ -13,10 +13,12 @@ pkgdesc="A set of programs to assemble and manipulate binary and object files (m
depends=('glibc' 'zlib')
license=(GPL)
source=(https://downloads.sourceforge.net/project/mingw/MinGW/Base/binutils/binutils-$pkgver/binutils-$pkgver-${_uprel}-mingw32-src.tar.lzma)
-md5sums=('e7f6602056f594acc9a4a559909d4649')
+md5sums=('35419c797be081e081a664f95c3d3361')
build() {
- tar --lzma -xf binutils-$pkgver-${_uprel}-mingw32-src.tar.lzma
+ [ $NOEXTRACT -eq 1 ] || tar --lzma -xf binutils-$pkgver-${_uprel}-mingw32-src.tar.lzma
+ [ $NOEXTRACT -eq 1 ] || tar xjf binutils-$pkgver-${_uprel}-mingw32-src/binutils-$pkgver.tar.bz2
+
cd $srcdir/binutils-$pkgver
./configure \
--target=i486-mingw32 \
diff --git a/community/mingw32-gcc-base/PKGBUILD b/community/mingw32-gcc-base/PKGBUILD
index 94d509968..08da00e6d 100644
--- a/community/mingw32-gcc-base/PKGBUILD
+++ b/community/mingw32-gcc-base/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 59028 2011-11-20 20:24:08Z spupykin $
+# $Id: PKGBUILD 61843 2012-01-08 20:32:16Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Ondrej Jirman <megous@megous.com>
pkgname=mingw32-gcc-base
-pkgver=4.6.1
+pkgver=4.6.2
_w32apiver=3.17
_runtimever=3.20
-_uprel=2
+_uprel=1
_upw32rel=1
-pkgrel=2
+pkgrel=1
arch=(i686 x86_64)
pkgdesc="A C cross-compiler for building Windows executables on Linux"
depends=(mingw32-binutils)
@@ -16,12 +16,12 @@ makedepends=(p7zip mingw32-runtime mingw32-w32api)
conflicts=(mingw32-gcc)
options=(!strip)
license=(GPL LGPL)
-url="http://mingw.sf.net"
+url="http://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/"
source=(gcc-$pkgver-${_uprel}-mingw32-src.tar.lzma::http://downloads.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-$pkgver-${_uprel}/gcc-$pkgver-${_uprel}-mingw32-src.tar.lzma
http://downloads.sourceforge.net/project/mingw/MinGW/Base/w32api/w32api-${_w32apiver}/w32api-${_w32apiver}-${_upw32rel}-mingw32-src.tar.lzma
http://downloads.sourceforge.net/project/mingw/MinGW/Base/mingw-rt/mingwrt-${_runtimever}/mingwrt-${_runtimever}-mingw32-src.tar.gz
gcc-1-mingw-float.patch)
-md5sums=('f8b09b7e51223e1ae1c1e466af3ac82e'
+md5sums=('1f71a7f486bdf7a9875b7932f628b2b4'
'89e5800096aa334009f98e7c1743d825'
'26c0886cc60729b94956cc6d81cd076c'
'2407123c35c0aa92ee5ffc27decca9a7')
diff --git a/community/mingw32-gcc/PKGBUILD b/community/mingw32-gcc/PKGBUILD
index ba05b01ee..058236e68 100644
--- a/community/mingw32-gcc/PKGBUILD
+++ b/community/mingw32-gcc/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 59025 2011-11-20 20:23:13Z spupykin $
+# $Id: PKGBUILD 61845 2012-01-08 21:08:39Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Ondrej Jirman <megous@megous.com>
pkgname=mingw32-gcc
-pkgver=4.6.1
-pkgrel=2
-_uprel=2
+pkgver=4.6.2
+pkgrel=1
+_uprel=1
arch=(i686 x86_64)
pkgdesc="A C and C++ cross-compilers for building Windows executables on Linux"
depends=('mingw32-pthreads' 'mingw32-runtime' 'mingw32-binutils' 'mingw32-w32api'
@@ -17,7 +17,7 @@ url="http://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/"
license=(GPL LGPL)
source=(gcc-$pkgver-${_uprel}-mingw32-src.tar.lzma::http://downloads.sourceforge.net/project/mingw/MinGW/Base/gcc/Version4/gcc-$pkgver-${_uprel}/gcc-$pkgver-${_uprel}-mingw32-src.tar.lzma
gcc-1-mingw-float.patch)
-md5sums=('f8b09b7e51223e1ae1c1e466af3ac82e'
+md5sums=('1f71a7f486bdf7a9875b7932f628b2b4'
'2407123c35c0aa92ee5ffc27decca9a7')
build()
diff --git a/community/torcs/PKGBUILD b/community/torcs/PKGBUILD
index 9326ea1d5..1d6c27f91 100644
--- a/community/torcs/PKGBUILD
+++ b/community/torcs/PKGBUILD
@@ -1,21 +1,22 @@
-# $Id: PKGBUILD 59309 2011-11-23 10:18:01Z spupykin $
+# $Id: PKGBUILD 61835 2012-01-08 19:53:39Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Shahar Weiss <sweiss4@gmx.net>
pkgname=torcs
-pkgver=1.3.2_test1
-pkgrel=2
+pkgver=1.3.2_test2
+pkgrel=1
pkgdesc="A 3D racing cars simulator using OpenGL"
url="http://torcs.sourceforge.net"
license=("GPL")
arch=('i686' 'x86_64')
-depends=('freeglut' 'libpng' 'freealut' 'libxi' 'libxmu' 'libxrandr' 'torcs-data')
+depends=('freeglut' 'libpng' 'freealut' 'libxi' 'libxmu' 'libxrandr' 'torcs-data'
+ 'libvorbis')
makedepends=('plib')
options=('!makeflags')
source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-${pkgver/_/-}.tar.bz2
torcs.desktop
torcs-gcc.patch)
-md5sums=('978b908a42ff6bc235a791bba3fa66b9'
+md5sums=('7851c1149587451bd64a6a55d785af40'
'328e419e9f985c3e7b69924fe299330d'
'5ae7e903df37300d3b8744328c756bff')
diff --git a/community/vym/PKGBUILD b/community/vym/PKGBUILD
index cca7d0132..73710b116 100644
--- a/community/vym/PKGBUILD
+++ b/community/vym/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 56624 2011-10-09 08:27:22Z jlichtblau $
+# $Id: PKGBUILD 61822 2012-01-08 17:53:27Z jlichtblau $
# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
# Contributor: S�ren Holm <sgh@sgh.dk>
pkgname=vym
-pkgver=1.99.0
+pkgver=2.0.3
pkgrel=1
pkgdesc="A mindmapping tool"
arch=('i686' 'x86_64')
@@ -16,7 +16,7 @@ changelog=$pkgname.changelog
install=$pkgname.install
source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2 \
$pkgname.desktop)
-sha256sums=('0393aca3d88103bdfe4bce829a41664510dd0f6b8599299bf58ea797a913e583'
+sha256sums=('b04b57647adef84920c140fb5900ca884235a00bfd88ef6352ecf700a96717c4'
'e299c69c213e7aac3f5b5d0ab088132b4ec7cb63a391f272e75ed64f049d541b')
build() {
diff --git a/community/vym/vym.changelog b/community/vym/vym.changelog
index b61af921b..f3146af3a 100644
--- a/community/vym/vym.changelog
+++ b/community/vym/vym.changelog
@@ -1,3 +1,6 @@
+2012-01-08 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * vym 2.0.3-1
+
2011-10-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
* vym 1.99.0-1
diff --git a/extra/git/PKGBUILD b/extra/git/PKGBUILD
index 9f8a2c007..788db3ca6 100644
--- a/extra/git/PKGBUILD
+++ b/extra/git/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 145348 2011-12-22 00:36:32Z dan $
+# $Id: PKGBUILD 146299 2012-01-08 22:58:11Z dan $
# Maintainer: Dan McGee <dan@archlinux.org>
pkgname=git
-pkgver=1.7.8.1
+pkgver=1.7.8.3
pkgrel=1
pkgdesc="the fast distributed version control system"
arch=(i686 x86_64)
@@ -80,7 +80,7 @@ package() {
install -D -m644 "$srcdir"/git-daemon.conf "$pkgdir"/etc/conf.d/git-daemon.conf
}
-sha1sums=('198e23e6e50245331590a6159ccdbdbe1792422c'
- 'b49ce0b4da4f85671693c9b2c6f6a8b8ee65c809'
+sha1sums=('e5eb8c289b69d69fd08c81b587a06eb5dd2b5c1c'
+ 'a6e2b7cff8181ee52a1cc00ebba7b349850d6680'
'f2b41828bd912b72e2cb3e14677739c4f370de66'
'149e2da1ecb48872ddb31c0945afeaad1f9653d7')
diff --git a/extra/glsof/PKGBUILD b/extra/glsof/PKGBUILD
index 05a63141a..195b91483 100644
--- a/extra/glsof/PKGBUILD
+++ b/extra/glsof/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 144348 2011-12-04 22:01:25Z eric $
-# Maintainer: Eric Bélanger <eric@archlinux.org>
+# $Id: PKGBUILD 146281 2012-01-08 05:34:24Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=glsof
-pkgver=1.6.1
-_fmver=1.6.1
+pkgver=1.7.0
+_fmver=1.7.0
_qver=1.0.0
pkgrel=1
pkgdesc="Two separate GUI utilities (Queries and Filemonitor) to the lsof command line utility"
@@ -15,14 +15,14 @@ source=(http://downloads.sourceforge.net/sourceforge/glsof/filemonitor-${_fmver}
if [ "$CARCH" = "i686" ]; then
source=(${source[@]} http://downloads.sourceforge.net/sourceforge/glsof/queries-${_qver}/queries_linux32.tar.gz \
glsof-filemonitor glsof-queries)
- sha1sums=('afafaafefcfc5f4bb76f6cbe7c4a39a478e351c2'
+ sha1sums=('00db4305995a67cea6bc12bfe7ef3984d07434ae'
'd5a17d66dd02cd78bad5ffdda0b936c7848e4890'
'197b58f40880995d6442fd42a58fa1f4594fd19d'
'2797c326904af16a254c3e39b8c529ea14ef37e5')
elif [ "$CARCH" = "x86_64" ]; then
source=(${source[@]} http://downloads.sourceforge.net/sourceforge/glsof/queries-${_qver}/queries_linux64.tar.gz \
glsof-filemonitor glsof-queries)
- sha1sums=('afafaafefcfc5f4bb76f6cbe7c4a39a478e351c2'
+ sha1sums=('00db4305995a67cea6bc12bfe7ef3984d07434ae'
'c5dd12e9b2860f1c427ed7cd482e898978051d2c'
'197b58f40880995d6442fd42a58fa1f4594fd19d'
'2797c326904af16a254c3e39b8c529ea14ef37e5')
diff --git a/extra/gmime/PKGBUILD b/extra/gmime/PKGBUILD
index 905ea0e90..d60713620 100644
--- a/extra/gmime/PKGBUILD
+++ b/extra/gmime/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 145137 2011-12-17 18:24:13Z ibiru $
+# $Id: PKGBUILD 146295 2012-01-08 17:45:05Z ibiru $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Ben <ben@benmazer.net>
pkgname=gmime
-pkgver=2.4.29
+pkgver=2.4.31
pkgrel=1
pkgdesc="Core mime parsing library"
arch=('i686' 'x86_64')
@@ -13,7 +13,7 @@ depends=('glib2' 'zlib')
makedepends=('gtk-sharp-2' 'pkgconfig')
options=('!libtool')
source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('c85dd7b2ac19754bf687fe8653c3631415b3a2ce70b4365268f03a1bd002ffa5')
+sha256sums=('d9601328ee3d2d5be57ac8397571af4835dba8eb2c68ad224de3ec722a81fd04')
build() {
# get rid of that .wapi errors in fakeroot
@@ -28,8 +28,4 @@ build() {
package() {
cd "$srcdir/$pkgname-$pkgver"
make DESTDIR="$pkgdir" install
-
- # These are gmime alternatives for the same shareutils tools
- mv "$pkgdir/usr/bin/uuencode" "$pkgdir/usr/bin/guuencode"
- mv "$pkgdir/usr/bin/uudecode" "$pkgdir/usr/bin/guudecode"
}
diff --git a/extra/msmtp/PKGBUILD b/extra/msmtp/PKGBUILD
index ef30c63bb..9e9aaef60 100644
--- a/extra/msmtp/PKGBUILD
+++ b/extra/msmtp/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 143654 2011-11-28 04:52:17Z eric $
+# $Id: PKGBUILD 146283 2012-01-08 05:55:19Z eric $
# Maintainer: tobias <tobias@archlinux.org>
# Contributor: Ben Mazer <blm@groknil.org>
pkgname=msmtp
-pkgver=1.4.26
+pkgver=1.4.27
pkgrel=1
pkgdesc="A mini smtp client"
arch=('i686' 'x86_64')
@@ -14,7 +14,7 @@ makedepends=('texlive-core')
provides=('smtp-forwarder')
install=msmtp.install
source=(http://download.sourceforge.net/sourceforge/msmtp/${pkgname}-${pkgver}.tar.bz2)
-sha1sums=('0ce5352447b01dc21970b7a00cf13b8a3e7172c9')
+sha1sums=('e335745133b4729fe84c49f836b4d2fa9281e040')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/extra/re-alpine/PKGBUILD b/extra/re-alpine/PKGBUILD
index 9293744c9..92043c7a3 100644
--- a/extra/re-alpine/PKGBUILD
+++ b/extra/re-alpine/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 125747 2011-05-29 05:24:41Z eric $
+# $Id: PKGBUILD 146303 2012-01-09 01:01:51Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
# Contributor: Smith Dhumbumroong <zodmaner@gmail.com>
@@ -26,7 +26,7 @@ sha1sums=('9c2f13dbc7ca75e7a09f81df607db84694b10fa6'
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
patch -p1 < ../maildir.patch
- LIBS+=-lpam ./configure --prefix=/usr --without-passfile --without-tcl \
+ LIBS+="-lpam -lkrb5 -lcrypto" ./configure --prefix=/usr --without-passfile --without-tcl \
--disable-shared --with-system-pinerc=/etc/alpine.d/pine.conf \
--with-system-fixed-pinerc=/etc/alpine.d/pine.conf.fixed
make
diff --git a/extra/transmission/0001-gtk-conf-set-correct-download-dir-default.patch b/extra/transmission/0001-gtk-conf-set-correct-download-dir-default.patch
new file mode 100644
index 000000000..3b0a38400
--- /dev/null
+++ b/extra/transmission/0001-gtk-conf-set-correct-download-dir-default.patch
@@ -0,0 +1,31 @@
+From 4028320ba2e8c181292e02171d83ebf6ce3aee5a Mon Sep 17 00:00:00 2001
+From: Felipe Contreras <felipe.contreras@gmail.com>
+Date: Thu, 29 Dec 2011 03:28:27 +0200
+Subject: [PATCH] gtk: conf: set correct download dir default
+
+Otherwise people might get:
+ERROR:open-dialog.c:285:gtr_torrent_options_dialog_new: code should not be reached
+
+It was fixed at some point in ticket #1873, but somebody broket it
+again.
+
+Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
+---
+ gtk/conf.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/gtk/conf.c b/gtk/conf.c
+index 623b839..6ad6ca2 100644
+--- a/gtk/conf.c
++++ b/gtk/conf.c
+@@ -108,7 +108,6 @@ tr_prefs_init_defaults( tr_benc * d )
+ tr_bencDictAddInt( d, PREF_KEY_MAIN_WINDOW_X, 50 );
+ tr_bencDictAddInt( d, PREF_KEY_MAIN_WINDOW_Y, 50 );
+
+- str = g_get_user_special_dir( G_USER_DIRECTORY_DOWNLOAD );
+ tr_bencDictAddStr( d, TR_PREFS_KEY_DOWNLOAD_DIR, str );
+
+ tr_bencDictAddStr( d, PREF_KEY_SORT_MODE, "sort-by-name" );
+--
+1.7.8.1
+
diff --git a/extra/transmission/PKGBUILD b/extra/transmission/PKGBUILD
index 68d081cd4..2d43a286b 100644
--- a/extra/transmission/PKGBUILD
+++ b/extra/transmission/PKGBUILD
@@ -1,21 +1,28 @@
-# $Id: PKGBUILD 141093 2011-10-23 18:45:30Z ibiru $
+# $Id: PKGBUILD 146293 2012-01-08 17:03:43Z ibiru $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
pkgbase=transmission
pkgname=('transmission-cli' 'transmission-gtk' 'transmission-qt')
pkgver=2.42
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
url="http://www.transmissionbt.com/"
license=('MIT')
makedepends=('gtk3' 'intltool' 'curl' 'qt' 'libevent')
-source=(http://mirrors.m0k.org/transmission/files/${pkgbase}-${pkgver}.tar.xz
- transmissiond transmissiond.conf)
+source=(http://mirrors.m0k.org/transmission/files/$pkgbase-$pkgver.tar.xz
+ transmissiond transmissiond.conf
+ 0001-gtk-conf-set-correct-download-dir-default.patch
+ fix_minimize.patch)
md5sums=('50f6dd76c5c01f45d5ed20783c686815'
'08875299e3fbb68fc546c1f350ac1f06'
- 'be39806c35b7544856fa4070b00fc960')
+ 'be39806c35b7544856fa4070b00fc960'
+ 'f9fae46f5aa9ed3a22af64091604c6d0'
+ 'bd764dea56aaf69757762ea1a4c92be2')
build() {
- cd "${srcdir}/${pkgbase}-${pkgver}"
+ cd "$srcdir/$pkgbase-$pkgver"
+
+ patch -Np1 -i "$srcdir/0001-gtk-conf-set-correct-download-dir-default.patch"
+ patch -Np2 -i "$srcdir/fix_minimize.patch"
./configure --prefix=/usr
make
@@ -29,16 +36,16 @@ package_transmission-cli() {
backup=('etc/conf.d/transmissiond')
install=transmission-cli.install
- cd "${srcdir}/${pkgbase}-${pkgver}"
+ cd "$srcdir/$pkgbase-$pkgver"
for dir in daemon cli web utils
do
- make -C "${dir}" DESTDIR="${pkgdir}" install
+ make -C "$dir" DESTDIR="$pkgdir" install
done
- install -D -m755 "${srcdir}/transmissiond" "${pkgdir}/etc/rc.d/transmissiond"
- install -D -m644 "${srcdir}/transmissiond.conf" "${pkgdir}/etc/conf.d/transmissiond"
- install -D -m644 COPYING "${pkgdir}/usr/share/licenses/transmission-cli/COPYING"
+ install -D -m755 "$srcdir/transmissiond" "$pkgdir/etc/rc.d/transmissiond"
+ install -D -m644 "$srcdir/transmissiond.conf" "$pkgdir/etc/conf.d/transmissiond"
+ install -D -m644 COPYING "$pkgdir/usr/share/licenses/transmission-cli/COPYING"
}
package_transmission-gtk() {
@@ -48,11 +55,11 @@ package_transmission-gtk() {
'transmission-cli: daemon and web support')
install=transmission-gtk.install
- cd "${srcdir}/${pkgbase}-${pkgver}"
+ cd "$srcdir/$pkgbase-$pkgver"
- make -C gtk DESTDIR="${pkgdir}" install
- make -C po DESTDIR="${pkgdir}" install
- install -D -m644 COPYING "${pkgdir}/usr/share/licenses/transmission-gtk/COPYING"
+ make -C gtk DESTDIR="$pkgdir" install
+ make -C po DESTDIR="$pkgdir" install
+ install -D -m644 COPYING "$pkgdir/usr/share/licenses/transmission-gtk/COPYING"
}
package_transmission-qt() {
@@ -61,11 +68,11 @@ package_transmission-qt() {
optdepends=('transmission-cli: daemon and web support')
install=transmission-qt.install
- cd "${srcdir}/${pkgbase}-${pkgver}"
+ cd "$srcdir/$pkgbase-$pkgver"
- make -C qt INSTALL_ROOT="${pkgdir}"/usr install
+ make -C qt INSTALL_ROOT="$pkgdir"/usr install
- install -D -m644 COPYING "${pkgdir}/usr/share/licenses/transmission-qt/COPYING"
- install -D -m644 qt/icons/transmission.png "${pkgdir}/usr/share/pixmaps/transmission-qt.png"
- install -D -m644 qt/transmission-qt.desktop "${pkgdir}/usr/share/applications/transmission-qt.desktop"
+ install -D -m644 COPYING "$pkgdir/usr/share/licenses/transmission-qt/COPYING"
+ install -D -m644 qt/icons/transmission.png "$pkgdir/usr/share/pixmaps/transmission-qt.png"
+ install -D -m644 qt/transmission-qt.desktop "$pkgdir/usr/share/applications/transmission-qt.desktop"
}
diff --git a/extra/transmission/fix_minimize.patch b/extra/transmission/fix_minimize.patch
new file mode 100644
index 000000000..fe0f42a03
--- /dev/null
+++ b/extra/transmission/fix_minimize.patch
@@ -0,0 +1,27 @@
+Index: /trunk/gtk/main.c
+===================================================================
+--- /trunk/gtk/main.c (revision 12968)
++++ /trunk/gtk/main.c (revision 13067)
+@@ -73,4 +73,5 @@
+ gboolean is_iconified;
+
++ guint activation_count;
+ guint timer;
+ guint update_model_soon_tag;
+@@ -533,6 +534,14 @@
+
+ static void
+-on_activate( GApplication * app UNUSED, gpointer unused UNUSED )
+-{
++on_activate( GApplication * app UNUSED, struct cbdata * cbdata )
++{
++ cbdata->activation_count++;
++
++ /* GApplication emits an 'activate' signal when bootstrapping the primary.
++ * Ordinarily we handle that by presenting the main window, but if the user
++ * user started Transmission minimized, ignore that initial signal... */
++ if( cbdata->is_iconified && ( cbdata->activation_count == 1 ) )
++ return;
++
+ gtr_action_activate( "present-main-window" );
+ }
diff --git a/testing/coreutils/PKGBUILD b/testing/coreutils/PKGBUILD
new file mode 100644
index 000000000..8748cc984
--- /dev/null
+++ b/testing/coreutils/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 146285 2012-01-08 06:48:18Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=coreutils
+pkgver=8.15
+pkgrel=1
+pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system"
+arch=('i686' 'x86_64')
+license=('GPL3')
+url="http://www.gnu.org/software/coreutils"
+groups=('base')
+depends=('glibc' 'shadow' 'pam' 'acl' 'gmp' 'libcap')
+replaces=('mktemp')
+backup=('etc/pam.d/su')
+install=${pkgname}.install
+options=('!emptydirs')
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig}
+ coreutils-uname.patch
+ coreutils-pam.patch
+ su.pam)
+md5sums=('094909fafa86110140b32e4948941545'
+ '2cdd273d93a77d03739fa81d7c2acfe5'
+ 'c4fcca138b6abf6d443d48a6f0cd8833'
+ 'aad79a2aa6d566c375d7bdd1b0767278'
+ 'fa85e5cce5d723275b14365ba71a8aad')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # added su wheel group pam patch (from fedora git)
+ patch -Np1 -i ${srcdir}/coreutils-pam.patch
+
+ # linux specific uname improvement (from gentoo portage)
+ patch -Np1 -i ${srcdir}/coreutils-uname.patch
+
+ autoreconf -v
+ ./configure --prefix=/usr --libexecdir=/usr/lib/coreutils \
+ --enable-install-program=su \
+ --enable-no-install-program=groups,hostname,kill,uptime \
+ --enable-pam
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make RUN_EXPENSIVE_TESTS=yes check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ cd ${pkgdir}/usr/bin
+ install -dm755 ${pkgdir}/{bin,usr/sbin}
+
+ # binaries required by FHS
+ _fhs="cat chgrp chmod chown cp date dd df echo false ln ls \
+ mkdir mknod mv pwd rm rmdir stty su sync true uname"
+ mv ${_fhs} ${pkgdir}/bin
+
+ # binaries required by various Arch scripts
+ _bin="cut dir dircolors du install mkfifo readlink shred \
+ sleep touch tr vdir"
+ mv ${_bin} ${pkgdir}/bin
+ ln -sf /bin/sleep ${pkgdir}/usr/bin/sleep
+
+ mv chroot ${pkgdir}/usr/sbin
+ install -Dm644 ${srcdir}/su.pam ${pkgdir}/etc/pam.d/su
+}
diff --git a/testing/coreutils/coreutils-pam.patch b/testing/coreutils/coreutils-pam.patch
new file mode 100644
index 000000000..e61908f3f
--- /dev/null
+++ b/testing/coreutils/coreutils-pam.patch
@@ -0,0 +1,428 @@
+diff -urNp coreutils-8.4-orig/configure.ac coreutils-8.4/configure.ac
+--- coreutils-8.4-orig/configure.ac 2010-01-11 18:20:42.000000000 +0100
++++ coreutils-8.4/configure.ac 2010-02-12 10:17:46.000000000 +0100
+@@ -126,6 +126,13 @@ if test "$gl_gcc_warnings" = yes; then
+ AC_SUBST([GNULIB_WARN_CFLAGS])
+ fi
+
++dnl Give the chance to enable PAM
++AC_ARG_ENABLE(pam, dnl
++[ --enable-pam Enable use of the PAM libraries],
++[AC_DEFINE(USE_PAM, 1, [Define if you want to use PAM])
++LIB_PAM="-ldl -lpam -lpam_misc"
++AC_SUBST(LIB_PAM)])
++
+ AC_FUNC_FORK
+
+ optional_bin_progs=
+diff -urNp coreutils-8.4-orig/doc/coreutils.texi coreutils-8.4/doc/coreutils.texi
+--- coreutils-8.4-orig/doc/coreutils.texi 2010-01-03 18:06:20.000000000 +0100
++++ coreutils-8.4/doc/coreutils.texi 2010-02-12 10:17:46.000000000 +0100
+@@ -15081,8 +15081,11 @@ to certain shells, etc.).
+ @findex syslog
+ @command{su} can optionally be compiled to use @code{syslog} to report
+ failed, and optionally successful, @command{su} attempts. (If the system
+-supports @code{syslog}.) However, GNU @command{su} does not check if the
+-user is a member of the @code{wheel} group; see below.
++supports @code{syslog}.)
++
++This version of @command{su} has support for using PAM for
++authentication. You can edit @file{/etc/pam.d/su} to customize its
++behaviour.
+
+ The program accepts the following options. Also see @ref{Common options}.
+
+@@ -15124,6 +15127,8 @@ environment variables except @env{TERM},
+ @env{PATH} to a compiled-in default value. Change to @var{user}'s home
+ directory. Prepend @samp{-} to the shell's name, intended to make it
+ read its login startup file(s).
++Additionaly @env{DISPLAY} and @env{XAUTHORITY} environment variables
++are preserved as well for PAM functionality.
+
+ @item -m
+ @itemx -p
+@@ -15163,33 +15168,6 @@ Exit status:
+ the exit status of the subshell otherwise
+ @end display
+
+-@cindex wheel group, not supported
+-@cindex group wheel, not supported
+-@cindex fascism
+-@subsection Why GNU @command{su} does not support the @samp{wheel} group
+-
+-(This section is by Richard Stallman.)
+-
+-@cindex Twenex
+-@cindex MIT AI lab
+-Sometimes a few of the users try to hold total power over all the
+-rest. For example, in 1984, a few users at the MIT AI lab decided to
+-seize power by changing the operator password on the Twenex system and
+-keeping it secret from everyone else. (I was able to thwart this coup
+-and give power back to the users by patching the kernel, but I
+-wouldn't know how to do that in Unix.)
+-
+-However, occasionally the rulers do tell someone. Under the usual
+-@command{su} mechanism, once someone learns the root password who
+-sympathizes with the ordinary users, he or she can tell the rest. The
+-``wheel group'' feature would make this impossible, and thus cement the
+-power of the rulers.
+-
+-I'm on the side of the masses, not that of the rulers. If you are
+-used to supporting the bosses and sysadmins in whatever they do, you
+-might find this idea strange at first.
+-
+-
+ @node timeout invocation
+ @section @command{timeout}: Run a command with a time limit
+
+diff -urNp coreutils-8.4-orig/src/Makefile.am coreutils-8.4/src/Makefile.am
+--- coreutils-8.4-orig/src/Makefile.am 2010-01-03 18:06:20.000000000 +0100
++++ coreutils-8.4/src/Makefile.am 2010-02-12 10:17:46.000000000 +0100
+@@ -361,7 +361,7 @@ factor_LDADD += $(LIB_GMP)
+ uptime_LDADD += $(GETLOADAVG_LIBS)
+
+ # for crypt
+-su_LDADD += $(LIB_CRYPT)
++su_LDADD += $(LIB_CRYPT) @LIB_PAM@
+
+ # for various ACL functions
+ copy_LDADD += $(LIB_ACL)
+diff -urNp coreutils-8.4-orig/src/su.c coreutils-8.4/src/su.c
+--- coreutils-8.4-orig/src/su.c 2010-02-12 10:15:15.000000000 +0100
++++ coreutils-8.4/src/su.c 2010-02-12 10:24:29.000000000 +0100
+@@ -37,6 +37,16 @@
+ restricts who can su to UID 0 accounts. RMS considers that to
+ be fascist.
+
++#ifdef USE_PAM
++
++ Actually, with PAM, su has nothing to do with whether or not a
++ wheel group is enforced by su. RMS tries to restrict your access
++ to a su which implements the wheel group, but PAM considers that
++ to be fascist, and gives the user/sysadmin the opportunity to
++ enforce a wheel group by proper editing of /etc/pam.conf
++
++#endif
++
+ Compile-time options:
+ -DSYSLOG_SUCCESS Log successful su's (by default, to root) with syslog.
+ -DSYSLOG_FAILURE Log failed su's (by default, to root) with syslog.
+@@ -53,6 +63,15 @@
+ #include <pwd.h>
+ #include <grp.h>
+
++#ifdef USE_PAM
++# include <signal.h>
++# include <sys/wait.h>
++# include <sys/fsuid.h>
++# include <unistd.h>
++# include <security/pam_appl.h>
++# include <security/pam_misc.h>
++#endif /* USE_PAM */
++
+ #include "system.h"
+ #include "getpass.h"
+
+@@ -120,10 +139,17 @@
+ /* The user to become if none is specified. */
+ #define DEFAULT_USER "root"
+
++#ifndef USE_PAM
+ char *crypt (char const *key, char const *salt);
++#endif
+
+-static void run_shell (char const *, char const *, char **, size_t)
++static void run_shell (char const *, char const *, char **, size_t,
++ const struct passwd *)
++#ifdef USE_PAM
++ ;
++#else
+ ATTRIBUTE_NORETURN;
++#endif
+
+ /* If true, pass the `-f' option to the subshell. */
+ static bool fast_startup;
+@@ -209,7 +235,26 @@ log_su (struct passwd const *pw, bool su
+ }
+ #endif
+
++#ifdef USE_PAM
++static pam_handle_t *pamh = NULL;
++static int retval;
++static struct pam_conv conv = {
++ misc_conv,
++ NULL
++};
++
++#define PAM_BAIL_P if (retval) { \
++ pam_end(pamh, PAM_SUCCESS); \
++ return 0; \
++}
++#define PAM_BAIL_P_VOID if (retval) { \
++ pam_end(pamh, PAM_SUCCESS); \
++return; \
++}
++#endif
++
+ /* Ask the user for a password.
++ If PAM is in use, let PAM ask for the password if necessary.
+ Return true if the user gives the correct password for entry PW,
+ false if not. Return true without asking for a password if run by UID 0
+ or if PW has an empty password. */
+@@ -217,6 +262,44 @@ log_su (struct passwd const *pw, bool su
+ static bool
+ correct_password (const struct passwd *pw)
+ {
++#ifdef USE_PAM
++ struct passwd *caller;
++ char *tty_name, *ttyn;
++ retval = pam_start(PROGRAM_NAME, pw->pw_name, &conv, &pamh);
++ PAM_BAIL_P;
++
++ if (getuid() != 0 && !isatty(0)) {
++ fprintf(stderr, "standard in must be a tty\n");
++ exit(1);
++ }
++
++ caller = getpwuid(getuid());
++ if(caller != NULL && caller->pw_name != NULL) {
++ retval = pam_set_item(pamh, PAM_RUSER, caller->pw_name);
++ PAM_BAIL_P;
++ }
++
++ ttyn = ttyname(0);
++ if (ttyn) {
++ if (strncmp(ttyn, "/dev/", 5) == 0)
++ tty_name = ttyn+5;
++ else
++ tty_name = ttyn;
++ retval = pam_set_item(pamh, PAM_TTY, tty_name);
++ PAM_BAIL_P;
++ }
++ retval = pam_authenticate(pamh, 0);
++ PAM_BAIL_P;
++ retval = pam_acct_mgmt(pamh, 0);
++ if (retval == PAM_NEW_AUTHTOK_REQD) {
++ /* password has expired. Offer option to change it. */
++ retval = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK);
++ PAM_BAIL_P;
++ }
++ PAM_BAIL_P;
++ /* must be authenticated if this point was reached */
++ return 1;
++#else /* !USE_PAM */
+ char *unencrypted, *encrypted, *correct;
+ #if HAVE_GETSPNAM && HAVE_STRUCT_SPWD_SP_PWDP
+ /* Shadow passwd stuff for SVR3 and maybe other systems. */
+@@ -241,6 +324,7 @@ correct_password (const struct passwd *p
+ encrypted = crypt (unencrypted, correct);
+ memset (unencrypted, 0, strlen (unencrypted));
+ return STREQ (encrypted, correct);
++#endif /* !USE_PAM */
+ }
+
+ /* Update `environ' for the new shell based on PW, with SHELL being
+@@ -254,12 +338,18 @@ modify_environment (const struct passwd
+ /* Leave TERM unchanged. Set HOME, SHELL, USER, LOGNAME, PATH.
+ Unset all other environment variables. */
+ char const *term = getenv ("TERM");
++ char const *display = getenv ("DISPLAY");
++ char const *xauthority = getenv ("XAUTHORITY");
+ if (term)
+ term = xstrdup (term);
+ environ = xmalloc ((6 + !!term) * sizeof (char *));
+ environ[0] = NULL;
+ if (term)
+ xsetenv ("TERM", term);
++ if (display)
++ xsetenv ("DISPLAY", display);
++ if (xauthority)
++ xsetenv ("XAUTHORITY", xauthority);
+ xsetenv ("HOME", pw->pw_dir);
+ xsetenv ("SHELL", shell);
+ xsetenv ("USER", pw->pw_name);
+@@ -292,8 +382,13 @@ change_identity (const struct passwd *pw
+ {
+ #ifdef HAVE_INITGROUPS
+ errno = 0;
+- if (initgroups (pw->pw_name, pw->pw_gid) == -1)
++ if (initgroups (pw->pw_name, pw->pw_gid) == -1) {
++#ifdef USE_PAM
++ pam_close_session(pamh, 0);
++ pam_end(pamh, PAM_ABORT);
++#endif
+ error (EXIT_CANCELED, errno, _("cannot set groups"));
++ }
+ endgrent ();
+ #endif
+ if (setgid (pw->pw_gid))
+@@ -302,6 +397,31 @@ change_identity (const struct passwd *pw
+ error (EXIT_CANCELED, errno, _("cannot set user id"));
+ }
+
++#ifdef USE_PAM
++static int caught=0;
++/* Signal handler for parent process later */
++static void su_catch_sig(int sig)
++{
++ ++caught;
++}
++
++int
++pam_copyenv (pam_handle_t *pamh)
++{
++ char **env;
++
++ env = pam_getenvlist(pamh);
++ if(env) {
++ while(*env) {
++ if (putenv (*env))
++ xalloc_die ();
++ env++;
++ }
++ }
++ return(0);
++}
++#endif
++
+ /* Run SHELL, or DEFAULT_SHELL if SHELL is empty.
+ If COMMAND is nonzero, pass it to the shell with the -c option.
+ Pass ADDITIONAL_ARGS to the shell as more arguments; there
+@@ -309,17 +429,49 @@ change_identity (const struct passwd *pw
+
+ static void
+ run_shell (char const *shell, char const *command, char **additional_args,
+- size_t n_additional_args)
++ size_t n_additional_args, const struct passwd *pw)
+ {
+ size_t n_args = 1 + fast_startup + 2 * !!command + n_additional_args + 1;
+ char const **args = xnmalloc (n_args, sizeof *args);
+ size_t argno = 1;
++#ifdef USE_PAM
++ int child;
++ sigset_t ourset;
++ int status;
++
++ retval = pam_open_session(pamh,0);
++ if (retval != PAM_SUCCESS) {
++ fprintf (stderr, "could not open session\n");
++ exit (1);
++ }
++
++/* do this at the last possible moment, because environment variables may
++ be passed even in the session phase
++*/
++ if(pam_copyenv(pamh) != PAM_SUCCESS)
++ fprintf (stderr, "error copying PAM environment\n");
++
++ /* Credentials should be set in the parent */
++ if (pam_setcred(pamh, PAM_ESTABLISH_CRED) != PAM_SUCCESS) {
++ pam_close_session(pamh, 0);
++ fprintf(stderr, "could not set PAM credentials\n");
++ exit(1);
++ }
++
++ child = fork();
++ if (child == 0) { /* child shell */
++ change_identity (pw);
++ pam_end(pamh, 0);
++#endif
+
+ if (simulate_login)
+ {
+ char *arg0;
+ char *shell_basename;
+
++ if(chdir(pw->pw_dir))
++ error(0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
++
+ shell_basename = last_component (shell);
+ arg0 = xmalloc (strlen (shell_basename) + 2);
+ arg0[0] = '-';
+@@ -344,6 +496,67 @@ run_shell (char const *shell, char const
+ error (0, errno, "%s", shell);
+ exit (exit_status);
+ }
++#ifdef USE_PAM
++ } else if (child == -1) {
++ fprintf(stderr, "can not fork user shell: %s", strerror(errno));
++ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT);
++ pam_close_session(pamh, 0);
++ pam_end(pamh, PAM_ABORT);
++ exit(1);
++ }
++ /* parent only */
++ sigfillset(&ourset);
++ if (sigprocmask(SIG_BLOCK, &ourset, NULL)) {
++ fprintf(stderr, "%s: signal malfunction\n", PROGRAM_NAME);
++ caught = 1;
++ }
++ if (!caught) {
++ struct sigaction action;
++ action.sa_handler = su_catch_sig;
++ sigemptyset(&action.sa_mask);
++ action.sa_flags = 0;
++ sigemptyset(&ourset);
++ if (sigaddset(&ourset, SIGTERM)
++ || sigaddset(&ourset, SIGALRM)
++ || sigaction(SIGTERM, &action, NULL)
++ || sigprocmask(SIG_UNBLOCK, &ourset, NULL)) {
++ fprintf(stderr, "%s: signal masking malfunction\n", PROGRAM_NAME);
++ caught = 1;
++ }
++ }
++ if (!caught) {
++ do {
++ int pid;
++
++ pid = waitpid(-1, &status, WUNTRACED);
++
++ if (((pid_t)-1 != pid) && (0 != WIFSTOPPED (status))) {
++ kill(getpid(), WSTOPSIG(status));
++ /* once we get here, we must have resumed */
++ kill(pid, SIGCONT);
++ }
++ } while (0 != WIFSTOPPED(status));
++ }
++
++ if (caught) {
++ fprintf(stderr, "\nSession terminated, killing shell...");
++ kill (child, SIGTERM);
++ }
++ /* Not checking retval on this because we need to call close session */
++ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT);
++ retval = pam_close_session(pamh, 0);
++ PAM_BAIL_P_VOID;
++ retval = pam_end(pamh, PAM_SUCCESS);
++ PAM_BAIL_P_VOID;
++ if (caught) {
++ sleep(2);
++ kill(child, SIGKILL);
++ fprintf(stderr, " ...killed.\n");
++ exit(-1);
++ }
++ exit ((0 != WIFEXITED (status)) ? WEXITSTATUS (status)
++ : WTERMSIG (status) + 128);
++#endif /* USE_PAM */
+ }
+
+ /* Return true if SHELL is a restricted shell (one not returned by
+@@ -511,9 +724,9 @@ main (int argc, char **argv)
+ shell = xstrdup (shell ? shell : pw->pw_shell);
+ modify_environment (pw, shell);
+
++#ifndef USE_PAM
+ change_identity (pw);
+- if (simulate_login && chdir (pw->pw_dir) != 0)
+- error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
++#endif
+
+ /* error() flushes stderr, but does not check for write failure.
+ Normally, we would catch this via our atexit() hook of
+@@ -523,5 +736,5 @@ main (int argc, char **argv)
+ if (ferror (stderr))
+ exit (EXIT_CANCELED);
+
+- run_shell (shell, command, argv + optind, MAX (0, argc - optind));
++ run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw);
+ }
diff --git a/testing/coreutils/coreutils-uname.patch b/testing/coreutils/coreutils-uname.patch
new file mode 100644
index 000000000..b458abeba
--- /dev/null
+++ b/testing/coreutils/coreutils-uname.patch
@@ -0,0 +1,173 @@
+On linux platforms, grok /proc/cpuinfo for the CPU/vendor info.
+
+Prob not suitable for upstream seeing as how it's 100% linux-specific
+http://lists.gnu.org/archive/html/bug-coreutils/2005-09/msg00063.html
+
+Patch originally by Carlos E. Gorges <carlos@techlinux.com.br>, but
+heavily reworked to suck less.
+
+To add support for additional platforms, check out the show_cpuinfo()
+func in the linux/arch/<ARCH>/ source tree of the kernel.
+
+--- coreutils/src/uname.c
++++ coreutils/src/uname.c
+@@ -50,6 +50,11 @@
+ # include <mach-o/arch.h>
+ #endif
+
++#if defined(__linux__)
++# define USE_PROCINFO
++# define UNAME_HARDWARE_PLATFORM
++#endif
++
+ #include "system.h"
+ #include "error.h"
+ #include "quote.h"
+@@ -138,6 +143,117 @@
+ exit (status);
+ }
+
++#if defined(USE_PROCINFO)
++
++# if defined(__s390__) || defined(__s390x__)
++# define CPUINFO_FILE "/proc/sysinfo"
++# define CPUINFO_FORMAT "%64[^\t :]%*[ :]%256[^\n]%c"
++# else
++# define CPUINFO_FILE "/proc/cpuinfo"
++# define CPUINFO_FORMAT "%64[^\t:]\t:%256[^\n]%c"
++# endif
++
++# define PROCINFO_PROCESSOR 0
++# define PROCINFO_HARDWARE_PLATFORM 1
++
++static void __eat_cpuinfo_space(char *buf)
++{
++ /* first eat trailing space */
++ char *tmp = buf + strlen(buf) - 1;
++ while (tmp > buf && isspace(*tmp))
++ *tmp-- = '\0';
++ /* then eat leading space */
++ tmp = buf;
++ while (*tmp && isspace(*tmp))
++ tmp++;
++ if (tmp != buf)
++ memmove(buf, tmp, strlen(tmp)+1);
++ /* finally collapse whitespace */
++ tmp = buf;
++ while (tmp[0] && tmp[1]) {
++ if (isspace(tmp[0]) && isspace(tmp[1])) {
++ memmove(tmp, tmp+1, strlen(tmp));
++ continue;
++ }
++ ++tmp;
++ }
++}
++
++static int __linux_procinfo(int x, char *fstr, size_t s)
++{
++ FILE *fp;
++
++ char *procinfo_keys[] = {
++ /* --processor --hardware-platform */
++ #if defined(__alpha__)
++ "cpu model", "system type"
++ #elif defined(__arm__)
++ "Processor", "Hardware"
++ #elif defined(__avr32__)
++ "processor", "cpu family"
++ #elif defined(__bfin__)
++ "CPU", "BOARD Name"
++ #elif defined(__cris__)
++ "cpu", "cpu model"
++ #elif defined(__frv__)
++ "CPU-Core", "System"
++ #elif defined(__i386__) || defined(__x86_64__)
++ "model name", "vendor_id"
++ #elif defined(__ia64__)
++ "family", "vendor"
++ #elif defined(__hppa__)
++ "cpu", "model"
++ #elif defined(__m68k__)
++ "CPU", "MMU"
++ #elif defined(__mips__)
++ "cpu model", "system type"
++ #elif defined(__powerpc__) || defined(__powerpc64__)
++ "cpu", "machine"
++ #elif defined(__s390__) || defined(__s390x__)
++ "Type", "Manufacturer"
++ #elif defined(__sh__)
++ "cpu type", "machine"
++ #elif defined(sparc) || defined(__sparc__)
++ "type", "cpu"
++ #elif defined(__vax__)
++ "cpu type", "cpu"
++ #else
++ "unknown", "unknown"
++ #endif
++ };
++
++ if ((fp = fopen(CPUINFO_FILE, "r")) != NULL) {
++ char key[65], value[257], eol, *ret = NULL;
++
++ while (fscanf(fp, CPUINFO_FORMAT, key, value, &eol) != EOF) {
++ __eat_cpuinfo_space(key);
++ if (!strcmp(key, procinfo_keys[x])) {
++ __eat_cpuinfo_space(value);
++ ret = value;
++ break;
++ }
++ if (eol != '\n') {
++ /* we need two fscanf's here in case the previous
++ * length limit caused us to read right up to the
++ * newline ... doing "%*[^\n]\n" wont eat the newline
++ */
++ fscanf(fp, "%*[^\n]");
++ fscanf(fp, "\n");
++ }
++ }
++ fclose(fp);
++
++ if (ret) {
++ strncpy(fstr, ret, s);
++ return 0;
++ }
++ }
++
++ return -1;
++}
++
++#endif
++
+ /* Print ELEMENT, preceded by a space if something has already been
+ printed. */
+
+@@ -250,10 +344,14 @@ main (int argc, char **argv)
+ if (toprint & PRINT_PROCESSOR)
+ {
+ char const *element = unknown;
+-#if HAVE_SYSINFO && defined SI_ARCHITECTURE
++#if ( HAVE_SYSINFO && defined SI_ARCHITECTURE ) || defined(USE_PROCINFO)
+ {
+ static char processor[257];
++#if defined(USE_PROCINFO)
++ if (0 <= __linux_procinfo (PROCINFO_PROCESSOR, processor, sizeof processor))
++#else
+ if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor))
++#endif
+ element = processor;
+ }
+ #endif
+@@ -306,9 +404,13 @@ main (int argc, char **argv)
+ if (element == unknown)
+ {
+ static char hardware_platform[257];
++#if defined(USE_PROCINFO)
++ if (0 <= __linux_procinfo (PROCINFO_HARDWARE_PLATFORM, hardware_platform, sizeof hardware_platform))
++#else
+ size_t s = sizeof hardware_platform;
+ static int mib[] = { CTL_HW, UNAME_HARDWARE_PLATFORM };
+ if (sysctl (mib, 2, hardware_platform, &s, 0, 0) >= 0)
++#endif
+ element = hardware_platform;
+ }
+ #endif
diff --git a/testing/coreutils/coreutils.install b/testing/coreutils/coreutils.install
new file mode 100644
index 000000000..8caae6686
--- /dev/null
+++ b/testing/coreutils/coreutils.install
@@ -0,0 +1,21 @@
+infodir=usr/share/info
+filelist=(coreutils.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/testing/coreutils/su.pam b/testing/coreutils/su.pam
new file mode 100644
index 000000000..cf15f40f1
--- /dev/null
+++ b/testing/coreutils/su.pam
@@ -0,0 +1,9 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+# Uncomment the following line to implicitly trust users in the "wheel" group.
+#auth sufficient pam_wheel.so trust use_uid
+# Uncomment the following line to require a user to be in the "wheel" group.
+#auth required pam_wheel.so use_uid
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/testing/kmod/PKGBUILD b/testing/kmod/PKGBUILD
index d278860cb..e0269b3df 100644
--- a/testing/kmod/PKGBUILD
+++ b/testing/kmod/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 146226 2012-01-06 11:00:10Z dreisner $
+# $Id: PKGBUILD 146297 2012-01-08 22:05:13Z dreisner $
# Maintainer: Dave Reisner <dreisner@archlinux.org>
pkgname=kmod
pkgver=3
-pkgrel=4
+pkgrel=5
pkgdesc="Linux kernel module handling"
arch=('i686' 'x86_64')
url="http://git.profusion.mobi/cgit.cgi/kmod.git"
@@ -15,15 +15,21 @@ conflicts=('module-init-tools')
replaces=('module-init-tools')
source=("http://packages.profusion.mobi/$pkgname/$pkgname-$pkgver.tar.xz"
"depmod-search.conf"
- "return-non-zero-on-fail.patch")
+ "return-non-zero-on-fail.patch"
+ "use-path-max-for-alias-names.patch"
+ "fix-error-path-when-loading-deps.patch")
md5sums=('bc0e69f75c2ac22c091f05e166e86c5d'
'4b8cbcbc54b9029c99fd730e257d4436'
- '4be6f783a7fc2d1747ccaa2536d2e88f')
+ '4be6f783a7fc2d1747ccaa2536d2e88f'
+ '4d801693a6788236b4ed578c24514d62'
+ 'd0f01e506e825156760e6129f04eea28')
build() {
cd "$pkgname-$pkgver"
patch -Np1 <"$srcdir/return-non-zero-on-fail.patch"
+ patch -Np1 <"$srcdir/use-path-max-for-alias-names.patch"
+ patch -Np1 <"$srcdir/fix-error-path-when-loading-deps.patch"
./configure \
--sysconfdir=/etc \
diff --git a/testing/kmod/fix-error-path-when-loading-deps.patch b/testing/kmod/fix-error-path-when-loading-deps.patch
new file mode 100644
index 000000000..0046d19b9
--- /dev/null
+++ b/testing/kmod/fix-error-path-when-loading-deps.patch
@@ -0,0 +1,35 @@
+From cb0d0b72128ac566aad9a72800c5a64af66f0b6e Mon Sep 17 00:00:00 2001
+From: Lucas De Marchi <lucas.demarchi@profusion.mobi>
+Date: Sun, 8 Jan 2012 18:08:05 -0200
+Subject: [PATCH] modprobe: fix error path when loading dependencies
+
+demarchi> scenario is the following:
+demarchi> modA depends on modB and modC
+demarchi> if there's a race when trying to insert a dependency of a module, say
+ modB, it will stop loading all the modules
+demarchi> it should check by "module already loaded error"
+demarchi> like it does for modA
+---
+ tools/kmod-modprobe.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/tools/kmod-modprobe.c b/tools/kmod-modprobe.c
+index eaf9346..2cda935 100644
+--- a/tools/kmod-modprobe.c
++++ b/tools/kmod-modprobe.c
+@@ -666,9 +666,11 @@ static int insmod_do_deps_list(struct kmod_module *parent, struct kmod_list *dep
+ flags |= KMOD_INSERT_FORCE_VERMAGIC;
+
+ r = kmod_module_insert_module(dm, flags, opts);
++ if (r == -EEXIST && !first_time)
++ r = 0;
+ if (r < 0) {
+ WRN("could not insert '%s': %s\n",
+- dmname, strerror(-r));
++ dmname, strerror(-r));
+ goto dep_error;
+ }
+ }
+--
+1.7.8.1
+
diff --git a/testing/kmod/use-path-max-for-alias-names.patch b/testing/kmod/use-path-max-for-alias-names.patch
new file mode 100644
index 000000000..e97ae7c49
--- /dev/null
+++ b/testing/kmod/use-path-max-for-alias-names.patch
@@ -0,0 +1,147 @@
+From 6daceb2f1f4d442ba04752aaa1cf43d554d5f646 Mon Sep 17 00:00:00 2001
+From: Lucas De Marchi <lucas.demarchi@profusion.mobi>
+Date: Sun, 8 Jan 2012 01:02:29 -0200
+Subject: [PATCH] Replace NAME_MAX with PATH_MAX for module aliases
+
+Module aliases can be bigger than NAME_MAX. So, replace with PATH_MAX
+that is bigger enough to hold them.
+
+Technically in some places NAME_MAX would be sufficient (those using
+module names only), but they use functions that can be called with
+alias. So increase the buffers in these cases to PATH_MAX too.
+---
+ libkmod/libkmod-module.c | 10 +++++-----
+ libkmod/libkmod-util.c | 10 +++++-----
+ libkmod/libkmod-util.h | 6 +++---
+ tools/kmod-depmod.c | 4 ++--
+ 4 files changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
+index f2359a9..880bac5 100644
+--- a/libkmod/libkmod-module.c
++++ b/libkmod/libkmod-module.c
+@@ -185,7 +185,7 @@ KMOD_EXPORT int kmod_module_new_from_name(struct kmod_ctx *ctx,
+ {
+ struct kmod_module *m;
+ size_t namelen;
+- char name_norm[NAME_MAX];
++ char name_norm[PATH_MAX];
+ char *namesep;
+
+ if (ctx == NULL || name == NULL || mod == NULL)
+@@ -237,11 +237,11 @@ int kmod_module_new_from_alias(struct kmod_ctx *ctx, const char *alias,
+ const char *name, struct kmod_module **mod)
+ {
+ int err;
+- char key[NAME_MAX];
++ char key[PATH_MAX];
+ size_t namelen = strlen(name);
+ size_t aliaslen = strlen(alias);
+
+- if (namelen + aliaslen + 2 > NAME_MAX)
++ if (namelen + aliaslen + 2 > PATH_MAX)
+ return -ENAMETOOLONG;
+
+ memcpy(key, name, namelen);
+@@ -283,7 +283,7 @@ KMOD_EXPORT int kmod_module_new_from_path(struct kmod_ctx *ctx,
+ struct kmod_module *m;
+ int err;
+ struct stat st;
+- char name[NAME_MAX];
++ char name[PATH_MAX];
+ char *abspath;
+ size_t namelen;
+
+@@ -434,7 +434,7 @@ KMOD_EXPORT int kmod_module_new_from_lookup(struct kmod_ctx *ctx,
+ struct kmod_list **list)
+ {
+ int err;
+- char alias[NAME_MAX];
++ char alias[PATH_MAX];
+
+ if (ctx == NULL || given_alias == NULL)
+ return -ENOENT;
+diff --git a/libkmod/libkmod-util.c b/libkmod/libkmod-util.c
+index 75e2fea..344d94a 100644
+--- a/libkmod/libkmod-util.c
++++ b/libkmod/libkmod-util.c
+@@ -121,11 +121,11 @@ char *underscores(struct kmod_ctx *ctx, char *s)
+ return s;
+ }
+
+-inline int alias_normalize(const char *alias, char buf[NAME_MAX], size_t *len)
++inline int alias_normalize(const char *alias, char buf[PATH_MAX], size_t *len)
+ {
+ size_t s;
+
+- for (s = 0; s < NAME_MAX - 1; s++) {
++ for (s = 0; s < PATH_MAX - 1; s++) {
+ const char c = alias[s];
+ switch (c) {
+ case '-':
+@@ -160,12 +160,12 @@ finish:
+ return 0;
+ }
+
+-inline char *modname_normalize(const char *modname, char buf[NAME_MAX],
++inline char *modname_normalize(const char *modname, char buf[PATH_MAX],
+ size_t *len)
+ {
+ size_t s;
+
+- for (s = 0; s < NAME_MAX - 1; s++) {
++ for (s = 0; s < PATH_MAX - 1; s++) {
+ const char c = modname[s];
+ if (c == '-')
+ buf[s] = '_';
+@@ -183,7 +183,7 @@ inline char *modname_normalize(const char *modname, char buf[NAME_MAX],
+ return buf;
+ }
+
+-char *path_to_modname(const char *path, char buf[NAME_MAX], size_t *len)
++char *path_to_modname(const char *path, char buf[PATH_MAX], size_t *len)
+ {
+ char *modname;
+
+diff --git a/libkmod/libkmod-util.h b/libkmod/libkmod-util.h
+index 3cd352c..e8ed5ad 100644
+--- a/libkmod/libkmod-util.h
++++ b/libkmod/libkmod-util.h
+@@ -20,9 +20,9 @@ int read_str_ulong(int fd, unsigned long *value, int base) __must_check __attrib
+ char *strchr_replace(char *s, int c, char r);
+ bool path_is_absolute(const char *p) __must_check __attribute__((nonnull(1)));
+ char *path_make_absolute_cwd(const char *p) __must_check __attribute__((nonnull(1)));
+-int alias_normalize(const char *alias, char buf[NAME_MAX], size_t *len) __must_check __attribute__((nonnull(1,2)));
+-char *modname_normalize(const char *modname, char buf[NAME_MAX], size_t *len) __attribute__((nonnull(1, 2)));
+-char *path_to_modname(const char *path, char buf[NAME_MAX], size_t *len) __attribute__((nonnull(2)));
++int alias_normalize(const char *alias, char buf[PATH_MAX], size_t *len) __must_check __attribute__((nonnull(1,2)));
++char *modname_normalize(const char *modname, char buf[PATH_MAX], size_t *len) __attribute__((nonnull(1, 2)));
++char *path_to_modname(const char *path, char buf[PATH_MAX], size_t *len) __attribute__((nonnull(2)));
+ unsigned long long ts_usec(const struct timespec *ts);
+
+ #endif
+diff --git a/tools/kmod-depmod.c b/tools/kmod-depmod.c
+index 70c397c..4726522 100644
+--- a/tools/kmod-depmod.c
++++ b/tools/kmod-depmod.c
+@@ -1249,7 +1249,7 @@ static int depmod_modules_search_file(struct depmod *depmod, size_t baselen, siz
+ struct kmod_module *kmod;
+ struct mod *mod;
+ const char *relpath;
+- char modname[NAME_MAX];
++ char modname[PATH_MAX];
+ const struct kmod_ext *eitr;
+ size_t modnamelen;
+ uint8_t matches = 0;
+@@ -2101,7 +2101,7 @@ static int output_builtin_bin(struct depmod *depmod, FILE *out)
+ {
+ FILE *in;
+ struct index_node *idx;
+- char infile[PATH_MAX], line[PATH_MAX], modname[NAME_MAX];
++ char infile[PATH_MAX], line[PATH_MAX], modname[PATH_MAX];
+
+ if (out == stdout)
+ return 0;
+--
+1.7.8.1
+