summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-02-14 23:14:55 +0000
committerroot <root@rshg054.dnsready.net>2012-02-14 23:14:55 +0000
commit812b715ebd89fb9049df7000c721990084b525c6 (patch)
tree28d43e6e6913a90b83f44660108e44f7353d8c82
parent16e845de1bbf76ab48a02bfaa21730f45e6afaaa (diff)
Tue Feb 14 23:14:55 UTC 2012
-rw-r--r--community/freerdp/PKGBUILD8
-rw-r--r--community/gsoap/PKGBUILD6
-rw-r--r--community/pari/PKGBUILD10
-rw-r--r--community/pigeonhole/PKGBUILD16
-rw-r--r--community/remmina/PKGBUILD4
-rw-r--r--community/virtviewer/PKGBUILD8
-rw-r--r--core/dhcpcd/PKGBUILD11
-rw-r--r--extra/basket/PKGBUILD14
-rw-r--r--extra/basket/basket.install1
-rw-r--r--extra/brltty/PKGBUILD28
-rw-r--r--extra/brltty/brltty.install20
-rw-r--r--extra/dovecot/PKGBUILD9
-rw-r--r--extra/garcon/PKGBUILD6
-rw-r--r--extra/maxima/PKGBUILD8
-rw-r--r--extra/octave/PKGBUILD8
-rw-r--r--extra/qscintilla/PKGBUILD9
-rw-r--r--extra/xfce4-mpc-plugin/PKGBUILD27
-rw-r--r--extra/xfce4-session/PKGBUILD8
-rw-r--r--multilib-testing/lib32-libxcb/PKGBUILD41
-rw-r--r--multilib-testing/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch12
-rw-r--r--staging/libnova/PKGBUILD27
-rw-r--r--staging/sip/PKGBUILD54
-rw-r--r--testing/kmod/0001-libkmod-module-probe-fix-infinite-loop-with-softdeps.patch39
-rw-r--r--testing/kmod/PKGBUILD11
-rw-r--r--testing/shadow/LICENSE31
-rw-r--r--testing/shadow/PKGBUILD116
-rw-r--r--testing/shadow/adduser399
-rw-r--r--testing/shadow/chgpasswd4
-rw-r--r--testing/shadow/chpasswd6
-rw-r--r--testing/shadow/defaults.pam6
-rw-r--r--testing/shadow/login21
-rw-r--r--testing/shadow/login.defs197
-rw-r--r--testing/shadow/newusers6
-rw-r--r--testing/shadow/passwd4
-rw-r--r--testing/shadow/shadow-add-missing-include.patch11
-rw-r--r--testing/shadow/shadow-strncpy-usage.patch25
-rwxr-xr-xtesting/shadow/shadow.cron.daily6
-rw-r--r--testing/shadow/shadow.install9
-rw-r--r--testing/shadow/useradd.defaults9
-rw-r--r--testing/shadow/xstrdup.patch9
-rw-r--r--testing/xf86-video-sis/PKGBUILD19
-rw-r--r--testing/xf86-video-sis/git-f5dafa24.patch1654
42 files changed, 2817 insertions, 100 deletions
diff --git a/community/freerdp/PKGBUILD b/community/freerdp/PKGBUILD
index 1d53ff9d9..7667c43d3 100644
--- a/community/freerdp/PKGBUILD
+++ b/community/freerdp/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 64418 2012-02-13 04:02:27Z spupykin $
+# $Id: PKGBUILD 64460 2012-02-14 00:48:20Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Stijn Segers <francesco dot borromini at gmail dot com>
pkgname=freerdp
pkgver=1.0.1
-pkgrel=1
+pkgrel=3
pkgdesc="Free RDP client"
arch=('i686' 'x86_64')
url="http://freerdp.sourceforge.net"
license=('GPL')
depends=('openssl' 'libxcursor' 'libcups' 'alsa-lib' 'libxext' 'libxdamage'
'ffmpeg' 'libxkbfile' 'libxinerama' 'libxv')
-makedepends=('krb5' 'cmake' 'damageproto')
+makedepends=('krb5' 'cmake' 'damageproto' 'xmlto' 'docbook-xsl')
conflicts=('freerdp-git')
changelog=${pkgname}.changelog
options=('!libtool')
@@ -20,7 +20,7 @@ md5sums=('1282189a87893bf196da20382e45f6c1')
build() {
cd `find ${srcdir}/ -type d -name FreeRDP-\*`
- cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib .
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib .
make
}
diff --git a/community/gsoap/PKGBUILD b/community/gsoap/PKGBUILD
index 0e8d448c8..da3ed0a7e 100644
--- a/community/gsoap/PKGBUILD
+++ b/community/gsoap/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 60745 2011-12-17 14:07:20Z spupykin $
+# $Id: PKGBUILD 64430 2012-02-13 06:18:52Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Tor Krill <tor@krill.nu>
# Contributor: Lee.MaRS <leemars@gmail.com>
pkgname=gsoap
-pkgver=2.8.6
+pkgver=2.8.7
pkgrel=1
pkgdesc="Offers an XML language binding to ease the development of SOAP/XML Web services in C and C/C++"
url="http://www.cs.fsu.edu/~engelen/soap.html"
@@ -14,7 +14,7 @@ depends=('openssl' 'zlib' 'gcc-libs')
makedepends=('autoconf' 'automake')
source=(http://prdownloads.sourceforge.net/gsoap2/${pkgname}_${pkgver}.zip
LICENSE)
-md5sums=('c0b962c6216bcf59255dc4288783252f'
+md5sums=('48a8dfddffd8f10b3ca82a6a9583e206'
'27aaa3f5166db94d44044c11a7b2c37b')
build() {
diff --git a/community/pari/PKGBUILD b/community/pari/PKGBUILD
index 770b1133c..35f4fe186 100644
--- a/community/pari/PKGBUILD
+++ b/community/pari/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 56828 2011-10-14 00:16:01Z bisson $
+# $Id: PKGBUILD 64451 2012-02-13 22:53:47Z bisson $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
pkgname=pari
-pkgver=2.5.0
-pkgrel=2
+pkgver=2.5.1
+pkgrel=1
pkgdesc='Computer algebra system designed for fast computations in number theory'
-arch=('i686' 'x86_64')
url='http://pari.math.u-bordeaux.fr/'
license=('GPL')
+arch=('i686' 'x86_64')
depends=('gmp' 'readline' 'libx11')
makedepends=('perl' 'texlive-core')
optdepends=('perl: gphelp, tex2mail')
source=("${url}pub/pari/unix/${pkgname}-${pkgver}.tar.gz")
-sha1sums=('d96250cd8b3e426f548a832f2f44fdfd30fd32b6')
+sha1sums=('c83314bb993161a60e1e46ae7616072858414354')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/community/pigeonhole/PKGBUILD b/community/pigeonhole/PKGBUILD
index 745d29a9c..547694360 100644
--- a/community/pigeonhole/PKGBUILD
+++ b/community/pigeonhole/PKGBUILD
@@ -4,12 +4,12 @@
# This must be built against the version of dovecot being used,
# else mail delivery will fail.
# Specify the version of dovecot to be used here:
-_dcpkgver=2.0.17
+_dcpkgver=2.0.18
# Make sure to bump pkgrel if changing this.
pkgname=pigeonhole
-pkgver=0.2.5
-pkgrel=2
+pkgver=0.2.6
+pkgrel=1
pkgdesc="Fully rewritten Sieve implementation for Dovecot v2.0"
arch=('i686' 'x86_64')
url="http://pigeonhole.dovecot.org/"
@@ -18,10 +18,10 @@ depends=('dovecot='$_dcpkgver)
makedepends=()
conflicts=('dovecot-sieve' 'pigeonhole-hg')
source=("http://www.rename-it.nl/dovecot/2.0/dovecot-2.0-$pkgname-$pkgver.tar.gz"
- "dovecot.conf")
+ "dovecot.conf")
options=('!libtool')
-md5sums=('f50151dd20eb5acbac2b546e586f2d43'
- '564b771c339f69a477c06babf53e11c2')
+sha256sums=('49829e4aed763848b63b2bf9e288d4bc94020c924ce0621bc850e0a4bf4821ab'
+ 'a457a1691cfa82495fc0503bfa4b61e54b149e63400fe0f568dff2c24a3f7858')
build() {
cd "$srcdir/dovecot-2.0-$pkgname-$pkgver"
@@ -32,9 +32,9 @@ build() {
package() {
cd "$srcdir/dovecot-2.0-$pkgname-$pkgver"
-
+
make DESTDIR="$pkgdir/" install
install -m 644 -D "$srcdir/dovecot.conf" "$pkgdir/etc/ld.so.conf.d/dovecot.conf"
-}
+}
diff --git a/community/remmina/PKGBUILD b/community/remmina/PKGBUILD
index fb0ec9527..594599ac9 100644
--- a/community/remmina/PKGBUILD
+++ b/community/remmina/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 64408 2012-02-13 02:27:42Z spupykin $
+# $Id: PKGBUILD 64462 2012-02-14 00:49:08Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=remmina
pkgver=1.0.0
-pkgrel=1
+pkgrel=2
pkgdesc="Remmina is a remote desktop client written in GTK+. "
arch=(i686 x86_64)
url="http://sourceforge.net/projects/remmina/"
diff --git a/community/virtviewer/PKGBUILD b/community/virtviewer/PKGBUILD
index 1798634b9..d4cd88bc5 100644
--- a/community/virtviewer/PKGBUILD
+++ b/community/virtviewer/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 63765 2012-02-05 12:13:04Z ibiru $
+# $Id: PKGBUILD 64445 2012-02-13 15:08:55Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Jonathan Wiersma <archaur at jonw dot org>
pkgname=virtviewer
-pkgver=0.4.1
-pkgrel=2
+pkgver=0.4.2
+pkgrel=1
pkgdesc="A lightweight interface for interacting with the graphical display of virtualized guest OS."
depends=('gtk-vnc' 'libglade>=2.6.0' 'libvirt')
makedepends=('intltool')
@@ -12,7 +12,7 @@ url="http://virt-manager.et.redhat.com"
arch=('i686' 'x86_64')
license=('GPL')
source=("http://virt-manager.et.redhat.com/download/sources/virt-viewer/virt-viewer-$pkgver.tar.gz")
-md5sums=('1cc86ed3fbbe37a56faa6476b2e6dbcd')
+md5sums=('4fc003cb655aa45b77c9f2ee45ba6d4f')
build() {
cd $srcdir/virt-viewer-$pkgver
diff --git a/core/dhcpcd/PKGBUILD b/core/dhcpcd/PKGBUILD
index 500de0241..3cc3378cc 100644
--- a/core/dhcpcd/PKGBUILD
+++ b/core/dhcpcd/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 142553 2011-11-12 07:19:26Z allan $
+# $Id: PKGBUILD 150154 2012-02-13 15:50:03Z ronald $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Contributor: Tom Killian <tom.archlinux.org>
# Contributor: Judd Vinet <jvinet.zeroflux.org>
pkgname=dhcpcd
-pkgver=5.2.12
-pkgrel=4
+pkgver=5.5.4
+pkgrel=1
pkgdesc="RFC2131 compliant DHCP client daemon"
url="http://roy.marples.name/dhcpcd/"
arch=('i686' 'x86_64')
@@ -17,7 +17,7 @@ options=('emptydirs') # We Need the Empty /var/lib/dhcpcd Directory
source=("http://roy.marples.name/downloads/$pkgname/$pkgname-$pkgver.tar.bz2" \
'dhcpcd.conf.d' '0001-Set-hostname-via-proc-if-file-is-available.patch' \
'0001-set-MTU-via-sysfs-if-file-is-available.patch')
-sha1sums=('27378a251705c7888332e6d60eea7805d1f8aeb5'
+sha1sums=('8aa42abd28d49cce5b179998490c36f6c490e338'
'b67b9ce6a2faaca75fea356966a16be2283b7db0'
'ee85adac972a8172a9d9b3a1bdd46e0430301582'
'afbed18dc5544f7d0b81e2266b322ca12becf9a4')
@@ -30,7 +30,8 @@ build() {
patch -Np1 -i ${srcdir}/0001-set-MTU-via-sysfs-if-file-is-available.patch
# configure variables
- ./configure --libexecdir=/usr/lib/dhcpcd --dbdir=/var/lib/dhcpcd
+ ./configure --libexecdir=/usr/lib/dhcpcd --dbdir=/var/lib/dhcpcd \
+ --rundir=/run
# Build
make
diff --git a/extra/basket/PKGBUILD b/extra/basket/PKGBUILD
index 66df7774e..fd46016ed 100644
--- a/extra/basket/PKGBUILD
+++ b/extra/basket/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 149623 2012-02-08 20:36:29Z pierre $
+# $Id: PKGBUILD 150150 2012-02-13 15:03:16Z ronald $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Contributor: James Rayner <james@archlinux.org>
# Contributor: lucke <lucke at o2 dot pl>
pkgname=basket
pkgver=1.81
-pkgrel=2
+pkgrel=3
pkgdesc="All-purpose notes taker for KDE."
arch=('i686' 'x86_64')
url="http://basket.kde.org/"
-depends=('kdelibs' 'gpgme' 'qimageblitz' 'hicolor-icon-theme')
+depends=('kdelibs' 'gpgme' 'qimageblitz' 'hicolor-icon-theme' 'kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=$pkgname.install
license=('GPL')
source=(http://basket.kde.org/downloads/$pkgname-$pkgver.tar.bz2)
-md5sums=('cbb1bc5ca7c2ad1485c433c00a8f65a1')
+sha1sums=('209d92048523f341259d79510fa56977690e5dfc')
build() {
- cd $srcdir/$pkgname-$pkgver
+ cd ${srcdir}/${pkgname}-${pkgver}
cmake ../${pkgbase}-${pkgver} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SKIP_RPATH=ON \
@@ -27,6 +27,6 @@ build() {
}
package() {
- cd $srcdir/$pkgname-$pkgver
- make DESTDIR=$startdir/pkg install
+ cd $srcdir/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
}
diff --git a/extra/basket/basket.install b/extra/basket/basket.install
index 3e1f2f1f5..2308e6e3e 100644
--- a/extra/basket/basket.install
+++ b/extra/basket/basket.install
@@ -1,5 +1,6 @@
post_install() {
xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
}
post_upgrade() {
diff --git a/extra/brltty/PKGBUILD b/extra/brltty/PKGBUILD
index b645f13e3..663eff676 100644
--- a/extra/brltty/PKGBUILD
+++ b/extra/brltty/PKGBUILD
@@ -1,49 +1,47 @@
-# $Id: PKGBUILD 142442 2011-11-09 21:20:39Z guillaume $
+# $Id: PKGBUILD 150160 2012-02-13 19:59:22Z ibiru $
# Maintainer:
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
pkgname=brltty
pkgver=4.3
-pkgrel=1
+pkgrel=4
pkgdesc="Braille display driver for Linux/Unix"
arch=('i686' 'x86_64')
url="http://mielke.cc/brltty"
license=('GPL' 'LGPL')
-depends=('libxaw' 'at-spi' 'gpm' 'icu' 'python2' 'tcl' 'atk' 'libxtst')
-makedepends=('pyrex' 'bluez')
+depends=('libxaw' 'at-spi2-core' 'gpm' 'icu' 'python2' 'tcl' 'atk' 'libxtst' 'pyrex')
+makedepends=('bluez')
optdepends=('bluez: bluetooth support')
backup=(etc/brltty.conf etc/conf.d/brltty.conf)
options=('!makeflags' '!emptydirs')
-source=(http://mielke.cc/${pkgname}/releases/${pkgname}-${pkgver}.tar.gz
+install=brltty.install
+source=(http://mielke.cc/$pkgname/releases/$pkgname-$pkgver.tar.gz
'brltty'
'brltty.conf')
-# 'brltty-4.2-S_ISCHR.patch'
md5sums=('5ada573f88df32b6150db3b9a620e20b'
'831ebaf0c56091702929c68805d20c4f'
'a8ab8b3dd059e96e1734bc9cdcf844fc')
-# '5954b289efaf2ff17676d06de9a88854'
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- CFLAGS+="${CFLAGS} -D_GNU_SOURCE" \
+ cd "$srcdir/$pkgname-$pkgver"
./configure --prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
+ --with-screen-driver=a2 \
--enable-gpm \
--disable-java-bindings \
--disable-caml-bindings \
PYTHON=/usr/bin/python2
-# patch -Np1 -i ${srcdir}/brltty-4.2-S_ISCHR.patch
make
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make INSTALL_ROOT="${pkgdir}" install
- install -D -m755 ${srcdir}/brltty ${pkgdir}/etc/rc.d/brltty
- install -D -m644 ${srcdir}/brltty.conf ${pkgdir}/etc/conf.d/brltty.conf
- install -D -m644 Documents/brltty.conf ${pkgdir}/etc/brltty.conf
+ cd "$srcdir/$pkgname-$pkgver"
+ make INSTALL_ROOT="$pkgdir" install
+ install -D -m755 "$srcdir/brltty" "$pkgdir/etc/rc.d/brltty"
+ install -D -m644 "$srcdir/brltty.conf" "$pkgdir/etc/conf.d/brltty.conf"
+ install -D -m644 Documents/brltty.conf "$pkgdir/etc/brltty.conf"
}
diff --git a/extra/brltty/brltty.install b/extra/brltty/brltty.install
new file mode 100644
index 000000000..952ae58ff
--- /dev/null
+++ b/extra/brltty/brltty.install
@@ -0,0 +1,20 @@
+post_install () {
+ getent group brlapi &>/dev/null || groupadd -r brlapi
+ if [ ! -e /etc/brlapi.key ]; then
+ mcookie >/etc/brlapi.key
+ chmod 0640 /etc/brlapi.key
+ chgrp brlapi /etc/brlapi.key
+ echo "Please add your user to the brlapi group."
+ fi
+}
+
+post_upgrade () {
+ post_install
+}
+
+post_remove () {
+ getent group brlapi >/dev/null 2>&1 && groupdel brlapi
+ if [ -e /etc/brlapi.key ]; then
+ rm -f /etc/brlapi.key
+ fi
+}
diff --git a/extra/dovecot/PKGBUILD b/extra/dovecot/PKGBUILD
index 1c4d2107e..c71137bf8 100644
--- a/extra/dovecot/PKGBUILD
+++ b/extra/dovecot/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 146277 2012-01-07 21:39:13Z andyrtr $
+# $Id: PKGBUILD 150139 2012-02-13 12:13:16Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Paul Mattal <paul@mattal.com>
# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com>
# Contributor: GARETTE Emmanuel <gnunux at laposte dot net>
pkgname=dovecot
-pkgver=2.0.17
+pkgver=2.0.18
pkgrel=1
pkgdesc="An IMAP and POP3 server written with security primarily in mind"
arch=('i686' 'x86_64')
@@ -24,8 +24,9 @@ backup=(etc/dovecot/dovecot.conf
etc/dovecot/conf.d/auth-{checkpassword,deny,ldap,master,passwdfile,sql,static,system,vpopmail}.conf.ext
etc/ssl/dovecot-openssl.cnf)
install=$pkgname.install
-source=(http://dovecot.org/releases/2.0/${pkgname}-${pkgver}.tar.gz dovecot.sh)
-md5sums=('41c10dffa56e228b9176833db2efaac5'
+source=(http://dovecot.org/releases/2.0/${pkgname}-${pkgver}.tar.gz{,.sig} dovecot.sh)
+md5sums=('4fdee96b390a287d75b51ffcf6abe30f'
+ 'c317125fd613a6ed207fbaf7d7543163'
'587159e84e2da6f83d70b3c706ba87cc')
build() {
diff --git a/extra/garcon/PKGBUILD b/extra/garcon/PKGBUILD
index 636d7eda8..564fe802f 100644
--- a/extra/garcon/PKGBUILD
+++ b/extra/garcon/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 143709 2011-11-28 15:22:07Z foutrelis $
+# $Id: PKGBUILD 150129 2012-02-13 08:08:25Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Xavier Devlamynck <magicrhesus@ouranos.be>
pkgname=garcon
-pkgver=0.1.9
+pkgver=0.1.10
pkgrel=1
pkgdesc="Implementation of the freedesktop.org menu specification"
arch=('i686' 'x86_64')
@@ -15,7 +15,7 @@ makedepends=('pkgconfig' 'intltool' 'xfce4-dev-tools')
replaces=('libxfce4menu')
options=('!libtool' '!makeflags')
source=(http://archive.xfce.org/src/xfce/garcon/0.1/garcon-$pkgver.tar.bz2)
-sha256sums=('485e23c8ec1af0d3af423aa244e05467dd2f96afbb66efc70ca7689222cf31d5')
+sha256sums=('c2497a2991101fc1e621dc712ef72aba7c238f6e5f5a1733c9572f9b23761316')
build() {
cd "$srcdir/garcon-$pkgver"
diff --git a/extra/maxima/PKGBUILD b/extra/maxima/PKGBUILD
index af30b54f4..85d561ddc 100644
--- a/extra/maxima/PKGBUILD
+++ b/extra/maxima/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 144879 2011-12-08 21:06:55Z juergen $
+# $Id: PKGBUILD 150146 2012-02-13 14:36:40Z ronald $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Contributor: Damir Perisa <damir@archlinux.org>
pkgname=maxima
-pkgver=5.25.1
-pkgrel=3
+pkgver=5.26.0
+pkgrel=1
pkgdesc="Maxima - a sophisticated computer algebra system"
arch=('i686' 'x86_64')
license=('GPL')
@@ -17,7 +17,7 @@ optdepends=('gnuplot: plotting capabilities' 'rlwrap: readline support via /usr/
options=('!makeflags' '!zipman') # don't zip info pages or they won't work inside maxima
install=maxima.install
source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz" "$pkgname.desktop")
-sha1sums=('9c9ea66434c9ca96549092c3640c3ba5a4fba44b'
+sha1sums=('bc7448486478b217c333605c6d8f6c0bbdd3526c'
'4398ebb1ec85ccfa12f37516a56d60c26f74b18b')
build() {
diff --git a/extra/octave/PKGBUILD b/extra/octave/PKGBUILD
index 753aa49a4..d8d9648cf 100644
--- a/extra/octave/PKGBUILD
+++ b/extra/octave/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 149964 2012-02-11 23:31:17Z allan $
+# $Id: PKGBUILD 150143 2012-02-13 14:12:46Z ronald $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Contributor : shining <shiningxc.at.gmail.com>
# Contributor : cyberdune <cyberdune@gmail.com>
pkgname=octave
-pkgver=3.4.3
-pkgrel=2
+pkgver=3.6.0
+pkgrel=1
pkgdesc="A high-level language, primarily intended for numerical computations."
arch=('i686' 'x86_64')
url="http://www.octave.org"
@@ -19,7 +19,7 @@ optdepends=('texinfo: for help-support in octave'
source=("ftp://ftp.gnu.org/gnu/octave/octave-$pkgver.tar.bz2")
options=('!emptydirs')
install=octave.install
-sha1sums=('fe622c28a38f8730c59e46211bc7b18e7f51a679')
+sha1sums=('62116e090d257a601e9d605f969dd87b7de1ffce')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
diff --git a/extra/qscintilla/PKGBUILD b/extra/qscintilla/PKGBUILD
index c7c37e755..dbdc5aa25 100644
--- a/extra/qscintilla/PKGBUILD
+++ b/extra/qscintilla/PKGBUILD
@@ -1,22 +1,21 @@
-# $Id: PKGBUILD 145611 2011-12-23 20:54:15Z andrea $
+# $Id: PKGBUILD 150137 2012-02-13 11:40:55Z eric $
# Maintainer:
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
pkgbase=qscintilla
pkgname=('qscintilla' 'python-qscintilla' 'python2-qscintilla')
-pkgver=2.6
-pkgrel=2
+pkgver=2.6.1
+pkgrel=1
license=('GPL')
arch=('i686' 'x86_64')
url="http://www.riverbankcomputing.co.uk/software/qscintilla/intro"
makedepends=('python2-pyqt' 'chrpath')
source=("http://riverbankcomputing.com/static/Downloads/QScintilla2/QScintilla-gpl-${pkgver}.tar.gz"
'configure.py-objdir-support.diff')
-md5sums=('0605a8006ea752ec2d1d7fc4791d1c75'
+md5sums=('39a1d0567a20b416177eb1a8afe225a7'
'8cf9c06252e2f11ab00e62848e322fd3')
-
build() {
cd "${srcdir}/QScintilla-gpl-${pkgver}"
patch -Np1 -i "${srcdir}/configure.py-objdir-support.diff"
diff --git a/extra/xfce4-mpc-plugin/PKGBUILD b/extra/xfce4-mpc-plugin/PKGBUILD
index 65307a384..ef3c4088b 100644
--- a/extra/xfce4-mpc-plugin/PKGBUILD
+++ b/extra/xfce4-mpc-plugin/PKGBUILD
@@ -1,24 +1,24 @@
-# $Id: PKGBUILD 149252 2012-02-06 16:30:37Z foutrelis $
+# $Id: PKGBUILD 150133 2012-02-13 10:09:13Z eric $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: aurelien <aurelien@archlinux.org>
# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
pkgname=xfce4-mpc-plugin
-pkgver=0.3.6
-pkgrel=2
-pkgdesc="plugin to control the music player daemon from the xfce4-panel"
-arch=(i686 x86_64)
-license=('GPL2')
+pkgver=0.4.0
+pkgrel=1
+pkgdesc="A plugin to control the music player daemon from the xfce4-panel"
+arch=('i686' 'x86_64')
+license=('BSD')
url="http://goodies.xfce.org/projects/panel-plugins/xfce4-mpc-plugin"
groups=('xfce4-goodies')
-depends=('xfce4-panel' 'libxfcegui4' 'libmpd>=0.16.1')
+depends=('xfce4-panel' 'libmpd>=0.16.1')
makedepends=('intltool')
-options=(!libtool)
-source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/0.3/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('a6366662885d803dcebd82bbb91ed3c7')
+options=('!libtool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ae9b285e24385e27cfd797ab605a1b7f')
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd "${srcdir}/${pkgname}-${pkgver}"
./configure --prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/lib \
@@ -29,6 +29,7 @@ build() {
}
package(){
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
diff --git a/extra/xfce4-session/PKGBUILD b/extra/xfce4-session/PKGBUILD
index 1d17cce0c..14a18a066 100644
--- a/extra/xfce4-session/PKGBUILD
+++ b/extra/xfce4-session/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 141722 2011-11-02 15:10:56Z foutrelis $
+# $Id: PKGBUILD 150131 2012-02-13 08:12:40Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: tobias <tobias funnychar archlinux.org>
pkgname=xfce4-session
-pkgver=4.8.2
-pkgrel=2
+pkgver=4.8.3
+pkgrel=1
pkgdesc="A session manager for Xfce"
arch=('i686' 'x86_64')
url="http://www.xfce.org/"
@@ -20,7 +20,7 @@ replaces=('xfce4-toys')
options=('!libtool')
install=$pkgname.install
source=(http://archive.xfce.org/src/xfce/$pkgname/4.8/$pkgname-$pkgver.tar.bz2)
-sha256sums=('31bca2a559e05a8a859f150394a901517e5842414ef171a85c5da234e344c0d0')
+sha256sums=('f0801b8c0ffa7e5d41b29b8df281ac127adf467bf50e8ded8aebe5a02bd99338')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/multilib-testing/lib32-libxcb/PKGBUILD b/multilib-testing/lib32-libxcb/PKGBUILD
new file mode 100644
index 000000000..141b91b96
--- /dev/null
+++ b/multilib-testing/lib32-libxcb/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 64458 2012-02-14 00:06:32Z bluewind $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+_pkgbasename=libxcb
+pkgname=lib32-$_pkgbasename
+pkgver=1.8
+pkgrel=1
+pkgdesc="X11 client-side library (32-bit)"
+arch=(x86_64)
+url="http://xcb.freedesktop.org/"
+depends=('xcb-proto>=1.7' 'lib32-libxdmcp' 'lib32-libxau'
+ $_pkgbasename)
+makedepends=('pkgconfig' 'libxslt' 'python2' 'gcc-multilib'
+ 'autoconf')
+options=('!libtool')
+license=('custom')
+source=(${url}/dist/${_pkgbasename}-${pkgver}.tar.bz2
+ libxcb-1.1-no-pthread-stubs.patch)
+sha1sums=('18b76759d5bbb863777f37bf3aec23ebaa31d5be'
+ '3455e84642283bc91c8313af319002a20bbcbdf4')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libxcb-1.1-no-pthread-stubs.patch"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ PYTHON=/usr/bin/python2 ./autogen.sh --prefix=/usr --enable-xinput --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib-testing/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch b/multilib-testing/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch
new file mode 100644
index 000000000..f17de1b1d
--- /dev/null
+++ b/multilib-testing/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch
@@ -0,0 +1,12 @@
+diff -up libxcb-1.1/configure.ac.pthread-stubs libxcb-1.1/configure.ac
+--- libxcb-1.1/configure.ac.pthread-stubs 2007-11-04 18:17:11.000000000 -0500
++++ libxcb-1.1/configure.ac 2007-11-12 10:27:06.000000000 -0500
+@@ -31,7 +31,7 @@ AC_SUBST(HTML_CHECK_RESULT)
+
+ # Checks for pkg-config packages
+ PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.6)
+-NEEDED="pthread-stubs xau >= 0.99.2"
++NEEDED="xau >= 0.99.2"
+ PKG_CHECK_MODULES(NEEDED, $NEEDED)
+
+ have_xdmcp="no"
diff --git a/staging/libnova/PKGBUILD b/staging/libnova/PKGBUILD
new file mode 100644
index 000000000..27c98df9d
--- /dev/null
+++ b/staging/libnova/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 150152 2012-02-13 15:39:56Z ronald $
+# Maintainer: Ronald van Haren <ronald@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libnova
+pkgver=0.14.0
+pkgrel=1
+pkgdesc="A general purpose, double precision, celestial mechanics, astrometry and astrodynamics library."
+url="http://libnova.sourceforge.net/"
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('glibc')
+makedepends=('pkgconfig')
+source=(http://downloads.sourceforge.net/sourceforge/libnova/$pkgname-$pkgver.tar.gz)
+options=(!libtool)
+sha1sums=('4ea7034a907d0578646b0d12fc4a095de8b23f51')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/staging/sip/PKGBUILD b/staging/sip/PKGBUILD
new file mode 100644
index 000000000..e29f99793
--- /dev/null
+++ b/staging/sip/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 150156 2012-02-13 17:15:18Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: riai <riai@bigfoot.com>, Ben <ben@benmazer.net>
+
+pkgbase=sip
+pkgname=('sip' 'python2-sip')
+pkgver=4.13.2
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://www.riverbankcomputing.com/software/sip/"
+license=('custom:"sip"')
+makedepends=('python' 'python2')
+source=("http://www.riverbankcomputing.com/static/Downloads/sip4/${pkgbase}-${pkgver}.tar.gz")
+md5sums=('5a12ea8e8a09b879ed2b3817e30fbc84')
+
+build() {
+ cd "${srcdir}"
+ cp -r ${pkgbase}-${pkgver} python2-${pkgbase}-${pkgver}
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ python configure.py CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}"
+ make
+
+ ### Python2 version ###
+ cd "${srcdir}/python2-${pkgbase}-${pkgver}"
+ python2 configure.py CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}"
+ make
+}
+
+package_sip() {
+ pkgdesc="A tool that makes it easy to create Python bindings for C and C++ libraries"
+ depends=('python')
+ replaces=('python-sip')
+ provides=('python-sip')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+package_python2-sip() {
+ pkgdesc="A tool that makes it easy to create Python2 bindings for C and C++ libraries"
+ depends=('sip' 'python2')
+
+ cd "${srcdir}/python2-${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ # Provided by sip
+ rm "${pkgdir}/usr/bin/sip"
+}
diff --git a/testing/kmod/0001-libkmod-module-probe-fix-infinite-loop-with-softdeps.patch b/testing/kmod/0001-libkmod-module-probe-fix-infinite-loop-with-softdeps.patch
new file mode 100644
index 000000000..95e7f859a
--- /dev/null
+++ b/testing/kmod/0001-libkmod-module-probe-fix-infinite-loop-with-softdeps.patch
@@ -0,0 +1,39 @@
+From 8cd0f9e4f9f5c093136a7a2c0c2998b9dd203161 Mon Sep 17 00:00:00 2001
+From: Lucas De Marchi <lucas.demarchi@profusion.mobi>
+Date: Sat, 11 Feb 2012 19:45:29 -0200
+Subject: [PATCH] libkmod-module: probe: fix infinite loop with softdeps
+
+If a softdep depends on a module in the dependency list of the module
+being inserted, we would enter and infinite loop.
+
+Move the "mod->visited = true" assignment to the proper place, hoping it
+didn't break other use cases. This is a bug that comes and goes every
+now and then. Since we have a testsuite now, a test for this should be
+written.
+---
+ libkmod/libkmod-module.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
+index b5eb7c9..835896f 100644
+--- a/libkmod/libkmod-module.c
++++ b/libkmod/libkmod-module.c
+@@ -1013,7 +1013,6 @@ static int __kmod_module_fill_softdep(struct kmod_module *mod,
+ goto fail;
+ }
+ *list = l;
+- mod->visited = true;
+ mod->ignorecmd = (pre != NULL || post != NULL);
+
+ kmod_list_foreach(l, post) {
+@@ -1043,6 +1042,7 @@ static int __kmod_module_get_probe_list(struct kmod_module *mod,
+ mod->name);
+ return 0;
+ }
++ mod->visited = true;
+
+ dep = kmod_module_get_dependencies(mod);
+ kmod_list_foreach(l, dep) {
+--
+1.7.9
+
diff --git a/testing/kmod/PKGBUILD b/testing/kmod/PKGBUILD
index 678db471d..64017dd1a 100644
--- a/testing/kmod/PKGBUILD
+++ b/testing/kmod/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 149778 2012-02-10 19:09:35Z dreisner $
+# $Id: PKGBUILD 150158 2012-02-13 18:05:27Z dreisner $
# Maintainer: Dave Reisner <dreisner@archlinux.org>
pkgname=kmod
pkgver=5
-pkgrel=2
+pkgrel=3
pkgdesc="Linux kernel module handling"
arch=('i686' 'x86_64')
url="http://git.profusion.mobi/cgit.cgi/kmod.git"
@@ -15,9 +15,11 @@ conflicts=('module-init-tools')
replaces=('module-init-tools')
source=("http://packages.profusion.mobi/$pkgname/$pkgname-$pkgver.tar.xz"
'0001-libkmod-module-probe-Fix-ignore-loaded-flag-not-bein.patch'
+ '0001-libkmod-module-probe-fix-infinite-loop-with-softdeps.patch'
"depmod-search.conf")
md5sums=('b271c2ec54aba1c67bda63c8579d8c15'
'81545a1509b43008f85c03fb980f0e86'
+ '662a85dbe420f04c1ef24f9cd4e4c990'
'4b8cbcbc54b9029c99fd730e257d4436')
build() {
@@ -26,7 +28,10 @@ build() {
# fix modprobe --show-depends failures on loaded modules
patch -Np1 <"$srcdir/0001-libkmod-module-probe-Fix-ignore-loaded-flag-not-bein.patch"
- CFLAGS+=' -g -O0' ./configure \
+ # fix infinite loop with softdeps
+ patch -Np1 <"$srcdir/0001-libkmod-module-probe-fix-infinite-loop-with-softdeps.patch"
+
+ ./configure \
--sysconfdir=/etc \
--with-rootprefix= \
--with-zlib
diff --git a/testing/shadow/LICENSE b/testing/shadow/LICENSE
new file mode 100644
index 000000000..c5ab15a56
--- /dev/null
+++ b/testing/shadow/LICENSE
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 1990 - 1994, Julianne Frances Haugh
+ * Copyright (c) 1996 - 2000, Marek Michałkiewicz
+ * Copyright (c) 2001 - 2006, Tomasz KÅ‚oczko
+ * Copyright (c) 2007 - 2009, Nicolas François
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the copyright holders or contributors may not be used to
+ * endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
diff --git a/testing/shadow/PKGBUILD b/testing/shadow/PKGBUILD
new file mode 100644
index 000000000..7409f0f9f
--- /dev/null
+++ b/testing/shadow/PKGBUILD
@@ -0,0 +1,116 @@
+# $Id: PKGBUILD 150166 2012-02-14 01:55:53Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=shadow
+pkgver=4.1.5
+pkgrel=2
+pkgdesc="Password and account management tool suite with support for shadow files and PAM"
+arch=('i686' 'x86_64')
+url='http://pkg-shadow.alioth.debian.org/'
+license=('BSD')
+groups=('base')
+depends=('bash' 'pam' 'acl')
+backup=(etc/login.defs
+ etc/pam.d/{chage,login,passwd,shadow,useradd,usermod,userdel}
+ etc/pam.d/{chpasswd,newusers,groupadd,groupdel,groupmod}
+ etc/pam.d/{chfn,chgpasswd,groupmems,chsh}
+ etc/default/useradd)
+options=('!libtool')
+install='shadow.install'
+source=("http://pkg-shadow.alioth.debian.org/releases/$pkgname-$pkgver.tar.bz2"{,.sig}
+ LICENSE
+ adduser
+ chgpasswd
+ chpasswd
+ defaults.pam
+ login
+ login.defs
+ newusers
+ passwd
+ shadow.cron.daily
+ useradd.defaults
+ xstrdup.patch
+ shadow-strncpy-usage.patch
+ shadow-add-missing-include.patch)
+sha1sums=('3ab1ae0e30af36d04445314fcb5a079bdf05de41'
+ '0a31aafceb948a91fe7370a6378cafd6fd883145'
+ '33a6cf1e44a1410e5c9726c89e5de68b78f5f922'
+ '78ec184a499f9708adcfcf0b7a3b22a60bf39f91'
+ '4ad0e059406a305c8640ed30d93c2a1f62c2f4ad'
+ '12427b1ca92a9b85ca8202239f0d9f50198b818f'
+ '0e56fed7fc93572c6bf0d8f3b099166558bb46f1'
+ '895aad07c192b288b457e19dd7b8c55841b4ad22'
+ 'e5cab2118ecb1e61874cde842d7d04d1003f35cb'
+ '12427b1ca92a9b85ca8202239f0d9f50198b818f'
+ '611be25d91c3f8f307c7fe2485d5f781e5dee75f'
+ '5d83ba7e11c765c951867cbe00b0ae7ff57148fa'
+ '9ae93de5987dd0ae428f0cc1a5a5a5cd53583f19'
+ '6010fffeed1fc6673ad9875492e1193b1a847b53'
+ '21e12966a6befb25ec123b403cd9b5c492fe5b16'
+ '0697a21f7519de30821da7772677035652df4ad2')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ # avoid transitive linking issues with binutils 2.22
+ sed -i '/^user\(mod\|add\)_LDADD/s|$| -lattr|' src/Makefile.am
+
+ # link to glibc's crypt(3)
+ LDFLAGS+=" -lcrypt"
+
+ patch -Np1 <"$srcdir/xstrdup.patch"
+ patch -Np1 <"$srcdir/shadow-strncpy-usage.patch"
+ patch -Np1 <"$srcdir/shadow-add-missing-include.patch"
+
+ # supress etc/pam.d/*, we provide our own
+ sed -i '/^SUBDIRS/s/pam.d//' etc/Makefile.in
+
+ ./configure \
+ --prefix=/usr \
+ --libdir=/lib \
+ --mandir=/usr/share/man \
+ --sysconfdir=/etc \
+ --with-libpam \
+ --without-selinux
+
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ # license
+ install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/shadow/LICENSE"
+
+ # interactive useradd
+ install -Dm755 "$srcdir/adduser" "$pkgdir/usr/sbin/adduser"
+
+ # useradd defaults
+ install -Dm644 "$srcdir/useradd.defaults" "$pkgdir/etc/default/useradd"
+
+ # cron job
+ install -Dm744 "$srcdir/shadow.cron.daily" "$pkgdir/etc/cron.daily/shadow"
+
+ # login.defs
+ install -Dm644 "$srcdir/login.defs" "$pkgdir/etc/login.defs"
+
+ # PAM config - custom
+ install -dm755 "$pkgdir/etc/pam.d"
+ install -t "$pkgdir/etc/pam.d" -m644 "$srcdir"/{login,passwd,chgpasswd,chpasswd,newusers}
+
+ # PAM config - from tarball
+ install -Dm644 etc/pam.d/groupmems "$pkgdir/etc/pam.d/groupmems"
+
+ # we use the 'useradd' PAM file for other similar utilities
+ for file in chage chfn chsh groupadd groupdel groupmod shadow \
+ useradd usermod userdel; do
+ install -Dm644 "$srcdir/defaults.pam" "$pkgdir/etc/pam.d/$file"
+ done
+
+ # Remove su - using su from coreutils instead
+ rm "$pkgdir/bin/su"
+ find "$pkgdir/usr/share/man" -name 'su.1' -delete
+}
diff --git a/testing/shadow/adduser b/testing/shadow/adduser
new file mode 100644
index 000000000..a5d7fd4fa
--- /dev/null
+++ b/testing/shadow/adduser
@@ -0,0 +1,399 @@
+#!/bin/bash
+#
+# Copyright 1995 Hrvoje Dogan, Croatia.
+# Copyright 2002, 2003, 2004 Stuart Winter, West Midlands, England, UK.
+# Copyright 2004 Slackware Linux, Inc., Concord, CA, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#
+##########################################################################
+# Program: /usr/sbin/adduser
+# Purpose: Interactive front end to /usr/sbin/useradd for Slackware Linux
+# Author : Stuart Winter <stuart@polplex.co.uk>
+# Based on the original Slackware adduser by Hrvoje Dogan
+# with modifications by Patrick Volkerding
+# Version: 1.09
+##########################################################################
+# Usage..: adduser [<new_user_name>]
+##########################################################################
+# History #
+###########
+# v1.09 - 07/06/04
+# * Added standard Slackware script licence to the head of this file.
+# v1.08 - 25/04/04
+# * Disallow user names that begin with a numeric because useradd
+# (from shadow v4.03) does not allow them. <sw>
+# v1.07 - 07/03/03
+# * When supplying a null string for the uid (meaning 'Choose next available'),
+# if there were file names in the range 'a-z' in the pwd then the
+# egrep command considered these files rather than the null string.
+# The egrep expression is now in quotes.
+# Reported & fixed by Vadim O. Ustiansky <sw>
+# v1.06 - 31/03/03
+# * Ask to chown user.group the home directory if it already exists.
+# This helps reduce later confusion when adding users whose home dir
+# already exists (mounted partition for example) and is owned
+# by a user other than the user to which the directory is being
+# assigned as home. Default is not to chown.
+# Brought to my attention by mRgOBLIN. <sw>
+# v1.05 - 04/01/03
+# * Advise & prevent users from creating logins with '.' characters
+# in the user name. <sw>
+# * Made pending account creation info look neater <sw>
+# v1.04 - 09/06/02
+# * Catered for shadow-4.0.3's 'useradd' binary that no longer
+# will let you create a user that has any uppercase chars in it
+# This was reported on the userlocal.org forums
+# by 'xcp' - thanks. <sw,pjv>
+# v1.03 - 20/05/02
+# * Support 'broken' (null lines in) /etc/passwd and
+# /etc/group files <sw>
+# * For recycling UIDs (default still 'off'), we now look in
+# /etc/login.defs for the UID_MIN value and use it
+# If not found then default to 1000 <sw>
+# v1.02 - 10/04/02
+# * Fix user-specified UID bug. <pjv>
+# v1.01 - 23/03/02
+# * Match Slackware indenting style, simplify. <pjv>
+# v1.00 - 22/03/02
+# * Created
+#######################################################################
+
+# Path to files
+pfile=/etc/passwd
+gfile=/etc/group
+sfile=/etc/shells
+
+# Paths to binaries
+useradd=/usr/sbin/useradd
+chfn=/usr/bin/chfn
+passwd=/usr/bin/passwd
+
+# Defaults
+defhome=/home
+defshell=/bin/bash
+defgroup=users
+
+# Determine what the minimum UID is (for UID recycling)
+# (we ignore it if it's not at the beginning of the line (i.e. commented out with #))
+export recycleUIDMIN="$(grep ^UID_MIN /etc/login.defs | awk '{print $2}' 2>/dev/null)"
+# If we couldn't find it, set it to the default of 1000
+if [ -z "$recycleUIDMIN" ]; then
+ export recycleUIDMIN=1000 # this is the default from Slackware's /etc/login.defs
+fi
+
+
+# This setting enables the 'recycling' of older unused UIDs.
+# When you userdel a user, it removes it from passwd and shadow but it will
+# never get used again unless you specify it expliticly -- useradd (appears to) just
+# look at the last line in passwd and increment the uid. I like the idea of
+# recycling uids but you may have very good reasons not to (old forgotten
+# confidential files still on the system could then be owned by this new user).
+# We'll set this to no because this is what the original adduser shell script
+# did and it's what users expect.
+recycleuids=no
+
+# Function to read keyboard input.
+# bash1 is broken (even ash will take read -ep!), so we work around
+# it (even though bash1 is no longer supported on Slackware).
+function get_input() {
+ local output
+ if [ "`echo $BASH_VERSION | cut -b1`" = "1" ]; then
+ echo -n "${1} " >&2 # fudge for use with bash v1
+ read output
+ else # this should work with any other /bin/sh
+ read -ep "${1} " output
+ fi
+ echo $output
+}
+
+# Function to display the account info
+function display () {
+ local goose
+ goose="$(echo $2 | cut -d ' ' -f 2-)" # lop off the prefixed argument useradd needs
+ echo -n "$1 "
+ # If it's null then display the 'other' information
+ if [ -z "$goose" -a ! -z "$3" ]; then
+ echo "$3"
+ else
+ echo "$goose"
+ fi
+}
+
+# Function to check whether groups exist in the /etc/group file
+function check_group () {
+ local got_error group
+ if [ ! -z "$@" ]; then
+ for group in $@ ; do
+ local uid_not_named="" uid_not_num=""
+ grep -v "$^" $gfile | awk -F: '{print $1}' | grep "^${group}$" >/dev/null 2>&1 || uid_not_named=yes
+ grep -v "$^" $gfile | awk -F: '{print $3}' | grep "^${group}$" >/dev/null 2>&1 || uid_not_num=yes
+ if [ ! -z "$uid_not_named" -a ! -z "$uid_not_num" ]; then
+ echo "- Group '$group' does not exist"
+ got_error=yes
+ fi
+ done
+ fi
+ # Return exit code of 1 if at least one of the groups didn't exist
+ if [ ! -z "$got_error" ]; then
+ return 1
+ fi
+}
+
+#: Read the login name for the new user :#
+#
+# Remember that most Mail Transfer Agents are case independant, so having
+# 'uSer' and 'user' may cause confusion/things to break. Because of this,
+# useradd from shadow-4.0.3 no longer accepts usernames containing uppercase,
+# and we must reject them, too.
+
+# Set the login variable to the command line param
+echo
+LOGIN="$1"
+needinput=yes
+while [ ! -z $needinput ]; do
+ if [ -z "$LOGIN" ]; then
+ while [ -z "$LOGIN" ]; do LOGIN="$(get_input "Login name for new user []:")" ; done
+ fi
+ grep "^${LOGIN}:" $pfile >/dev/null 2>&1 # ensure it's not already used
+ if [ $? -eq 0 ]; then
+ echo "- User '$LOGIN' already exists; please choose another"
+ unset LOGIN
+ elif [ ! -z "$( echo $LOGIN | grep "^[0-9]" )" ]; then
+ echo "- User names cannot begin with a number; please choose another"
+ unset LOGIN
+ elif [ ! "$LOGIN" = "`echo $LOGIN | tr A-Z a-z`" ]; then # useradd does not allow uppercase
+ echo "- User '$LOGIN' contains illegal characters (uppercase); please choose another"
+ unset LOGIN
+ elif [ ! -z "$( echo $LOGIN | grep '\.' )" ]; then
+ echo "- User '$LOGIN' contains illegal characters (period/dot); please choose another"
+ unset LOGIN
+ else
+ unset needinput
+ fi
+done
+
+# Display the user name passed from the shell if it hasn't changed
+if [ "$1" = "$LOGIN" ]; then
+ echo "Login name for new user: $LOGIN"
+fi
+
+#: Get the UID for the user & ensure it's not already in use :#
+#
+# Whilst we _can_ allow users with identical UIDs, it's not a 'good thing' because
+# when you change password for the uid, it finds the first match in /etc/passwd
+# which isn't necessarily the correct user
+#
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ _UID="$(get_input "User ID ('UID') [ defaults to next available ]:")"
+ grep -v "^$" $pfile | awk -F: '{print $3}' | grep "^${_UID}$" >/dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ echo "- That UID is already in use; please choose another"
+ elif [ ! -z "$(echo $_UID | egrep '[A-Za-z]')" ]; then
+ echo "- UIDs are numerics only"
+ else
+ unset needinput
+ fi
+done
+# If we were given a UID, then syntax up the variable to pass to useradd
+if [ ! -z "$_UID" ]; then
+ U_ID="-u ${_UID}"
+else
+ # Will we be recycling UIDs?
+ if [ "$recycleuids" = "yes" ]; then
+ U_ID="-u $(awk -F: '{uid[$3]=1} END { for (i=ENVIRON["recycleUIDMIN"];i in uid;i++);print i}' $pfile)"
+ fi
+fi
+
+#: Get the initial group for the user & ensure it exists :#
+#
+# We check /etc/group for both the text version and the group ID number
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ GID="$(get_input "Initial group [ ${defgroup} ]:")"
+ check_group "$GID"
+ if [ $? -gt 0 ]; then
+ echo "- Please choose another"
+ else
+ unset needinput
+ fi
+done
+# Syntax the variable ready for useradd
+if [ -z "$GID" ]; then
+ GID="-g ${defgroup}"
+else
+ GID="-g ${GID}"
+fi
+
+#: Get additional groups for the user :#
+#
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ AGID="$(get_input "Additional groups (comma separated) []:")"
+ AGID="$(echo "$AGID" | tr -d ' ' | tr , ' ')" # fix up for parsing
+ if [ ! -z "$AGID" ]; then
+ check_group "$AGID" # check all groups at once (treated as N # of params)
+ if [ $? -gt 0 ]; then
+ echo "- Please re-enter the group(s)"
+ else
+ unset needinput # we found all groups specified
+ AGID="-G $(echo "$AGID" | tr ' ' ,)"
+ fi
+ else
+ unset needinput # we don't *have* to have additional groups
+ fi
+done
+
+#: Get the new user's home dir :#
+#
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ HME="$(get_input "Home directory [ ${defhome}/${LOGIN} ]")"
+ if [ -z "$HME" ]; then
+ HME="${defhome}/${LOGIN}"
+ fi
+ # Warn the user if the home dir already exists
+ if [ -d "$HME" ]; then
+ echo "- Warning: '$HME' already exists !"
+ getyn="$(get_input " Do you wish to change the home directory path ? (Y/n) ")"
+ if [ "$(echo $getyn | grep -i "n")" ]; then
+ unset needinput
+ # You're most likely going to only do this if you have the dir *mounted* for this user's $HOME
+ getyn="$(get_input " Do you want to chown $LOGIN.$( echo $GID | awk '{print $2}') $HME ? (y/N) ")"
+ if [ "$(echo $getyn | grep -i "y")" ]; then
+ CHOWNHOMEDIR=$HME # set this to the home directory
+ fi
+ fi
+ else
+ unset needinput
+ fi
+done
+HME="-d ${HME}"
+
+#: Get the new user's shell :#
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ unset got_error
+ SHL="$(get_input "Shell [ ${defshell} ]")"
+ if [ -z "$SHL" ]; then
+ SHL="${defshell}"
+ fi
+ # Warn the user if the shell doesn't exist in /etc/shells or as a file
+ if [ -z "$(grep "^${SHL}$" $sfile)" ]; then
+ echo "- Warning: ${SHL} is not in ${sfile} (potential problem using FTP)"
+ got_error=yes
+ fi
+ if [ ! -f "$SHL" ]; then
+ echo "- Warning: ${SHL} does not exist as a file"
+ got_error=yes
+ fi
+ if [ ! -z "$got_error" ]; then
+ getyn="$(get_input " Do you wish to change the shell ? (Y/n) ")"
+ if [ "$(echo $getyn | grep -i "n")" ]; then
+ unset needinput
+ fi
+ else
+ unset needinput
+ fi
+done
+SHL="-s ${SHL}"
+
+#: Get the expiry date :#
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ EXP="$(get_input "Expiry date (YYYY-MM-DD) []:")"
+ if [ ! -z "$EXP" ]; then
+ # Check to see whether the expiry date is in the valid format
+ if [ -z "$(echo "$EXP" | grep "^[[:digit:]]\{4\}[-]\?[[:digit:]]\{2\}[-]\?[[:digit:]]\{2\}$")" ]; then
+ echo "- That is not a valid expiration date"
+ else
+ unset needinput
+ EXP="-e ${EXP}"
+ fi
+ else
+ unset needinput
+ fi
+done
+
+# Display the info about the new impending account
+echo
+echo "New account will be created as follows:"
+echo
+echo "---------------------------------------"
+display "Login name.......: " "$LOGIN"
+display "UID..............: " "$_UID" "[ Next available ]"
+display "Initial group....: " "$GID"
+display "Additional groups: " "$AGID" "[ None ]"
+display "Home directory...: " "$HME"
+display "Shell............: " "$SHL"
+display "Expiry date......: " "$EXP" "[ Never ]"
+echo
+
+echo "This is it... if you want to bail out, hit Control-C. Otherwise, press"
+echo "ENTER to go ahead and make the account."
+read junk
+
+echo
+echo "Creating new account..."
+echo
+echo
+
+# Add the account to the system
+CMD="$useradd "$HME" -m "$EXP" "$U_ID" "$GID" "$AGID" "$SHL" "$LOGIN""
+$CMD
+
+if [ $? -gt 0 ]; then
+ echo "- Error running useradd command -- account not created!"
+ echo "(cmd: $CMD)"
+ exit 1
+fi
+
+# chown the home dir ? We can only do this once the useradd has
+# completed otherwise the user name doesn't exist.
+if [ ! -z "${CHOWNHOMEDIR}" ]; then
+ chown "$LOGIN"."$( echo $GID | awk '{print $2}')" "${CHOWNHOMEDIR}"
+fi
+
+# Set the finger information
+$chfn "$LOGIN"
+if [ $? -gt 0 ]; then
+ echo "- Warning: an error occurred while setting finger information"
+fi
+
+# Set a password
+$passwd "$LOGIN"
+if [ $? -gt 0 ]; then
+ echo "* WARNING: An error occured while setting the password for"
+ echo " this account. Please manually investigate this *"
+ exit 1
+fi
+
+echo
+echo
+echo "Account setup complete."
+exit 0
+
diff --git a/testing/shadow/chgpasswd b/testing/shadow/chgpasswd
new file mode 100644
index 000000000..8f49f5cc8
--- /dev/null
+++ b/testing/shadow/chgpasswd
@@ -0,0 +1,4 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+account required pam_permit.so
+password include system-auth
diff --git a/testing/shadow/chpasswd b/testing/shadow/chpasswd
new file mode 100644
index 000000000..5d447985a
--- /dev/null
+++ b/testing/shadow/chpasswd
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+password required pam_unix.so sha512 shadow
diff --git a/testing/shadow/defaults.pam b/testing/shadow/defaults.pam
new file mode 100644
index 000000000..a7bf8a4a5
--- /dev/null
+++ b/testing/shadow/defaults.pam
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+password required pam_permit.so
diff --git a/testing/shadow/login b/testing/shadow/login
new file mode 100644
index 000000000..b8555f89c
--- /dev/null
+++ b/testing/shadow/login
@@ -0,0 +1,21 @@
+#%PAM-1.0
+auth required pam_securetty.so
+auth requisite pam_nologin.so
+auth required pam_unix.so nullok
+auth required pam_tally.so onerr=succeed file=/var/log/faillog
+# use this to lockout accounts for 10 minutes after 3 failed attempts
+#auth required pam_tally.so deny=2 unlock_time=600 onerr=succeed file=/var/log/faillog
+account required pam_access.so
+account required pam_time.so
+account required pam_unix.so
+#password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
+#password required pam_unix.so sha512 shadow use_authtok
+session required pam_unix.so
+session required pam_env.so
+session required pam_motd.so
+session required pam_limits.so
+session optional pam_mail.so dir=/var/spool/mail standard
+session optional pam_lastlog.so
+session optional pam_loginuid.so
+-session optional pam_ck_connector.so nox11
+-session optional pam_systemd.so
diff --git a/testing/shadow/login.defs b/testing/shadow/login.defs
new file mode 100644
index 000000000..2500ee447
--- /dev/null
+++ b/testing/shadow/login.defs
@@ -0,0 +1,197 @@
+#
+# /etc/login.defs - Configuration control definitions for the login package.
+#
+# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH.
+# If unspecified, some arbitrary (and possibly incorrect) value will
+# be assumed. All other items are optional - if not specified then
+# the described action or option will be inhibited.
+#
+# Comment lines (lines beginning with "#") and blank lines are ignored.
+#
+# Modified for Linux. --marekm
+
+#
+# Delay in seconds before being allowed another attempt after a login failure
+#
+FAIL_DELAY 3
+
+#
+# Enable display of unknown usernames when login failures are recorded.
+#
+LOG_UNKFAIL_ENAB no
+
+#
+# Enable logging of successful logins
+#
+LOG_OK_LOGINS no
+
+#
+# Enable "syslog" logging of su activity - in addition to sulog file logging.
+# SYSLOG_SG_ENAB does the same for newgrp and sg.
+#
+SYSLOG_SU_ENAB yes
+SYSLOG_SG_ENAB yes
+
+#
+# If defined, either full pathname of a file containing device names or
+# a ":" delimited list of device names. Root logins will be allowed only
+# upon these devices.
+#
+CONSOLE /etc/securetty
+#CONSOLE console:tty01:tty02:tty03:tty04
+
+#
+# If defined, all su activity is logged to this file.
+#
+#SULOG_FILE /var/log/sulog
+
+#
+# If defined, file which maps tty line to TERM environment parameter.
+# Each line of the file is in a format something like "vt100 tty01".
+#
+#TTYTYPE_FILE /etc/ttytype
+
+#
+# If defined, the command name to display when running "su -". For
+# example, if this is defined as "su" then a "ps" will display the
+# command is "-su". If not defined, then "ps" would display the
+# name of the shell actually being run, e.g. something like "-sh".
+#
+SU_NAME su
+
+#
+# *REQUIRED*
+# Directory where mailboxes reside, _or_ name of file, relative to the
+# home directory. If you _do_ define both, MAIL_DIR takes precedence.
+# QMAIL_DIR is for Qmail
+#
+#QMAIL_DIR Maildir
+MAIL_DIR /var/spool/mail
+
+#
+# If defined, file which inhibits all the usual chatter during the login
+# sequence. If a full pathname, then hushed mode will be enabled if the
+# user's name or shell are found in the file. If not a full pathname, then
+# hushed mode will be enabled if the file exists in the user's home directory.
+#
+HUSHLOGIN_FILE .hushlogin
+#HUSHLOGIN_FILE /etc/hushlogins
+
+#
+# *REQUIRED* The default PATH settings, for superuser and normal users.
+#
+# (they are minimal, add the rest in the shell startup files)
+ENV_SUPATH PATH=/sbin:/bin:/usr/sbin:/usr/bin
+ENV_PATH PATH=/bin:/usr/bin
+
+#
+# Terminal permissions
+#
+# TTYGROUP Login tty will be assigned this group ownership.
+# TTYPERM Login tty will be set to this permission.
+#
+# If you have a "write" program which is "setgid" to a special group
+# which owns the terminals, define TTYGROUP to the group number and
+# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign
+# TTYPERM to either 622 or 600.
+#
+TTYGROUP tty
+TTYPERM 0600
+
+#
+# Login configuration initializations:
+#
+# ERASECHAR Terminal ERASE character ('\010' = backspace).
+# KILLCHAR Terminal KILL character ('\025' = CTRL/U).
+# UMASK Default "umask" value.
+#
+# The ERASECHAR and KILLCHAR are used only on System V machines.
+# The ULIMIT is used only if the system supports it.
+# (now it works with setrlimit too; ulimit is in 512-byte units)
+#
+# Prefix these values with "0" to get octal, "0x" to get hexadecimal.
+#
+ERASECHAR 0177
+KILLCHAR 025
+UMASK 077
+
+#
+# Password aging controls:
+#
+# PASS_MAX_DAYS Maximum number of days a password may be used.
+# PASS_MIN_DAYS Minimum number of days allowed between password changes.
+# PASS_WARN_AGE Number of days warning given before a password expires.
+#
+PASS_MAX_DAYS 99999
+PASS_MIN_DAYS 0
+PASS_WARN_AGE 7
+
+#
+# Min/max values for automatic uid selection in useradd
+#
+UID_MIN 1000
+UID_MAX 60000
+# System accounts
+SYS_UID_MIN 500
+SYS_UID_MAX 999
+
+#
+# Min/max values for automatic gid selection in groupadd
+#
+GID_MIN 1000
+GID_MAX 60000
+# System accounts
+SYS_GID_MIN 500
+SYS_GID_MAX 999
+
+#
+# Max number of login retries if password is bad
+#
+LOGIN_RETRIES 5
+
+#
+# Max time in seconds for login
+#
+LOGIN_TIMEOUT 60
+
+#
+# Which fields may be changed by regular users using chfn - use
+# any combination of letters "frwh" (full name, room number, work
+# phone, home phone). If not defined, no changes are allowed.
+# For backward compatibility, "yes" = "rwh" and "no" = "frwh".
+#
+CHFN_RESTRICT rwh
+
+#
+# List of groups to add to the user's supplementary group set
+# when logging in on the console (as determined by the CONSOLE
+# setting). Default is none.
+#
+# Use with caution - it is possible for users to gain permanent
+# access to these groups, even when not logged in on the console.
+# How to do it is left as an exercise for the reader...
+#
+#CONSOLE_GROUPS floppy:audio:cdrom
+
+#
+# Should login be allowed if we can't cd to the home directory?
+# Default in no.
+#
+DEFAULT_HOME yes
+
+#
+# If defined, this command is run when removing a user.
+# It should remove any at/cron/print jobs etc. owned by
+# the user to be removed (passed as the first argument).
+#
+#USERDEL_CMD /usr/sbin/userdel_local
+
+#
+# Enable setting of the umask group bits to be the same as owner bits
+# (examples: 022 -> 002, 077 -> 007) for non-root users, if the uid is
+# the same as gid, and username is the same as the primary group name.
+#
+# This also enables userdel to remove user groups if no members exist.
+#
+USERGROUPS_ENAB yes
+
diff --git a/testing/shadow/newusers b/testing/shadow/newusers
new file mode 100644
index 000000000..5d447985a
--- /dev/null
+++ b/testing/shadow/newusers
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+password required pam_unix.so sha512 shadow
diff --git a/testing/shadow/passwd b/testing/shadow/passwd
new file mode 100644
index 000000000..ab56da496
--- /dev/null
+++ b/testing/shadow/passwd
@@ -0,0 +1,4 @@
+#%PAM-1.0
+#password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
+#password required pam_unix.so sha512 shadow use_authtok
+password required pam_unix.so sha512 shadow nullok
diff --git a/testing/shadow/shadow-add-missing-include.patch b/testing/shadow/shadow-add-missing-include.patch
new file mode 100644
index 000000000..5c9e946ef
--- /dev/null
+++ b/testing/shadow/shadow-add-missing-include.patch
@@ -0,0 +1,11 @@
+diff -Naur shadow-4.1.4.2+svn3283/libmisc/copydir.c shadow-4.1.4.2+svn3283.new/libmisc/copydir.c
+--- shadow-4.1.4.2+svn3283/libmisc/copydir.c 2010-09-05 11:35:26.000000000 -0400
++++ shadow-4.1.4.2+svn3283.new/libmisc/copydir.c 2011-06-26 01:26:52.000000000 -0400
+@@ -34,6 +34,7 @@
+
+ #ident "$Id: copydir.c 3283 2010-09-05 15:34:42Z nekral-guest $"
+
++#include <stdarg.h>
+ #include <assert.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
diff --git a/testing/shadow/shadow-strncpy-usage.patch b/testing/shadow/shadow-strncpy-usage.patch
new file mode 100644
index 000000000..5aba8fa01
--- /dev/null
+++ b/testing/shadow/shadow-strncpy-usage.patch
@@ -0,0 +1,25 @@
+diff -u shadow-4.1.5/src/usermod.c.orig shadow-4.1.5/src/usermod.c
+--- shadow-4.1.5/src/usermod.c.orig 2012-02-13 08:19:43.792146449 -0500
++++ shadow-4.1.5/src/usermod.c 2012-02-13 08:21:19.375114500 -0500
+@@ -182,7 +182,7 @@
+ struct tm *tp;
+
+ if (date < 0) {
+- strncpy (buf, "never", maxsize);
++ strncpy (buf, "never", maxsize - 1);
+ } else {
+ time_t t = (time_t) date;
+ tp = gmtime (&t);
+diff -u shadow-4.1.5/src/login.c.orig shadow-4.1.5/src/login.c
+--- shadow-4.1.5/src/login.c.orig 2012-02-13 08:19:50.951994454 -0500
++++ shadow-4.1.5/src/login.c 2012-02-13 08:21:04.490430937 -0500
+@@ -752,7 +752,8 @@
+ _("%s login: "), hostn);
+ } else {
+ strncpy (loginprompt, _("login: "),
+- sizeof (loginprompt));
++ sizeof (loginprompt) - 1);
++ loginprompt[sizeof (loginprompt) - 1] = '\0';
+ }
+
+ retcode = pam_set_item (pamh, PAM_USER_PROMPT, loginprompt);
diff --git a/testing/shadow/shadow.cron.daily b/testing/shadow/shadow.cron.daily
new file mode 100755
index 000000000..1931a793e
--- /dev/null
+++ b/testing/shadow/shadow.cron.daily
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# Verify integrity of password and group files
+/usr/sbin/pwck -r
+/usr/sbin/grpck -r
+
diff --git a/testing/shadow/shadow.install b/testing/shadow/shadow.install
new file mode 100644
index 000000000..14384c333
--- /dev/null
+++ b/testing/shadow/shadow.install
@@ -0,0 +1,9 @@
+post_upgrade() {
+ grpck -r >/dev/null 2>&1
+ if [ $? -eq 2 ]; then
+ printf '%s\n' \
+ "==> Warning: /etc/group or /etc/gshadow are inconsistent." \
+ " Run 'grpck' to correct this."
+ fi
+ return 0
+}
diff --git a/testing/shadow/useradd.defaults b/testing/shadow/useradd.defaults
new file mode 100644
index 000000000..b800b1777
--- /dev/null
+++ b/testing/shadow/useradd.defaults
@@ -0,0 +1,9 @@
+# useradd defaults file for ArchLinux
+# original changes by TomK
+GROUP=100
+HOME=/home
+INACTIVE=-1
+EXPIRE=
+SHELL=/bin/bash
+SKEL=/etc/skel
+CREATE_MAIL_SPOOL=no
diff --git a/testing/shadow/xstrdup.patch b/testing/shadow/xstrdup.patch
new file mode 100644
index 000000000..bce434264
--- /dev/null
+++ b/testing/shadow/xstrdup.patch
@@ -0,0 +1,9 @@
+--- shadow-4.1.2.1/libmisc/xmalloc.c 2008-08-30 21:55:44.000000000 -0500
++++ shadow-4.1.2.1/libmisc/xmalloc.c.new 2008-08-30 21:55:36.000000000 -0500
+@@ -61,5 +61,6 @@
+
+ char *xstrdup (const char *str)
+ {
++ if(str == NULL) return NULL;
+ return strcpy (xmalloc (strlen (str) + 1), str);
+ }
diff --git a/testing/xf86-video-sis/PKGBUILD b/testing/xf86-video-sis/PKGBUILD
index 0795269e5..04bb1d6a0 100644
--- a/testing/xf86-video-sis/PKGBUILD
+++ b/testing/xf86-video-sis/PKGBUILD
@@ -1,27 +1,32 @@
-# $Id: PKGBUILD 150071 2012-02-12 09:45:41Z andyrtr $
+# $Id: PKGBUILD 150127 2012-02-13 07:58:15Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=xf86-video-sis
pkgver=0.10.3
-pkgrel=6
+pkgrel=7
pkgdesc="X.org SiS video driver"
arch=(i686 x86_64)
url="http://xorg.freedesktop.org/"
license=('custom')
depends=('glibc')
-makedepends=('xorg-server-devel>=1.11.99.903' 'xf86dgaproto' 'libdrm' 'xf86driproto' 'mesa>=8.0') # 'glproto')
+makedepends=('xorg-server-devel>=1.11.99.903' 'xf86dgaproto')
conflicts=('xorg-server<1.11.99.903')
options=('!libtool')
groups=('xorg-drivers' 'xorg')
source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
- sis-0.10.3-git.patch)
+ git-f5dafa24.patch)
sha1sums=('158673747e240b0c33499685a32d46bdaead7cd5'
- '9078c02e9d10384cafb75d675bade8644726c811')
+ 'b61c6a78723aa59f8c82152fec42475b611cd1e7')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- patch -Np1 -i ${srcdir}/sis-0.10.3-git.patch
- ./configure --prefix=/usr #--enable-dri
+ patch -Np1 -i "${srcdir}/git-f5dafa24.patch"
+ libtoolize --force --copy
+ aclocal
+ autoconf
+ automake
+
+ ./configure --prefix=/usr --disable-dri
make
}
diff --git a/testing/xf86-video-sis/git-f5dafa24.patch b/testing/xf86-video-sis/git-f5dafa24.patch
new file mode 100644
index 000000000..8c15b974b
--- /dev/null
+++ b/testing/xf86-video-sis/git-f5dafa24.patch
@@ -0,0 +1,1654 @@
+diff --git a/configure.ac b/configure.ac
+index 33c0d65..62ad933 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -20,54 +20,53 @@
+ #
+ # Process this file with autoconf to produce a configure script
+
+-AC_PREREQ(2.57)
++# Initialize Autoconf
++AC_PREREQ([2.60])
+ AC_INIT([xf86-video-sis],
+- 0.10.3,
++ [0.10.3],
+ [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
+- xf86-video-sis)
+-
++ [xf86-video-sis])
+ AC_CONFIG_SRCDIR([Makefile.am])
+-AM_CONFIG_HEADER([config.h])
++AC_CONFIG_HEADERS([config.h])
+ AC_CONFIG_AUX_DIR(.)
+
++# Initialize Automake
+ AM_INIT_AUTOMAKE([foreign dist-bzip2])
+-
+ AM_MAINTAINER_MODE
+
+-# Require xorg-macros: XORG_DEFAULT_OPTIONS
++# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
+ m4_ifndef([XORG_MACROS_VERSION],
+- [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])])
+-XORG_MACROS_VERSION(1.3)
++ [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])])
++XORG_MACROS_VERSION(1.8)
+ XORG_DEFAULT_OPTIONS
+
+-# Checks for programs.
++# Initialize libtool
+ AC_DISABLE_STATIC
+ AC_PROG_LIBTOOL
+-AC_PROG_CC
+-XORG_PROG_RAWCPP
+
+ AH_TOP([#include "xorg-server.h"])
+
++# Define a configure option for an alternate module directory
+ AC_ARG_WITH(xorg-module-dir,
+- AC_HELP_STRING([--with-xorg-module-dir=DIR],
++ AS_HELP_STRING([--with-xorg-module-dir=DIR],
+ [Default xorg module directory [[default=$libdir/xorg/modules]]]),
+ [moduledir="$withval"],
+ [moduledir="$libdir/xorg/modules"])
+
+-AC_ARG_ENABLE(dri, AC_HELP_STRING([--disable-dri],
++AC_ARG_ENABLE(dri, AS_HELP_STRING([--disable-dri],
+ [Disable DRI support [[default=auto]]]),
+ [DRI="$enableval"],
+ [DRI=auto])
+
+-# Checks for extensions
++# Store the list of server defined optional extensions in REQUIRED_MODULES
+ XORG_DRIVER_CHECK_EXT(XINERAMA, xineramaproto)
+ XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
+ XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
+ XORG_DRIVER_CHECK_EXT(XV, videoproto)
+ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
+
+-# Checks for pkg-config packages
+-PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto fontsproto xf86dgaproto $REQUIRED_MODULES])
++# Obtain compiler/linker options for the driver dependencies
++PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto fontsproto xf86dgaproto >= 2.1 $REQUIRED_MODULES])
+ PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
+ HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]),
+ HAVE_XEXTPROTO_71="no")
+@@ -76,9 +75,6 @@ sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server`
+
+ # Checks for libraries.
+
+-# Checks for header files.
+-AC_HEADER_STDC
+-
+ if test "$DRI" != no; then
+ AC_CHECK_FILE([${sdkdir}/dri.h],
+ [have_dri_h="yes"], [have_dri_h="no"])
+@@ -103,8 +99,8 @@ AC_MSG_RESULT([$DRI])
+ AM_CONDITIONAL(DRI, test x$DRI = xyes)
+ if test "$DRI" = yes; then
+ PKG_CHECK_MODULES(DRI, [libdrm >= 2.0 xf86driproto])
+- AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
+- AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
++ AC_DEFINE(SISDRI,1,[Enable DRI driver support])
++ AC_DEFINE(SISDRI_DEVEL,1,[Enable developmental DRI driver support])
+ fi
+
+ # technically this should be a configure flag. meh.
+@@ -118,20 +114,19 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
+ CPPFLAGS="$SAVE_CPPFLAGS"
+
+ if test "x$XSERVER_LIBPCIACCESS" = xyes; then
+- PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.10])
++ PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.12.901])
+ XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS"
+ fi
+ AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
+
+-AC_SUBST([DRI_CFLAGS])
+-AC_SUBST([XORG_CFLAGS])
+ AC_SUBST([moduledir])
+
+ DRIVER_NAME=sis
+ AC_SUBST([DRIVER_NAME])
+
+-AC_OUTPUT([
+- Makefile
+- src/Makefile
+- man/Makefile
++AC_CONFIG_FILES([
++ Makefile
++ src/Makefile
++ man/Makefile
+ ])
++AC_OUTPUT
+diff --git a/man/Makefile.am b/man/Makefile.am
+index 1b26ac2..9ceb36f 100644
+--- a/man/Makefile.am
++++ b/man/Makefile.am
+@@ -31,39 +31,9 @@ EXTRA_DIST = @DRIVER_NAME@.man
+
+ CLEANFILES = $(driverman_DATA)
+
+-SED = sed
+-
+-# Strings to replace in man pages
+-XORGRELSTRING = @PACKAGE_STRING@
+- XORGMANNAME = X Version 11
+-
+-MANDEFS = \
+- -D__vendorversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\"" \
+- -D__appmansuffix__=$(APP_MAN_SUFFIX) \
+- -D__filemansuffix__=$(FILE_MAN_SUFFIX) \
+- -D__libmansuffix__=$(LIB_MAN_SUFFIX) \
+- -D__miscmansuffix__=$(MISC_MAN_SUFFIX) \
+- -D__drivermansuffix__=$(DRIVER_MAN_SUFFIX) \
+- -D__adminmansuffix__=$(ADMIN_MAN_SUFFIX) \
+- -D__xconfigfile__=xorg.conf \
+- -D__xservername__=Xorg
+-
+-# Translate XCOMM into pound sign with sed, rather than passing -DXCOMM=XCOMM
+-# to cpp, because that trick does not work on all ANSI C preprocessors.
+-# Delete line numbers from the cpp output (-P is not portable, I guess).
+-# Allow XCOMM to be preceded by whitespace and provide a means of generating
+-# output lines with trailing backslashes.
+-# Allow XHASH to always be substituted, even in cases where XCOMM isn't.
+-
+-CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \
+- -e '/^\#line *[0-9][0-9]* *.*$$/d' \
+- -e '/^[ ]*XCOMM$$/s/XCOMM/\#/' \
+- -e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/\#/' \
+- -e '/^[ ]*XHASH/s/XHASH/\#/' \
+- -e '/\@\@$$/s/\@\@$$/\\/'
+-
+ SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man
+
++# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
+ .man.$(DRIVER_MAN_SUFFIX):
+- $(RAWCPP) $(RAWCPPFLAGS) $(MANDEFS) $(EXTRAMANDEFS) < $< | $(CPP_SED_MAGIC) > $@
++ $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
+
+diff --git a/man/sis.man b/man/sis.man
+index 9ae4a1b..578bb68 100644
+--- a/man/sis.man
++++ b/man/sis.man
+@@ -1,17 +1,5 @@
+-.\" $XFree86$
+-.\" $XdotOrg$
+ .\" shorthand for double quote that works everywhere.
+ .ds q \N'34'
+-#ifdef __xservername__
+-#define __myservername__ __xservername__
+-#else
+-#define __myservername__ XFree86
+-#endif
+-#ifdef __xconfigfile__
+-#define __myxconfigfile__ __xconfigfile__
+-#else
+-#define __myxconfigfile__ XF86Config
+-#endif
+ .TH SIS __drivermansuffix__ __vendorversion__
+ .SH NAME
+ sis \- SiS and XGI video driver
+@@ -25,7 +13,7 @@ sis \- SiS and XGI video driver
+ .fi
+ .SH DESCRIPTION
+ .B sis
+-is an __myservername__ driver for SiS (Silicon Integrated Systems) and XGI video
++is an __xservername__ driver for SiS (Silicon Integrated Systems) and XGI video
+ chips. The driver is accelerated and provides support for colordepths of 8, 16
+ and 24 bpp. XVideo, Render and other extensions are supported as well.
+ .SH SUPPORTED HARDWARE
+@@ -60,7 +48,7 @@ for SiS315, 55x, 330, 661/741/76x (plus M, FX, MX, GX variants thereof), 340
+ and all XGI chips.
+ .PP
+ .SH CONFIGURATION DETAILS
+-Please refer to __myxconfigfile__(__filemansuffix__) for general configuration
++Please refer to __xconfigfile__(__filemansuffix__) for general configuration
+ details. This section only covers configuration details specific to this
+ driver.
+ .PP
+@@ -428,11 +416,7 @@ The amount is to be specified in megabyte, the default is 8.
+ .SH "KNOWN BUGS"
+ none.
+ .SH "SEE ALSO"
+-#ifdef __xservername__
+ __xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
+-#else
+-XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(__miscmansuffix__)
+-#endif
+ .PP
+ .B "http://www.winischhofer.eu/linuxsisvga.shtml"
+ for more information and updates
+diff --git a/src/initextx.c b/src/initextx.c
+index 5c00398..1e84d0f 100644
+--- a/src/initextx.c
++++ b/src/initextx.c
+@@ -238,10 +238,10 @@ SiSBuildBuiltInModeList(ScrnInfoPtr pScrn, BOOLEAN includelcdmodes, BOOLEAN isfo
+ continue;
+ }
+
+- if(!(new = xalloc(sizeof(DisplayModeRec)))) return first;
++ if(!(new = malloc(sizeof(DisplayModeRec)))) return first;
+ memset(new, 0, sizeof(DisplayModeRec));
+- if(!(new->name = xalloc(10))) {
+- xfree(new);
++ if(!(new->name = malloc(10))) {
++ free(new);
+ return first;
+ }
+ if(!first) first = new;
+@@ -385,11 +385,11 @@ SiSBuildBuiltInModeList(ScrnInfoPtr pScrn, BOOLEAN includelcdmodes, BOOLEAN isfo
+ }
+ }
+
+- if(!(new = xalloc(sizeof(DisplayModeRec)))) return first;
++ if(!(new = malloc(sizeof(DisplayModeRec)))) return first;
+
+ memset(new, 0, sizeof(DisplayModeRec));
+- if(!(new->name = xalloc(12))) {
+- xfree(new);
++ if(!(new->name = malloc(12))) {
++ free(new);
+ return first;
+ }
+ if(!first) first = new;
+@@ -470,11 +470,11 @@ SiSBuildBuiltInModeList(ScrnInfoPtr pScrn, BOOLEAN includelcdmodes, BOOLEAN isfo
+
+ if(pSiS->SiS_Pr->CP_DataValid[i]) {
+
+- if(!(new = xalloc(sizeof(DisplayModeRec)))) return first;
++ if(!(new = malloc(sizeof(DisplayModeRec)))) return first;
+
+ memset(new, 0, sizeof(DisplayModeRec));
+- if(!(new->name = xalloc(10))) {
+- xfree(new);
++ if(!(new->name = malloc(10))) {
++ free(new);
+ return first;
+ }
+ if(!first) first = new;
+diff --git a/src/osdef.h b/src/osdef.h
+index cd6b907..5776910 100644
+--- a/src/osdef.h
++++ b/src/osdef.h
+@@ -110,12 +110,12 @@
+ #warning sisfb will not work!
+ #endif
+
+-#define OutPortByte(p,v) outb((u8)(v),(IOADDRESS)(p))
+-#define OutPortWord(p,v) outw((u16)(v),(IOADDRESS)(p))
+-#define OutPortLong(p,v) outl((u32)(v),(IOADDRESS)(p))
+-#define InPortByte(p) inb((IOADDRESS)(p))
+-#define InPortWord(p) inw((IOADDRESS)(p))
+-#define InPortLong(p) inl((IOADDRESS)(p))
++#define OutPortByte(p,v) outb((u8)(v),(unsigned long)(p))
++#define OutPortWord(p,v) outw((u16)(v),(unsigned long)(p))
++#define OutPortLong(p,v) outl((u32)(v),(unsigned long)(p))
++#define InPortByte(p) inb((unsigned long)(p))
++#define InPortWord(p) inw((unsigned long)(p))
++#define InPortLong(p) inl((unsigned long)(p))
+ #define SiS_SetMemory(MemoryAddress,MemorySize,value) memset_io(MemoryAddress, value, MemorySize)
+
+ #endif /* LINUX_KERNEL */
+@@ -129,12 +129,12 @@
+ #define SIS300
+ #define SIS315H
+
+-#define OutPortByte(p,v) outSISREG((IOADDRESS)(p),(CARD8)(v))
+-#define OutPortWord(p,v) outSISREGW((IOADDRESS)(p),(CARD16)(v))
+-#define OutPortLong(p,v) outSISREGL((IOADDRESS)(p),(CARD32)(v))
+-#define InPortByte(p) inSISREG((IOADDRESS)(p))
+-#define InPortWord(p) inSISREGW((IOADDRESS)(p))
+-#define InPortLong(p) inSISREGL((IOADDRESS)(p))
++#define OutPortByte(p,v) outSISREG((unsigned long)(p),(CARD8)(v))
++#define OutPortWord(p,v) outSISREGW((unsigned long)(p),(CARD16)(v))
++#define OutPortLong(p,v) outSISREGL((unsigned long)(p),(CARD32)(v))
++#define InPortByte(p) inSISREG((unsigned long)(p))
++#define InPortWord(p) inSISREGW((unsigned long)(p))
++#define InPortLong(p) inSISREGL((unsigned long)(p))
+ #define SiS_SetMemory(MemoryAddress,MemorySize,value) memset(MemoryAddress, value, MemorySize)
+
+ #endif /* XF86 */
+diff --git a/src/sis.h b/src/sis.h
+index 400b83f..f2ca3a9 100644
+--- a/src/sis.h
++++ b/src/sis.h
+@@ -86,6 +86,14 @@
+ #include "xf86cmap.h"
+ #include "vbe.h"
+
++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12
++#define _swapl(x, n) swapl(x,n)
++#define _swaps(x, n) swaps(x,n)
++#else
++#define _swapl(x, n) swapl(x)
++#define _swaps(x, n) swaps(x)
++#endif
++
+ #define SIS_HaveDriverFuncs 0
+
+ #undef SISISXORG6899900
+@@ -173,7 +181,13 @@
+
+ #undef SISHAVEDRMWRITE
+ #undef SISNEWDRI
+-#ifdef XF86DRI
++
++/* if the server was built without DRI support, force-disable DRI */
++#ifndef XF86DRI
++#undef SISDRI
++#endif
++
++#ifdef SISDRI
+ #if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(4,2,99,3,0)
+ #define SISHAVEDRMWRITE
+ #endif
+@@ -187,7 +201,7 @@
+ #include "dri.h"
+ #include "GL/glxint.h"
+ #include "sis_dri.h"
+-#endif /* XF86DRI */
++#endif /* SISDRI */
+
+ /* Configurable stuff: ------------------------------------- */
+
+@@ -251,7 +265,6 @@
+ #endif
+
+ /* Need that for SiSCtrl and Pseudo-Xinerama */
+-#define NEED_REPLIES /* ? */
+ #define EXTENSION_PROC_ARGS void *
+ #include "extnsionst.h" /* required */
+ #include <X11/extensions/panoramiXproto.h> /* required */
+@@ -805,7 +818,7 @@ typedef struct {
+ ScrnInfoPtr pScrn_2;
+ UChar *BIOS;
+ struct SiS_Private *SiS_Pr;
+-#ifdef XF86DRI
++#ifdef SISDRI
+ SISAGPHTYPE agpHandle;
+ ULong agpAddr;
+ UChar *agpBase;
+@@ -971,7 +984,7 @@ typedef struct {
+ void *RealFbBase; /* Real VRAM virtual linear address (for DHM and SiS76x UMA skipping) */
+ CARD32 IOAddress; /* MMIO physical address */
+ void *IOBase; /* MMIO linear address */
+- IOADDRESS IODBase; /* Base of PIO memory area */
++ unsigned long IODBase; /* Base of PIO memory area */
+ #ifdef __alpha__
+ void *IOBaseDense; /* MMIO for Alpha platform */
+ #endif
+@@ -1085,7 +1098,7 @@ typedef struct {
+ unsigned int cmdQueueSize_div2;
+ unsigned int cmdQueueSize_div4;
+ unsigned int cmdQueueSize_4_3;
+-#ifdef XF86DRI
++#ifdef SISDRI
+ SISAGPHTYPE agpHandle;
+ ULong agpAddr;
+ UChar *agpBase;
+@@ -1144,7 +1157,7 @@ typedef struct {
+
+ /* DRI */
+ Bool loadDRI;
+-#ifdef XF86DRI
++#ifdef SISDRI
+ Bool directRenderingEnabled;
+ DRIInfoPtr pDRIInfo;
+ int drmSubFD;
+@@ -1348,7 +1361,7 @@ typedef struct {
+ Bool skipswitchcheck;
+ unsigned int VBFlagsInit;
+ DisplayModePtr currentModeLast;
+- IOADDRESS MyPIOOffset;
++ unsigned long MyPIOOffset;
+ Bool OverruleRanges;
+ Bool BenchMemCpy;
+ Bool NeedCopyFastVidCpy;
+diff --git a/src/sis6326_video.c b/src/sis6326_video.c
+index c6b18e2..66352b7 100644
+--- a/src/sis6326_video.c
++++ b/src/sis6326_video.c
+@@ -170,7 +170,7 @@ void SIS6326InitVideo(ScreenPtr pScreen)
+ adaptors = &newAdaptor;
+ } else {
+ /* need to free this someplace */
+- newAdaptors = xalloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*));
++ newAdaptors = malloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*));
+ if(newAdaptors) {
+ memcpy(newAdaptors, adaptors, num_adaptors *
+ sizeof(XF86VideoAdaptorPtr));
+@@ -185,7 +185,7 @@ void SIS6326InitVideo(ScreenPtr pScreen)
+ xf86XVScreenInit(pScreen, adaptors, num_adaptors);
+
+ if(newAdaptors)
+- xfree(newAdaptors);
++ free(newAdaptors);
+ }
+
+ /* client libraries expect an encoding */
+@@ -531,7 +531,7 @@ SIS6326SetupImageVideo(ScreenPtr pScreen)
+ return NULL;
+ #endif
+
+- if(!(adapt = xcalloc(1, sizeof(XF86VideoAdaptorRec) +
++ if(!(adapt = calloc(1, sizeof(XF86VideoAdaptorRec) +
+ sizeof(SISPortPrivRec) +
+ sizeof(DevUnion))))
+ return NULL;
+diff --git a/src/sis_dga.c b/src/sis_dga.c
+index d358645..16b0ee4 100644
+--- a/src/sis_dga.c
++++ b/src/sis_dga.c
+@@ -150,18 +150,18 @@ SISSetupDGAMode(
+
+ if(pMode->HDisplay != otherPitch) {
+
+- newmodes = xrealloc(modes, (*num + 2) * sizeof(DGAModeRec));
++ newmodes = realloc(modes, (*num + 2) * sizeof(DGAModeRec));
+ oneMore = TRUE;
+
+ } else {
+
+- newmodes = xrealloc(modes, (*num + 1) * sizeof(DGAModeRec));
++ newmodes = realloc(modes, (*num + 1) * sizeof(DGAModeRec));
+ oneMore = FALSE;
+
+ }
+
+ if(!newmodes) {
+- xfree(modes);
++ free(modes);
+ return NULL;
+ }
+ modes = newmodes;
+diff --git a/src/sis_dri.c b/src/sis_dri.c
+index 3a476a2..97ed951 100644
+--- a/src/sis_dri.c
++++ b/src/sis_dri.c
+@@ -149,19 +149,19 @@ SISInitVisualConfigs(ScreenPtr pScreen)
+ case 32:
+ numConfigs = (useZ16) ? 8 : 16;
+
+- if(!(pConfigs = (__GLXvisualConfig*)xcalloc(sizeof(__GLXvisualConfig),
++ if(!(pConfigs = (__GLXvisualConfig*)calloc(sizeof(__GLXvisualConfig),
+ numConfigs))) {
+ return FALSE;
+ }
+- if(!(pSISConfigs = (SISConfigPrivPtr)xcalloc(sizeof(SISConfigPrivRec),
++ if(!(pSISConfigs = (SISConfigPrivPtr)calloc(sizeof(SISConfigPrivRec),
+ numConfigs))) {
+- xfree(pConfigs);
++ free(pConfigs);
+ return FALSE;
+ }
+- if(!(pSISConfigPtrs = (SISConfigPrivPtr*)xcalloc(sizeof(SISConfigPrivPtr),
++ if(!(pSISConfigPtrs = (SISConfigPrivPtr*)calloc(sizeof(SISConfigPrivPtr),
+ numConfigs))) {
+- xfree(pConfigs);
+- xfree(pSISConfigs);
++ free(pConfigs);
++ free(pSISConfigs);
+ return FALSE;
+ }
+ for(i=0; i<numConfigs; i++) pSISConfigPtrs[i] = &pSISConfigs[i];
+@@ -319,7 +319,7 @@ SISDRIScreenInit(ScreenPtr pScreen)
+ pDRIInfo->busIdString = DRICreatePCIBusID(pSIS->PciInfo);
+ } else {
+ #endif
+- pDRIInfo->busIdString = xalloc(64);
++ pDRIInfo->busIdString = malloc(64);
+ sprintf(pDRIInfo->busIdString, "PCI:%d:%d:%d",
+ pSIS->PciBus, pSIS->PciDevice, pSIS->PciFunc);
+ #ifdef SISHAVECREATEBUSID
+@@ -383,7 +383,7 @@ SISDRIScreenInit(ScreenPtr pScreen)
+ pDRIInfo->SAREASize = SAREA_MAX;
+ #endif
+
+- if(!(pSISDRI = (SISDRIPtr)xcalloc(sizeof(SISDRIRec), 1))) {
++ if(!(pSISDRI = (SISDRIPtr)calloc(sizeof(SISDRIRec), 1))) {
+ DRIDestroyInfoRec(pSIS->pDRIInfo);
+ pSIS->pDRIInfo = 0;
+ return FALSE;
+@@ -401,7 +401,7 @@ SISDRIScreenInit(ScreenPtr pScreen)
+
+ if(!DRIScreenInit(pScreen, pDRIInfo, &pSIS->drmSubFD)) {
+ xf86DrvMsg(pScreen->myNum, X_ERROR, "[dri] DRIScreenInit failed. Disabling the DRI.\n");
+- xfree(pDRIInfo->devPrivate);
++ free(pDRIInfo->devPrivate);
+ pDRIInfo->devPrivate = 0;
+ DRIDestroyInfoRec(pSIS->pDRIInfo);
+ pSIS->pDRIInfo = 0;
+@@ -794,7 +794,7 @@ SISDRICloseScreen(ScreenPtr pScreen)
+
+ if(pSIS->pDRIInfo) {
+ if(pSIS->pDRIInfo->devPrivate) {
+- xfree(pSIS->pDRIInfo->devPrivate);
++ free(pSIS->pDRIInfo->devPrivate);
+ pSIS->pDRIInfo->devPrivate = NULL;
+ }
+ DRIDestroyInfoRec(pSIS->pDRIInfo);
+@@ -802,12 +802,12 @@ SISDRICloseScreen(ScreenPtr pScreen)
+ }
+
+ if(pSIS->pVisualConfigs) {
+- xfree(pSIS->pVisualConfigs);
++ free(pSIS->pVisualConfigs);
+ pSIS->pVisualConfigs = NULL;
+ }
+
+ if(pSIS->pVisualConfigsPriv) {
+- xfree(pSIS->pVisualConfigsPriv);
++ free(pSIS->pVisualConfigsPriv);
+ pSIS->pVisualConfigsPriv = NULL;
+ }
+
+diff --git a/src/sis_driver.c b/src/sis_driver.c
+index d95b5f1..7a5be4e 100644
+--- a/src/sis_driver.c
++++ b/src/sis_driver.c
+@@ -74,8 +74,7 @@
+
+ #include "sis_driver.h"
+
+-#define _XF86DGA_SERVER_
+-#include <X11/extensions/xf86dgastr.h>
++#include <X11/extensions/xf86dgaproto.h>
+
+ #include "globals.h"
+
+@@ -86,11 +85,35 @@
+ #include <X11/extensions/dpms.h>
+ #endif
+
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 5
++#include <inputstr.h> /* for inputInfo */
++#endif
++
+
+-#ifdef XF86DRI
++#ifdef SISDRI
+ #include "dri.h"
+ #endif
+
++/*
++ * LookupWindow was removed with video abi 11.
++ */
++#if (GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 4)
++#ifndef DixGetAttrAccess
++#define DixGetAttrAccess (1<<4)
++#endif
++#endif
++
++#if (GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 2)
++static inline int
++dixLookupWindow(WindowPtr *pWin, XID id, ClientPtr client, Mask access)
++{
++ *pWin = LookupWindow(id, client);
++ if (!*pWin)
++ return BadWindow;
++ return Success;
++}
++#endif
++
+ /* Globals (yes, these ARE really required to be global) */
+
+ #ifdef SISUSEDEVPORT
+@@ -299,9 +322,9 @@ SISFreeRec(ScrnInfoPtr pScrn)
+ pSiSEnt = pSiS->entityPrivate;
+ #endif
+
+- if(pSiS->pstate) xfree(pSiS->pstate);
++ if(pSiS->pstate) free(pSiS->pstate);
+ pSiS->pstate = NULL;
+- if(pSiS->fonts) xfree(pSiS->fonts);
++ if(pSiS->fonts) free(pSiS->fonts);
+ pSiS->fonts = NULL;
+
+ #ifdef SISDUALHEAD
+@@ -312,11 +335,11 @@ SISFreeRec(ScrnInfoPtr pScrn)
+ * and we need the BIOS image and SiS_Private for the first
+ * head.
+ */
+- if(pSiSEnt->BIOS) xfree(pSiSEnt->BIOS);
++ if(pSiSEnt->BIOS) free(pSiSEnt->BIOS);
+ pSiSEnt->BIOS = pSiS->BIOS = NULL;
+- if(pSiSEnt->SiS_Pr) xfree(pSiSEnt->SiS_Pr);
++ if(pSiSEnt->SiS_Pr) free(pSiSEnt->SiS_Pr);
+ pSiSEnt->SiS_Pr = pSiS->SiS_Pr = NULL;
+- if(pSiSEnt->RenderAccelArray) xfree(pSiSEnt->RenderAccelArray);
++ if(pSiSEnt->RenderAccelArray) free(pSiSEnt->RenderAccelArray);
+ pSiSEnt->RenderAccelArray = pSiS->RenderAccelArray = NULL;
+ pSiSEnt->pScrn_1 = NULL;
+ } else {
+@@ -327,21 +350,21 @@ SISFreeRec(ScrnInfoPtr pScrn)
+ }
+ } else {
+ #endif
+- if(pSiS->BIOS) xfree(pSiS->BIOS);
++ if(pSiS->BIOS) free(pSiS->BIOS);
+ pSiS->BIOS = NULL;
+- if(pSiS->SiS_Pr) xfree(pSiS->SiS_Pr);
++ if(pSiS->SiS_Pr) free(pSiS->SiS_Pr);
+ pSiS->SiS_Pr = NULL;
+- if(pSiS->RenderAccelArray) xfree(pSiS->RenderAccelArray);
++ if(pSiS->RenderAccelArray) free(pSiS->RenderAccelArray);
+ pSiS->RenderAccelArray = NULL;
+ #ifdef SISDUALHEAD
+ }
+ #endif
+ #ifdef SISMERGED
+- if(pSiS->CRT2HSync) xfree(pSiS->CRT2HSync);
++ if(pSiS->CRT2HSync) free(pSiS->CRT2HSync);
+ pSiS->CRT2HSync = NULL;
+- if(pSiS->CRT2VRefresh) xfree(pSiS->CRT2VRefresh);
++ if(pSiS->CRT2VRefresh) free(pSiS->CRT2VRefresh);
+ pSiS->CRT2VRefresh = NULL;
+- if(pSiS->MetaModes) xfree(pSiS->MetaModes);
++ if(pSiS->MetaModes) free(pSiS->MetaModes);
+ pSiS->MetaModes = NULL;
+ if(pSiS->CRT2pScrn) {
+ if(pSiS->CRT2pScrn->modes) {
+@@ -353,10 +376,10 @@ SISFreeRec(ScrnInfoPtr pScrn)
+ while(pSiS->CRT2pScrn->monitor->Modes)
+ xf86DeleteMode(&pSiS->CRT2pScrn->monitor->Modes, pSiS->CRT2pScrn->monitor->Modes);
+ }
+- if(pSiS->CRT2pScrn->monitor->DDC) xfree(pSiS->CRT2pScrn->monitor->DDC);
+- xfree(pSiS->CRT2pScrn->monitor);
++ if(pSiS->CRT2pScrn->monitor->DDC) free(pSiS->CRT2pScrn->monitor->DDC);
++ free(pSiS->CRT2pScrn->monitor);
+ }
+- xfree(pSiS->CRT2pScrn);
++ free(pSiS->CRT2pScrn);
+ pSiS->CRT2pScrn = NULL;
+ }
+ if(pSiS->CRT1Modes) {
+@@ -366,8 +389,8 @@ SISFreeRec(ScrnInfoPtr pScrn)
+ do {
+ DisplayModePtr p = pScrn->currentMode->next;
+ if(pScrn->currentMode->Private)
+- xfree(pScrn->currentMode->Private);
+- xfree(pScrn->currentMode);
++ free(pScrn->currentMode->Private);
++ free(pScrn->currentMode);
+ pScrn->currentMode = p;
+ } while(pScrn->currentMode != pScrn->modes);
+ }
+@@ -380,7 +403,7 @@ SISFreeRec(ScrnInfoPtr pScrn)
+ #endif
+ while(pSiS->SISVESAModeList) {
+ sisModeInfoPtr mp = pSiS->SISVESAModeList->next;
+- xfree(pSiS->SISVESAModeList);
++ free(pSiS->SISVESAModeList);
+ pSiS->SISVESAModeList = mp;
+ }
+ if(pSiS->pVbe) vbeFree(pSiS->pVbe);
+@@ -392,7 +415,7 @@ SISFreeRec(ScrnInfoPtr pScrn)
+
+ if(pScrn->driverPrivate == NULL)
+ return;
+- xfree(pScrn->driverPrivate);
++ free(pScrn->driverPrivate);
+ pScrn->driverPrivate = NULL;
+ }
+
+@@ -501,7 +524,7 @@ SISProbe(DriverPtr drv, int flags)
+ numDevSections, drv, &usedChipsXGI);
+
+ /* Free it since we don't need that list after this */
+- xfree(devSections);
++ free(devSections);
+
+ numUsed = numUsedSiS + numUsedXGI;
+
+@@ -577,8 +600,8 @@ SISProbe(DriverPtr drv, int flags)
+
+ }
+
+- if(usedChipsSiS) xfree(usedChipsSiS);
+- if(usedChipsXGI) xfree(usedChipsXGI);
++ if(usedChipsSiS) free(usedChipsSiS);
++ if(usedChipsXGI) free(usedChipsXGI);
+
+ return foundScreen;
+ }
+@@ -642,10 +665,10 @@ SISCalculateGammaRamp(ScreenPtr pScreen, ScrnInfoPtr pScrn)
+ if(!(nramp = xf86GetGammaRampSize(pScreen))) return;
+
+ for(i=0; i<3; i++) {
+- ramp[i] = (UShort *)xalloc(nramp * sizeof(UShort));
++ ramp[i] = (UShort *)malloc(nramp * sizeof(UShort));
+ if(!ramp[i]) {
+- if(ramp[0]) { xfree(ramp[0]); ramp[0] = NULL; }
+- if(ramp[1]) { xfree(ramp[1]); ramp[1] = NULL; }
++ if(ramp[0]) { free(ramp[0]); ramp[0] = NULL; }
++ if(ramp[1]) { free(ramp[1]); ramp[1] = NULL; }
+ return;
+ }
+ }
+@@ -705,9 +728,9 @@ SISCalculateGammaRamp(ScreenPtr pScreen, ScrnInfoPtr pScrn)
+
+ xf86ChangeGammaRamp(pScreen, nramp, ramp[0], ramp[1], ramp[2]);
+
+- xfree(ramp[0]);
+- xfree(ramp[1]);
+- xfree(ramp[2]);
++ free(ramp[0]);
++ free(ramp[1]);
++ free(ramp[2]);
+ ramp[0] = ramp[1] = ramp[2] = NULL;
+ }
+ #endif
+@@ -1135,10 +1158,10 @@ SiSCopyModeNLink(ScrnInfoPtr pScrn, DisplayModePtr dest,
+ DisplayModePtr mode;
+ int dx = 0,dy = 0;
+
+- if(!((mode = xalloc(sizeof(DisplayModeRec))))) return dest;
++ if(!((mode = malloc(sizeof(DisplayModeRec))))) return dest;
+ memcpy(mode, i, sizeof(DisplayModeRec));
+- if(!((mode->Private = xalloc(sizeof(SiSMergedDisplayModeRec))))) {
+- xfree(mode);
++ if(!((mode->Private = malloc(sizeof(SiSMergedDisplayModeRec))))) {
++ free(mode);
+ return dest;
+ }
+ ((SiSMergedDisplayModePtr)mode->Private)->CRT1 = i;
+@@ -1223,8 +1246,8 @@ SiSCopyModeNLink(ScrnInfoPtr pScrn, DisplayModePtr dest,
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Skipped \"%s\" (%dx%d), not enough video RAM or beyond hardware specs\n",
+ mode->name, mode->HDisplay, mode->VDisplay);
+- xfree(mode->Private);
+- xfree(mode);
++ free(mode->Private);
++ free(mode);
+
+ return dest;
+ }
+@@ -2131,10 +2154,10 @@ SiSProcXineramaQueryVersion(ClientPtr client)
+ rep.majorVersion = SIS_XINERAMA_MAJOR_VERSION;
+ rep.minorVersion = SIS_XINERAMA_MINOR_VERSION;
+ if(client->swapped) {
+- swaps(&rep.sequenceNumber, n);
+- swapl(&rep.length, n);
+- swaps(&rep.majorVersion, n);
+- swaps(&rep.minorVersion, n);
++ _swaps(&rep.sequenceNumber, n);
++ _swapl(&rep.length, n);
++ _swaps(&rep.majorVersion, n);
++ _swaps(&rep.minorVersion, n);
+ }
+ WriteToClient(client, sizeof(xPanoramiXQueryVersionReply), (char *)&rep);
+ return (client->noClientException);
+@@ -2147,19 +2170,20 @@ SiSProcXineramaGetState(ClientPtr client)
+ WindowPtr pWin;
+ xPanoramiXGetStateReply rep;
+ register int n;
++ int rc;
+
+ REQUEST_SIZE_MATCH(xPanoramiXGetStateReq);
+- pWin = LookupWindow(stuff->window, client);
+- if(!pWin) return BadWindow;
++ rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
++ if (rc != Success)
++ return rc;
+
+ rep.type = X_Reply;
+ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
+ rep.state = !SiSnoPanoramiXExtension;
+ if(client->swapped) {
+- swaps (&rep.sequenceNumber, n);
+- swapl (&rep.length, n);
+- swaps (&rep.state, n);
++ _swaps (&rep.sequenceNumber, n);
++ _swapl (&rep.length, n);
+ }
+ WriteToClient(client, sizeof(xPanoramiXGetStateReply), (char *)&rep);
+ return client->noClientException;
+@@ -2172,19 +2196,20 @@ SiSProcXineramaGetScreenCount(ClientPtr client)
+ WindowPtr pWin;
+ xPanoramiXGetScreenCountReply rep;
+ register int n;
++ int rc;
+
+ REQUEST_SIZE_MATCH(xPanoramiXGetScreenCountReq);
+- pWin = LookupWindow(stuff->window, client);
+- if(!pWin) return BadWindow;
++ rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
++ if (rc != Success)
++ return rc;
+
+ rep.type = X_Reply;
+ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
+ rep.ScreenCount = SiSXineramaNumScreens;
+ if(client->swapped) {
+- swaps(&rep.sequenceNumber, n);
+- swapl(&rep.length, n);
+- swaps(&rep.ScreenCount, n);
++ _swaps(&rep.sequenceNumber, n);
++ _swapl(&rep.length, n);
+ }
+ WriteToClient(client, sizeof(xPanoramiXGetScreenCountReply), (char *)&rep);
+ return client->noClientException;
+@@ -2197,10 +2222,12 @@ SiSProcXineramaGetScreenSize(ClientPtr client)
+ WindowPtr pWin;
+ xPanoramiXGetScreenSizeReply rep;
+ register int n;
++ int rc;
+
+ REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
+- pWin = LookupWindow (stuff->window, client);
+- if(!pWin) return BadWindow;
++ rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
++ if (rc != Success)
++ return rc;
+
+ rep.type = X_Reply;
+ rep.length = 0;
+@@ -2208,10 +2235,10 @@ SiSProcXineramaGetScreenSize(ClientPtr client)
+ rep.width = SiSXineramadataPtr[stuff->screen].width;
+ rep.height = SiSXineramadataPtr[stuff->screen].height;
+ if(client->swapped) {
+- swaps(&rep.sequenceNumber, n);
+- swapl(&rep.length, n);
+- swaps(&rep.width, n);
+- swaps(&rep.height, n);
++ _swaps(&rep.sequenceNumber, n);
++ _swapl(&rep.length, n);
++ _swapl(&rep.width, n);
++ _swapl(&rep.height, n);
+ }
+ WriteToClient(client, sizeof(xPanoramiXGetScreenSizeReply), (char *)&rep);
+ return client->noClientException;
+@@ -2230,9 +2257,9 @@ SiSProcXineramaIsActive(ClientPtr client)
+ rep.state = !SiSnoPanoramiXExtension;
+ if(client->swapped) {
+ register int n;
+- swaps(&rep.sequenceNumber, n);
+- swapl(&rep.length, n);
+- swapl(&rep.state, n);
++ _swaps(&rep.sequenceNumber, n);
++ _swapl(&rep.length, n);
++ _swapl(&rep.state, n);
+ }
+ WriteToClient(client, sizeof(xXineramaIsActiveReply), (char *) &rep);
+ return client->noClientException;
+@@ -2251,9 +2278,9 @@ SiSProcXineramaQueryScreens(ClientPtr client)
+ rep.length = rep.number * sz_XineramaScreenInfo >> 2;
+ if(client->swapped) {
+ register int n;
+- swaps(&rep.sequenceNumber, n);
+- swapl(&rep.length, n);
+- swapl(&rep.number, n);
++ _swaps(&rep.sequenceNumber, n);
++ _swapl(&rep.length, n);
++ _swapl(&rep.number, n);
+ }
+ WriteToClient(client, sizeof(xXineramaQueryScreensReply), (char *)&rep);
+
+@@ -2268,10 +2295,10 @@ SiSProcXineramaQueryScreens(ClientPtr client)
+ scratch.height = SiSXineramadataPtr[i].height;
+ if(client->swapped) {
+ register int n;
+- swaps(&scratch.x_org, n);
+- swaps(&scratch.y_org, n);
+- swaps(&scratch.width, n);
+- swaps(&scratch.height, n);
++ _swaps(&scratch.x_org, n);
++ _swaps(&scratch.y_org, n);
++ _swaps(&scratch.width, n);
++ _swaps(&scratch.height, n);
+ }
+ WriteToClient(client, sz_XineramaScreenInfo, (char *)&scratch);
+ }
+@@ -2308,7 +2335,7 @@ SiSSProcXineramaQueryVersion (ClientPtr client)
+ {
+ REQUEST(xPanoramiXQueryVersionReq);
+ register int n;
+- swaps(&stuff->length,n);
++ _swaps(&stuff->length,n);
+ REQUEST_SIZE_MATCH (xPanoramiXQueryVersionReq);
+ return SiSProcXineramaQueryVersion(client);
+ }
+@@ -2318,7 +2345,7 @@ SiSSProcXineramaGetState(ClientPtr client)
+ {
+ REQUEST(xPanoramiXGetStateReq);
+ register int n;
+- swaps (&stuff->length, n);
++ _swaps (&stuff->length, n);
+ REQUEST_SIZE_MATCH(xPanoramiXGetStateReq);
+ return SiSProcXineramaGetState(client);
+ }
+@@ -2328,7 +2355,7 @@ SiSSProcXineramaGetScreenCount(ClientPtr client)
+ {
+ REQUEST(xPanoramiXGetScreenCountReq);
+ register int n;
+- swaps (&stuff->length, n);
++ _swaps (&stuff->length, n);
+ REQUEST_SIZE_MATCH(xPanoramiXGetScreenCountReq);
+ return SiSProcXineramaGetScreenCount(client);
+ }
+@@ -2338,7 +2365,7 @@ SiSSProcXineramaGetScreenSize(ClientPtr client)
+ {
+ REQUEST(xPanoramiXGetScreenSizeReq);
+ register int n;
+- swaps (&stuff->length, n);
++ _swaps (&stuff->length, n);
+ REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
+ return SiSProcXineramaGetScreenSize(client);
+ }
+@@ -2348,7 +2375,7 @@ SiSSProcXineramaIsActive(ClientPtr client)
+ {
+ REQUEST(xXineramaIsActiveReq);
+ register int n;
+- swaps (&stuff->length, n);
++ _swaps (&stuff->length, n);
+ REQUEST_SIZE_MATCH(xXineramaIsActiveReq);
+ return SiSProcXineramaIsActive(client);
+ }
+@@ -2358,7 +2385,7 @@ SiSSProcXineramaQueryScreens(ClientPtr client)
+ {
+ REQUEST(xXineramaQueryScreensReq);
+ register int n;
+- swaps (&stuff->length, n);
++ _swaps (&stuff->length, n);
+ REQUEST_SIZE_MATCH(xXineramaQueryScreensReq);
+ return SiSProcXineramaQueryScreens(client);
+ }
+@@ -2389,7 +2416,7 @@ SiSXineramaResetProc(ExtensionEntry* extEntry)
+ {
+ /* Called by CloseDownExtensions() */
+ if(SiSXineramadataPtr) {
+- Xfree(SiSXineramadataPtr);
++ free(SiSXineramadataPtr);
+ SiSXineramadataPtr = NULL;
+ }
+ }
+@@ -2454,7 +2481,7 @@ SiSXineramaExtensionInit(ScrnInfoPtr pScrn)
+ if(!pSiS->XineramaExtEntry) break;
+
+ if(!(SiSXineramadataPtr = (SiSXineramaData *)
+- xcalloc(SiSXineramaNumScreens, sizeof(SiSXineramaData)))) break;
++ calloc(SiSXineramaNumScreens, sizeof(SiSXineramaData)))) break;
+
+ SiSXineramaGeneration = serverGeneration;
+ success = TRUE;
+@@ -2493,10 +2520,10 @@ SiSFreeCRT2Structs(SISPtr pSiS)
+ while(pSiS->CRT2pScrn->monitor->Modes)
+ xf86DeleteMode(&pSiS->CRT2pScrn->monitor->Modes, pSiS->CRT2pScrn->monitor->Modes);
+ }
+- if(pSiS->CRT2pScrn->monitor->DDC) xfree(pSiS->CRT2pScrn->monitor->DDC);
+- xfree(pSiS->CRT2pScrn->monitor);
++ if(pSiS->CRT2pScrn->monitor->DDC) free(pSiS->CRT2pScrn->monitor->DDC);
++ free(pSiS->CRT2pScrn->monitor);
+ }
+- xfree(pSiS->CRT2pScrn);
++ free(pSiS->CRT2pScrn);
+ pSiS->CRT2pScrn = NULL;
+ }
+ }
+@@ -2902,22 +2929,22 @@ SiS_CheckKernelFB(ScrnInfoPtr pScrn)
+ Bool gotit = FALSE;
+
+ if(!ioctl(fd, SISFB_GET_INFO_SIZE, &sisfbinfosize)) {
+- if((mysisfbinfo = xalloc(sisfbinfosize))) {
++ if((mysisfbinfo = malloc(sisfbinfosize))) {
+ if(!ioctl(fd, (SISFB_GET_INFO | (sisfbinfosize << 16)), mysisfbinfo)) {
+ gotit = TRUE;
+ } else {
+- xfree(mysisfbinfo);
++ free(mysisfbinfo);
+ mysisfbinfo = NULL;
+ }
+ }
+ } else {
+- if((mysisfbinfo = xalloc(sizeof(*mysisfbinfo) + 16))) {
++ if((mysisfbinfo = malloc(sizeof(*mysisfbinfo) + 16))) {
+ if(!ioctl(fd, SISFB_GET_INFO_OLD, mysisfbinfo)) {
+ gotit = TRUE;
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Possibly old version of sisfb detected. Please update.\n");
+ } else {
+- xfree(mysisfbinfo);
++ free(mysisfbinfo);
+ mysisfbinfo = NULL;
+ }
+ }
+@@ -3056,7 +3083,7 @@ SiS_CheckKernelFB(ScrnInfoPtr pScrn)
+ }
+ }
+ }
+- xfree(mysisfbinfo);
++ free(mysisfbinfo);
+ mysisfbinfo = NULL;
+ }
+ close (fd);
+@@ -3216,7 +3243,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ pSiS->pInt = NULL;
+
+ /* Save PCI Domain Base */
+-#if XF86_VERSION_CURRENT < XF86_VERSION_NUMERIC(4,2,99,0,0)
++#if XF86_VERSION_CURRENT < XF86_VERSION_NUMERIC(4,2,99,0,0) || GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 12
+ pSiS->IODBase = 0;
+ #else
+ pSiS->IODBase = pScrn->domainIOBase;
+@@ -4078,7 +4105,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ }
+ #endif
+ if(!pSiS->BIOS) {
+- if(!(pSiS->BIOS = xcalloc(1, BIOS_SIZE))) {
++ if(!(pSiS->BIOS = calloc(1, BIOS_SIZE))) {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Could not allocate memory for video BIOS image\n");
+ } else {
+@@ -4173,7 +4200,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Could not find/read video BIOS\n");
+- xfree(pSiS->BIOS);
++ free(pSiS->BIOS);
+ pSiS->BIOS = NULL;
+ }
+ }
+@@ -5559,7 +5586,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ /* Do some MergedFB mode initialisation */
+ #ifdef SISMERGED
+ if(pSiS->MergedFB) {
+- pSiS->CRT2pScrn = xalloc(sizeof(ScrnInfoRec));
++ pSiS->CRT2pScrn = malloc(sizeof(ScrnInfoRec));
+ if(!pSiS->CRT2pScrn) {
+ SISErrorLog(pScrn, "Failed to allocate memory for 2nd pScrn, %s\n", mergeddisstr);
+ pSiS->MergedFB = FALSE;
+@@ -5592,7 +5619,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ } else {
+ SISErrorLog(pScrn, mergednocrt1, mergeddisstr);
+ }
+- if(pSiS->CRT2pScrn) xfree(pSiS->CRT2pScrn);
++ if(pSiS->CRT2pScrn) free(pSiS->CRT2pScrn);
+ pSiS->CRT2pScrn = NULL;
+ pSiS->MergedFB = FALSE;
+ }
+@@ -5639,7 +5666,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ } else {
+ SISErrorLog(pScrn, mergednocrt2, mergeddisstr);
+ }
+- if(pSiS->CRT2pScrn) xfree(pSiS->CRT2pScrn);
++ if(pSiS->CRT2pScrn) free(pSiS->CRT2pScrn);
+ pSiS->CRT2pScrn = NULL;
+ pSiS->MergedFB = FALSE;
+ }
+@@ -6016,7 +6043,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+
+ #ifdef SISMERGED
+ if(pSiS->MergedFB) {
+- pSiS->CRT2pScrn->monitor = xalloc(sizeof(MonRec));
++ pSiS->CRT2pScrn->monitor = malloc(sizeof(MonRec));
+ if(pSiS->CRT2pScrn->monitor) {
+ DisplayModePtr tempm = NULL, currentm = NULL, newm = NULL;
+ memcpy(pSiS->CRT2pScrn->monitor, pScrn->monitor, sizeof(MonRec));
+@@ -6025,10 +6052,10 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ pSiS->CRT2pScrn->monitor->id = (char *)crt2monname;
+ tempm = pScrn->monitor->Modes;
+ while(tempm) {
+- if(!(newm = xalloc(sizeof(DisplayModeRec)))) break;
++ if(!(newm = malloc(sizeof(DisplayModeRec)))) break;
+ memcpy(newm, tempm, sizeof(DisplayModeRec));
+- if(!(newm->name = xalloc(strlen(tempm->name) + 1))) {
+- xfree(newm);
++ if(!(newm->name = malloc(strlen(tempm->name) + 1))) {
++ free(newm);
+ break;
+ }
+ strcpy(newm->name, tempm->name);
+@@ -6070,7 +6097,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ } else {
+ SISErrorLog(pScrn, "Failed to allocate memory for CRT2 monitor, %s.\n",
+ mergeddisstr);
+- if(pSiS->CRT2pScrn) xfree(pSiS->CRT2pScrn);
++ if(pSiS->CRT2pScrn) free(pSiS->CRT2pScrn);
+ pSiS->CRT2pScrn = NULL;
+ pSiS->MergedFB = FALSE;
+ }
+@@ -6835,8 +6862,10 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ #ifdef SIS_USE_XAA
+ if(!pSiS->useEXA) {
+ if (!xf86LoadSubModule(pScrn, "xaa")) {
+- SISErrorLog(pScrn, "Could not load xaa module\n");
+- goto my_error_1;
++ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
++ "Falling back to shadowfb\n");
++ pSiS->NoAccel = 1;
++ pSiS->ShadowFB = 1;
+ }
+ }
+ #endif
+@@ -6855,7 +6884,6 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ }
+ }
+ #endif
+- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "2D acceleration enabled\n");
+ }
+
+ /* Load shadowfb (if needed) */
+@@ -6867,7 +6895,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
+ }
+
+ /* Load the dri and glx modules if requested. */
+-#ifdef XF86DRI
++#ifdef SISDRI
+ if(pSiS->loadDRI) {
+ if(!xf86LoaderCheckSymbol("DRIScreenInit")) {
+ if(xf86LoadSubModule(pScrn, "dri")) {
+@@ -7454,7 +7482,7 @@ SISVESASaveRestore(ScrnInfoPtr pScrn, vbeSaveRestoreFunction function)
+ (function == MODE_SAVE)) {
+ /* don't rely on the memory not being touched */
+ if(!pSiS->pstate) {
+- pSiS->pstate = xalloc(pSiS->stateSize);
++ pSiS->pstate = malloc(pSiS->stateSize);
+ }
+ memcpy(pSiS->pstate, pSiS->state, pSiS->stateSize);
+ }
+@@ -8675,7 +8703,7 @@ SISScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+
+ if(pSiS->ShadowFB) {
+ pSiS->ShadowPitch = BitmapBytePad(pScrn->bitsPerPixel * width);
+- pSiS->ShadowPtr = xalloc(pSiS->ShadowPitch * height);
++ pSiS->ShadowPtr = malloc(pSiS->ShadowPitch * height);
+ displayWidth = pSiS->ShadowPitch / (pScrn->bitsPerPixel >> 3);
+ FBStart = pSiS->ShadowPtr;
+ } else {
+@@ -8703,7 +8731,7 @@ SISScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+
+ pSiS->cmdQueueLen = 0; /* Force an EngineIdle() at start */
+
+-#ifdef XF86DRI
++#ifdef SISDRI
+ if(pSiS->loadDRI) {
+ #ifdef SISDUALHEAD
+ /* No DRI in dual head mode */
+@@ -8849,14 +8877,14 @@ SISScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+
+ pSiS->CRT2ColNum = 1 << pScrn->rgbBits;
+
+- if((pSiS->crt2gcolortable = xalloc(pSiS->CRT2ColNum * 2 * sizeof(LOCO)))) {
++ if((pSiS->crt2gcolortable = malloc(pSiS->CRT2ColNum * 2 * sizeof(LOCO)))) {
+ pSiS->crt2colors = &pSiS->crt2gcolortable[pSiS->CRT2ColNum];
+- if((pSiS->crt2cindices = xalloc(256 * sizeof(int)))) {
++ if((pSiS->crt2cindices = malloc(256 * sizeof(int)))) {
+ int i = pSiS->CRT2ColNum;
+ SISCalculateGammaRampCRT2(pScrn);
+ while(i--) pSiS->crt2cindices[i] = i;
+ } else {
+- xfree(pSiS->crt2gcolortable);
++ free(pSiS->crt2gcolortable);
+ pSiS->crt2gcolortable = NULL;
+ pSiS->CRT2SepGamma = FALSE;
+ }
+@@ -9016,7 +9044,7 @@ SISScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+ }
+ #endif
+
+-#ifdef XF86DRI
++#ifdef SISDRI
+ if(pSiS->loadDRI) {
+ if(pSiS->directRenderingEnabled) {
+ /* Now that mi, drm and others have done their thing,
+@@ -9322,9 +9350,22 @@ SISMergedPointerMoved(int scrnIndex, int x, int y)
+ }
+ }
+ if(doit) {
+- UpdateCurrentTime();
+ sigstate = xf86BlockSIGIO();
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 15
++ {
++ double dx = x, dy = y;
++ miPointerSetPosition(inputInfo.pointer, Absolute, &dx, &dy);
++ x = (int)dx;
++ y = (int)dy;
++ }
++#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 13
++ miPointerSetPosition(inputInfo.pointer, Absolute, x, y);
++#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 5
++ miPointerSetPosition(inputInfo.pointer, x, y);
++#else
++ UpdateCurrentTime();
+ miPointerAbsoluteCursor(x, y, currentTime.milliseconds);
++#endif
+ xf86UnblockSIGIO(sigstate);
+ return;
+ }
+@@ -9737,7 +9778,7 @@ SISEnterVT(int scrnIndex, int flags)
+
+ SISAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
+
+-#ifdef XF86DRI
++#ifdef SISDRI
+ if(pSiS->directRenderingEnabled) {
+ DRIUnlock(screenInfo.screens[scrnIndex]);
+ }
+@@ -9763,7 +9804,7 @@ SISLeaveVT(int scrnIndex, int flags)
+ {
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ SISPtr pSiS = SISPTR(pScrn);
+-#ifdef XF86DRI
++#ifdef SISDRI
+ ScreenPtr pScreen;
+
+ if(pSiS->directRenderingEnabled) {
+@@ -9847,7 +9888,7 @@ SISCloseScreen(int scrnIndex, ScreenPtr pScreen)
+ SiSCtrlExtUnregister(pSiS, pScrn->scrnIndex);
+ }
+
+-#ifdef XF86DRI
++#ifdef SISDRI
+ if(pSiS->directRenderingEnabled) {
+ SISDRICloseScreen(pScreen);
+ pSiS->directRenderingEnabled = FALSE;
+@@ -9941,7 +9982,7 @@ SISCloseScreen(int scrnIndex, ScreenPtr pScreen)
+ if(pSiS->useEXA) {
+ if(pSiS->EXADriverPtr) {
+ exaDriverFini(pScreen);
+- xfree(pSiS->EXADriverPtr);
++ free(pSiS->EXADriverPtr);
+ pSiS->EXADriverPtr = NULL;
+ pSiS->exa_scratch = NULL;
+ }
+@@ -9954,33 +9995,33 @@ SISCloseScreen(int scrnIndex, ScreenPtr pScreen)
+ }
+
+ if(pSiS->ShadowPtr) {
+- xfree(pSiS->ShadowPtr);
++ free(pSiS->ShadowPtr);
+ pSiS->ShadowPtr = NULL;
+ }
+
+ if(pSiS->DGAModes) {
+- xfree(pSiS->DGAModes);
++ free(pSiS->DGAModes);
+ pSiS->DGAModes = NULL;
+ }
+
+ if(pSiS->adaptor) {
+- xfree(pSiS->adaptor);
++ free(pSiS->adaptor);
+ pSiS->adaptor = NULL;
+ pSiS->ResetXv = pSiS->ResetXvGamma = pSiS->ResetXvDisplay = NULL;
+ }
+
+ if(pSiS->blitadaptor) {
+- xfree(pSiS->blitadaptor);
++ free(pSiS->blitadaptor);
+ pSiS->blitadaptor = NULL;
+ }
+
+ if(pSiS->crt2gcolortable) {
+- xfree(pSiS->crt2gcolortable);
++ free(pSiS->crt2gcolortable);
+ pSiS->crt2gcolortable = NULL;
+ }
+
+ if(pSiS->crt2cindices) {
+- xfree(pSiS->crt2cindices);
++ free(pSiS->crt2cindices);
+ pSiS->crt2cindices = NULL;
+ }
+
+diff --git a/src/sis_memcpy.c b/src/sis_memcpy.c
+index 6ad62e8..3634401 100644
+--- a/src/sis_memcpy.c
++++ b/src/sis_memcpy.c
+@@ -638,13 +638,13 @@ SiS_AllocBuffers(ScrnInfoPtr pScrn, UChar **buf1, UChar **buf2, UChar **buf3)
+ (*buf1) = (UChar *)pSiS->FbBase + offset;
+ (*buf1) = (UChar *)(((ULong)(*buf1) + 31) & ~31);
+
+- if(!((*buf2) = (UChar *)xalloc(BUFFERSIZE + 15))) {
++ if(!((*buf2) = (UChar *)malloc(BUFFERSIZE + 15))) {
+ SISFreeFBMemory(pScrn, &handle);
+ return NULL;
+ }
+
+- if(!((*buf3) = (UChar *)xalloc(BUFFERSIZE + 15))) {
+- xfree((*buf2));
++ if(!((*buf3) = (UChar *)malloc(BUFFERSIZE + 15))) {
++ free((*buf2));
+ SISFreeFBMemory(pScrn, &handle);
+ return NULL;
+ }
+@@ -1098,8 +1098,8 @@ SiSVidCopyInitGen(ScreenPtr pScreen, SISMCFuncData *MCFunctions, vidCopyFunc *UM
+
+ /* Free buffers */
+ SISFreeFBMemory(pScrn, &fbhandle);
+- xfree(buf2);
+- xfree(buf3);
++ free(buf2);
++ free(buf3);
+
+ xf86DrvMsg(pScrn->scrnIndex, X_PROBED,
+ "Using %s method for aligned data transfers %s video RAM\n",
+diff --git a/src/sis_opt.c b/src/sis_opt.c
+index 3517549..3fa12c9 100644
+--- a/src/sis_opt.c
++++ b/src/sis_opt.c
+@@ -448,7 +448,7 @@ SiSOptions(ScrnInfoPtr pScrn)
+ xf86CollectOptions(pScrn, NULL);
+
+ /* Process the options */
+- if(!(pSiS->Options = xalloc(sizeof(SISOptions)))) return;
++ if(!(pSiS->Options = malloc(sizeof(SISOptions)))) return;
+
+ memcpy(pSiS->Options, SISOptions, sizeof(SISOptions));
+
+@@ -480,7 +480,7 @@ SiSOptions(ScrnInfoPtr pScrn)
+ #endif
+ pSiS->ShadowFB = FALSE;
+ pSiS->loadDRI = FALSE;
+-#ifdef XF86DRI
++#ifdef SISDRI
+ pSiS->agpWantedPages = AGP_PAGES;
+ #endif
+ pSiS->VESA = -1;
+@@ -888,7 +888,7 @@ SiSOptions(ScrnInfoPtr pScrn)
+ if((strptr = (char *)xf86GetOptValString(pSiS->Options, OPTION_CRT2POS))) {
+ int result;
+ Bool valid = FALSE;
+- char *tempstr = xalloc(strlen(strptr) + 1);
++ char *tempstr = malloc(strlen(strptr) + 1);
+ result = sscanf(strptr, "%s %d", tempstr, &ival);
+ if(result >= 1) {
+ if(!xf86NameCmp(tempstr,"LeftOf")) {
+@@ -946,18 +946,18 @@ SiSOptions(ScrnInfoPtr pScrn)
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Except for \"Clone\", the parameter may be followed by an integer.\n");
+ }
+- xfree(tempstr);
++ free(tempstr);
+ }
+ if((strptr = (char *)xf86GetOptValString(pSiS->Options, OPTION_METAMODES))) {
+- pSiS->MetaModes = xalloc(strlen(strptr) + 1);
++ pSiS->MetaModes = malloc(strlen(strptr) + 1);
+ if(pSiS->MetaModes) memcpy(pSiS->MetaModes, strptr, strlen(strptr) + 1);
+ }
+ if((strptr = (char *)xf86GetOptValString(pSiS->Options, OPTION_CRT2HSYNC))) {
+- pSiS->CRT2HSync = xalloc(strlen(strptr) + 1);
++ pSiS->CRT2HSync = malloc(strlen(strptr) + 1);
+ if(pSiS->CRT2HSync) memcpy(pSiS->CRT2HSync, strptr, strlen(strptr) + 1);
+ }
+ if((strptr = (char *)xf86GetOptValString(pSiS->Options, OPTION_CRT2VREFRESH))) {
+- pSiS->CRT2VRefresh = xalloc(strlen(strptr) + 1);
++ pSiS->CRT2VRefresh = malloc(strlen(strptr) + 1);
+ if(pSiS->CRT2VRefresh) memcpy(pSiS->CRT2VRefresh, strptr, strlen(strptr) + 1);
+ }
+ if((strptr = (char *)xf86GetOptValString(pSiS->Options, OPTION_MERGEDDPI))) {
+@@ -2034,7 +2034,7 @@ SiSOptions(ScrnInfoPtr pScrn)
+ }
+ }
+
+-#ifdef XF86DRI
++#ifdef SISDRI
+ /* DRI */
+ from = X_DEFAULT;
+ if(xf86GetOptValBool(pSiS->Options, OPTION_DRI, &pSiS->loadDRI)) {
+diff --git a/src/sis_utility.c b/src/sis_utility.c
+index a9bcd2b..eda194f 100644
+--- a/src/sis_utility.c
++++ b/src/sis_utility.c
+@@ -34,8 +34,6 @@
+ #endif
+
+ #include "sis.h"
+-#define NEED_REPLIES
+-#define NEED_EVENTS
+ #include <X11/X.h>
+ #include "dixstruct.h"
+
+@@ -1882,10 +1880,10 @@ SiSProcSiSCtrlQueryVersion(ClientPtr client)
+ rep.majorVersion = SISCTRL_MAJOR_VERSION;
+ rep.minorVersion = SISCTRL_MINOR_VERSION;
+ if(client->swapped) {
+- swaps(&rep.sequenceNumber, n);
+- swapl(&rep.length, n);
+- swaps(&rep.majorVersion, n);
+- swaps(&rep.minorVersion, n);
++ _swaps(&rep.sequenceNumber, n);
++ _swapl(&rep.length, n);
++ _swaps(&rep.majorVersion, n);
++ _swaps(&rep.minorVersion, n);
+ }
+ WriteToClient(client, sizeof(xSiSCtrlQueryVersionReply), (char *)&rep);
+ return (client->noClientException);
+@@ -1926,15 +1924,15 @@ SiSProcSiSCtrlCommand(ClientPtr client)
+ rep.sequenceNumber = client->sequence;
+
+ if(client->swapped) {
+- swaps(&rep.sequenceNumber, n);
+- swapl(&rep.length, n);
+- swapl(&rep.screen, n);
+- swapl(&rep.sdc_id, n);
+- swapl(&rep.sdc_command, n);
+- swapl(&rep.sdc_result_header, n);
++ _swaps(&rep.sequenceNumber, n);
++ _swapl(&rep.length, n);
++ _swapl(&rep.screen, n);
++ _swapl(&rep.sdc_id, n);
++ _swapl(&rep.sdc_command, n);
++ _swapl(&rep.sdc_result_header, n);
+ for(i = 0; i < SDC_NUM_PARM_RESULT; i++) {
+- swapl(&rep.sdc_parm[i], n);
+- swapl(&rep.sdc_result[i], n);
++ _swapl(&rep.sdc_parm[i], n);
++ _swapl(&rep.sdc_result[i], n);
+ }
+ }
+ WriteToClient(client, sizeof(xSiSCtrlCommandReply), (char *)&rep);
+@@ -1961,7 +1959,7 @@ SiSSProcSiSCtrlQueryVersion(ClientPtr client)
+ {
+ REQUEST(xSiSCtrlQueryVersionReq);
+ register int n;
+- swaps(&stuff->length, n);
++ _swaps(&stuff->length, n);
+ REQUEST_SIZE_MATCH(xSiSCtrlQueryVersionReq);
+ return SiSProcSiSCtrlQueryVersion(client);
+ }
+@@ -1972,14 +1970,14 @@ SiSSProcSiSCtrlCommand(ClientPtr client)
+ REQUEST(xSiSCtrlCommandReq);
+ register int n;
+ int i;
+- swaps(&stuff->length, n);
+- swapl(&stuff->screen, n);
+- swapl(&stuff->sdc_id, n);
+- swapl(&stuff->sdc_command, n);
+- swapl(&stuff->sdc_result_header, n);
++ _swaps(&stuff->length, n);
++ _swapl(&stuff->screen, n);
++ _swapl(&stuff->sdc_id, n);
++ _swapl(&stuff->sdc_command, n);
++ _swapl(&stuff->sdc_result_header, n);
+ for(i = 0; i < SDC_NUM_PARM_RESULT; i++) {
+- swapl(&stuff->sdc_parm[i], n);
+- swapl(&stuff->sdc_result[i], n);
++ _swapl(&stuff->sdc_parm[i], n);
++ _swapl(&stuff->sdc_result[i], n);
+ }
+ REQUEST_SIZE_MATCH(xSiSCtrlCommandReq);
+ return SiSProcSiSCtrlCommand(client);
+@@ -2007,7 +2005,7 @@ SiSCtrlResetProc(ExtensionEntry* extEntry)
+ * in SiSCtrlExtUnregister())
+ */
+ if(extEntry->extPrivate) {
+- xfree(extEntry->extPrivate);
++ free(extEntry->extPrivate);
+ extEntry->extPrivate = NULL;
+ }
+ }
+@@ -2028,7 +2026,7 @@ SiSCtrlExtInit(ScrnInfoPtr pScrn)
+
+ if(!(myext = CheckExtension(SISCTRL_PROTOCOL_NAME))) {
+
+- if(!(myctrl = xcalloc(sizeof(xSiSCtrlScreenTable), 1)))
++ if(!(myctrl = calloc(sizeof(xSiSCtrlScreenTable), 1)))
+ return;
+
+ if(!(myext = AddExtension(SISCTRL_PROTOCOL_NAME, 0, 0,
+@@ -2038,7 +2036,7 @@ SiSCtrlExtInit(ScrnInfoPtr pScrn)
+ StandardMinorOpcode))) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Failed to add SISCTRL extension\n");
+- xfree(myctrl);
++ free(myctrl);
+ return;
+ }
+
+diff --git a/src/sis_vga.c b/src/sis_vga.c
+index 3f6219b..4c887b8 100644
+--- a/src/sis_vga.c
++++ b/src/sis_vga.c
+@@ -1429,7 +1429,7 @@ SiSVGASaveFonts(ScrnInfoPtr pScrn)
+ attr10 = SiS_ReadAttr(pSiS, 0x10);
+ if(attr10 & 0x01) return;
+
+- if(!(pSiS->fonts = xalloc(SIS_FONTS_SIZE * 2))) {
++ if(!(pSiS->fonts = malloc(SIS_FONTS_SIZE * 2))) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Could not save console fonts, mem allocation failed\n");
+ return;
+@@ -1716,8 +1716,8 @@ SiSVGAMapMem(ScrnInfoPtr pScrn)
+
+ #if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(4,3,0,0,0)
+ #if XSERVER_LIBPCIACCESS
+- pSiS->VGAMemBase = xf86MapDomainMemory(pScrn->scrnIndex, VIDMEM_MMIO_32BIT,
+- pSiS->PciInfo, pSiS->VGAMapPhys, pSiS->VGAMapSize);
++ (void) pci_device_map_legacy(pSiS->PciInfo, pSiS->VGAMapPhys, pSiS->VGAMapSize,
++ PCI_DEV_MAP_FLAG_WRITABLE, &pSiS->VGAMemBase);
+ #else
+ pSiS->VGAMemBase = xf86MapDomainMemory(pScrn->scrnIndex, VIDMEM_MMIO_32BIT,
+ pSiS->PciTag, pSiS->VGAMapPhys, pSiS->VGAMapSize);
+@@ -1737,7 +1737,12 @@ SiSVGAUnmapMem(ScrnInfoPtr pScrn)
+
+ if(pSiS->VGAMemBase == NULL) return;
+
++#if XSERVER_LIBPCIACCESS
++ (void) pci_device_unmap_legacy(pSiS->PciInfo, pSiS->VGAMemBase, pSiS->VGAMapSize);
++#else
+ xf86UnMapVidMem(pScrn->scrnIndex, pSiS->VGAMemBase, pSiS->VGAMapSize);
++#endif
++
+ pSiS->VGAMemBase = NULL;
+ }
+ #endif
+diff --git a/src/sis_video.c b/src/sis_video.c
+index 7322efb..2006858 100644
+--- a/src/sis_video.c
++++ b/src/sis_video.c
+@@ -326,7 +326,7 @@ SISInitVideo(ScreenPtr pScreen)
+ if(newAdaptor) size++;
+ if(newBlitAdaptor) size++;
+
+- newAdaptors = xalloc(size * sizeof(XF86VideoAdaptorPtr*));
++ newAdaptors = malloc(size * sizeof(XF86VideoAdaptorPtr*));
+ if(newAdaptors) {
+ if(num_adaptors) {
+ memcpy(newAdaptors, adaptors, num_adaptors * sizeof(XF86VideoAdaptorPtr));
+@@ -356,7 +356,7 @@ SISInitVideo(ScreenPtr pScreen)
+ }
+
+ if(newAdaptors) {
+- xfree(newAdaptors);
++ free(newAdaptors);
+ }
+ }
+
+@@ -877,7 +877,7 @@ SISSetupImageVideo(ScreenPtr pScreen)
+ }
+ #endif
+
+- if(!(adapt = xcalloc(1, sizeof(XF86VideoAdaptorRec) +
++ if(!(adapt = calloc(1, sizeof(XF86VideoAdaptorRec) +
+ sizeof(SISPortPrivRec) +
+ sizeof(DevUnion)))) {
+ return NULL;
+@@ -4067,7 +4067,7 @@ SISSetupBlitVideo(ScreenPtr pScreen)
+ }
+ #endif
+
+- if(!(adapt = xcalloc(1, sizeof(XF86VideoAdaptorRec) +
++ if(!(adapt = calloc(1, sizeof(XF86VideoAdaptorRec) +
+ (sizeof(DevUnion) * NUM_BLIT_PORTS) +
+ sizeof(SISBPortPrivRec)))) {
+ return NULL;
+diff --git a/src/sispcirename.h b/src/sispcirename.h
+index c4beac6..a354ac4 100644
+--- a/src/sispcirename.h
++++ b/src/sispcirename.h
+@@ -29,11 +29,40 @@
+ #ifndef SISPCIRENAME_H
+ #define SISPCIRENAME_H
+
++#include <stdint.h>
++
+ enum region_type {
+ REGION_MEM,
+ REGION_IO
+ };
+
++#include "xf86Module.h"
++
++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 12
++
++#if (defined(__alpha__) || defined(__ia64__)) && defined (linux)
++#define PCI_DOM_MASK 0x01fful
++#else
++#define PCI_DOM_MASK 0x0ffu
++#endif
++
++#ifndef PCI_DOM_MASK
++# define PCI_DOM_MASK 0x0ffu
++#endif
++#define PCI_DOMBUS_MASK (((PCI_DOM_MASK) << 8) | 0x0ffu)
++
++static inline uint32_t
++pciTag(int busnum, int devnum, int funcnum)
++{
++ uint32_t tag;
++ tag = (busnum & (PCI_DOMBUS_MASK)) << 16;
++ tag |= (devnum & 0x00001fu) << 11;
++ tag |= (funcnum & 0x000007u) << 8;
++
++ return tag;
++}
++#endif /* GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 12 */
++
+ #ifndef XSERVER_LIBPCIACCESS
+
+ /* pciVideoPtr */
+diff --git a/src/vgatypes.h b/src/vgatypes.h
+index 4be31e4..d6e7b6e 100644
+--- a/src/vgatypes.h
++++ b/src/vgatypes.h
+@@ -69,8 +69,9 @@ typedef unsigned int BOOLEAN;
+
+ #define SISIOMEMTYPE
+
+-#ifdef SIS_LINUX_KERNEL
+ typedef unsigned long SISIOADDRESS;
++
++#ifdef SIS_LINUX_KERNEL
+ #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,8)
+ #include <linux/types.h> /* Need __iomem */
+ #undef SISIOMEMTYPE
+@@ -78,15 +79,6 @@ typedef unsigned long SISIOADDRESS;
+ #endif
+ #endif
+
+-#ifdef SIS_XORG_XF86
+-#if XF86_VERSION_CURRENT < XF86_VERSION_NUMERIC(4,2,0,0,0)
+-typedef unsigned long IOADDRESS;
+-typedef unsigned long SISIOADDRESS;
+-#else
+-typedef IOADDRESS SISIOADDRESS;
+-#endif
+-#endif
+-
+ typedef enum _SIS_CHIP_TYPE {
+ SIS_VGALegacy = 0,
+ SIS_530,