From cafd0967739599f2d7527dd8fe6af6b3fa797c69 Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Sat, 20 Aug 2011 17:22:40 -0500
Subject: oss: update oss to 4.2

---
 abs/extra/oss/PKGBUILD                  | 284 ++++++-----------------
 abs/extra/oss/hg-fix-devc.diff          | 397 --------------------------------
 abs/extra/oss/hg-latest-fixes.diff      | 104 ---------
 abs/extra/oss/oss.install               |  59 +++--
 abs/extra/oss/oss.rc                    |  32 ---
 abs/extra/oss/oss.rm-init-scripts.patch |  52 -----
 abs/extra/oss/rc-script                 |  30 +++
 abs/extra/oss/remove-hal.patch          |  20 ++
 abs/extra/oss/rm-init-scripts.patch     |  52 +++++
 abs/extra/oss/soundon.patch             |  28 +++
 10 files changed, 243 insertions(+), 815 deletions(-)
 delete mode 100644 abs/extra/oss/hg-fix-devc.diff
 delete mode 100644 abs/extra/oss/hg-latest-fixes.diff
 delete mode 100644 abs/extra/oss/oss.rc
 delete mode 100644 abs/extra/oss/oss.rm-init-scripts.patch
 create mode 100644 abs/extra/oss/rc-script
 create mode 100644 abs/extra/oss/remove-hal.patch
 create mode 100644 abs/extra/oss/rm-init-scripts.patch
 create mode 100644 abs/extra/oss/soundon.patch

diff --git a/abs/extra/oss/PKGBUILD b/abs/extra/oss/PKGBUILD
index d568ff3..cb9e843 100644
--- a/abs/extra/oss/PKGBUILD
+++ b/abs/extra/oss/PKGBUILD
@@ -1,225 +1,87 @@
-# $Id: PKGBUILD,v 1.8 2009/02/11 17:22:38 thotypous Exp $
-# Maintainer: Paulo Matias <matiasΘarchlinux-br·org>
-
-pkgname="oss"
-pkgver="4.1_1051"
-pkgrel=7
+# $Id: PKGBUILD 54037 2011-08-12 13:13:29Z bluewind $
+# Maintainer: Florian Pritz <bluewind@xinu.at>
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=oss
+pkgver=4.2_2005
+pkgrel=1
 pkgdesc="Open Sound System UNIX audio architecture"
 arch=('i686' 'x86_64')
 url="http://developer.opensound.com/"
 license=('GPL2')
-depends=('gcc' 'make' 'kernel-headers' 'module-init-tools' 'libtool' 'sed')
-makedepends=('pkgconfig' 'gawk' 'gtk2')
-conflicts=('oss-linux' 'oss-linux-free' 'oss-testing')
-install='oss.install'
+depends=('gcc' 'make' 'kernel26-headers' 'module-init-tools' 'libtool' 'sed')
+makedepends=('pkgconfig' 'gawk' 'gtk2' 'findutils')
+optdepends=('gtk2: for graphical mixer (ossxmix)')
+conflicts=('oss-linux' 'oss-linux-free' 'oss-testing' 'libflashsupport' 'libflashsupport-pulse' 'libflashsupport-oss')
+replaces=('libflashsupport-oss')
+install=oss.install
+backup=('usr/lib/oss/soundon.user')
 source=("http://www.4front-tech.com/developer/sources/stable/gpl/oss-v${pkgver/_*}-build${pkgver/*_}-src-gpl.tar.bz2"
-        'oss.rm-init-scripts.patch' 'oss.rc' 'oss.install' 'hg-latest-fixes.diff')
-
-
-optdepends=('gtk2: for graphical mixer (ossxmix)'
-            'hal: for automatic USB audio configuration'
-            'libflashsupport-oss: for Flash plugin support')
+	"rm-init-scripts.patch"
+	"rc-script"
+	"soundon.patch"
+	"remove-hal.patch"
+	)
+md5sums=('964b1ec63b48b22baba6688fe2fc0633'
+         'b9a380a0ac8896390d71ac13676f27e1'
+         'cbcbce5c03b127df5eafa8faa091492c'
+         '65f07fe241bfbf912f76d8b6d8f276b5'
+         'cd7f1dc6166bba8c94d96f3a28e948a5')
 
 build() {
-    _dir="oss-v${pkgver/_*}-build${pkgver/*_}-src-gpl"
-
-    cd "$srcdir/$_dir"
-
-    # Apply patchs from hg.
-    msg "Applying latest fixes from hg."
-    patch -p1 < "$srcdir/hg-latest-fixes.diff" || return 1
-
-    cd "$srcdir"
-
-    # Avoid these flags conflicting with OSS build system.
-    unset CFLAGS
-    unset OSFLAGS
-    unset LIBRARIES
-
-    # Remove libflashsupport, as it belongs to a separate package.
-    rm -f "$srcdir/$_dir/oss/lib/flashsupport.c" &> /dev/null
-
-    msg "Preparing the build environment."
-
-    if [ ! -d build ]; then
-        # Create build directory and configure
-        mkdir build && cd build
-        "$srcdir/$_dir/configure" --enable-libsalsa=NO || return 1
-    else
-        # Change to existing build directory
-        cd build
-    fi
-
-    msg "Building OSS."
-    make build || return 1
-
-    msg "Patching init scripts."
-    cd "$srcdir/build/prototype"
-    rm usr/lib/oss/etc/S89oss
-    patch -b -p0 < "$srcdir/oss.rm-init-scripts.patch" || return 1
-
-    msg "Copying files."
-    cp -R * "$pkgdir"
-    install -D -m755 "$srcdir/oss.rc" "$pkgdir/etc/rc.d/oss"
-################################
-PREFIX=$startdir/pkg
-OSSLIBDIR=$PREFIX/usr/lib/oss
-UNAME=2.6.28-LinHES
-KERNELDIR=/lib/modules/$UNAME/build
-mkdir -p ${PREFIX}/lib/modules/$UNAME/kernel/oss
-
-cd $OSSLIBDIR/build
-rm -f $OSSLIBDIR/.cuckoo_installed
-   REGPARM=REGPARM
-   rm -rf $OSSLIBDIR/objects
-   ln -s $OSSLIBDIR/objects.regparm $OSSLIBDIR/objects
-   rm -rf $OSSLIBDIR/modules
-   ln -s $OSSLIBDIR/modules.regparm $OSSLIBDIR/modules
-
-echo OSS build environment set up for $REGPARM kernels
-
-if ! test -f $OSSLIBDIR/objects/osscore.o
-then
-    echo Error: OSS core module for $REGPARM kernel is not available in $OSSLIBDIR/objects
-    exit 1
-fi
-OK=1
-
-if ! test -d /lib/modules/$UNAME
-then
-    echo Error: Kernel directory /lib/modules/$UNAME does not exist
-    exit 1
-fi
-
-cp -f ../objects/osscore.o osscore_mainline.o
-
-ln -sf ../include/sys/*.h ../include/sys/ossddk .
-
-rm -f Makefile
-ln -s Makefile.osscore Makefile
-
-echo Building module osscore
-
-if ! make KERNELDIR=$KERNELDIR> build.list 2>&1
-then
-    echo Failed to compile OSS
-    cat build.list
-    exit 2
-fi
-
-if ! test -d /lib/modules/$UNAME/kernel/oss
-then
-  mkdir /lib/modules/$UNAME/kernel/oss
-fi
-
-if ! test -d /lib/modules/$UNAME/kernel/oss
-then
-    echo OSS module directory /lib/modules/$UNAME/kernel/oss does not exist.
-    exit 3
-fi
-
-if ! ld -r osscore.ko osscore_mainline.o -o /lib/modules/$UNAME/kernel/oss/osscore.ko
-then
-    echo Linking the osscore module failed
-    exit 5
-fi
-
-if test -f Module.symvers
-then
-    #Take generated symbol information and add it to module.inc
-    rm -f osscore_symbols.inc
-    echo "static const struct modversion_info ____versions[]" >> osscore_symbols.inc
-    echo " __attribute__((used))" >> osscore_symbols.inc
-    echo "__attribute__((section(\"__versions\"))) = {" >> osscore_symbols.inc
-    sed -e "s:^:{:" -e "s:\t:, \":" -e "s:\t\(.\)*:\"},:" < Module.symvers >> osscore_symbols.inc
-    echo "};" >> osscore_symbols.inc
-else
-    echo > osscore_symbols.inc
-fi
-
-#depmod -a
-
-for n in ../modules/*.o
-do
-    N=`basename $n .o`
-    echo Building module $N
-
-    rm -f $N_mainline.o Makefile
-
-    sed "s/MODNAME/$N/" < Makefile.tmpl > Makefile
-    ln -s $n $N_mainline.o
-
-    if ! make KERNELDIR=$KERNELDIR > build.list 2>&1
-    then
-        echo Compiling module $N failed
-        cat build.list
-        exit 4
-    fi
-
-    if ! ld -r $N.ko $N_mainline.o -o /lib/modules/$UNAME/kernel/oss/$N.ko
-    then
-        echo Linking $N module failed
-        exit 6
-    fi
-
-    rm -f $N_mainline.o
-    make clean
-
-done
-rm -f Makefile
-
-cp -rp /lib/modules/$UNAME/kernel/oss/*  ${PREFIX}/lib/modules/$UNAME/kernel/oss/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+	_dir=oss-v${pkgver/_*}-build${pkgver/*_}-src-gpl
+	cd "${srcdir}/${_dir}"
+
+	# Avoid these flags conflicting with OSS build system.
+	unset CFLAGS
+	unset LDFLAGS
+	unset OSFLAGS
+	unset LIBRARIES
+	export NO_WARNING_CHECKS=yes
+
+	# Compile libflashsupport.so only in packaging time, so we avoid
+	# conflicts with other packages and ease package management.
+	msg "Building libflashsupport.so."
+	cd oss/lib
+	gcc -shared -fPIC -O2 -Wall -Werror flashsupport.c -o libflashsupport.so
+
+	msg "Preparing the build environment."
+	cd "${srcdir}"
+
+	# Create build directory and configure
+	rm -rf build
+	mkdir build && cd build
+	"${srcdir}/${_dir}/configure" --enable-libsalsa=NO --regparm
+
+	msg "Building OSS."
+	make build
+
+	msg "Patching init scripts."
+	cd "${srcdir}/build/prototype"
+	rm usr/lib/oss/etc/S89oss
+	patch -p0 -i "${srcdir}/rm-init-scripts.patch"
+	patch -p0 -i "${srcdir}/soundon.patch"
+	# remove hal dependency
+	patch -p0 -i "${srcdir}/remove-hal.patch"
+	rm -rf usr/lib/oss/scripts/oss_usb-create-devices usr/lib/oss/scripts/90-oss_usb-create-device.fdi
+}
 
+package() {
+	_dir=oss-v${pkgver/_*}-build${pkgver/*_}-src-gpl
+	cd "${srcdir}/${_dir}"
 
+	msg "Copying files."
 
+	# Install libflashsupport.so
+	install -dm755 "$pkgdir/usr/lib"
+	ln -s oss/lib/libflashsupport.so "$pkgdir/usr/lib/libflashsupport.so"
 
+	cd "${srcdir}/build/prototype"
+	cp -a * "${pkgdir}"
 
+	chmod -R a+r "${pkgdir}" # All files can have read permission (FS#13815)
+	find "${pkgdir}" -type d -exec chmod a+x '{}' \; # Make namcap happy
+	install -Dm755 "${srcdir}/rc-script" "${pkgdir}/etc/rc.d/oss"
 }
 
diff --git a/abs/extra/oss/hg-fix-devc.diff b/abs/extra/oss/hg-fix-devc.diff
deleted file mode 100644
index 8e8b4cf..0000000
--- a/abs/extra/oss/hg-fix-devc.diff
+++ /dev/null
@@ -1,397 +0,0 @@
-
-# HG changeset patch
-# User Hannu Savolainen <hannu@opensound.com>
-# Date 1227908228 -7200
-# Node ID 5a75f44925143c924a51dc474119035f4b08bf06
-# Parent e138663cd973a1e35950fddf299017bfefd16bdc
-Fixed devc=NULL problems left after changeset 502
-
---- a/attic/drv/oss_allegro/oss_allegro.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/attic/drv/oss_allegro/oss_allegro.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -876,7 +876,7 @@ init_allegro (allegro_devc * devc)
- 					&allegro_audio_driver,
- 					sizeof (audiodrv_t),
- 					caps,
--					AFMT_U8 | AFMT_S16_LE, NULL, -1)) < 0)
-+					AFMT_U8 | AFMT_S16_LE, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 0;
---- a/attic/drv/oss_als3xx/oss_als3xx.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/attic/drv/oss_als3xx/oss_als3xx.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -740,7 +740,7 @@ init_als300 (als300_devc * devc)
- 					&als300_audio_driver,
- 					sizeof (audiodrv_t),
- 					caps,
--					AFMT_U8 | AFMT_S16_LE, NULL, -1)) < 0)
-+					AFMT_U8 | AFMT_S16_LE, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 0;
---- a/attic/drv/oss_als4k/oss_als4k.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/attic/drv/oss_als4k/oss_als4k.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -1018,7 +1018,7 @@ init_als4000 (als4000_devc * devc)
- 					&als4000_audio_driver,
- 					sizeof (audiodrv_t),
- 					caps,
--					AFMT_U8 | AFMT_S16_LE, NULL, -1)) < 0)
-+					AFMT_U8 | AFMT_S16_LE, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 0;
---- a/attic/drv/oss_maestro/oss_maestro.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/attic/drv/oss_maestro/oss_maestro.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -2181,7 +2181,7 @@ init_maestro (maestro_devc * devc)
- 					&maestro_audio_driver,
- 					sizeof (audiodrv_t),
- 					caps,
--					AFMT_U8 | AFMT_S16_LE, NULL, -1)) < 0)
-+					AFMT_U8 | AFMT_S16_LE, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 0;
---- a/attic/drv/oss_neomagic/oss_neomagic.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/attic/drv/oss_neomagic/oss_neomagic.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -730,7 +730,7 @@ neomagic_install (neomagic_devc * devc, 
- 				 devc->chip_name,
- 				 &neomagic_audio_driver,
- 				 sizeof (audiodrv_t),
--				 0, AFMT_U8 | AFMT_S16_LE, NULL, -1)) < 0)
-+				 0, AFMT_U8 | AFMT_S16_LE, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 0;
---- a/attic/drv/oss_vortex/oss_vortex.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/attic/drv/oss_vortex/oss_vortex.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -1449,7 +1449,7 @@ attach_channel (vortex_devc * devc, int 
- 					&vortex_driver,
- 					sizeof (audiodrv_t),
- 					caps,
--					AFMT_U8 | AFMT_S16_LE, NULL, -1)) < 0)
-+					AFMT_U8 | AFMT_S16_LE, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return;
---- a/attic/drv/oss_vortex/oss_vortex2.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/attic/drv/oss_vortex/oss_vortex2.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -1601,7 +1601,7 @@ attach_channel_vortex2 (vortex_devc * de
- 					&vortex2_driver,
- 					sizeof (audiodrv_t),
- 					caps,
--					AFMT_U8 | AFMT_S16_LE, NULL, -1)) < 0)
-+					AFMT_U8 | AFMT_S16_LE, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return;
---- a/kernel/drv/oss_ali5455/oss_ali5455.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_ali5455/oss_ali5455.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -835,7 +835,7 @@ init_ALI (ALI_devc * devc)
- 					  tmp_name,
- 					  &ALI_audio_driver,
- 					  sizeof (audiodrv_t), opts,
--					  formats, NULL, -1)) < 0)
-+					  formats, devc, -1)) < 0)
- 	{
- 	  my_dev = -1;
- 	  return 0;
---- a/kernel/drv/oss_atiaudio/oss_atiaudio.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_atiaudio/oss_atiaudio.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -946,7 +946,7 @@ init_ATI (ATI_devc * devc)
- 					  tmp_name,
- 					  &ATI_audio_driver,
- 					  sizeof (audiodrv_t),
--					  opts, formats, NULL, -1,
-+					  opts, formats, devc, -1,
- 					  devfile_name)) < 0)
- 	{
- 	  my_dev = -1;
---- a/kernel/drv/oss_audigyls/oss_audigyls.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_audigyls/oss_audigyls.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -1470,7 +1470,7 @@ install_audio_devices (audigyls_devc * d
- 					names[i],
- 					&audigyls_audio_driver,
- 					sizeof (audiodrv_t),
--					flags, fmts, NULL, -1)) < 0)
-+					flags, fmts, devc, -1)) < 0)
- 	{
- 	  return 0;
- 	}
-@@ -1484,6 +1484,7 @@ install_audio_devices (audigyls_devc * d
-       audio_engines[adev]->rate_source = frontdev;
-       audio_engines[adev]->mixer_dev = devc->mixer_dev;
-       audio_engines[adev]->binding = bindings[i];
-+      audio_engines[adev]->dmabuf_maxaddr = MEMLIMIT_ISA;
-       if (audio_engines[adev]->flags & ADEV_FIXEDRATE)
- 	{
- 	  audio_engines[adev]->fixed_rate = DEFAULT_RATE;
---- a/kernel/drv/oss_audiopci/oss_audiopci.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_audiopci/oss_audiopci.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -1384,7 +1384,7 @@ init_apci (apci_devc * devc)
- 					&apci_audio_driver,
- 					sizeof (audiodrv_t),
- 					caps,
--					AFMT_U8 | AFMT_S16_LE, NULL, -1)) < 0)
-+					AFMT_U8 | AFMT_S16_LE, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 0;
---- a/kernel/drv/oss_cmi878x/oss_cmi878x.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_cmi878x/oss_cmi878x.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -2396,7 +2396,7 @@ init_cmi8788 (cmi8788_devc * devc)
- 				 devc->osdev, tmp_name,
- 				 &cmi8788_audio_driver,
- 				 sizeof (audiodrv_t), caps, fmt,
--				 NULL, -1)) < 0)
-+				 devc, -1)) < 0)
- 	{
- 	  return 0;
- 	}
---- a/kernel/drv/oss_cmpci/oss_cmpci.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_cmpci/oss_cmpci.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -2212,7 +2212,7 @@ init_cmpci (cmpci_devc * devc)
- 						   sizeof (audiodrv_t),
- 						   caps,
- 						   AFMT_U8 | AFMT_S16_LE |
--						   AFMT_AC3, NULL, -1)) < 0)
-+						   AFMT_AC3, devc, -1)) < 0)
- 	{
- 	  return 0;
- 	}
---- a/kernel/drv/oss_cs4281/oss_cs4281.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_cs4281/oss_cs4281.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -909,7 +909,7 @@ init_cs4281 (cs4281_devc * devc)
- 					&cs4281_audio_driver,
- 					sizeof (audiodrv_t),
- 					caps,
--					AFMT_S16_LE | AFMT_U8, NULL, -1)) < 0)
-+					AFMT_S16_LE | AFMT_U8, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 0;
---- a/kernel/drv/oss_cs461x/oss_cs461x.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_cs461x/oss_cs461x.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -1719,7 +1719,7 @@ init_cs461x (cs461x_devc * devc)
- 					&cs461x_audio_driver,
- 					sizeof (audiodrv_t),
- 					caps,
--					AFMT_S16_LE | AFMT_U8, NULL, -1)) < 0)
-+					AFMT_S16_LE | AFMT_U8, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 0;
---- a/kernel/drv/oss_emu10k1x/oss_emu10k1x.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_emu10k1x/oss_emu10k1x.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -1038,7 +1038,7 @@ install_audio_devices (emu10k1x_devc * d
- 					name,
- 					&emu10k1x_audio_driver,
- 					sizeof (audiodrv_t),
--					flags, AFMT_S16_LE | AFMT_AC3, NULL,
-+					flags, AFMT_S16_LE | AFMT_AC3, devc,
- 					-1)) < 0)
- 	{
- 	  return;
---- a/kernel/drv/oss_envy24/envy24_direct.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_envy24/envy24_direct.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -342,7 +342,7 @@ envy24d_install (envy24_devc * devc)
- 				    sizeof (audiodrv_t),
- 				    ADEV_NOVIRTUAL | ADEV_NOINPUT | ADEV_COLD
- 				    | ADEV_SPECIAL | ADEV_32BITONLY,
--				    AFMT_S32_LE, NULL, -1,
-+				    AFMT_S32_LE, devc, -1,
- 				    "10ch_out")) >= 0)
-     {
-       portc = &devc->direct_portc_out;
-@@ -379,7 +379,7 @@ envy24d_install (envy24_devc * devc)
- 				    sizeof (audiodrv_t),
- 				    ADEV_NOVIRTUAL | ADEV_NOOUTPUT | ADEV_COLD
- 				    | ADEV_SPECIAL | ADEV_32BITONLY,
--				    AFMT_S32_LE, NULL, -1,
-+				    AFMT_S32_LE, devc, -1,
- 				    "12ch_in")) >= 0)
-     {
-       portc = &devc->direct_portc_in;
---- a/kernel/drv/oss_envy24/oss_envy24.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_envy24/oss_envy24.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -3114,7 +3114,7 @@ install_adev (envy24_devc * devc, char *
- 				   ADEV_AUTOMODE | ADEV_NOMMAP |
- 				   flags | ADEV_NOVIRTUAL,
- 				   fmts | AFMT_S16_LE | AFMT_S32_LE |
--				   AFMT_S24_LE, NULL, -1,
-+				   AFMT_S24_LE, devc, -1,
- 				   devfile_name)) < 0)
-     {
-       dev = -1;
---- a/kernel/drv/oss_fmedia/oss_fmedia.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_fmedia/oss_fmedia.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -925,7 +925,7 @@ init_fm801 (fm801_devc * devc)
- 					&fm801_audio_driver,
- 					sizeof (audiodrv_t),
- 					caps,
--					AFMT_U8 | AFMT_S16_LE, NULL, -1)) < 0)
-+					AFMT_U8 | AFMT_S16_LE, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 1;
---- a/kernel/drv/oss_geode/oss_geode.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_geode/oss_geode.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -750,7 +750,7 @@ init_geode (geode_devc * devc)
- 					tmp_name,
- 					&geode_audio_driver,
- 					sizeof (audiodrv_t),
--					caps, AFMT_S16_LE, NULL, -1)) < 0)
-+					caps, AFMT_S16_LE, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 0;
---- a/kernel/drv/oss_hdaudio/oss_hdaudio.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_hdaudio/oss_hdaudio.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -1442,7 +1442,7 @@ install_outputdevs (hda_devc_t * devc)
- 					       tmp_name,
- 					       &hda_audio_driver,
- 					       sizeof (audiodrv_t),
--					       opts, formats, NULL, -1,
-+					       opts, formats, devc, -1,
- 					       devfile_name)) < 0)
- 	  {
- 	    return;
-@@ -1564,7 +1564,7 @@ install_inputdevs (hda_devc_t * devc)
- 					     tmp_name,
- 					     &hda_audio_driver,
- 					     sizeof (audiodrv_t),
--					     opts, formats, NULL, -1,
-+					     opts, formats, devc, -1,
- 					     devfile_name)) < 0)
- 	{
- 	  return;
---- a/kernel/drv/oss_sblive/oss_sblive.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_sblive/oss_sblive.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -3806,7 +3806,7 @@ oss_sblive_attach (oss_device_t * osdev)
- 				 tmp,
- 				 &sblive_audio_driver,
- 				 sizeof (audiodrv_t), caps,
--				 fmts | AFMT_U8 | AFMT_S16_LE, NULL, -1)) < 0)
-+				 fmts | AFMT_U8 | AFMT_S16_LE, devc, -1)) < 0)
- 	{
- 	  portc->audiodev = -1;
- 	  return (i > 0);
---- a/kernel/drv/oss_sbpci/oss_sbpci.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_sbpci/oss_sbpci.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -1231,7 +1231,7 @@ init_apci97 (apci97_devc * devc, int dev
- 					tmp_name,
- 					&apci97_audio_driver,
- 					sizeof (audiodrv_t),
--					caps, fmts, NULL, -1)) < 0)
-+					caps, fmts, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 0;
---- a/kernel/drv/oss_solo/oss_solo.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_solo/oss_solo.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -1051,7 +1051,7 @@ init_solo (solo_devc * devc)
- 					&solo_audio_driver,
- 					sizeof (audiodrv_t),
- 					caps,
--					AFMT_U8 | AFMT_S16_LE, NULL, -1)) < 0)
-+					AFMT_U8 | AFMT_S16_LE, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 0;
---- a/kernel/drv/oss_trident/oss_trident.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_trident/oss_trident.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -1348,7 +1348,7 @@ init_trident (trident_devc * devc)
- 					sizeof (audiodrv_t),
- 					caps,
- 					AFMT_U8 | AFMT_S16_LE | AFMT_AC3,
--					NULL, -1)) < 0)
-+					devc, -1)) < 0)
- 
- 	{
- 	  adev = -1;
---- a/kernel/drv/oss_userdev/oss_userdev.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_userdev/oss_userdev.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -268,6 +268,7 @@ attach_control_device(void)
-  * Create the control device files that are used to create client/server
-  * device pairs and to redirect access to them.
-  */
-+  userdev_devc_t *devc = (userdev_devc_t*)0xdeadcafe; /* This should never get referenced */
- 
-   if ((client_dev = oss_install_audiodev_with_devname (OSS_AUDIO_DRIVER_VERSION,
- 				    userdev_osdev,
-@@ -275,7 +276,7 @@ attach_control_device(void)
- 				    "User space audio device client side",
- 				    &userdev_client_control_driver,
- 				    sizeof (audiodrv_t),
--				    ADEV_AUTOMODE, AFMT_S16_NE, NULL, -1,
-+				    ADEV_AUTOMODE, AFMT_S16_NE, devc, -1,
- 				    "client")) < 0)
-     {
-       return;
-@@ -289,7 +290,7 @@ attach_control_device(void)
- 				    "User space audio device server side",
- 				    &userdev_server_control_driver,
- 				    sizeof (audiodrv_t),
--				    ADEV_AUTOMODE, AFMT_S16_NE, NULL, -1, 
-+				    ADEV_AUTOMODE, AFMT_S16_NE, devc, -1, 
- 				    "server")) < 0)
-     {
-       return;
---- a/kernel/drv/oss_via823x/oss_via823x.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_via823x/oss_via823x.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -813,7 +813,7 @@ via8233_init (via8233_devc * devc)
- 					sizeof (audiodrv_t),
- 					opts,
- 					AFMT_U8 | AFMT_S16_LE | AFMT_AC3,
--					NULL, -1)) < 0)
-+					devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 1;
---- a/kernel/drv/oss_via97/oss_via97.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_via97/oss_via97.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -742,7 +742,7 @@ init_via97 (via97_devc * devc)
- 					&via97_audio_driver,
- 					sizeof (audiodrv_t),
- 					opts,
--					AFMT_U8 | AFMT_S16_LE, NULL, -1)) < 0)
-+					AFMT_U8 | AFMT_S16_LE, devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 0;
---- a/kernel/drv/oss_ymf7xx/oss_ymf7xx.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/drv/oss_ymf7xx/oss_ymf7xx.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -1314,7 +1314,7 @@ init_ymf7xx (ymf7xx_devc * devc)
- 					sizeof (audiodrv_t),
- 					caps,
- 					AFMT_U8 | AFMT_S16_LE | AFMT_AC3,
--					NULL, -1)) < 0)
-+					devc, -1)) < 0)
- 	{
- 	  adev = -1;
- 	  return 0;
---- a/kernel/framework/audio/oss_audio_core.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/framework/audio/oss_audio_core.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -6242,6 +6242,12 @@ oss_install_audiodev_with_devname (int v
-   int chdev_flags = 0;
-   int devfile_num = 0;
- 
-+  if (devc == NULL)
-+     {
-+	     cmn_err(CE_WARN, "devc==NULL for %s. Cannot install audio device\n", name);
-+	     return OSS_EINVAL;
-+     }
-+
-   if (name == NULL)
-     cmn_err (CE_CONT, "Name is really NULL\n");
-   if (master_osdev == NULL)
---- a/kernel/framework/remux/oss_remux.c	Thu Nov 27 19:36:57 2008 +0200
-+++ b/kernel/framework/remux/oss_remux.c	Fri Nov 28 23:37:08 2008 +0200
-@@ -508,7 +508,7 @@ remux_install (char *name, oss_device_t 
- 					       sizeof (audiodrv_t),
- 					       ADEV_NOINPUT | ADEV_SPECIAL |
- 					       ADEV_DISABLE_VIRTUAL |
--					       ADEV_NOSRC, AFMT_S16_NE, NULL,
-+					       ADEV_NOSRC, AFMT_S16_NE, devc,
- 					       -1)) < 0)
-     {
-       devc->audio_dev = -1;
-
diff --git a/abs/extra/oss/hg-latest-fixes.diff b/abs/extra/oss/hg-latest-fixes.diff
deleted file mode 100644
index 15da42d..0000000
--- a/abs/extra/oss/hg-latest-fixes.diff
+++ /dev/null
@@ -1,104 +0,0 @@
---- a/kernel/drv/oss_hdaudio/.devices	Fri Feb 06 00:36:29 2009 +0200
-+++ b/kernel/drv/oss_hdaudio/.devices	Fri Feb 06 17:00:26 2009 +0200
-@@ -13,6 +13,7 @@ oss_hdaudio	pci10de,44a	Nvidia High Defi
- oss_hdaudio	pci10de,44a	Nvidia High Definition Audio (MCP65)
- oss_hdaudio	pci10de,55c	Nvidia High Definition Audio (MCP67)
- oss_hdaudio	pci10de,774	Nvidia High Definition Audio (MCP78S)
-+oss_hdaudio	pci10de,ac0	Nvidia High Definition Audio (MCP79)
- oss_hdaudio	pci1002,437b	ATI High Definition Audio (SB450)
- oss_hdaudio	pci1002,4383	ATI High Definition Audio (SB600)
- oss_hdaudio	pci1106,3288	VIA High Definition Audio
---- a/kernel/drv/oss_hdaudio/oss_hdaudio.c	Fri Feb 06 00:36:29 2009 +0200
-+++ b/kernel/drv/oss_hdaudio/oss_hdaudio.c	Fri Feb 06 17:00:26 2009 +0200
-@@ -30,6 +30,7 @@
- #define NVIDIA_DEVICE_MCP65     0x044a
- #define NVIDIA_DEVICE_MCP67     0x055c
- #define NVIDIA_DEVICE_MCP78S    0x0774
-+#define NVIDIA_DEVICE_MCP79     0x0ac0
- 
- #define ATI_VENDOR_ID           0x1002
- #define ATI_DEVICE_SB450        0x437b
-@@ -1720,7 +1721,7 @@ oss_hdaudio_attach (oss_device_t * osdev
-        device != NVIDIA_DEVICE_MCP51 && device != NVIDIA_DEVICE_MCP55 &&
-        device != NVIDIA_DEVICE_MCP61 && device != NVIDIA_DEVICE_MCP61A &&
-        device != NVIDIA_DEVICE_MCP65 && device != NVIDIA_DEVICE_MCP67 &&
--       device != NVIDIA_DEVICE_MCP78S &&
-+       device != NVIDIA_DEVICE_MCP78S && device != NVIDIA_DEVICE_MCP79 &&
-        device != VIA_DEVICE_HDA &&
-        device != SIS_DEVICE_HDA &&
-        device != ULI_DEVICE_HDA &&
-@@ -1776,6 +1777,7 @@ oss_hdaudio_attach (oss_device_t * osdev
-     case NVIDIA_DEVICE_MCP65:
-     case NVIDIA_DEVICE_MCP67:
-     case NVIDIA_DEVICE_MCP78S:
-+    case NVIDIA_DEVICE_MCP79:
-       devc->chip_name = "nVidia HD Audio";
-       pci_read_config_byte (osdev, 0x4e, &btmp);
-       pci_write_config_byte (osdev, 0x4e, (btmp & 0xf0) | 0x0f);
---- a/kernel/drv/oss_hdaudio/.devices	Fri Feb 06 17:05:21 2009 +0200
-+++ b/kernel/drv/oss_hdaudio/.devices	Sat Feb 07 11:10:36 2009 +0200
-@@ -12,6 +12,7 @@ oss_hdaudio	pci10de,3f0	Nvidia High Defi
- oss_hdaudio	pci10de,3f0	Nvidia High Definition Audio (MCP61)
- oss_hdaudio	pci10de,44a	Nvidia High Definition Audio (MCP65)
- oss_hdaudio	pci10de,55c	Nvidia High Definition Audio (MCP67)
-+oss_hdaudio	pci10de,7fc	Nvidia High Definition Audio (MCP73)
- oss_hdaudio	pci10de,774	Nvidia High Definition Audio (MCP78S)
- oss_hdaudio	pci10de,ac0	Nvidia High Definition Audio (MCP79)
- oss_hdaudio	pci1002,437b	ATI High Definition Audio (SB450)
---- a/kernel/drv/oss_hdaudio/oss_hdaudio.c	Fri Feb 06 17:05:21 2009 +0200
-+++ b/kernel/drv/oss_hdaudio/oss_hdaudio.c	Sat Feb 07 11:10:36 2009 +0200
-@@ -29,6 +29,7 @@
- #define NVIDIA_DEVICE_MCP61A    0x03f0
- #define NVIDIA_DEVICE_MCP65     0x044a
- #define NVIDIA_DEVICE_MCP67     0x055c
-+#define NVIDIA_DEVICE_MCP73     0x07fc
- #define NVIDIA_DEVICE_MCP78S    0x0774
- #define NVIDIA_DEVICE_MCP79     0x0ac0
- 
-@@ -1721,7 +1722,8 @@ oss_hdaudio_attach (oss_device_t * osdev
-        device != NVIDIA_DEVICE_MCP51 && device != NVIDIA_DEVICE_MCP55 &&
-        device != NVIDIA_DEVICE_MCP61 && device != NVIDIA_DEVICE_MCP61A &&
-        device != NVIDIA_DEVICE_MCP65 && device != NVIDIA_DEVICE_MCP67 &&
--       device != NVIDIA_DEVICE_MCP78S && device != NVIDIA_DEVICE_MCP79 &&
-+       device != NVIDIA_DEVICE_MCP73 && device != NVIDIA_DEVICE_MCP78S &&
-+       device != NVIDIA_DEVICE_MCP79 &&
-        device != VIA_DEVICE_HDA &&
-        device != SIS_DEVICE_HDA &&
-        device != ULI_DEVICE_HDA &&
-@@ -1776,6 +1778,7 @@ oss_hdaudio_attach (oss_device_t * osdev
-     case NVIDIA_DEVICE_MCP61A:
-     case NVIDIA_DEVICE_MCP65:
-     case NVIDIA_DEVICE_MCP67:
-+    case NVIDIA_DEVICE_MCP73:
-     case NVIDIA_DEVICE_MCP78S:
-     case NVIDIA_DEVICE_MCP79:
-       devc->chip_name = "nVidia HD Audio";
---- a/kernel/framework/vmix_core/vmix_core.c	Mon Feb 09 21:21:39 2009 +0200
-+++ b/kernel/framework/vmix_core/vmix_core.c	Mon Feb 09 19:52:22 2009 -0200
-@@ -1590,7 +1590,7 @@ create_vmix_engine (vmix_mixer_t * mixer
-   adev_t *adev, *master_adev;
-   int opts = ADEV_VIRTUAL | ADEV_DEFAULT | ADEV_VMIX;
- 
--  n = mixer->num_clientdevs++;
-+  n = mixer->num_clientdevs;
- 
-   /*
-    * ADEV_HIDDEN is used for the VMIX devices because they should not be
-@@ -1611,7 +1611,7 @@ create_vmix_engine (vmix_mixer_t * mixer
-   if (mixer->masterdev == -1)
-     return OSS_ENXIO;
- 
--  if (mixer->num_clientdevs >= MAX_CLIENTS) /* Cannot create more client engines */
-+  if (n + 1 >= MAX_CLIENTS) /* Cannot create more client engines */
-      return OSS_EBUSY;
- 
-   /*
-@@ -1628,6 +1628,8 @@ create_vmix_engine (vmix_mixer_t * mixer
-     }
-   memset (portc, 0, sizeof (*portc));
-   portc->open_pending = 1; /* Reserve this engine to the client it was created for */
-+
-+  mixer->num_clientdevs++;
- 
-   portc->num = n;
- 
diff --git a/abs/extra/oss/oss.install b/abs/extra/oss/oss.install
index 8c4bd0a..f665416 100644
--- a/abs/extra/oss/oss.install
+++ b/abs/extra/oss/oss.install
@@ -4,35 +4,56 @@ _MSG_LIBOSSDIR=" Please note that OSS stores some of its configuration files
  directory and reinstall this package."
 
 post_install() {
-	echo "Creating backup of alsa modules"
-	KER=`uname -r`
-	cd /lib/modules/$KER/kernel
-	tar -cvf /lib/modules/alsa-$KER.tar sound
-	rm -rf sound
-#	/bin/sh /usr/lib/oss/build/install.sh &> /dev/null
-	depmod -a
-
+	echo "Running OSS install script..."
+	/bin/sh /usr/lib/oss/build/install.sh &> /dev/null
+	echo
+	echo "-------------------------------------------------------------"
+	echo " Open Sound System was installed. Now you should add 'oss'"
+	echo " to your DAEMONS variable at /etc/rc.conf, and start the"
+	echo " daemon by running /etc/rc.d/oss start."
+	echo
+	echo " Note that OSS can't currently work together with kernel"
+	echo " ALSA modules, so they were moved out by the OSS install"
+	echo " scripts. If you want the ALSA kernel modules back, you can"
+	echo " just remove this package using pacman."
+	echo
+	echo "${_MSG_LIBOSSDIR}"
+	echo "-------------------------------------------------------------"
+	/bin/true
 }
 
 post_upgrade() {
 	echo "Running OSS update script..."
-	KER=`uname -r`
-	cd /lib/modules/$KER/kernel
-	if [ -f sound/soundcore.ko ]
-	then
-		tar -cvf /lib/modules/alsa-$KER.tar sound
-		rm -rf sound
-		/bin/true
-	fi
-	depmod -a
+	/bin/sh /usr/lib/oss/build/install.sh &> /dev/null
+	echo
+	echo "-------------------------------------------------------------"
+	echo " Open Sound System was updated. Now you should restart the"
+	echo " daemon by running /etc/rc.d/oss restart."
+	echo
+	echo "${_MSG_LIBOSSDIR}"
+	echo "-------------------------------------------------------------"
+	/bin/true
 }
 
 pre_remove() {
-
+	# Restore any replaced ALSA drivers.
+	/bin/sh /usr/lib/oss/scripts/restore_drv.sh
+	# Remove symlinks left by the 'install.sh' script.
+	rm -f /usr/lib/hal/scripts/oss_usb-create-devices
+	rm -f /usr/share/hal/fdi/policy/20thirdparty/90-oss_usb-create-device.fdi
+	/bin/true
 }
 
 post_remove() {
-
+	echo
+	echo "-------------------------------------------------------------"
+	echo " Open Sound System was now removed, and the ALSA kernel"
+	echo " modules were restored."
+	echo
+	echo " Please note that OSS stores some of its configuration files"
+	echo " at /usr/lib/oss. If you don't plan to use OSS anymore, you"
+	echo " can remove this directory."
+	echo "-------------------------------------------------------------"
 	/bin/true
 }
 
diff --git a/abs/extra/oss/oss.rc b/abs/extra/oss/oss.rc
deleted file mode 100644
index 3f63378..0000000
--- a/abs/extra/oss/oss.rc
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-case "$1" in
-  start)
-        stat_busy 'Starting Open Sound System'
-	if /usr/sbin/soundon
-	then
-		add_daemon oss
-		stat_done
-	else
-		stat_fail
-	fi
-        ;;
-  stop)
-        stat_busy 'Stopping Open Sound System'
-	if /usr/sbin/soundoff
-	then
-		rm_daemon oss
-		stat_done
-	else
-		stat_fail
-	fi
-        ;;
-  restart)
-        $0 stop
-        $0 start
-        ;;
-  *)
-        echo "Usage: $0 {start|stop|restart}"
-esac
diff --git a/abs/extra/oss/oss.rm-init-scripts.patch b/abs/extra/oss/oss.rm-init-scripts.patch
deleted file mode 100644
index 981ff60..0000000
--- a/abs/extra/oss/oss.rm-init-scripts.patch
+++ /dev/null
@@ -1,52 +0,0 @@
---- usr/lib/oss/build/install.sh.orig	2008-09-25 11:41:47.180167692 -0300
-+++ usr/lib/oss/build/install.sh	2008-09-25 11:41:47.180167692 -0300
-@@ -290,38 +290,6 @@
-    echo 
- fi
- 
--if ! test -d /etc/init.d
--then
--  mkdir /etc/init.d
--fi
--
--rm -f /etc/init.d/oss /etc/rc.d/rc3.d/S89oss /etc/rc3.d/S89oss
--cp -f $OSSLIBDIR/etc/S89oss /etc/init.d/oss
--
--chmod 744 /etc/init.d/oss
--
--if test -x /sbin/chkconfig
--then
--  /sbin/chkconfig oss on        > /dev/null 2>&1
--else
-- if test -x /usr/sbin/update-rc.d
-- then
--   /usr/sbin/update-rc.d oss defaults > /dev/null 2>&1
-- else
--  if test -d etc/rc.d/rc3.d
--  then
--    rm -f /etc/rc.d/rc3.d/S89oss
--    ln -s /etc/init.d/oss /etc/rc.d/rc3.d/S89oss
--  else
--    if test -d /etc/rc3.d
--    then
--      rm -f /etc/rc3.d/S89oss
--      ln -s /etc/init.d/oss /etc/rc3.d/S89oss
--    fi
--  fi
-- fi
--fi
--
- # Install ALSA interface module (Cuckoo)
- #(cd $OSSLIBDIR/cuckoo && make clean) > /dev/null 2>&1
- #if (cd $OSSLIBDIR/cuckoo && make install) > /var/log/cuckoo.log 2>&1
---- usr/lib/oss/scripts/restore_drv.sh.orig	2008-09-25 11:41:47.210168487 -0300
-+++ usr/lib/oss/scripts/restore_drv.sh	2008-09-25 11:41:47.210168487 -0300
-@@ -18,8 +18,6 @@
-   fi
- fi
- 
--rm -f /etc/init.d/oss
--
- if ! test -d /lib/modules/`uname -r`/kernel/sound
- then
-    if test -f /lib/modules/`uname -r`/sound-preoss.tar.bz2
diff --git a/abs/extra/oss/rc-script b/abs/extra/oss/rc-script
new file mode 100644
index 0000000..5c93010
--- /dev/null
+++ b/abs/extra/oss/rc-script
@@ -0,0 +1,30 @@
+#!/bin/bash
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+	start)
+		stat_busy 'Starting Open Sound System'
+		if /usr/sbin/soundon; then
+			add_daemon oss
+			stat_done
+		else
+			stat_fail
+		fi
+		;;
+	stop)
+		stat_busy 'Stopping Open Sound System'
+		if /usr/sbin/soundoff; then
+			rm_daemon oss
+			stat_done
+		else
+			stat_fail
+		fi
+		;;
+	restart)
+		$0 stop
+		$0 start
+		;;
+	*)
+		echo "Usage: $0 {start|stop|restart}"
+esac
diff --git a/abs/extra/oss/remove-hal.patch b/abs/extra/oss/remove-hal.patch
new file mode 100644
index 0000000..27e2ef2
--- /dev/null
+++ b/abs/extra/oss/remove-hal.patch
@@ -0,0 +1,20 @@
+Date: Tue Aug  2 16:37:31 CEST 2011
+Author: Florian Pritz <bluewind@xinu.at>
+This removes all hal dependencies
+
+References:
+http://www.archlinux.org/todo/92/
+
+--- usr/lib/oss/build/install_2011-08-02_162647.sh	2011-08-02 16:26:47.000000000 +0200
++++ usr/lib/oss/build/install.sh	2011-08-02 16:27:13.000000000 +0200
+@@ -336,10 +336,4 @@
+   echo "autosave_mixer yes" > $OSSLIBDIR/etc/userdefs
+ fi
+ 
+-# Hal 0.5.0+ hotplug
+-mkdir -p /usr/lib/hal/scripts
+-ln -sf $OSSLIBDIR/scripts/oss_usb-create-devices /usr/lib/hal/scripts/
+-mkdir -p /usr/share/hal/fdi/policy/20thirdparty/
+-ln -sf $OSSLIBDIR/scripts/90-oss_usb-create-device.fdi /usr/share/hal/fdi/policy/20thirdparty/
+-
+ exit 0
diff --git a/abs/extra/oss/rm-init-scripts.patch b/abs/extra/oss/rm-init-scripts.patch
new file mode 100644
index 0000000..981ff60
--- /dev/null
+++ b/abs/extra/oss/rm-init-scripts.patch
@@ -0,0 +1,52 @@
+--- usr/lib/oss/build/install.sh.orig	2008-09-25 11:41:47.180167692 -0300
++++ usr/lib/oss/build/install.sh	2008-09-25 11:41:47.180167692 -0300
+@@ -290,38 +290,6 @@
+    echo 
+ fi
+ 
+-if ! test -d /etc/init.d
+-then
+-  mkdir /etc/init.d
+-fi
+-
+-rm -f /etc/init.d/oss /etc/rc.d/rc3.d/S89oss /etc/rc3.d/S89oss
+-cp -f $OSSLIBDIR/etc/S89oss /etc/init.d/oss
+-
+-chmod 744 /etc/init.d/oss
+-
+-if test -x /sbin/chkconfig
+-then
+-  /sbin/chkconfig oss on        > /dev/null 2>&1
+-else
+- if test -x /usr/sbin/update-rc.d
+- then
+-   /usr/sbin/update-rc.d oss defaults > /dev/null 2>&1
+- else
+-  if test -d etc/rc.d/rc3.d
+-  then
+-    rm -f /etc/rc.d/rc3.d/S89oss
+-    ln -s /etc/init.d/oss /etc/rc.d/rc3.d/S89oss
+-  else
+-    if test -d /etc/rc3.d
+-    then
+-      rm -f /etc/rc3.d/S89oss
+-      ln -s /etc/init.d/oss /etc/rc3.d/S89oss
+-    fi
+-  fi
+- fi
+-fi
+-
+ # Install ALSA interface module (Cuckoo)
+ #(cd $OSSLIBDIR/cuckoo && make clean) > /dev/null 2>&1
+ #if (cd $OSSLIBDIR/cuckoo && make install) > /var/log/cuckoo.log 2>&1
+--- usr/lib/oss/scripts/restore_drv.sh.orig	2008-09-25 11:41:47.210168487 -0300
++++ usr/lib/oss/scripts/restore_drv.sh	2008-09-25 11:41:47.210168487 -0300
+@@ -18,8 +18,6 @@
+   fi
+ fi
+ 
+-rm -f /etc/init.d/oss
+-
+ if ! test -d /lib/modules/`uname -r`/kernel/sound
+ then
+    if test -f /lib/modules/`uname -r`/sound-preoss.tar.bz2
diff --git a/abs/extra/oss/soundon.patch b/abs/extra/oss/soundon.patch
new file mode 100644
index 0000000..4702b86
--- /dev/null
+++ b/abs/extra/oss/soundon.patch
@@ -0,0 +1,28 @@
+--- usr/sbin/soundon.old	2009-09-04 06:35:26.000000000 +0100
++++ usr/sbin/soundon	2009-11-15 13:59:53.000000000 +0000
+@@ -255,7 +255,10 @@
+   then
+      if test "`uname -m` " = "x86_64 "
+      then
+-       ln -sf $OSSLIBDIR/lib/libsalsa.so.2.0.0 /usr/lib64/libasound.so.2
++       # Fix for compatibility with Arch's directory structure
++       # Not that we use it, there is no $OSSLIBDIR/.libsalsa_installed
++       ln -sf $OSSLIBDIR/lib/libsalsa.so.2.0.0 /usr/lib/libasound.so.2
++       #ln -sf $OSSLIBDIR/lib/libsalsa.so.2.0.0 /usr/lib64/libasound.so.2
+        #ln -sf $OSSLIBDIR/lib/libOSSlib.so /usr/lib64
+      else
+        if test -s /lib/libasound.so.2
+@@ -278,8 +281,11 @@
+ then
+    if test "`uname -m` " = "x86_64 "
+    then
+-     ln -sf $OSSLIBDIR/lib/libOSSlib.so /usr/lib64
+-     ln -sf $OSSLIBDIR/lib/libossmix.so /usr/lib64
++     # Fix for compatibility with Arch's directory structure
++     ln -sf $OSSLIBDIR/lib/libOSSlib.so /usr/lib
++     ln -sf $OSSLIBDIR/lib/libossmix.so /usr/lib
++     #ln -sf $OSSLIBDIR/lib/libOSSlib.so /usr/lib64
++     #ln -sf $OSSLIBDIR/lib/libossmix.so /usr/lib64
+    else
+      if test -s /lib/libasound.so.2
+      then
-- 
cgit v0.12