From f591ead4c8a9b64b0630900aa12c260027a7db6f Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Sat, 24 Nov 2012 22:49:14 -0600
Subject: compiled/added programs needed by xbmc:   Moved some programs out of
 community into extra. libmpeg2 pm-utils afpfs-ng fluidsynth libmodplug libnfs
 libshairport dbus-c__ doxygen libocnfig libffado libimobiledevice
 libmicrothttpd sdl_image sdl_mixer smpeg upower usbmuxd vdpau-video

---
 abs/core/libmpeg2/PKGBUILD                         |   27 +-
 abs/core/libmpeg2/libmpeg2-0.5.1-gcc4.6.patch      |  128 +
 abs/core/mesa/__changelog                          |    1 +
 abs/core/pm-utils/11netcfg                         |   26 -
 abs/core/pm-utils/PKGBUILD                         |   23 +-
 abs/extra/afpfs-ng/01-gcrypt.patch                 |   26 +
 abs/extra/afpfs-ng/02-pointer.patch                |  280 ++
 abs/extra/afpfs-ng/10-fix-errno.patch              |   23 +
 abs/extra/afpfs-ng/20-build-error-fixes.patch      |  125 +
 abs/extra/afpfs-ng/21-header-path-fix.patch        |   16 +
 abs/extra/afpfs-ng/30-include-fixes.patch          |   44 +
 abs/extra/afpfs-ng/PKGBUILD                        |   66 +
 abs/extra/afpfs-ng/fix_afpfs-ng_includes.patch     | 3082 ++++++++++++++++++++
 abs/extra/community/afpfs-ng/01-gcrypt.patch       |   26 -
 abs/extra/community/afpfs-ng/02-pointer.patch      |  280 --
 abs/extra/community/afpfs-ng/10-fix-errno.patch    |   23 -
 .../community/afpfs-ng/20-build-error-fixes.patch  |  125 -
 .../community/afpfs-ng/21-header-path-fix.patch    |   16 -
 .../community/afpfs-ng/30-include-fixes.patch      |   44 -
 abs/extra/community/afpfs-ng/PKGBUILD              |   66 -
 .../community/afpfs-ng/fix_afpfs-ng_includes.patch | 3082 --------------------
 abs/extra/community/fluidsynth/PKGBUILD            |   45 -
 abs/extra/community/fluidsynth/fluidsynth.conf     |    2 -
 abs/extra/community/fluidsynth/fluidsynthd         |   40 -
 abs/extra/community/libmodplug/PKGBUILD            |   28 -
 abs/extra/community/libnfs/PKGBUILD                |   30 -
 abs/extra/community/libshairport/PKGBUILD          |   33 -
 abs/extra/dbus-c++/PKGBUILD                        |   40 +
 abs/extra/dbus-c++/gcc47.patch                     |   10 +
 abs/extra/doxygen/PKGBUILD                         |    5 +-
 abs/extra/fluidsynth/PKGBUILD                      |   52 +
 abs/extra/fluidsynth/__changelog                   |    1 +
 abs/extra/fluidsynth/fluidsynth.conf               |    2 +
 abs/extra/fluidsynth/fluidsynth.install            |   19 +
 abs/extra/fluidsynth/fluidsynth.rc                 |   40 +
 abs/extra/fluidsynth/fluidsynth.systemd            |    9 +
 abs/extra/libconfig/PKGBUILD                       |   33 +
 abs/extra/libconfig/libconfig.install              |   18 +
 abs/extra/libffado/60-ffado.rules                  |   27 -
 abs/extra/libffado/PKGBUILD                        |   61 +-
 abs/extra/libffado/fix-segfault-on-close.patch     |   64 -
 abs/extra/libffado/libffado-gcc47.patch            |   55 -
 abs/extra/libffado/python2-qt.patch                |  246 ++
 abs/extra/libimobiledevice/HOME-segfault.patch     |   14 +
 abs/extra/libimobiledevice/PKGBUILD                |   18 +-
 .../libimobiledevice/swig-version-check.patch      |   14 -
 abs/extra/libmicrohttpd/PKGBUILD                   |   16 +-
 abs/extra/libmicrohttpd/libmicrohttpd.install      |   20 +
 abs/extra/libmodplug/PKGBUILD                      |   28 +
 abs/extra/libnfs/PKGBUILD                          |   30 +
 abs/extra/libshairport/PKGBUILD                    |   33 +
 abs/extra/libsigc++/PKGBUILD                       |   10 +-
 abs/extra/libssh/PKGBUILD                          |   16 +-
 abs/extra/libssh/__changelog                       |    1 -
 abs/extra/libxml++/PKGBUILD                        |    8 +-
 abs/extra/libxml++/libxml++-2.36.0-1.src.tar.gz    |    1 +
 abs/extra/sdl_image/PKGBUILD                       |   27 +-
 abs/extra/sdl_mixer/PKGBUILD                       |   47 +-
 abs/extra/sdl_mixer/double-free-crash.patch        |   32 +
 abs/extra/sdl_mixer/fluidsynth-volume.patch        |   23 +
 abs/extra/sdl_mixer/mikmod1.patch                  |   67 +
 abs/extra/sdl_mixer/mikmod2.patch                  |   35 +
 abs/extra/smpeg/PKGBUILD                           |   31 +-
 ...-signal-when-built-with-systemd-and-using.patch |   35 +
 abs/extra/upower/PKGBUILD                          |   31 +-
 abs/extra/usbmuxd/85-usbmuxd.rules                 |    9 +
 abs/extra/usbmuxd/PKGBUILD                         |   34 +-
 abs/extra/usbmuxd/__changelog                      |    4 +-
 abs/extra/usbmuxd/usbmuxd-describe.patch           |   20 -
 abs/extra/usbmuxd/usbmuxd-udevuser.patch           |   12 -
 abs/extra/usbmuxd/usbmuxd.service                  |    5 +
 abs/extra/vdpau-video/PKGBUILD                     |    6 +-
 abs/extra/vdpau-video/__changelog                  |    1 +
 73 files changed, 4801 insertions(+), 4216 deletions(-)
 create mode 100644 abs/core/libmpeg2/libmpeg2-0.5.1-gcc4.6.patch
 create mode 100644 abs/core/mesa/__changelog
 delete mode 100644 abs/core/pm-utils/11netcfg
 create mode 100644 abs/extra/afpfs-ng/01-gcrypt.patch
 create mode 100644 abs/extra/afpfs-ng/02-pointer.patch
 create mode 100644 abs/extra/afpfs-ng/10-fix-errno.patch
 create mode 100644 abs/extra/afpfs-ng/20-build-error-fixes.patch
 create mode 100644 abs/extra/afpfs-ng/21-header-path-fix.patch
 create mode 100644 abs/extra/afpfs-ng/30-include-fixes.patch
 create mode 100644 abs/extra/afpfs-ng/PKGBUILD
 create mode 100644 abs/extra/afpfs-ng/fix_afpfs-ng_includes.patch
 delete mode 100644 abs/extra/community/afpfs-ng/01-gcrypt.patch
 delete mode 100644 abs/extra/community/afpfs-ng/02-pointer.patch
 delete mode 100644 abs/extra/community/afpfs-ng/10-fix-errno.patch
 delete mode 100644 abs/extra/community/afpfs-ng/20-build-error-fixes.patch
 delete mode 100644 abs/extra/community/afpfs-ng/21-header-path-fix.patch
 delete mode 100644 abs/extra/community/afpfs-ng/30-include-fixes.patch
 delete mode 100644 abs/extra/community/afpfs-ng/PKGBUILD
 delete mode 100644 abs/extra/community/afpfs-ng/fix_afpfs-ng_includes.patch
 delete mode 100644 abs/extra/community/fluidsynth/PKGBUILD
 delete mode 100644 abs/extra/community/fluidsynth/fluidsynth.conf
 delete mode 100644 abs/extra/community/fluidsynth/fluidsynthd
 delete mode 100644 abs/extra/community/libmodplug/PKGBUILD
 delete mode 100644 abs/extra/community/libnfs/PKGBUILD
 delete mode 100644 abs/extra/community/libshairport/PKGBUILD
 create mode 100644 abs/extra/dbus-c++/PKGBUILD
 create mode 100644 abs/extra/dbus-c++/gcc47.patch
 create mode 100644 abs/extra/fluidsynth/PKGBUILD
 create mode 100644 abs/extra/fluidsynth/__changelog
 create mode 100644 abs/extra/fluidsynth/fluidsynth.conf
 create mode 100644 abs/extra/fluidsynth/fluidsynth.install
 create mode 100644 abs/extra/fluidsynth/fluidsynth.rc
 create mode 100644 abs/extra/fluidsynth/fluidsynth.systemd
 create mode 100644 abs/extra/libconfig/PKGBUILD
 create mode 100644 abs/extra/libconfig/libconfig.install
 delete mode 100644 abs/extra/libffado/60-ffado.rules
 delete mode 100644 abs/extra/libffado/fix-segfault-on-close.patch
 delete mode 100644 abs/extra/libffado/libffado-gcc47.patch
 create mode 100644 abs/extra/libffado/python2-qt.patch
 create mode 100644 abs/extra/libimobiledevice/HOME-segfault.patch
 delete mode 100644 abs/extra/libimobiledevice/swig-version-check.patch
 create mode 100644 abs/extra/libmicrohttpd/libmicrohttpd.install
 create mode 100644 abs/extra/libmodplug/PKGBUILD
 create mode 100644 abs/extra/libnfs/PKGBUILD
 create mode 100644 abs/extra/libshairport/PKGBUILD
 delete mode 100644 abs/extra/libssh/__changelog
 create mode 120000 abs/extra/libxml++/libxml++-2.36.0-1.src.tar.gz
 create mode 100644 abs/extra/sdl_mixer/double-free-crash.patch
 create mode 100644 abs/extra/sdl_mixer/fluidsynth-volume.patch
 create mode 100644 abs/extra/sdl_mixer/mikmod1.patch
 create mode 100644 abs/extra/sdl_mixer/mikmod2.patch
 create mode 100644 abs/extra/upower/0001-Send-resume-signal-when-built-with-systemd-and-using.patch
 create mode 100644 abs/extra/usbmuxd/85-usbmuxd.rules
 delete mode 100644 abs/extra/usbmuxd/usbmuxd-describe.patch
 delete mode 100644 abs/extra/usbmuxd/usbmuxd-udevuser.patch
 create mode 100644 abs/extra/usbmuxd/usbmuxd.service
 create mode 100644 abs/extra/vdpau-video/__changelog

diff --git a/abs/core/libmpeg2/PKGBUILD b/abs/core/libmpeg2/PKGBUILD
index 672e098..2596082 100644
--- a/abs/core/libmpeg2/PKGBUILD
+++ b/abs/core/libmpeg2/PKGBUILD
@@ -1,28 +1,35 @@
-# $Id: PKGBUILD 8677 2008-08-15 11:05:35Z andyrtr $
+# $Id: PKGBUILD 134366 2011-08-03 07:11:36Z jgc $
 # Contributor: Sarah Hay <sarah@archlinux.org>
 # Maintainer: Andreas Radke <andyrtr@archlinux.org>
 
 pkgname=libmpeg2
 pkgver=0.5.1
-pkgrel=1
-pkgdesc="libmpeg2 is a library for decoding MPEG-1 and MPEG-2 video streams."
+pkgrel=3
+pkgdesc="Library for decoding MPEG-1 and MPEG-2 video streams."
 arch=('i686' 'x86_64')
 url="http://libmpeg2.sourceforge.net/"
 depends=('glibc')
+makedepends=('sdl' 'libxv')
 optdepends=('sdl:	requiered for mpeg2dec'
-            'libsm:	requiered for mpeg2dec'
             'libxv:	requiered for mpeg2dec')
-source=(http://libmpeg2.sourceforge.net/files/${pkgname}-${pkgver}.tar.gz)
+source=(http://libmpeg2.sourceforge.net/files/${pkgname}-${pkgver}.tar.gz
+        libmpeg2-0.5.1-gcc4.6.patch)
 license=('GPL2')
 options=(!libtool)
 provides=('mpeg2dec')
-md5sums=('0f92c7454e58379b4a5a378485bbd8ef')
+md5sums=('0f92c7454e58379b4a5a378485bbd8ef'
+         '8b36660297e6ffde6aa9733136bff405')
 
 build() {
-  cd ${srcdir}/${pkgname}-${pkgver}
-  ./configure --prefix=/usr --enable-shared --disable-static || return 1
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -Np1 -i "${srcdir}/libmpeg2-0.5.1-gcc4.6.patch"
+
+  sed '/AC_PATH_XTRA/d' -i configure.ac
+  autoreconf --force --install
+
+  ./configure --prefix=/usr --enable-shared --disable-static
   make	OPT_CFLAGS="${CFLAGS}" \
 	MPEG2DEC_CFLAGS="${CFLAGS}" \
-	LIBMPEG2_CFLAGS="" || return 1
-  make DESTDIR=${pkgdir} install || return 1
+	LIBMPEG2_CFLAGS=""
+  make DESTDIR="${pkgdir}" install
 }
diff --git a/abs/core/libmpeg2/libmpeg2-0.5.1-gcc4.6.patch b/abs/core/libmpeg2/libmpeg2-0.5.1-gcc4.6.patch
new file mode 100644
index 0000000..9c0e185
--- /dev/null
+++ b/abs/core/libmpeg2/libmpeg2-0.5.1-gcc4.6.patch
@@ -0,0 +1,128 @@
+--- libmpeg2-0.5.1/libmpeg2/idct_mmx.c.orig	2011-05-13 09:23:02.557758717 -0300
++++ libmpeg2-0.5.1/libmpeg2/idct_mmx.c	2011-05-13 09:23:06.346778580 -0300
+@@ -39,7 +39,6 @@
+ #define rounder(bias) {round (bias), round (bias)}
+ #define rounder_sse2(bias) {round (bias), round (bias), round (bias), round (bias)}
+ 
+-
+ #if 0
+ /* C row IDCT - it is just here to document the MMXEXT and MMX versions */
+ static inline void idct_row (int16_t * row, int offset,
+@@ -464,10 +463,10 @@ static inline void sse2_idct_col (int16_
+     /* Almost identical to mmxext version:  */
+     /* just do both 4x8 columns in paraller */
+ 
+-    static const short t1_vector[] ATTR_ALIGN(16) = {T1,T1,T1,T1,T1,T1,T1,T1};
+-    static const short t2_vector[] ATTR_ALIGN(16) = {T2,T2,T2,T2,T2,T2,T2,T2};
+-    static const short t3_vector[] ATTR_ALIGN(16) = {T3,T3,T3,T3,T3,T3,T3,T3};
+-    static const short c4_vector[] ATTR_ALIGN(16) = {C4,C4,C4,C4,C4,C4,C4,C4};
++    static/* const*/ short t1_vector[] ATTR_ALIGN(16) = {T1,T1,T1,T1,T1,T1,T1,T1};
++    static/* const*/ short t2_vector[] ATTR_ALIGN(16) = {T2,T2,T2,T2,T2,T2,T2,T2};
++    static/* const*/ short t3_vector[] ATTR_ALIGN(16) = {T3,T3,T3,T3,T3,T3,T3,T3};
++    static/* const*/ short c4_vector[] ATTR_ALIGN(16) = {C4,C4,C4,C4,C4,C4,C4,C4};
+ 
+ #if defined(__x86_64__)
+ 
+@@ -710,10 +709,10 @@ static inline void sse2_idct_col (int16_
+ /* MMX column IDCT */
+ static inline void idct_col (int16_t * const col, const int offset)
+ {
+-    static const short t1_vector[] ATTR_ALIGN(8) = {T1,T1,T1,T1};
+-    static const short t2_vector[] ATTR_ALIGN(8) = {T2,T2,T2,T2};
+-    static const short t3_vector[] ATTR_ALIGN(8) = {T3,T3,T3,T3};
+-    static const short c4_vector[] ATTR_ALIGN(8) = {C4,C4,C4,C4};
++    static/* const*/ short t1_vector[] ATTR_ALIGN(8) = {T1,T1,T1,T1};
++    static/* const*/ short t2_vector[] ATTR_ALIGN(8) = {T2,T2,T2,T2};
++    static/* const*/ short t3_vector[] ATTR_ALIGN(8) = {T3,T3,T3,T3};
++    static/* const*/ short c4_vector[] ATTR_ALIGN(8) = {C4,C4,C4,C4};
+ 
+     /* column code adapted from peter gubanov */
+     /* http://www.elecard.com/peter/idct.shtml */
+@@ -847,33 +846,33 @@ static inline void idct_col (int16_t * c
+ }
+ 
+ 
+-static const int32_t rounder0[] ATTR_ALIGN(8) =
++static/* const*/ int32_t rounder0[] ATTR_ALIGN(8) =
+     rounder ((1 << (COL_SHIFT - 1)) - 0.5);
+-static const int32_t rounder4[] ATTR_ALIGN(8) = rounder (0);
+-static const int32_t rounder1[] ATTR_ALIGN(8) =
++static/* const*/ int32_t rounder4[] ATTR_ALIGN(8) = rounder (0);
++static/* const*/ int32_t rounder1[] ATTR_ALIGN(8) =
+     rounder (1.25683487303);	/* C1*(C1/C4+C1+C7)/2 */
+-static const int32_t rounder7[] ATTR_ALIGN(8) =
++static/* const*/ int32_t rounder7[] ATTR_ALIGN(8) =
+     rounder (-0.25);		/* C1*(C7/C4+C7-C1)/2 */
+-static const int32_t rounder2[] ATTR_ALIGN(8) =
++static/* const*/ int32_t rounder2[] ATTR_ALIGN(8) =
+     rounder (0.60355339059);	/* C2 * (C6+C2)/2 */
+-static const int32_t rounder6[] ATTR_ALIGN(8) =
++static/* const*/ int32_t rounder6[] ATTR_ALIGN(8) =
+     rounder (-0.25);		/* C2 * (C6-C2)/2 */
+-static const int32_t rounder3[] ATTR_ALIGN(8) =
++static/* const*/ int32_t rounder3[] ATTR_ALIGN(8) =
+     rounder (0.087788325588);	/* C3*(-C3/C4+C3+C5)/2 */
+-static const int32_t rounder5[] ATTR_ALIGN(8) =
++static/* const*/ int32_t rounder5[] ATTR_ALIGN(8) =
+     rounder (-0.441341716183);	/* C3*(-C5/C4+C5-C3)/2 */
+ 
+ 
+ #define declare_idct(idct,table,idct_row_head,idct_row,idct_row_tail,idct_row_mid)	\
+ static inline void idct (int16_t * const block)				\
+ {									\
+-    static const int16_t table04[] ATTR_ALIGN(16) =			\
++    static/* const*/ int16_t table04[] ATTR_ALIGN(16) =			\
+ 	table (22725, 21407, 19266, 16384, 12873,  8867, 4520);		\
+-    static const int16_t table17[] ATTR_ALIGN(16) =			\
++    static/* const*/ int16_t table17[] ATTR_ALIGN(16) =			\
+ 	table (31521, 29692, 26722, 22725, 17855, 12299, 6270);		\
+-    static const int16_t table26[] ATTR_ALIGN(16) =			\
++    static/* const*/ int16_t table26[] ATTR_ALIGN(16) =			\
+ 	table (29692, 27969, 25172, 21407, 16819, 11585, 5906);		\
+-    static const int16_t table35[] ATTR_ALIGN(16) =			\
++    static/* const*/ int16_t table35[] ATTR_ALIGN(16) =			\
+ 	table (26722, 25172, 22654, 19266, 15137, 10426, 5315);		\
+ 									\
+     idct_row_head (block, 0*8, table04);				\
+@@ -900,29 +899,29 @@ static inline void idct (int16_t * const
+ 
+ static inline void sse2_idct (int16_t * const block)
+ {
+-    static const int16_t table04[] ATTR_ALIGN(16) =
++    static/* const*/ int16_t table04[] ATTR_ALIGN(16) =
+ 	sse2_table (22725, 21407, 19266, 16384, 12873,  8867, 4520);
+-    static const int16_t table17[] ATTR_ALIGN(16) =
++    static/* const*/ int16_t table17[] ATTR_ALIGN(16) =
+ 	sse2_table (31521, 29692, 26722, 22725, 17855, 12299, 6270);
+-    static const int16_t table26[] ATTR_ALIGN(16) =
++    static/* const*/ int16_t table26[] ATTR_ALIGN(16) =
+ 	sse2_table (29692, 27969, 25172, 21407, 16819, 11585, 5906);
+-    static const int16_t table35[] ATTR_ALIGN(16) =
++    static/* const*/ int16_t table35[] ATTR_ALIGN(16) =
+ 	sse2_table (26722, 25172, 22654, 19266, 15137, 10426, 5315);
+ 
+-    static const int32_t rounder0_128[] ATTR_ALIGN(16) =
++    static/* const*/ int32_t rounder0_128[] ATTR_ALIGN(16) =
+ 	rounder_sse2 ((1 << (COL_SHIFT - 1)) - 0.5);
+-    static const int32_t rounder4_128[] ATTR_ALIGN(16) = rounder_sse2 (0);
+-    static const int32_t rounder1_128[] ATTR_ALIGN(16) =
++    static/* const*/ int32_t rounder4_128[] ATTR_ALIGN(16) = rounder_sse2 (0);
++    static/* const*/ int32_t rounder1_128[] ATTR_ALIGN(16) =
+ 	rounder_sse2 (1.25683487303);	/* C1*(C1/C4+C1+C7)/2 */
+-    static const int32_t rounder7_128[] ATTR_ALIGN(16) =
++    static/* const*/ int32_t rounder7_128[] ATTR_ALIGN(16) =
+ 	rounder_sse2 (-0.25);		/* C1*(C7/C4+C7-C1)/2 */
+-    static const int32_t rounder2_128[] ATTR_ALIGN(16) =
++    static/* const*/ int32_t rounder2_128[] ATTR_ALIGN(16) =
+ 	rounder_sse2 (0.60355339059);	/* C2 * (C6+C2)/2 */
+-    static const int32_t rounder6_128[] ATTR_ALIGN(16) =
++    static/* const*/ int32_t rounder6_128[] ATTR_ALIGN(16) =
+ 	rounder_sse2 (-0.25);		/* C2 * (C6-C2)/2 */
+-    static const int32_t rounder3_128[] ATTR_ALIGN(16) =
++    static/* const*/ int32_t rounder3_128[] ATTR_ALIGN(16) =
+ 	rounder_sse2 (0.087788325588);	/* C3*(-C3/C4+C3+C5)/2 */
+-    static const int32_t rounder5_128[] ATTR_ALIGN(16) =
++    static/* const*/ int32_t rounder5_128[] ATTR_ALIGN(16) =
+ 	rounder_sse2 (-0.441341716183);	/* C3*(-C5/C4+C5-C3)/2 */
+ 
+ #if defined(__x86_64__)
diff --git a/abs/core/mesa/__changelog b/abs/core/mesa/__changelog
new file mode 100644
index 0000000..f4a6817
--- /dev/null
+++ b/abs/core/mesa/__changelog
@@ -0,0 +1 @@
+removed nouveau-dri
diff --git a/abs/core/pm-utils/11netcfg b/abs/core/pm-utils/11netcfg
deleted file mode 100644
index 1b4d05e..0000000
--- a/abs/core/pm-utils/11netcfg
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-. /usr/lib/pm-utils/functions
-
-suspend_netcfg() {
-	netcfg2 all-suspend
-}
-
-resume_netcfg() {
-	netcfg2 all-resume
-}
-
-if [ -x /usr/bin/netcfg2 ]; then
-	case "$1" in
-		hibernate|suspend)
-			suspend_netcfg
-			;;
-		thaw|resume)
-			resume_netcfg
-			;;
-		*)
-			;;
-	esac
-fi
-
-exit $?
diff --git a/abs/core/pm-utils/PKGBUILD b/abs/core/pm-utils/PKGBUILD
index 6e2aed5..9f861a5 100644
--- a/abs/core/pm-utils/PKGBUILD
+++ b/abs/core/pm-utils/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id$
+# $Id: PKGBUILD 159434 2012-05-24 09:48:16Z bluewind $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Thayer Williams <thayer@archlinux.org>
 # Contributor: Giovanni Scafora <giovanni@archlinux.org>
 
 pkgname=pm-utils
 pkgver=1.4.1
-pkgrel=3
+pkgrel=5
 pkgdesc="Utilities and scripts for suspend and hibernate power management"
 arch=('i686' 'x86_64')
 url="http://pm-utils.freedesktop.org"
@@ -13,17 +13,15 @@ license=('GPL')
 depends=('bash' 'procps' 'pm-quirks')
 makedepends=('xmlto' 'docbook-xml' 'docbook-xsl')
 source=(http://pm-utils.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz
-02-logging-append.patch
-12-fix-intel-audio-powersave-hook.patch
-13-49bluetooth-sync.patch
-14-disable-sata-alpm.patch
-        11netcfg)
+        02-logging-append.patch
+        12-fix-intel-audio-powersave-hook.patch
+        13-49bluetooth-sync.patch
+        14-disable-sata-alpm.patch)
 md5sums=('1742a556089c36c3a89eb1b957da5a60'
          'a45149617bf3eb8dc32e6d9e22ae715d'
          'edada31a7d722763513fbe705d95d19d'
          '298f78b873c03c025700d5da619ac134'
-         'd0040f7d30b6a0dd195b5401abbbbdb9'
-         '9839687c8787d99fd4ff36aa3238c27b')
+         'd0040f7d30b6a0dd195b5401abbbbdb9')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
@@ -35,10 +33,11 @@ build() {
       --sysconfdir=/etc \
       --localstatedir=/var
   make
-  make DESTDIR="${pkgdir}" install
+}
 
-  # install additional hooks
-  install -m755 "${srcdir}/11netcfg" "${pkgdir}/usr/lib/pm-utils/sleep.d/"
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  make DESTDIR="${pkgdir}" install
 
   # nm >=0.8.2 has native udev suspend/resume support
   rm -f "${pkgdir}/usr/lib/pm-utils/sleep.d/55NetworkManager"
diff --git a/abs/extra/afpfs-ng/01-gcrypt.patch b/abs/extra/afpfs-ng/01-gcrypt.patch
new file mode 100644
index 0000000..7bcace2
--- /dev/null
+++ b/abs/extra/afpfs-ng/01-gcrypt.patch
@@ -0,0 +1,26 @@
+diff -ru afpfs-ng-0.8.1/configure.ac afpfs-ng-0.8.1+iPhone/configure.ac
+--- afpfs-ng-0.8.1/configure.ac	2008-03-08 16:23:12.000000000 +0000
++++ afpfs-ng-0.8.1+iPhone/configure.ac	2010-10-24 05:26:15.000000000 +0000
+@@ -50,21 +50,6 @@
+ 	case $host in
+ 		*-*-darwin*) 
+ 		AC_MSG_CHECKING([for correct gcrypt version])
+-		AC_RUN_IFELSE(
+-			[AC_LANG_PROGRAM([
+-				#include <gcrypt.h>
+-				#include <stdio.h>],[
+-				char*p= GCRYPT_VERSION;
+-				unsigned int vers;
+-				vers=atoi(p)*10000;
+-				p=strchr(p,'.')+1;
+-				vers+=atoi(p)*100;
+-				p=strchr(p,'.')+1;
+-				vers+=atoi(p);
+-				if (vers<10400) return 1;
+-			])],
+-			[AC_MSG_RESULT([yes])],
+-			[AC_MSG_ERROR([version is < 1.4.0])])
+ 		AM_CONDITIONAL(HAVE_LIBGCRYPT, true)
+ 		AC_DEFINE([HAVE_LIBGCRYPT], [1] )
+ 		;;
+
diff --git a/abs/extra/afpfs-ng/02-pointer.patch b/abs/extra/afpfs-ng/02-pointer.patch
new file mode 100644
index 0000000..80507b5
--- /dev/null
+++ b/abs/extra/afpfs-ng/02-pointer.patch
@@ -0,0 +1,280 @@
+diff -up afpfs-ng-0.8.1/cmdline/getstatus.c.pointer afpfs-ng-0.8.1/cmdline/getstatus.c
+--- afpfs-ng-0.8.1/cmdline/getstatus.c.pointer	2011-06-14 17:06:35.000000000 +0200
++++ afpfs-ng-0.8.1/cmdline/getstatus.c	2011-06-14 17:07:25.000000000 +0200
+@@ -1,4 +1,5 @@
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <string.h>
+ #include <pthread.h>
+ 
+diff -up afpfs-ng-0.8.1/fuse/client.c.pointer afpfs-ng-0.8.1/fuse/client.c
+--- afpfs-ng-0.8.1/fuse/client.c.pointer	2008-03-08 03:44:16.000000000 +0100
++++ afpfs-ng-0.8.1/fuse/client.c	2011-06-14 17:02:15.000000000 +0200
+@@ -61,8 +61,9 @@ static int start_afpfsd(void)
+ 			snprintf(filename, PATH_MAX,
+ 				"/usr/local/bin/%s",AFPFSD_FILENAME);
+ 			if (access(filename,X_OK)) {
+-				snprintf(filename, "/usr/bin/%s",
++				snprintf(filename, sizeof(filename), "/usr/bin/%s",
+ 					AFPFSD_FILENAME);
++				filename[sizeof(filename) - 1] = 0;
+ 				if (access(filename,X_OK)) {
+ 					printf("Could not find server (%s)\n",
+ 						filename);
+diff -up afpfs-ng-0.8.1/fuse/fuse_int.c.pointer afpfs-ng-0.8.1/fuse/fuse_int.c
+--- afpfs-ng-0.8.1/fuse/fuse_int.c.pointer	2008-03-02 06:06:24.000000000 +0100
++++ afpfs-ng-0.8.1/fuse/fuse_int.c	2011-06-14 17:02:15.000000000 +0200
+@@ -197,7 +197,7 @@ static int fuse_open(const char *path, s
+ 	ret = ml_open(volume,path,flags,&fp);
+ 
+ 	if (ret==0) 
+-		fi->fh=(void *) fp;
++		fi->fh=(unsigned long) fp;
+ 
+ 	return ret;
+ }
+diff -up afpfs-ng-0.8.1/include/afpfs-ng/afp.h.pointer afpfs-ng-0.8.1/include/afp.h
+--- afpfs-ng-0.8.1/include/afpfs-ng/afp.h.pointer	2008-03-08 17:08:18.000000000 +0100
++++ afpfs-ng-0.8.1/include/afpfs-ng/afp.h	2011-06-14 17:02:15.000000000 +0200
+@@ -370,7 +370,7 @@ int afp_unmount_all_volumes(struct afp_s
+ 
+ int afp_opendt(struct afp_volume *volume, unsigned short * refnum);
+ 
+-int afp_closedt(struct afp_server * server, unsigned short * refnum);
++int afp_closedt(struct afp_server * server, unsigned short refnum);
+ 
+ int afp_getcomment(struct afp_volume *volume, unsigned int did,
+         const char * pathname, struct afp_comment * comment);
+diff -up afpfs-ng-0.8.1/include/afpfs-gn/utils.h.pointer afpfs-ng-0.8.1/include/utils.h
+--- afpfs-ng-0.8.1/include/afpfs-ng/utils.h.pointer	2008-02-18 04:33:58.000000000 +0100
++++ afpfs-ng-0.8.1/include/afpfs-ng/utils.h	2011-06-14 17:02:15.000000000 +0200
+@@ -8,8 +8,8 @@
+ #define hton64(x)       (x)
+ #define ntoh64(x)       (x)
+ #else /* BYTE_ORDER == BIG_ENDIAN */
+-#define hton64(x)       ((u_int64_t) (htonl(((x) >> 32) & 0xffffffffLL)) | \
+-                         (u_int64_t) ((htonl(x) & 0xffffffffLL) << 32))
++#define hton64(x)       ((u_int64_t) (htonl((((unsigned long long)(x)) >> 32) & 0xffffffffLL)) | \
++                         (u_int64_t) ((htonl((unsigned long long)(x)) & 0xffffffffLL) << 32))
+ #define ntoh64(x)       (hton64(x))
+ #endif /* BYTE_ORDER == BIG_ENDIAN */
+ 
+diff -up afpfs-ng-0.8.1/lib/afp_url.c.pointer afpfs-ng-0.8.1/lib/afp_url.c
+--- afpfs-ng-0.8.1/lib/afp_url.c.pointer	2008-03-04 21:16:49.000000000 +0100
++++ afpfs-ng-0.8.1/lib/afp_url.c	2011-06-14 17:02:15.000000000 +0200
+@@ -33,7 +33,7 @@ static int check_port(char * port) 
+ static int check_uamname(const char * uam) 
+ {
+ 	char * p;
+-	for (p=uam;*p;p++) {
++	for (p=(char *)uam;*p;p++) {
+ 		if (*p==' ') continue;
+ 		if ((*p<'A') || (*p>'z')) return -1;
+ 	}
+@@ -188,7 +188,7 @@ int afp_parse_url(struct afp_url * url, 
+ 		return -1;
+ 
+ 	}
+-	if (p==NULL) p=toparse;
++	if (p==NULL) p=(char *)toparse;
+ 
+ 	/* Now split on the first / */
+ 	if (sscanf(p,"%[^/]/%[^$]",
+diff -up afpfs-ng-0.8.1/lib/did.c.pointer afpfs-ng-0.8.1/lib/did.c
+--- afpfs-ng-0.8.1/lib/did.c.pointer	2008-02-18 04:39:17.000000000 +0100
++++ afpfs-ng-0.8.1/lib/did.c	2011-06-14 17:02:15.000000000 +0200
+@@ -226,7 +226,7 @@ int get_dirid(struct afp_volume * volume
+ 
+ 
+ 	/* Go to the end of last known entry */
+-	p=path+(p-copy);
++	p=(char *)path+(p-copy);
+ 	p2=p;
+ 
+ 	while ((p=strchr(p+1,'/'))) {
+diff -up afpfs-ng-0.8.1/lib/dsi.c.pointer afpfs-ng-0.8.1/lib/dsi.c
+--- afpfs-ng-0.8.1/lib/dsi.c.pointer	2008-02-18 04:53:03.000000000 +0100
++++ afpfs-ng-0.8.1/lib/dsi.c	2011-06-14 17:02:15.000000000 +0200
+@@ -474,7 +474,7 @@ void dsi_getstatus_reply(struct afp_serv
+ 	}
+ 	server->flags=ntohs(reply1->flags);
+ 
+-	p=(void *)((unsigned int) server->incoming_buffer + sizeof(*reply1));
++	p=(void *)((unsigned long) server->incoming_buffer + sizeof(*reply1));
+ 	p+=copy_from_pascal(server->server_name,p,AFP_SERVER_NAME_LEN)+1;
+ 
+ 	/* Now work our way through the variable bits */
+@@ -757,7 +757,7 @@ gotenough:
+ 		printf("<<< read() of rest of AFP, %d bytes\n",amount_to_read);
+ 		#endif
+ 		ret = read(server->fd, (void *)
+-		(((unsigned int) server->incoming_buffer)+server->data_read),
++		(((unsigned long) server->incoming_buffer)+server->data_read),
+ 			amount_to_read);
+ 		if (ret<0) return -1;
+ 		if (ret==0) {
+diff -up afpfs-ng-0.8.1/lib/loop.c.pointer afpfs-ng-0.8.1/lib/loop.c
+--- afpfs-ng-0.8.1/lib/loop.c.pointer	2008-02-18 04:40:11.000000000 +0100
++++ afpfs-ng-0.8.1/lib/loop.c	2011-06-14 17:02:15.000000000 +0200
+@@ -25,7 +25,7 @@
+ static unsigned char exit_program=0;
+ 
+ static pthread_t ending_thread;
+-static pthread_t main_thread = NULL;
++static pthread_t main_thread = (pthread_t)NULL;
+ 
+ static int loop_started=0;
+ static pthread_cond_t loop_started_condition;
+diff -up afpfs-ng-0.8.1/lib/lowlevel.c.pointer afpfs-ng-0.8.1/lib/lowlevel.c
+--- afpfs-ng-0.8.1/lib/lowlevel.c.pointer	2008-02-20 02:33:17.000000000 +0100
++++ afpfs-ng-0.8.1/lib/lowlevel.c	2011-06-14 17:02:15.000000000 +0200
+@@ -582,7 +582,7 @@ int ll_getattr(struct afp_volume * volum
+ 	if (volume->server->using_version->av_number>=30)
+ 		stbuf->st_mode |= fp.unixprivs.permissions;
+ 	else
+-		set_nonunix_perms(stbuf,&fp);
++		set_nonunix_perms(&stbuf->st_mode,&fp);
+ 
+ 	stbuf->st_uid=fp.unixprivs.uid;
+ 	stbuf->st_gid=fp.unixprivs.gid;
+diff -up afpfs-ng-0.8.1/lib/midlevel.c.pointer afpfs-ng-0.8.1/lib/midlevel.c
+--- afpfs-ng-0.8.1/lib/midlevel.c.pointer	2008-03-08 17:08:18.000000000 +0100
++++ afpfs-ng-0.8.1/lib/midlevel.c	2011-06-14 17:02:15.000000000 +0200
+@@ -713,7 +713,7 @@ int ml_write(struct afp_volume * volume,
+ {
+ 
+ 	int ret,err=0;
+-	int totalwritten = 0;
++	size_t totalwritten = 0;
+ 	uint64_t sizetowrite, ignored;
+ 	unsigned char flags = 0;
+ 	unsigned int max_packet_size=volume->server->tx_quantum;
+diff -up afpfs-ng-0.8.1/lib/proto_attr.c.pointer afpfs-ng-0.8.1/lib/proto_attr.c
+--- afpfs-ng-0.8.1/lib/proto_attr.c.pointer	2008-01-30 05:37:58.000000000 +0100
++++ afpfs-ng-0.8.1/lib/proto_attr.c	2011-06-14 17:02:15.000000000 +0200
+@@ -166,7 +166,7 @@ int afp_getextattr(struct afp_volume * v
+ 	copy_path(server,p,pathname,strlen(pathname));
+ 	unixpath_to_afppath(server,p);
+ 	p2=p+sizeof_path_header(server)+strlen(pathname);
+-	if (((unsigned int ) p2) & 0x1) p2++;
++	if (((unsigned long) p2) & 0x1) p2++;
+ 	req2=(void *) p2;
+ 
+ 	req2->len=htons(namelen);
+diff -up afpfs-ng-0.8.1/lib/proto_desktop.c.pointer afpfs-ng-0.8.1/lib/proto_desktop.c
+--- afpfs-ng-0.8.1/lib/proto_desktop.c.pointer	2008-02-18 04:44:11.000000000 +0100
++++ afpfs-ng-0.8.1/lib/proto_desktop.c	2011-06-14 17:02:15.000000000 +0200
+@@ -168,7 +168,7 @@ int afp_getcomment_reply(struct afp_serv
+ 	return 0;
+ }
+ 
+-int afp_closedt(struct afp_server * server, unsigned short * refnum) 
++int afp_closedt(struct afp_server * server, unsigned short refnum) 
+ {
+ 	struct {
+ 		struct dsi_header dsi_header __attribute__((__packed__));
+diff -up afpfs-ng-0.8.1/lib/proto_directory.c.pointer afpfs-ng-0.8.1/lib/proto_directory.c
+--- afpfs-ng-0.8.1/lib/proto_directory.c.pointer	2008-02-19 03:39:29.000000000 +0100
++++ afpfs-ng-0.8.1/lib/proto_directory.c	2011-06-14 17:02:15.000000000 +0200
+@@ -248,6 +248,7 @@ int afp_enumerate_reply(struct afp_serve
+ 
+ 	return 0;
+ }
++
+ int afp_enumerateext2_reply(struct afp_server *server, char * buf, unsigned int size, void * other) 
+ {
+ 
+@@ -266,8 +267,7 @@ int afp_enumerateext2_reply(struct afp_s
+ 	char * p = buf + sizeof(*reply);
+ 	int i;
+ 	char  *max=buf+size;
+-	struct afp_file_info * filebase = NULL, *filecur=NULL, *new_file=NULL;
+-	void ** x = other;
++	struct afp_file_info * filebase = NULL, *filecur = NULL, *new_file = NULL, **x = (struct afp_file_info **) other;
+ 
+ 	if (reply->dsi_header.return_code.error_code) {
+ 		return reply->dsi_header.return_code.error_code;
+diff -up afpfs-ng-0.8.1/lib/proto_map.c.pointer afpfs-ng-0.8.1/lib/proto_map.c
+--- afpfs-ng-0.8.1/lib/proto_map.c.pointer	2008-01-30 05:37:59.000000000 +0100
++++ afpfs-ng-0.8.1/lib/proto_map.c	2011-06-14 17:02:15.000000000 +0200
+@@ -122,7 +122,7 @@ int afp_mapid_reply(struct afp_server *s
+ 
+ 	if (reply->header.return_code.error_code!=kFPNoErr) return -1;
+ 
+-	copy_from_pascal_two(name,&reply->name,255);
++	copy_from_pascal_two(name,reply->name,255);
+ 
+ 	return 0;
+ }
+diff -up afpfs-ng-0.8.1/lib/proto_session.c.pointer afpfs-ng-0.8.1/lib/proto_session.c
+--- afpfs-ng-0.8.1/lib/proto_session.c.pointer	2008-02-18 04:46:19.000000000 +0100
++++ afpfs-ng-0.8.1/lib/proto_session.c	2011-06-14 17:02:15.000000000 +0200
+@@ -39,7 +39,7 @@ int afp_getsessiontoken(struct afp_serve
+ 	switch (type) {
+ 	case kLoginWithTimeAndID:
+ 	case kReconnWithTimeAndID: {
+-		uint32_t *p = (void *) (((unsigned int) request)+
++		uint32_t *p = (void *) (((unsigned long) request)+
+ 			sizeof(*request));
+ 
+ 		offset=sizeof(timestamp);
+@@ -63,7 +63,7 @@ int afp_getsessiontoken(struct afp_serve
+ 		goto error;
+ 	}
+ 
+-	data=(void *) (((unsigned int) request)+sizeof(*request)+offset);
++	data=(void *) (((unsigned long) request)+sizeof(*request)+offset);
+ 	request->idlength=htonl(datalen);
+ 	request->pad=0;
+ 	request->type=htons(type);
+@@ -127,7 +127,7 @@ int afp_disconnectoldsession(struct afp_
+ 	if ((request=malloc(sizeof(*request) + AFP_TOKEN_MAX_LEN))==NULL)
+ 		return -1;
+ 
+-	token_data  = request + sizeof(*request);
++	token_data  = (char *)request + sizeof(*request);
+ 
+ 	request->type=htons(type);
+ 
+diff -up afpfs-ng-0.8.1/lib/uams.c.pointer afpfs-ng-0.8.1/lib/uams.c
+--- afpfs-ng-0.8.1/lib/uams.c.pointer	2008-01-04 04:52:44.000000000 +0100
++++ afpfs-ng-0.8.1/lib/uams.c	2011-06-14 17:02:15.000000000 +0200
+@@ -180,7 +180,7 @@ static int cleartxt_login(struct afp_ser
+ 		goto cleartxt_fail;
+ 
+ 	p += copy_to_pascal(p, username) + 1;
+-	if ((int)p & 0x1)
++	if ((long)p & 0x1)
+ 		len--;
+ 	else
+ 		p++;
+@@ -230,7 +230,7 @@ static int cleartxt_passwd(struct afp_se
+ 		goto cleartxt_fail;
+ 
+ 	p += copy_to_pascal(p, username) + 1;
+-	if ((int)p & 0x1)
++	if ((long)p & 0x1)
+ 		len--;
+ 	else
+ 		p++;
+@@ -580,7 +580,7 @@ static int dhx_login(struct afp_server *
+ 	if (ai == NULL)
+ 		goto dhx_noctx_fail;
+ 	d += copy_to_pascal(ai, username) + 1;
+-	if (((int)d) % 2)
++	if (((long)d) % 2)
+ 		d++;
+ 	else
+ 		ai_len--;
+diff -up afpfs-ng-0.8.1/lib/utils.c.pointer afpfs-ng-0.8.1/lib/utils.c
+--- afpfs-ng-0.8.1/lib/utils.c.pointer	2008-02-18 04:53:37.000000000 +0100
++++ afpfs-ng-0.8.1/lib/utils.c	2011-06-14 17:02:15.000000000 +0200
+@@ -196,7 +196,7 @@ int invalid_filename(struct afp_server *
+ 			maxlen=255;
+ 
+ 
+-	p=filename+1;
++	p=(char *)filename+1;
+ 	while ((q=strchr(p,'/'))) {
+ 		if (q>p+maxlen)
+ 			return 1;
diff --git a/abs/extra/afpfs-ng/10-fix-errno.patch b/abs/extra/afpfs-ng/10-fix-errno.patch
new file mode 100644
index 0000000..ff7ce44
--- /dev/null
+++ b/abs/extra/afpfs-ng/10-fix-errno.patch
@@ -0,0 +1,23 @@
+--- afpfs-ng-0.8.1/lib/afp.c	2011-09-04 19:42:42.000000000 +0200
++++ afpfs-ng-0.8.1/lib/afp.c	2011-09-04 19:39:44.000000000 +0200
+@@ -19,7 +19,6 @@
+ #include <sys/time.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+-#include <errno.h>
+ 
+ #include <afpfs-ng/afp_protocol.h>
+ #include <afpfs-ng/libafpclient.h>
+--- afpfs-ng-0.8.1/lib/afp_url.c	2011-09-04 19:42:42.000000000 +0200
++++ afpfs-ng-0.8.1/lib/afp_url.c	2011-09-04 19:40:27.000000000 +0200
+@@ -21,7 +21,9 @@
+ 
+ static int check_port(char * port) 
+ {
+-	long long ret = strtol(port,NULL,10);
++	long long ret = 0;
++	errno = 0;
++	ret = strtol(port,NULL,10);
+ 	if ((ret<0) || (ret>32767)) return -1;
+ 	if (errno) {
+ 		printf("port error\n");
diff --git a/abs/extra/afpfs-ng/20-build-error-fixes.patch b/abs/extra/afpfs-ng/20-build-error-fixes.patch
new file mode 100644
index 0000000..303e264
--- /dev/null
+++ b/abs/extra/afpfs-ng/20-build-error-fixes.patch
@@ -0,0 +1,125 @@
+Description: Fix build errors.
+Origin: http://anonscm.debian.org/gitweb/?p=collab-maint/afpfs-ng.git;a=blob;f=debian/patches/build-error-fixes.patch
+
+--- a/lib/afp_url.c
++++ b/lib/afp_url.c
+@@ -233,7 +233,7 @@
+ 		}
+ 	}
+ 
+-	snprintf(url->servername,strlen(p)+1,p);
++	strcpy(url->servername,p);
+ 	if (check_servername(url->servername)) {
+ 			if (verbose) printf("This isn't a valid servername\n");
+ 			return -1;
+@@ -263,7 +263,7 @@
+ 	if ((q=escape_strrchr(p,':',":"))) {
+ 		*q='\0';
+ 		q++;
+-		snprintf(url->password,strlen(q)+1,q);
++		strcpy(url->password,q);
+ 		if (check_password(url->password)) {
+ 			if (verbose) printf("This isn't a valid passwd\n");
+ 			return -1;
+@@ -276,7 +276,7 @@
+ 	if ((q=strstr(p,";AUTH="))) {
+ 		*q='\0';
+ 		q+=6;
+-		snprintf(url->uamname,strlen(q)+1,q);
++		strcpy(url->uamname,q);
+ 		if (check_uamname(url->uamname)) {
+ 			if (verbose) printf("This isn't a valid uamname\n");
+ 			return -1;
+@@ -284,7 +284,7 @@
+ 	}
+ 
+ 	if (strlen(p)>0) {
+-		snprintf(url->username,strlen(p)+1,p);
++		strcpy(url->username,p);
+ 		if (check_username(url->username)) {
+ 			if (verbose) printf("This isn't a valid username\n");
+ 			return -1;;
+@@ -304,12 +304,12 @@
+ 		*q='\0';
+ 		q++;
+ 	}
+-	snprintf(url->volumename,strlen(p)+1,p);
++	strcpy(url->volumename,p);
+ 
+ 
+ 	if (q) {
+ 		url->path[0]='/';
+-		snprintf(url->path+1,strlen(q)+1,q);
++		strcpy(url->path+1,q);
+ 	}
+ 
+ done:
+--- a/fuse/commands.c
++++ b/fuse/commands.c
+@@ -163,8 +163,7 @@
+ 
+ 	if (c) {
+ 		len = strlen(c->client_string);
+-		snprintf(c->client_string+len,
+-			MAX_CLIENT_RESPONSE-len,
++		strcpy(c->client_string+len,
+ 			message);
+ 	} else {
+ 
+@@ -468,7 +467,7 @@
+ 	volume->mapping=req->map;
+ 	afp_detect_mapping(volume);
+ 
+-	snprintf(volume->mountpoint,255,req->mountpoint);
++	strcpy(volume->mountpoint,req->mountpoint);
+ 
+ 	/* Create the new thread and block until we get an answer back */
+ 	{
+--- a/fuse/client.c
++++ b/fuse/client.c
+@@ -547,7 +547,7 @@
+ done:
+ 	memset(toprint,0,MAX_CLIENT_RESPONSE+200);
+ 	snprintf(toprint,MAX_CLIENT_RESPONSE+200,"%s",incoming_buffer+sizeof(*answer));
+-	printf(toprint);
++	printf("%s",toprint);
+ 	return ((struct afp_server_response *) incoming_buffer)->result;
+ 
+ 	return 0;
+--- a/cmdline/cmdline_afp.c
++++ b/cmdline/cmdline_afp.c
+@@ -828,11 +828,11 @@
+ 	char text[40960];
+ 
+ 	afp_status_header(text,&len);
+-	printf(text);
++	printf("%s",text);
+ 
+ 	len=40960;
+ 	afp_status_server(server,text,&len);
+-	printf(text);
++	printf("%s",text);
+ 	return 0;
+ }
+ 
+--- a/cmdline/cmdline_testafp.c
++++ b/cmdline/cmdline_testafp.c
+@@ -26,12 +26,12 @@
+ 	struct afp_url valid_url;
+ 	afp_default_url(&valid_url);
+ 	valid_url.protocol=protocol;
+-	sprintf(valid_url.servername,servername);
+-	sprintf(valid_url.volumename,volumename);
+-	sprintf(valid_url.path,path);
+-	sprintf(valid_url.username,username);
+-	sprintf(valid_url.password,password);
+-	sprintf(valid_url.uamname,uamname);
++	strcpy(valid_url.servername,servername);
++	strcpy(valid_url.volumename,volumename);
++	strcpy(valid_url.path,path);
++	strcpy(valid_url.username,username);
++	strcpy(valid_url.password,password);
++	strcpy(valid_url.uamname,uamname);
+ 	valid_url.port=port;
+ 
+ 	if (afp_url_validate(url_string,&valid_url)) 
diff --git a/abs/extra/afpfs-ng/21-header-path-fix.patch b/abs/extra/afpfs-ng/21-header-path-fix.patch
new file mode 100644
index 0000000..fe79b1f
--- /dev/null
+++ b/abs/extra/afpfs-ng/21-header-path-fix.patch
@@ -0,0 +1,16 @@
+Description: Ensure internal headers are picked instead of system headers.
+Origin: http://anonscm.debian.org/gitweb/?p=collab-maint/afpfs-ng.git;a=blob;f=debian/patches/header-path-fix.patch
+
+--- a/include/afpfs-ng/afp.h
++++ b/include/afpfs-ng/afp.h
+@@ -7,8 +7,8 @@
+ #include <netdb.h>
+ #include <sys/statvfs.h>
+ #include <pwd.h>
+-#include <afpfs-ng/afp_protocol.h>
+-#include <afpfs-ng/libafpclient.h>
++#include "afp_protocol.h"
++#include "libafpclient.h"
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <unistd.h>
diff --git a/abs/extra/afpfs-ng/30-include-fixes.patch b/abs/extra/afpfs-ng/30-include-fixes.patch
new file mode 100644
index 0000000..de4f883
--- /dev/null
+++ b/abs/extra/afpfs-ng/30-include-fixes.patch
@@ -0,0 +1,44 @@
+--- a/include/afpfs-ng/dsi.h	2012-02-23 10:02:07.062734160 +0100
++++ b/include/afpfs-ng/dsi.h	2012-02-23 10:09:46.297111254 +0100
+@@ -2,7 +2,7 @@
+ #ifndef __DSI_H_
+ #define __DSI_H_
+ 
+-#include "afpfs-ng/afp.h"
++#include "afp.h"
+ 
+ struct dsi_request
+ {
+--- a/include/afpfs-ng/map_def.h	2012-02-23 10:02:07.062734160 +0100
++++ b/include/afpfs-ng/map_def.h	2012-02-23 10:11:32.769953053 +0100
+@@ -1,7 +1,7 @@
+ #ifndef __MAP_H_
+ #define __MAP_H_
+ 
+-#include "afpfs-ng/afp.h"
++#include "afp.h"
+ 
+ #define AFP_MAPPING_UNKNOWN 0
+ #define AFP_MAPPING_COMMON 1
+--- a/include/afpfs-ng/midlevel.h	2012-02-23 10:02:07.062734160 +0100
++++ b/include/afpfs-ng/midlevel.h	2012-02-23 10:12:40.519943675 +0100
+@@ -2,7 +2,7 @@
+ #define __MIDLEVEL_H_ 
+ 
+ #include <utime.h>
+-#include "afpfs-ng/afp.h"
++#include "afp.h"
+ 
+ int ml_open(struct afp_volume * volume, const char *path, int flags, 
+         struct afp_file_info **newfp);
+--- a/include/afpfs-ng/utils.h	2012-02-23 10:14:42.212332892 +0100
++++ b/include/afpfs-ng/utils.h	2012-02-23 10:14:51.116069525 +0100
+@@ -2,7 +2,7 @@
+ #define __UTILS_H_
+ #include <stdio.h>
+ 
+-#include "afpfs-ng/afp.h"
++#include "afp.h"
+ 
+ #if BYTE_ORDER == BIG_ENDIAN
+ #define hton64(x)       (x)
diff --git a/abs/extra/afpfs-ng/PKGBUILD b/abs/extra/afpfs-ng/PKGBUILD
new file mode 100644
index 0000000..f8dc2d6
--- /dev/null
+++ b/abs/extra/afpfs-ng/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 68567 2012-03-28 10:22:57Z idevolder $
+# Maintainer: BlackIkeEagle <ike DOT devolder AT gmail DOT com>
+# Contributor: slubman <slubman.dndd@laposte.net>
+
+pkgname=afpfs-ng
+pkgver=0.8.1
+pkgrel=5
+pkgdesc="A client for the Apple Filing Protocol (AFP)"
+url="http://alexthepuffin.googlepages.com/"
+license=('GPL')
+depends=('gmp' 'fuse' 'libgcrypt')
+arch=('i686' 'x86_64')
+options=(!libtool)
+source=(
+	"http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2"
+	'fix_afpfs-ng_includes.patch'
+	'01-gcrypt.patch'
+	'02-pointer.patch'
+	'10-fix-errno.patch'
+	'20-build-error-fixes.patch'
+	'21-header-path-fix.patch'
+	'30-include-fixes.patch'
+)
+sha256sums=(
+	'688560de1cde57ab8d9e0ef7dc6436dbf0267fe8884f9014e50ff92b297b01a8'
+	'627d94ab3c1cbc002b18839f514c6fa980b0a25dfc21e8761b389fcd39f32755'
+	'18dc77b064fc02c229e0cfa071a7e31cde6d0243671ebde2f561ebdf09dc38bb'
+	'8537b086c496e776be2a6757325717cb15dee6dcf2aedccebed6b4b2332d3dc1'
+	'0e1c0c0e3a9ff6e55ccbbbc1b4de630c874ff058e2ea94360b7d90e650d04811'
+	'393662da1bcd5d3aba180a2add37d9006e0a487c3bb7bf157a15aa492f4d6a87'
+	'f551ae9debe8ce2c4ed1d7a8bce497801ace995473876a5fefa0443353232477'
+	'71b8f52923cef39f0cccb8fdff610575958fd5dbed66e5aa4413ae6aceeec656'
+)
+
+build() {
+	cd "$pkgname-$pkgver"
+	# apply patches
+	msg2 'fix_afpfs-ng_includes.patch'
+	patch -Np1 -i "$srcdir/fix_afpfs-ng_includes.patch"
+	msg2 '01-gcrypt.patch'
+	patch -Np1 -i "$srcdir/01-gcrypt.patch"
+	msg2 '02-pointer.patch'
+	patch -Np1 -i "$srcdir/02-pointer.patch"
+	msg2 '10-fix-errno.patch'
+	patch -Np1 -i "$srcdir/10-fix-errno.patch"
+	msg2 '20-build-error-fixes.patch'
+	patch -Np1 -i "$srcdir/20-build-error-fixes.patch"
+	msg2 '21-header-path-fix.patch'
+	patch -Np1 -i "$srcdir/21-header-path-fix.patch"
+	msg2 '30-include-fixes.patch'
+	patch -Np1 -i "$srcdir/30-include-fixes.patch"
+
+	./configure --prefix=/usr
+	make
+}
+
+package() {
+	cd "$pkgname-$pkgver"
+	make DESTDIR="$pkgdir" install
+
+	# install headers
+	cd include
+	for header in afpfs-ng/*.h; do
+		install -Dm644 "$header" "$pkgdir/usr/include/$header"
+	done
+}
diff --git a/abs/extra/afpfs-ng/fix_afpfs-ng_includes.patch b/abs/extra/afpfs-ng/fix_afpfs-ng_includes.patch
new file mode 100644
index 0000000..f507a48
--- /dev/null
+++ b/abs/extra/afpfs-ng/fix_afpfs-ng_includes.patch
@@ -0,0 +1,3082 @@
+diff -Naur afpfs-ng-0.8.1/cmdline/cmdline_afp.c afpfs-ng-0.8.1.patch/cmdline/cmdline_afp.c
+--- afpfs-ng-0.8.1/cmdline/cmdline_afp.c	2008-02-19 02:54:19.000000000 +0100
++++ afpfs-ng-0.8.1.patch/cmdline/cmdline_afp.c	2011-09-10 12:13:50.102124369 +0200
+@@ -3,9 +3,9 @@
+ 	
+ */
+ 
+-#include "afp.h"
+-#include "midlevel.h"
+-#include "map_def.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/midlevel.h"
++#include "afpfs-ng/map_def.h"
+ 
+ #include <string.h>
+ #include <stdio.h>
+diff -Naur afpfs-ng-0.8.1/cmdline/cmdline_testafp.c afpfs-ng-0.8.1.patch/cmdline/cmdline_testafp.c
+--- afpfs-ng-0.8.1/cmdline/cmdline_testafp.c	2008-03-04 21:16:50.000000000 +0100
++++ afpfs-ng-0.8.1.patch/cmdline/cmdline_testafp.c	2011-09-10 12:13:50.102124369 +0200
+@@ -3,8 +3,8 @@
+ 	
+ */
+ 
+-#include "afp.h"
+-#include "midlevel.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/midlevel.h"
+ 
+ #include "cmdline_main.h"
+ 
+diff -Naur afpfs-ng-0.8.1/cmdline/getstatus.c afpfs-ng-0.8.1.patch/cmdline/getstatus.c
+--- afpfs-ng-0.8.1/cmdline/getstatus.c	2008-02-18 04:28:09.000000000 +0100
++++ afpfs-ng-0.8.1.patch/cmdline/getstatus.c	2011-09-10 12:13:50.109124463 +0200
+@@ -2,7 +2,7 @@
+ #include <string.h>
+ #include <pthread.h>
+ 
+-#include "afp.h"
++#include "afpfs-ng/afp.h"
+ 
+ static int getstatus(char * address_string, unsigned int port)
+ {
+diff -Naur afpfs-ng-0.8.1/configure.ac afpfs-ng-0.8.1.patch/configure.ac
+--- afpfs-ng-0.8.1/configure.ac	2008-03-08 17:23:12.000000000 +0100
++++ afpfs-ng-0.8.1.patch/configure.ac	2011-09-10 12:13:50.109124463 +0200
+@@ -11,6 +11,7 @@
+ AC_PROG_CC
+ AC_PROG_INSTALL
+ AC_PROG_LIBTOOL
++AM_PROG_CC_C_O
+ 
+ # Checks for libraries.
+ # FIXME: Replace `main' with a function in `-lncurses':
+@@ -105,7 +106,7 @@
+ 
+ 
+ 
+-AC_CONFIG_FILES([lib/Makefile fuse/Makefile cmdline/Makefile Makefile docs/Makefile])
++AC_CONFIG_FILES([lib/Makefile fuse/Makefile cmdline/Makefile Makefile include/Makefile include/afpfs-ng/Makefile docs/Makefile])
+ 
+ AC_OUTPUT
+ 
+diff -Naur afpfs-ng-0.8.1/fuse/client.c afpfs-ng-0.8.1.patch/fuse/client.c
+--- afpfs-ng-0.8.1/fuse/client.c	2008-03-08 03:44:16.000000000 +0100
++++ afpfs-ng-0.8.1.patch/fuse/client.c	2011-09-10 12:13:50.110124477 +0200
+@@ -12,11 +12,11 @@
+ #include <grp.h>
+ 
+ #include "config.h"
+-#include <afp.h>
++#include <afpfs-ng/afp.h>
+ #include "afp_server.h"
+-#include "uams_def.h"
+-#include "map_def.h"
+-#include "libafpclient.h"
++#include "afpfs-ng/uams_def.h"
++#include "afpfs-ng/map_def.h"
++#include "afpfs-ng/libafpclient.h"
+ 
+ #define default_uam "Cleartxt Passwrd"
+ 
+diff -Naur afpfs-ng-0.8.1/fuse/commands.c afpfs-ng-0.8.1.patch/fuse/commands.c
+--- afpfs-ng-0.8.1/fuse/commands.c	2008-03-08 17:06:25.000000000 +0100
++++ afpfs-ng-0.8.1.patch/fuse/commands.c	2011-09-10 12:13:50.110124477 +0200
+@@ -19,15 +19,15 @@
+ #include <getopt.h>
+ #include <signal.h>
+ 
+-#include "afp.h"
+-#include "dsi.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/dsi.h"
+ #include "afp_server.h"
+-#include "utils.h"
++#include "afpfs-ng/utils.h"
+ #include "daemon.h"
+-#include "uams_def.h"
+-#include "codepage.h"
+-#include "libafpclient.h"
+-#include "map_def.h"
++#include "afpfs-ng/uams_def.h"
++#include "afpfs-ng/codepage.h"
++#include "afpfs-ng/libafpclient.h"
++#include "afpfs-ng/map_def.h"
+ #include "fuse_int.h"
+ #include "fuse_error.h"
+ #include "fuse_internal.h"
+diff -Naur afpfs-ng-0.8.1/fuse/daemon.c afpfs-ng-0.8.1.patch/fuse/daemon.c
+--- afpfs-ng-0.8.1/fuse/daemon.c	2008-03-04 18:26:05.000000000 +0100
++++ afpfs-ng-0.8.1.patch/fuse/daemon.c	2011-09-10 12:13:50.110124477 +0200
+@@ -23,11 +23,11 @@
+ #include <signal.h>
+ #include <sys/socket.h>
+ 
+-#include "afp.h"
++#include "afpfs-ng/afp.h"
+ 
+-#include "dsi.h"
++#include "afpfs-ng/dsi.h"
+ #include "afp_server.h"
+-#include "utils.h"
++#include "afpfs-ng/utils.h"
+ #include "daemon.h"
+ #include "commands.h"
+ 
+diff -Naur afpfs-ng-0.8.1/fuse/fuse_error.c afpfs-ng-0.8.1.patch/fuse/fuse_error.c
+--- afpfs-ng-0.8.1/fuse/fuse_error.c	2008-01-18 05:40:10.000000000 +0100
++++ afpfs-ng-0.8.1.patch/fuse/fuse_error.c	2011-09-10 12:13:50.111124491 +0200
+@@ -4,7 +4,7 @@
+ #include <unistd.h>
+ #include <string.h>
+ #include <stdio.h>
+-#include "libafpclient.h"
++#include "afpfs-ng/libafpclient.h"
+ #include "fuse_internal.h"
+ 
+ #define TMP_FILE "/tmp/fuse_stderr"
+diff -Naur afpfs-ng-0.8.1/fuse/fuse_int.c afpfs-ng-0.8.1.patch/fuse/fuse_int.c
+--- afpfs-ng-0.8.1/fuse/fuse_int.c	2008-03-02 06:06:24.000000000 +0100
++++ afpfs-ng-0.8.1.patch/fuse/fuse_int.c	2011-09-10 12:13:50.111124491 +0200
+@@ -18,7 +18,7 @@
+ #define FUSE_USE_VERSION 25
+ 
+ 
+-#include "afp.h"
++#include "afpfs-ng/afp.h"
+ 
+ #include <fuse.h>
+ #include <stdio.h>
+@@ -39,10 +39,10 @@
+ #include <pwd.h>
+ #include <stdarg.h>
+ 
+-#include "dsi.h"
+-#include "afp_protocol.h"
+-#include "codepage.h"
+-#include "midlevel.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/afp_protocol.h"
++#include "afpfs-ng/codepage.h"
++#include "afpfs-ng/midlevel.h"
+ #include "fuse_error.h"
+ 
+ /* Uncomment the following line to enable full debugging: */
+diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/afp.h afpfs-ng-0.8.1.patch/include/afpfs-ng/afp.h
+--- afpfs-ng-0.8.1/include/afpfs-ng/afp.h	1970-01-01 01:00:00.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/afpfs-ng/afp.h	2011-09-10 12:13:50.112124505 +0200
+@@ -0,0 +1,533 @@
++
++#ifndef _AFP_H_
++#define _AFP_H_
++
++#include <arpa/inet.h>
++#include <pthread.h>
++#include <netdb.h>
++#include <sys/statvfs.h>
++#include <pwd.h>
++#include <afpfs-ng/afp_protocol.h>
++#include <afpfs-ng/libafpclient.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <unistd.h>
++#include <netinet/in.h>
++
++
++#define AFPFS_VERSION "0.8.1"
++
++/* This is the maximum AFP version this library supports */
++#define AFP_MAX_SUPPORTED_VERSION 32
++
++/* afp_url is used to pass locations around */
++struct afp_url {
++	enum {TCPIP,AT} protocol;
++	char username[AFP_MAX_USERNAME_LEN];
++	char uamname[50];
++	char password[AFP_MAX_PASSWORD_LEN];
++	char servername[AFP_SERVER_NAME_UTF8_LEN];
++	int port;
++	char volumename[AFP_VOLUME_NAME_UTF8_LEN];
++	char path[AFP_MAX_PATH];
++
++	int requested_version;
++	char zone[AFP_ZONE_LEN]; /* Only used for Appletalk */
++	char volpassword[9];;
++};
++
++struct afp_token {
++	unsigned int length;
++	char data[AFP_TOKEN_MAX_LEN];
++};
++
++#define SERVER_MAX_VERSIONS 10
++#define SERVER_MAX_UAMS 10
++
++struct afp_rx_buffer {
++	unsigned int size;
++	unsigned int maxsize;
++	char * data;
++	int errorcode;
++};
++
++
++struct afp_file_info {
++	unsigned short attributes;
++	unsigned int did;
++	unsigned int creation_date;
++	unsigned int modification_date;
++	unsigned int backup_date;
++	unsigned int fileid;
++	unsigned short offspring;
++	char sync;
++	char finderinfo[32];
++	char name[AFP_MAX_PATH];
++	char basename[AFP_MAX_PATH];
++	char translated_name[AFP_MAX_PATH];
++	struct afp_unixprivs unixprivs;
++	unsigned int accessrights;
++	struct afp_file_info * next;
++	struct afp_file_info * largelist_next;
++	unsigned char isdir;
++	unsigned long long size;
++	unsigned short resourcesize;
++	unsigned int resource;
++	unsigned short forkid;
++	struct afp_icon * icon;
++	int eof;
++};
++
++
++#define VOLUME_EXTRA_FLAGS_VOL_CHMOD_KNOWN 0x1
++#define VOLUME_EXTRA_FLAGS_VOL_CHMOD_BROKEN 0x2
++#define VOLUME_EXTRA_FLAGS_SHOW_APPLEDOUBLE 0x4
++#define VOLUME_EXTRA_FLAGS_VOL_SUPPORTS_UNIX 0x8
++#define VOLUME_EXTRA_FLAGS_NO_LOCKING 0x10
++#define VOLUME_EXTRA_FLAGS_IGNORE_UNIXPRIVS 0x20
++#define VOLUME_EXTRA_FLAGS_READONLY 0x40
++
++#define AFP_VOLUME_UNMOUNTED 0
++#define AFP_VOLUME_MOUNTED 1
++#define AFP_VOLUME_UNMOUNTING 2
++
++struct afp_volume {
++	unsigned short volid;
++	char flags;  /* This is from afpGetSrvrParms */
++	unsigned short attributes; /* This is from VolOpen */
++	unsigned short signature;  /* This is fixed or variable */
++	unsigned int creation_date;
++	unsigned int modification_date;
++	unsigned int backup_date;
++	struct statvfs stat;
++	unsigned char mounted;
++	char mountpoint[255];
++	struct afp_server * server;
++	char volume_name[AFP_VOLUME_NAME_LEN];
++	char volume_name_printable[AFP_VOLUME_NAME_UTF8_LEN];
++	unsigned short dtrefnum;
++	char volpassword[AFP_VOLPASS_LEN];
++	unsigned int extra_flags; /* This is an afpfs-ng specific field */
++
++	/* Our directory ID cache */
++	struct did_cache_entry * did_cache_base;
++	pthread_mutex_t did_cache_mutex;
++
++	/* Our journal of open forks */
++	struct afp_file_info * open_forks;
++	pthread_mutex_t open_forks_mutex;
++
++	/* Used to trigger startup */
++        pthread_cond_t  startup_condition_cond;
++
++	struct {
++		uint64_t hits;
++		uint64_t misses;
++		uint64_t expired;
++		uint64_t force_removed;
++	} did_cache_stats;
++
++	void * priv;  /* This is a private structure for fuse/cmdline, etc */
++	pthread_t thread; /* This is the per-volume thread */
++
++	int mapping;
++
++};
++
++#define SERVER_STATE_CONNECTED 1
++#define SERVER_STATE_DISCONNECTED 2
++
++enum server_type{
++	AFPFS_SERVER_TYPE_UNKNOWN,
++	AFPFS_SERVER_TYPE_NETATALK,
++	AFPFS_SERVER_TYPE_AIRPORT,
++	AFPFS_SERVER_TYPE_MACINTOSH,
++};
++
++#define is_netatalk(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_NETATALK )
++#define is_airport(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_AIRPORT )
++#define is_macintosh(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_MACINTOSH )
++
++
++
++struct afp_versions {
++        char        *av_name;
++        int         av_number;
++};
++extern struct afp_versions afp_versions[];
++
++struct afp_server {
++
++	/* Our buffer sizes */
++	unsigned int tx_quantum;
++	unsigned int rx_quantum;
++
++	unsigned int tx_delay;
++
++	/* Connection information */
++	struct sockaddr_in address;
++	int fd;
++
++	/* Some stats, for information only */
++	struct {
++		uint64_t runt_packets;
++		uint64_t incoming_dsi;
++		uint64_t rx_bytes;
++		uint64_t tx_bytes;
++		uint64_t requests_pending;
++	} stats;
++
++	/* General information */
++	char server_name[AFP_SERVER_NAME_LEN];
++	char server_name_utf8[AFP_SERVER_NAME_UTF8_LEN];
++        char server_name_printable[AFP_SERVER_NAME_UTF8_LEN];
++
++	char machine_type[17];
++	char icon[256];
++	char signature[16];
++	unsigned short flags;
++	int connect_state;
++	enum server_type server_type;
++
++	/* This is the time we connected */
++	time_t connect_time;
++
++	/* UAMs */
++	unsigned int supported_uams;
++	unsigned int using_uam;
++
++	/* Authentication */
++	char username[AFP_MAX_USERNAME_LEN];
++	char password[AFP_MAX_PASSWORD_LEN];
++
++	/* Session */
++	struct afp_token token;
++	char need_resume;
++
++	/* Versions */
++	unsigned char requested_version;
++	unsigned char versions[SERVER_MAX_VERSIONS];
++	struct afp_versions *using_version;
++
++	/* Volumes */
++	unsigned char num_volumes;
++	struct afp_volume * volumes;
++
++	void * dsi;
++	unsigned int exit_flag;
++
++	/* Our DSI request queue */
++	pthread_mutex_t requestid_mutex;
++	pthread_mutex_t request_queue_mutex;
++	unsigned short lastrequestid;
++	unsigned short expectedrequestid;
++	struct dsi_request * command_requests;
++
++
++	char loginmesg[200];
++	char servermesg[200];
++	char path_encoding;
++
++	/* This is the data for the incoming buffer */
++	char * incoming_buffer;
++	int data_read;
++	int bufsize;
++
++	/* And this is for the outgoing queue */
++	pthread_mutex_t send_mutex;
++
++	/* This is for user mapping */
++	struct passwd passwd;
++	unsigned int server_uid, server_gid;
++	int server_gid_valid;
++
++	struct afp_server *next;
++
++	/* These are for DSI attention packets */
++	unsigned int attention_quantum;
++	unsigned int attention_len;
++	char * attention_buffer;
++
++};
++
++struct afp_extattr_info {
++	unsigned int maxsize;
++	unsigned int size;
++	char data[1024];
++};
++struct afp_comment {
++	unsigned int maxsize;
++	unsigned int size;
++	char *data;
++};
++
++struct afp_icon {
++	unsigned int maxsize;
++	unsigned int size;
++	char *data;
++};
++
++#define AFP_DEFAULT_ATTENTION_QUANTUM 1024
++
++void afp_unixpriv_to_stat(struct afp_file_info *fp,
++	struct stat *stat);
++
++int init_uams(void) ;
++
++unsigned int find_uam_by_name(const char * name);
++char * uam_bitmap_to_string(unsigned int bitmap);
++
++
++char * get_uam_names_list(void);
++
++unsigned int default_uams_mask(void);
++
++struct afp_volume * find_volume_by_name(struct afp_server * server,
++        const char * volname);
++
++struct afp_connection_request {
++        unsigned int uam_mask;
++	struct afp_url url;
++};
++
++void afp_default_url(struct afp_url *url);
++int afp_parse_url(struct afp_url * url, const char * toparse, int verbose);
++void afp_print_url(struct afp_url * url);
++int afp_url_validate(char * url_string, struct afp_url * valid_url);
++
++int afp_list_volnames(struct afp_server * server, char * names, int max);
++
++/* User mapping */
++int afp_detect_mapping(struct afp_volume * volume);
++
++/* These are some functions that help with simple status text generation */
++
++int afp_status_header(char * text, int * len);
++int afp_status_server(struct afp_server * s,char * text, int * len);
++
++
++struct afp_server * afp_server_full_connect(void * priv, struct afp_connection_request * req);
++
++void * just_end_it_now(void *other);
++void add_fd_and_signal(int fd);
++void loop_disconnect(struct afp_server *s);
++void afp_wait_for_started_loop(void);
++
++
++struct afp_versions * pick_version(unsigned char *versions,
++	unsigned char requested) ;
++int pick_uam(unsigned int u1, unsigned int u2);
++
++int afp_server_login(struct afp_server *server,
++        char * mesg, unsigned int *l, unsigned int max);
++
++
++int afp_dologin(struct afp_server *server,
++	unsigned int uam, char * username, char * passwd);
++
++void afp_free_server(struct afp_server **server);
++
++struct afp_server * afp_server_init(struct sockaddr_in * address);
++int afp_get_address(void * priv, const char * hostname, unsigned int port,
++	struct sockaddr_in * address);
++
++
++int afp_main_loop(int command_fd);
++int afp_main_quick_startup(pthread_t * thread);
++
++int afp_server_destroy(struct afp_server *s) ;
++int afp_server_reconnect(struct afp_server * s, char * mesg,
++        unsigned int *l, unsigned int max);
++int afp_server_connect(struct afp_server *s, int full);
++
++struct afp_server * afp_server_complete_connection(
++	void * priv,
++	struct afp_server * server,
++	struct sockaddr_in * address, unsigned char * versions,
++	unsigned int uams, char * username, char * password,
++	unsigned int requested_version, unsigned int uam_mask);
++
++int afp_connect_volume(struct afp_volume * volume, struct afp_server * server,
++	char * mesg, unsigned int * l, unsigned int max);
++int something_is_mounted(struct afp_server * server);
++
++int add_cache_entry(struct afp_file_info * file) ;
++struct afp_file_info * get_cache_by_name(char * name);
++struct afp_server * find_server_by_address(struct sockaddr_in * address);
++struct afp_server * find_server_by_signature(char * signature);
++struct afp_server * find_server_by_name(char * name);
++int server_still_valid(struct afp_server * server);
++
++
++struct afp_server * get_server_base(void);
++int afp_server_remove(struct afp_server * server);
++
++int afp_unmount_volume(struct afp_volume * volume);
++int afp_unmount_all_volumes(struct afp_server * server);
++
++#define volume_is_readonly(x) (((x)->attributes&kReadOnly) || \
++	((x)->extra_flags & VOLUME_EXTRA_FLAGS_READONLY))
++
++int afp_opendt(struct afp_volume *volume, unsigned short * refnum);
++
++int afp_closedt(struct afp_server * server, unsigned short * refnum);
++
++int afp_getcomment(struct afp_volume *volume, unsigned int did,
++        const char * pathname, struct afp_comment * comment);
++
++int afp_addcomment(struct afp_volume *volume, unsigned int did,
++        const char * pathname, char * comment,uint64_t *size);
++
++int afp_geticon(struct afp_volume * volume, unsigned int filecreator,
++        unsigned int filetype, unsigned char icontype, 
++	unsigned short length, struct afp_icon * icon);
++
++/* Things you want to do to a server */
++
++int afp_getsrvrmsg(struct afp_server *server, unsigned short messagetype,unsigned char utf8, unsigned char block, char * mesg);
++
++int afp_login(struct afp_server *server, char * uaname,
++        char * userauthinfo, unsigned int userauthinfo_len,
++	struct afp_rx_buffer *rx);
++
++int afp_changepassword(struct afp_server *server, char * uaname,
++        char * userauthinfo, unsigned int userauthinfo_len,
++	struct afp_rx_buffer *rx);
++
++int afp_logincont(struct afp_server *server, unsigned short id,
++        char * userauthinfo, unsigned int userauthinfo_len,
++	struct afp_rx_buffer *rx);
++
++int afp_getsessiontoken(struct afp_server * server, int type,
++        unsigned int timestamp, struct afp_token *outgoing_token,
++        struct afp_token * incoming_token);
++
++int afp_getsrvrparms(struct afp_server *server);
++
++int afp_logout(struct afp_server *server,unsigned char wait);
++
++int afp_mapname(struct afp_server * server, unsigned char subfunction,
++        char * name, unsigned int * id);
++
++int afp_mapid(struct afp_server * server, unsigned char subfunction,
++	unsigned int id, char *name);
++
++int afp_getuserinfo(struct afp_server * server, int thisuser,
++	unsigned int userid, unsigned short bitmap, 
++	unsigned int *newuid, unsigned int *newgid);
++
++int afp_zzzzz(struct afp_server *server);
++
++int afp_volopen(struct afp_volume * volume, 
++		unsigned short bitmap, char * password);
++
++int afp_flush(struct afp_volume * volume);
++
++int afp_getfiledirparms(struct afp_volume *volume, unsigned int did, 
++	unsigned int filebitmap, unsigned int dirbitmap, const char * pathname,
++	struct afp_file_info *fp);
++
++int afp_enumerate(struct afp_volume * volume, 
++	unsigned int dirid, 
++	unsigned int filebitmap, unsigned int dirbitmap, 
++        unsigned short reqcount,
++        unsigned short startindex,
++        char * path,
++	struct afp_file_info ** file_p);
++
++int afp_enumerateext2(struct afp_volume * volume, 
++	unsigned int dirid, 
++	unsigned int filebitmap, unsigned int dirbitmap, 
++        unsigned short reqcount,
++        unsigned long startindex,
++        char * path,
++	struct afp_file_info ** file_p);
++
++int afp_openfork(struct afp_volume * volume,
++        unsigned char forktype,
++        unsigned int dirid,
++        unsigned short accessmode,
++        char * filename, 
++	struct afp_file_info *fp);
++
++int afp_read(struct afp_volume * volume, unsigned short forkid,
++                uint32_t offset,
++                uint32_t count, struct afp_rx_buffer * rx);
++
++int afp_readext(struct afp_volume * volume, unsigned short forkid,
++                uint64_t offset,
++                uint64_t count, struct afp_rx_buffer * rx);
++
++int afp_getvolparms(struct afp_volume * volume, unsigned short bitmap);
++
++
++int afp_createdir(struct afp_volume * volume, unsigned int dirid, const char * pathname, unsigned int *did_p);
++
++int afp_delete(struct afp_volume * volume,
++        unsigned int dirid, char * pathname);
++
++
++int afp_createfile(struct afp_volume * volume, unsigned char flag,
++        unsigned int did, char * pathname);
++
++int afp_write(struct afp_volume * volume, unsigned short forkid,
++        uint32_t offset, uint32_t reqcount,
++        char * data, uint32_t * written);
++
++int afp_writeext(struct afp_volume * volume, unsigned short forkid,
++        uint64_t offset, uint64_t reqcount,
++        char * data, uint64_t * written);
++
++int afp_flushfork(struct afp_volume * volume, unsigned short forkid);
++
++int afp_closefork(struct afp_volume * volume, unsigned short forkid);
++int afp_setfileparms(struct afp_volume * volume,
++        unsigned int dirid, const char * pathname, unsigned short bitmap,
++        struct afp_file_info *fp);
++int afp_setfiledirparms(struct afp_volume * volume, 
++        unsigned int dirid, const char * pathname, unsigned short bitmap,
++        struct afp_file_info *fp);
++
++int afp_setdirparms(struct afp_volume * volume,
++        unsigned int dirid, const char * pathname, unsigned short bitmap,
++        struct afp_file_info *fp);
++
++int afp_volclose(struct afp_volume * volume);
++
++
++int afp_setforkparms(struct afp_volume *volume,
++        unsigned short forkid, unsigned short bitmap, unsigned long len);
++
++int afp_byterangelock(struct afp_volume * volume,
++        unsigned char flag,
++        unsigned short forkid,
++        uint32_t offset,
++        uint32_t len, uint32_t *generated_offset);
++
++int afp_byterangelockext(struct afp_volume * volume,
++        unsigned char flag,
++        unsigned short forkid,
++        uint64_t offset,
++        uint64_t len, uint64_t *generated_offset);
++
++int afp_moveandrename(struct afp_volume *volume,
++	unsigned int src_did,
++	unsigned int dst_did,
++	char * src_path, char * dst_path, char *new_name);
++
++int afp_rename(struct afp_volume * volume,
++        unsigned int dirid,
++        char * path_from, char * path_to);
++
++int afp_listextattr(struct afp_volume * volume,
++        unsigned int dirid, unsigned short bitmap,
++        char * pathname, struct afp_extattr_info * info);
++
++/* This is a currently undocumented command */
++int afp_newcommand76(struct afp_volume * volume, unsigned int dlen, char * data);
++
++/* For debugging */
++char * afp_get_command_name(char code);
++
++
++#endif
+diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/afp_protocol.h afpfs-ng-0.8.1.patch/include/afpfs-ng/afp_protocol.h
+--- afpfs-ng-0.8.1/include/afpfs-ng/afp_protocol.h	1970-01-01 01:00:00.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/afpfs-ng/afp_protocol.h	2011-09-10 12:13:50.112124505 +0200
+@@ -0,0 +1,361 @@
++
++#ifndef _AFP_PROTOCOL_H_
++#define _AFP_PROTOCOL_H_
++
++#include <sys/types.h>
++#include <stddef.h>
++#include <unistd.h>
++#include <stdint.h>
++
++/* This file defines constants for the Apple File Protocol.
++   All page references are from "Apple Filing Protocol Programming" version 3.2.
++   except where noted.
++*/
++
++#define AFP_SERVER_NAME_LEN 33
++#define AFP_SERVER_NAME_UTF8_LEN 255
++#define AFP_VOLUME_NAME_LEN 33
++#define AFP_VOLUME_NAME_UTF8_LEN 33
++#define AFP_SIGNATURE_LEN 16
++#define AFP_MACHINETYPE_LEN 33
++#define AFP_LOGINMESG_LEN 200
++#define AFP_VOLPASS_LEN 8
++#define AFP_HOSTNAME_LEN 255
++/* This is actually just a guess, and only used for appletalk */
++#define AFP_ZONE_LEN 255
++
++#define AFP_SERVER_ICON_LEN 256
++
++
++#define AFP_MAX_USERNAME_LEN 127
++#define AFP_MAX_PASSWORD_LEN 127
++
++
++/* This is the maximum length of any UAM string */
++#define AFP_UAM_LENGTH 24
++
++/* This is the maximum length of any path description */
++#define AFP_MAX_PATH 768
++
++#define AFP_VOL_FLAT 1
++#define AFP_VOL_FIXED 2
++#define AFP_VOL_VARIABLE 3
++
++/* The root directory ID, p.26 */
++
++#define AFP_ROOT_DID 2
++
++/* Path type constants, p.249 */
++
++enum {
++kFPShortName = 1,
++kFPLongName = 2,
++kFPUTF8Name = 3
++};
++
++/* fork types */
++
++#define AFP_FORKTYPE_DATA 0x0
++#define AFP_FORKTYPE_RESOURCE 0x80
++
++/* openfork access modes, from p.196 */
++
++#define AFP_OPENFORK_ALLOWREAD 1
++#define AFP_OPENFORK_ALLOWWRITE 2
++#define AFP_OPENFORK_DENYREAD 0x10
++#define AFP_OPENFORK_DENYWRITE 0x20
++
++/* Message type for getsrvmesg, p. 169*/
++
++typedef enum {
++  AFPMESG_LOGIN = 0,
++  AFPMESG_SERVER = 1
++} afpmessage_t;
++
++/* Message bitmap for getsrvrmsg */
++
++#define AFP_GETSRVRMSG_UTF8 0x2
++#define AFP_GETSRVRMSG_GETMSG 0x1
++
++
++/* Maximum Version length, p.17 */
++#define AFP_MAX_VERSION_LENGTH 16
++
++/* Maximum length of a token, this is undocumented */
++#define AFP_TOKEN_MAX_LEN 256
++
++/* The maximum size of a file for AFP 2 */
++#define AFP_MAX_AFP2_FILESIZE (4294967296)
++
++/* Unix privs, p.240 */
++
++struct afp_unixprivs {
++	uint32_t uid __attribute__((__packed__));
++	uint32_t gid __attribute__((__packed__));
++	uint32_t permissions __attribute__((__packed__));
++	uint32_t ua_permissions __attribute__((__packed__));
++
++};
++
++
++/* AFP Volume attributes bitmap, p.241 */
++
++enum {
++    kReadOnly = 0x01,
++    kHasVolumePassword = [REDACTED]
++    kSupportsFileIDs = 0x04,
++    kSupportsCatSearch = 0x08,
++    kSupportsBlankAccessPrivs = 0x10,
++    kSupportsUnixPrivs = 0x20,
++    kSupportsUTF8Names = 0x40,
++    kNoNetworkUserIDs = 0x80,
++    kDefaultPrivsFromParent = 0x100,
++    kNoExchangeFiles = 0x200,
++    kSupportsExtAttrs = 0x400,
++    kSupportsACLs=0x800
++};
++
++/* AFP file creation constantes, p.250 */
++enum {
++kFPSoftCreate = 0,
++kFPHardCreate = 0x80
++};
++
++/* AFP Directory attributes, taken from the protocol guide p.236 */
++
++enum {
++    kFPAttributeBit = 0x1,
++    kFPParentDirIDBit = 0x2,
++    kFPCreateDateBit = 0x4,
++    kFPModDateBit = 0x8,
++    kFPBackupDateBit = 0x10,
++    kFPFinderInfoBit = 0x20,
++    kFPLongNameBit = 0x40,
++    kFPShortNameBit = 0x80,
++    kFPNodeIDBit = 0x100,
++    kFPOffspringCountBit = 0x0200,
++    kFPOwnerIDBit = 0x0400,
++    kFPGroupIDBit = 0x0800,
++    kFPAccessRightsBit = 0x1000,
++    kFPProDOSInfoBit = 0x2000, // AFP version 2.2 and earlier
++    kFPUTF8NameBit = 0x2000, // AFP version 3.0 and later
++    kFPUnixPrivsBit = 0x8000 // AFP version 3.0 and later
++};
++
++/* AFP File bitmap, p.238.  These are the ones not in the AFP Directory
++   attributes map. */
++
++enum {
++	kFPDataForkLenBit = 0x0200,
++	kFPRsrcForkLenBit = 0x0400,
++	kFPExtDataForkLenBit = 0x0800, // AFP version 3.0 and later
++	kFPLaunchLimitBit = 0x1000,
++	kFPExtRsrcForkLenBit = 0x4000, // AFP version 3.0 and later
++};
++
++/* AFP Extended Attributes Bitmap, p.238  */
++
++enum {
++	kXAttrNoFollow = 0x1,
++	kXAttrCreate = 0x2,
++	kXAttrREplace=0x4
++};
++
++
++/* AFP function codes */
++enum AFPFunction
++{
++        afpByteRangeLock = 1, afpCloseVol, afpCloseDir, afpCloseFork,
++        afpCopyFile, afpCreateDir, afpCreateFile,
++        afpDelete, afpEnumerate, afpFlush, afpFlushFork,
++        afpGetForkParms = 14, afpGetSrvrInfo, afpGetSrvrParms,
++        afpGetVolParms, afpLogin, afpLoginCont, afpLogout, afpMapID,
++        afpMapName, afpMoveAndRename, afpOpenVol, afpOpenDir, afpOpenFork,
++        afpRead, afpRename, afpSetDirParms, afpSetFileParms,
++        afpSetForkParms, afpSetVolParms, afpWrite, afpGetFileDirParms,
++	afpSetFileDirParms, afpChangePassword,
++        afpGetUserInfo=37,afpGetSrvrMsg = 38,
++	afpOpenDT=48,
++	afpCloseDT=49,
++	afpGetIcon=51, afpGetIconInfo=52,
++	afpAddComment=56, afpRemoveComment=57, afpGetComment=58,
++	afpByteRangeLockExt=59, afpReadExt, afpWriteExt,
++	afpGetAuthMethods=62,
++	afp_LoginExt=63,
++	afpGetSessionToken=64,
++	afpDisconnectOldSession=65,
++	afpEnumerateExt=66,
++	afpCatSearchExt = 67,
++	afpEnumerateExt2 = 68, afpGetExtAttr, afpSetExtAttr, 
++	afpRemoveExtAttr , afpListExtAttrs,
++	afpZzzzz = 122,
++	afpAddIcon=192,
++};
++
++/* AFP Volume bitmap.  Take from 242 of the protocol guide. */
++enum {
++	kFPBadVolPre222Bitmap = 0xFe00,
++	kFPBadVolBitmap = 0xF000,
++	kFPVolAttributeBit = 0x1,
++	kFPVolSignatureBit = 0x2,
++	kFPVolCreateDateBit = 0x4,
++	kFPVolModDateBit = 0x8,
++	kFPVolBackupDateBit = 0x10,
++	kFPVolIDBit = 0x20,
++	kFPVolBytesFreeBit = 0x40,
++	kFPVolBytesTotalBit = 0x80,
++	kFPVolNameBit = 0x100,
++	kFPVolExtBytesFreeBit = 0x200,
++	kFPVolExtBytesTotalBit = 0x400,
++	kFPVolBlockSizeBit = 0x800
++};
++
++/* AFP Attention Codes -- 4 bits */
++#define AFPATTN_SHUTDOWN     (1 << 15)            /* shutdown/disconnect */
++#define AFPATTN_CRASH        (1 << 14)            /* server crashed */
++#define AFPATTN_MESG         (1 << 13)            /* server has message */
++#define AFPATTN_NORECONNECT  (1 << 12)            /* don't reconnect */
++/* server notification */
++#define AFPATTN_NOTIFY       (AFPATTN_MESG | AFPATTN_NORECONNECT) 
++
++/* extended bitmap -- 12 bits. volchanged is only useful w/ a server
++ * notification, and time is only useful for shutdown. */
++#define AFPATTN_VOLCHANGED   (1 << 0)             /* volume has changed */
++#define AFPATTN_TIME(x)      ((x) & 0xfff)        /* time in minutes */
++
++#define kFPNoErr 0
++
++/* AFP result codes, p252 */
++#define kASPSessClosed -1072
++#define kFPAccessDenied -5000
++#define kFPAuthContinue -5001
++#define kFPBadUAM -5002
++#define kFPBadVersNum -5003
++#define kFPBitmapErr -5004
++#define kFPCantMove -5005
++#define kFPDenyConflict -5006
++#define kFPDirNotEmpty -5007
++#define kFPDiskFull -5008
++#define kFPEOFErr -5009
++#define kFPFileBusy -5010
++#define kFPFlatVol -5011
++#define kFPItemNotFound -5012
++#define kFPLockErr -5013
++#define kFPMiscErr -5014
++#define kFPNoMoreLocks -5015
++#define kFPNoServer -5016
++#define kFPObjectExists -5017
++#define kFPObjectNotFound -5018
++#define kFPParamErr -5019
++#define kFPRangeNotLocked -5020
++#define kFPRangeOverlap -5021
++#define kFPSessClosed -5022
++#define kFPUserNotAuth -5023
++#define kFPCallNotSupported -5024
++#define kFPObjectTypeErr -5025
++#define kFPTooManyFilesOpen -5026
++#define kFPServerGoingDown -5027
++#define kFPCantRename -5028
++#define kFPDirNotFound -5029
++#define kFPIconTypeError -5030
++#define kFPVolLocked -5031
++#define kFPObjectLocked -5032
++#define kFPContainsSharedErr -5033
++#define kFPIDNotFound -5034
++#define kFPIDExists -5035
++#define kFPDiffVolErr  -5036
++#define kFPCatalogChanged -5037
++#define kFPSameObjectErr -5038
++#define kFPBadIDErr -5039
++#define kFPPwdSameErr -5040
++#define kFPPwdTooShortErr -5041
++#define kFPPwdExpiredErr -5042
++#define kFPInsideSharedErr -5043
++#define kFPInsideTrashErr -5044
++#define kFPPwdNeedsChangeErr -5045
++#define kFPPwdPolicyErr -5046
++#define kFPDiskQuotaExceeded –5047 
++
++
++
++/* These flags determine to lock or unlock in ByteRangeLock(Ext) */
++
++enum {
++ByteRangeLock_Lock = 0,
++ByteRangeLock_Unlock = 1
++};
++
++/* These flags are used in volopen and getsrvrparm replies, p.171 */
++
++#define HasConfigInfo 0x1
++#define HasPassword 0x80
++
++/* These are the subfunction for kFPMapID, as per p.248 */
++
++enum {
++kUserIDToName = 1,
++kGroupIDToName = 2,
++kUserIDToUTF8Name = 3,
++kGroupIDToUTF8Name = 4,
++kUserUUIDToUTF8Name = 5,
++kGroupUUIDToUTF8Name = 6
++};
++
++
++/* These are the subfunction flags described in the FPMapName command, p.286.
++   Note that this is different than what's described on p. 186. */
++
++enum {
++kNameToUserID = 1,
++kNameToGroupID = 2,
++kUTF8NameToUserID = 3,
++kUTF8NameToGroupID = 4,
++kUTF8NameToUserUUID = 5,
++kUTF8NameToGroupUUID = 6
++};
++
++/* These are bits for FPGetUserInfo, p.173. */
++#define kFPGetUserInfo_USER_ID 1
++#define kFPGetUserInfo_PRI_GROUPID 2
++
++/* Flags for the replies of GetSrvrInfo and DSI GetStatus, p.240 */
++
++enum {
++	kSupportsCopyfile = 0x01,
++	kSupportsChgPwd = 0x02,
++	kDontAllowSavePwd = 0x04,
++	kSupportsSrvrMsg = 0x08,
++	kSrvrSig = 0x10,
++	kSupportsTCP = 0x20,
++	kSupportsSrvrNotify = 0x40,
++	kSupportsReconnect = 0x80,
++	kSupportsDirServices = 0x100,
++	kSupportsUTF8SrvrName = 0x200,
++	kSupportsUUIDs = 0x400,
++	kSupportsSuperClient = 0x8000
++};
++
++
++/* p.247 */
++
++enum {
++	kLoginWithoutID = 0,
++	kLoginWithID = 1,
++	kReconnWithID = 2,
++	kLoginWithTimeAndID = 3,
++	kReconnWithTimeAndID = 4,
++	kRecon1Login = 5,
++	kRecon1ReconnectLogin = 6,
++	kRecon1Refresh = 7, kGetKerberosSessionKey = 8
++};
++
++
++#define AFP_CHMOD_ALLOWED_BITS_22 \
++	(S_IRUSR |S_IWUSR | S_IRGRP | S_IWGRP |S_IROTH | S_IWOTH | S_IFREG )
++
++
++#endif
++
++
++
++
+diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/codepage.h afpfs-ng-0.8.1.patch/include/afpfs-ng/codepage.h
+--- afpfs-ng-0.8.1/include/afpfs-ng/codepage.h	1970-01-01 01:00:00.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/afpfs-ng/codepage.h	2011-09-10 12:13:50.113124518 +0200
+@@ -0,0 +1,11 @@
++#ifndef __CODE_PAGE_H_
++#define __CODE_PAGE_H_
++int convert_utf8dec_to_utf8pre(const char *src, int src_len,
++	char * dest, int dest_len);
++int convert_utf8pre_to_utf8dec(const char * src, int src_len, 
++	char * dest, int dest_len);
++int convert_path_to_unix(char encoding, char * dest, 
++	char * src, int dest_len);
++int convert_path_to_afp(char encoding, char * dest, 
++	char * src, int dest_len);
++#endif
+diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/dsi.h afpfs-ng-0.8.1.patch/include/afpfs-ng/dsi.h
+--- afpfs-ng-0.8.1/include/afpfs-ng/dsi.h	1970-01-01 01:00:00.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/afpfs-ng/dsi.h	2011-09-10 12:13:50.115124544 +0200
+@@ -0,0 +1,33 @@
++
++#ifndef __DSI_H_
++#define __DSI_H_
++
++#include "afpfs-ng/afp.h"
++
++struct dsi_request
++{
++	unsigned short requestid;
++	unsigned char subcommand;
++	void * other;
++	unsigned char wait;
++	pthread_cond_t  condition_cond;
++	struct dsi_request * next;
++	int return_code;
++};
++
++int dsi_receive(struct afp_server * server, void * data, int size);
++int dsi_getstatus(struct afp_server * server);
++
++int dsi_opensession(struct afp_server *server);
++
++int dsi_send(struct afp_server *server, char * msg, int size,int wait,unsigned char subcommand, void ** other);
++struct dsi_session * dsi_create(struct afp_server *server);
++int dsi_restart(struct afp_server *server);
++int dsi_recv(struct afp_server * server);
++
++#define DSI_BLOCK_TIMEOUT -1
++#define DSI_DONT_WAIT 0
++#define DSI_DEFAULT_TIMEOUT 5
++
++
++#endif
+diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/libafpclient.h afpfs-ng-0.8.1.patch/include/afpfs-ng/libafpclient.h
+--- afpfs-ng-0.8.1/include/afpfs-ng/libafpclient.h	1970-01-01 01:00:00.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/afpfs-ng/libafpclient.h	2011-09-10 12:13:50.115124544 +0200
+@@ -0,0 +1,50 @@
++
++#ifndef __CLIENT_H_
++#define __CLIENT_H_
++
++#include <unistd.h>
++#include <syslog.h>
++
++#define MAX_CLIENT_RESPONSE 2048
++
++
++enum loglevels {
++        AFPFSD,
++};
++
++struct afp_server;
++struct afp_volume;
++
++struct libafpclient {
++        int (*unmount_volume) (struct afp_volume * volume);
++	void (*log_for_client)(void * priv,
++        	enum loglevels loglevel, int logtype, const char *message);
++	void (*forced_ending_hook)(void);
++	int (*scan_extra_fds)(int command_fd,fd_set *set, int * max_fd);
++	void (*loop_started)(void);
++} ;
++
++extern struct libafpclient * libafpclient;
++
++void libafpclient_register(struct libafpclient * tmpclient);
++
++
++void signal_main_thread(void);
++
++/* These are logging functions */
++
++#define MAXLOGSIZE 2048
++
++#define LOG_METHOD_SYSLOG 1
++#define LOG_METHOD_STDOUT 2
++
++void set_log_method(int m);
++
++
++void log_for_client(void * priv,
++        enum loglevels loglevel, int logtype, char * message,...);
++
++void stdout_log_for_client(void * priv,
++	enum loglevels loglevel, int logtype, const char *message);
++
++#endif
+diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/Makefile.am afpfs-ng-0.8.1.patch/include/afpfs-ng/Makefile.am
+--- afpfs-ng-0.8.1/include/afpfs-ng/Makefile.am	1970-01-01 01:00:00.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/afpfs-ng/Makefile.am	2011-09-10 12:13:50.115124544 +0200
+@@ -0,0 +1,6 @@
++## Process this file with automake to produce Makefile.in
++
++afpfsincludedir = $(includedir)/afpfs-ng
++
++afpfsinclude_HEADERS = afp.h afp_protocol.h libafpclient.h
++nodist_afpfsinclude_HEADERS =  codepage.h dsi.h  map_def.h midlevel.h uams_def.h utils.h
+diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/map_def.h afpfs-ng-0.8.1.patch/include/afpfs-ng/map_def.h
+--- afpfs-ng-0.8.1/include/afpfs-ng/map_def.h	1970-01-01 01:00:00.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/afpfs-ng/map_def.h	2011-09-10 12:13:50.116124557 +0200
+@@ -0,0 +1,15 @@
++#ifndef __MAP_H_
++#define __MAP_H_
++
++#include "afpfs-ng/afp.h"
++
++#define AFP_MAPPING_UNKNOWN 0
++#define AFP_MAPPING_COMMON 1
++#define AFP_MAPPING_LOGINIDS 2
++#define AFP_MAPPING_NAME 3
++
++unsigned int map_string_to_num(char * name);
++char * get_mapping_name(struct afp_volume * volume);
++
++
++#endif
+diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/midlevel.h afpfs-ng-0.8.1.patch/include/afpfs-ng/midlevel.h
+--- afpfs-ng-0.8.1/include/afpfs-ng/midlevel.h	1970-01-01 01:00:00.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/afpfs-ng/midlevel.h	2011-09-10 12:13:50.116124557 +0200
+@@ -0,0 +1,64 @@
++#ifndef __MIDLEVEL_H_
++#define __MIDLEVEL_H_ 
++
++#include <utime.h>
++#include "afpfs-ng/afp.h"
++
++int ml_open(struct afp_volume * volume, const char *path, int flags, 
++        struct afp_file_info **newfp);
++
++int ml_creat(struct afp_volume * volume, const char *path,mode_t mode);
++
++int ml_readdir(struct afp_volume * volume, 
++	const char *path, 
++	struct afp_file_info **base);
++
++int ml_read(struct afp_volume * volume, const char *path,
++	char *buf, size_t size, off_t offset,
++	struct afp_file_info *fp, int * eof);
++
++int ml_chmod(struct afp_volume * vol, const char * path, mode_t mode);
++
++int ml_unlink(struct afp_volume * vol, const char *path);
++
++int ml_mkdir(struct afp_volume * vol, const char * path, mode_t mode);
++
++int ml_close(struct afp_volume * volume, const char * path,
++        struct afp_file_info * fp);
++
++int ml_getattr(struct afp_volume * volume, const char *path, 
++	struct stat *stbuf);
++
++int ml_write(struct afp_volume * volume, const char * path, 
++	const char *data, size_t size, off_t offset,
++	struct afp_file_info * fp, uid_t uid,
++	gid_t gid);
++
++int ml_readlink(struct afp_volume * vol, const char * path,
++        char *buf, size_t size);
++
++int ml_rmdir(struct afp_volume * vol, const char *path);
++
++int ml_chown(struct afp_volume * vol, const char * path,   
++        uid_t uid, gid_t gid);
++
++int ml_truncate(struct afp_volume * vol, const char * path, off_t offset);
++
++int ml_utime(struct afp_volume * vol, const char * path,
++	struct utimbuf * timebuf);
++
++int ml_symlink(struct afp_volume *vol, const char * path1, const char * path2);
++
++int ml_rename(struct afp_volume * vol,
++	const char * path_from, const char * path_to);
++
++int ml_statfs(struct afp_volume * vol, const char *path, struct statvfs *stat);
++
++void afp_ml_filebase_free(struct afp_file_info **filebase);
++
++int ml_passwd(struct afp_server *server,
++                char * username, char * oldpasswd, char * newpasswd);
++
++
++
++#endif
+diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/uams_def.h afpfs-ng-0.8.1.patch/include/afpfs-ng/uams_def.h
+--- afpfs-ng-0.8.1/include/afpfs-ng/uams_def.h	1970-01-01 01:00:00.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/afpfs-ng/uams_def.h	2011-09-10 12:13:50.116124557 +0200
+@@ -0,0 +1,16 @@
++#ifndef __UAM_DEFS_H_
++#define __UAM_DEFS_H_
++
++#define UAM_NOUSERAUTHENT 0x1
++#define UAM_CLEARTXTPASSWRD 0x2
++#define UAM_RANDNUMEXCHANGE 0x4
++#define UAM_2WAYRANDNUM 0x8
++#define UAM_DHCAST128 0x10
++#define UAM_CLIENTKRB 0x20
++#define UAM_DHX2 0x40
++#define UAM_RECON1 0x80
++
++int uam_string_to_bitmap(char * name);
++char * uam_bitmap_to_string(unsigned int bitmap);
++
++#endif
+diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/utils.h afpfs-ng-0.8.1.patch/include/afpfs-ng/utils.h
+--- afpfs-ng-0.8.1/include/afpfs-ng/utils.h	1970-01-01 01:00:00.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/afpfs-ng/utils.h	2011-09-10 12:13:50.116124557 +0200
+@@ -0,0 +1,43 @@
++#ifndef __UTILS_H_
++#define __UTILS_H_
++#include <stdio.h>
++
++#include "afpfs-ng/afp.h"
++
++#if BYTE_ORDER == BIG_ENDIAN
++#define hton64(x)       (x)
++#define ntoh64(x)       (x)
++#else /* BYTE_ORDER == BIG_ENDIAN */
++#define hton64(x)       ((u_int64_t) (htonl(((x) >> 32) & 0xffffffffLL)) | \
++                         (u_int64_t) ((htonl(x) & 0xffffffffLL) << 32))
++#define ntoh64(x)       (hton64(x))
++#endif /* BYTE_ORDER == BIG_ENDIAN */
++
++#define min(a,b) (((a)<(b)) ? (a) : (b))
++#define max(a,b) (((a)>(b)) ? (a) : (b))
++
++
++
++unsigned char unixpath_to_afppath(
++        struct afp_server * server,
++        char * buf);
++
++unsigned char sizeof_path_header(struct afp_server * server);
++
++
++
++unsigned char copy_from_pascal(char *dest, char *pascal,unsigned int max_len) ;
++unsigned short copy_from_pascal_two(char *dest, char *pascal,unsigned int max_len);
++
++unsigned char copy_to_pascal(char *dest, const char *src);
++unsigned short copy_to_pascal_two(char *dest, const char *src);
++
++void copy_path(struct afp_server * server, char * dest, const char * pathname, unsigned char len);
++
++
++char * create_path(struct afp_server * server, char * pathname, unsigned short * len);
++
++
++int invalid_filename(struct afp_server * server, const char * filename);
++
++#endif
+diff -Naur afpfs-ng-0.8.1/include/afp.h afpfs-ng-0.8.1.patch/include/afp.h
+--- afpfs-ng-0.8.1/include/afp.h	2008-03-08 17:08:18.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/afp.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,533 +0,0 @@
+-
+-#ifndef _AFP_H_
+-#define _AFP_H_
+-
+-#include <arpa/inet.h>
+-#include <pthread.h>
+-#include <netdb.h>
+-#include <sys/statvfs.h>
+-#include <pwd.h>
+-#include <afp_protocol.h>
+-#include <libafpclient.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <unistd.h>
+-#include <netinet/in.h>
+-
+-
+-#define AFPFS_VERSION "0.8.1"
+-
+-/* This is the maximum AFP version this library supports */
+-#define AFP_MAX_SUPPORTED_VERSION 32
+-
+-/* afp_url is used to pass locations around */
+-struct afp_url {
+-	enum {TCPIP,AT} protocol;
+-	char username[AFP_MAX_USERNAME_LEN];
+-	char uamname[50];
+-	char password[AFP_MAX_PASSWORD_LEN];
+-	char servername[AFP_SERVER_NAME_UTF8_LEN];
+-	int port;
+-	char volumename[AFP_VOLUME_NAME_UTF8_LEN];
+-	char path[AFP_MAX_PATH];
+-
+-	int requested_version;
+-	char zone[AFP_ZONE_LEN]; /* Only used for Appletalk */
+-	char volpassword[9];;
+-};
+-
+-struct afp_token {
+-	unsigned int length;
+-	char data[AFP_TOKEN_MAX_LEN];
+-};
+-
+-#define SERVER_MAX_VERSIONS 10
+-#define SERVER_MAX_UAMS 10
+-
+-struct afp_rx_buffer {
+-	unsigned int size;
+-	unsigned int maxsize;
+-	char * data;
+-	int errorcode;
+-};
+-
+-
+-struct afp_file_info {
+-	unsigned short attributes;
+-	unsigned int did;
+-	unsigned int creation_date;
+-	unsigned int modification_date;
+-	unsigned int backup_date;
+-	unsigned int fileid;
+-	unsigned short offspring;
+-	char sync;
+-	char finderinfo[32];
+-	char name[AFP_MAX_PATH];
+-	char basename[AFP_MAX_PATH];
+-	char translated_name[AFP_MAX_PATH];
+-	struct afp_unixprivs unixprivs;
+-	unsigned int accessrights;
+-	struct afp_file_info * next;
+-	struct afp_file_info * largelist_next;
+-	unsigned char isdir;
+-	unsigned long long size;
+-	unsigned short resourcesize;
+-	unsigned int resource;
+-	unsigned short forkid;
+-	struct afp_icon * icon;
+-	int eof;
+-};
+-
+-
+-#define VOLUME_EXTRA_FLAGS_VOL_CHMOD_KNOWN 0x1
+-#define VOLUME_EXTRA_FLAGS_VOL_CHMOD_BROKEN 0x2
+-#define VOLUME_EXTRA_FLAGS_SHOW_APPLEDOUBLE 0x4
+-#define VOLUME_EXTRA_FLAGS_VOL_SUPPORTS_UNIX 0x8
+-#define VOLUME_EXTRA_FLAGS_NO_LOCKING 0x10
+-#define VOLUME_EXTRA_FLAGS_IGNORE_UNIXPRIVS 0x20
+-#define VOLUME_EXTRA_FLAGS_READONLY 0x40
+-
+-#define AFP_VOLUME_UNMOUNTED 0
+-#define AFP_VOLUME_MOUNTED 1
+-#define AFP_VOLUME_UNMOUNTING 2
+-
+-struct afp_volume {
+-	unsigned short volid;
+-	char flags;  /* This is from afpGetSrvrParms */
+-	unsigned short attributes; /* This is from VolOpen */
+-	unsigned short signature;  /* This is fixed or variable */
+-	unsigned int creation_date;
+-	unsigned int modification_date;
+-	unsigned int backup_date;
+-	struct statvfs stat;
+-	unsigned char mounted;
+-	char mountpoint[255];
+-	struct afp_server * server;
+-	char volume_name[AFP_VOLUME_NAME_LEN];
+-	char volume_name_printable[AFP_VOLUME_NAME_UTF8_LEN];
+-	unsigned short dtrefnum;
+-	char volpassword[AFP_VOLPASS_LEN];
+-	unsigned int extra_flags; /* This is an afpfs-ng specific field */
+-
+-	/* Our directory ID cache */
+-	struct did_cache_entry * did_cache_base;
+-	pthread_mutex_t did_cache_mutex;
+-
+-	/* Our journal of open forks */
+-	struct afp_file_info * open_forks;
+-	pthread_mutex_t open_forks_mutex;
+-
+-	/* Used to trigger startup */
+-        pthread_cond_t  startup_condition_cond;
+-
+-	struct {
+-		uint64_t hits;
+-		uint64_t misses;
+-		uint64_t expired;
+-		uint64_t force_removed;
+-	} did_cache_stats;
+-
+-	void * priv;  /* This is a private structure for fuse/cmdline, etc */
+-	pthread_t thread; /* This is the per-volume thread */
+-
+-	int mapping;
+-
+-};
+-
+-#define SERVER_STATE_CONNECTED 1
+-#define SERVER_STATE_DISCONNECTED 2
+-
+-enum server_type{
+-	AFPFS_SERVER_TYPE_UNKNOWN,
+-	AFPFS_SERVER_TYPE_NETATALK,
+-	AFPFS_SERVER_TYPE_AIRPORT,
+-	AFPFS_SERVER_TYPE_MACINTOSH,
+-};
+-
+-#define is_netatalk(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_NETATALK )
+-#define is_airport(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_AIRPORT )
+-#define is_macintosh(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_MACINTOSH )
+-
+-
+-
+-struct afp_versions {
+-        char        *av_name;
+-        int         av_number;
+-};
+-extern struct afp_versions afp_versions[];
+-
+-struct afp_server {
+-
+-	/* Our buffer sizes */
+-	unsigned int tx_quantum;
+-	unsigned int rx_quantum;
+-
+-	unsigned int tx_delay;
+-
+-	/* Connection information */
+-	struct sockaddr_in address;
+-	int fd;
+-
+-	/* Some stats, for information only */
+-	struct {
+-		uint64_t runt_packets;
+-		uint64_t incoming_dsi;
+-		uint64_t rx_bytes;
+-		uint64_t tx_bytes;
+-		uint64_t requests_pending;
+-	} stats;
+-
+-	/* General information */
+-	char server_name[AFP_SERVER_NAME_LEN];
+-	char server_name_utf8[AFP_SERVER_NAME_UTF8_LEN];
+-        char server_name_printable[AFP_SERVER_NAME_UTF8_LEN];
+-
+-	char machine_type[17];
+-	char icon[256];
+-	char signature[16];
+-	unsigned short flags;
+-	int connect_state;
+-	enum server_type server_type;
+-
+-	/* This is the time we connected */
+-	time_t connect_time;
+-
+-	/* UAMs */
+-	unsigned int supported_uams;
+-	unsigned int using_uam;
+-
+-	/* Authentication */
+-	char username[AFP_MAX_USERNAME_LEN];
+-	char password[AFP_MAX_PASSWORD_LEN];
+-
+-	/* Session */
+-	struct afp_token token;
+-	char need_resume;
+-
+-	/* Versions */
+-	unsigned char requested_version;
+-	unsigned char versions[SERVER_MAX_VERSIONS];
+-	struct afp_versions *using_version;
+-
+-	/* Volumes */
+-	unsigned char num_volumes;
+-	struct afp_volume * volumes;
+-
+-	void * dsi;
+-	unsigned int exit_flag;
+-
+-	/* Our DSI request queue */
+-	pthread_mutex_t requestid_mutex;
+-	pthread_mutex_t request_queue_mutex;
+-	unsigned short lastrequestid;
+-	unsigned short expectedrequestid;
+-	struct dsi_request * command_requests;
+-
+-
+-	char loginmesg[200];
+-	char servermesg[200];
+-	char path_encoding;
+-
+-	/* This is the data for the incoming buffer */
+-	char * incoming_buffer;
+-	int data_read;
+-	int bufsize;
+-
+-	/* And this is for the outgoing queue */
+-	pthread_mutex_t send_mutex;
+-
+-	/* This is for user mapping */
+-	struct passwd passwd;
+-	unsigned int server_uid, server_gid;
+-	int server_gid_valid;
+-
+-	struct afp_server *next;
+-
+-	/* These are for DSI attention packets */
+-	unsigned int attention_quantum;
+-	unsigned int attention_len;
+-	char * attention_buffer;
+-
+-};
+-
+-struct afp_extattr_info {
+-	unsigned int maxsize;
+-	unsigned int size;
+-	char data[1024];
+-};
+-struct afp_comment {
+-	unsigned int maxsize;
+-	unsigned int size;
+-	char *data;
+-};
+-
+-struct afp_icon {
+-	unsigned int maxsize;
+-	unsigned int size;
+-	char *data;
+-};
+-
+-#define AFP_DEFAULT_ATTENTION_QUANTUM 1024
+-
+-void afp_unixpriv_to_stat(struct afp_file_info *fp,
+-	struct stat *stat);
+-
+-int init_uams(void) ;
+-
+-unsigned int find_uam_by_name(const char * name);
+-char * uam_bitmap_to_string(unsigned int bitmap);
+-
+-
+-char * get_uam_names_list(void);
+-
+-unsigned int default_uams_mask(void);
+-
+-struct afp_volume * find_volume_by_name(struct afp_server * server,
+-        const char * volname);
+-
+-struct afp_connection_request {
+-        unsigned int uam_mask;
+-	struct afp_url url;
+-};
+-
+-void afp_default_url(struct afp_url *url);
+-int afp_parse_url(struct afp_url * url, const char * toparse, int verbose);
+-void afp_print_url(struct afp_url * url);
+-int afp_url_validate(char * url_string, struct afp_url * valid_url);
+-
+-int afp_list_volnames(struct afp_server * server, char * names, int max);
+-
+-/* User mapping */
+-int afp_detect_mapping(struct afp_volume * volume);
+-
+-/* These are some functions that help with simple status text generation */
+-
+-int afp_status_header(char * text, int * len);
+-int afp_status_server(struct afp_server * s,char * text, int * len);
+-
+-
+-struct afp_server * afp_server_full_connect(void * priv, struct afp_connection_request * req);
+-
+-void * just_end_it_now(void *other);
+-void add_fd_and_signal(int fd);
+-void loop_disconnect(struct afp_server *s);
+-void afp_wait_for_started_loop(void);
+-
+-
+-struct afp_versions * pick_version(unsigned char *versions,
+-	unsigned char requested) ;
+-int pick_uam(unsigned int u1, unsigned int u2);
+-
+-int afp_server_login(struct afp_server *server,
+-        char * mesg, unsigned int *l, unsigned int max);
+-
+-
+-int afp_dologin(struct afp_server *server,
+-	unsigned int uam, char * username, char * passwd);
+-
+-void afp_free_server(struct afp_server **server);
+-
+-struct afp_server * afp_server_init(struct sockaddr_in * address);
+-int afp_get_address(void * priv, const char * hostname, unsigned int port,
+-	struct sockaddr_in * address);
+-
+-
+-int afp_main_loop(int command_fd);
+-int afp_main_quick_startup(pthread_t * thread);
+-
+-int afp_server_destroy(struct afp_server *s) ;
+-int afp_server_reconnect(struct afp_server * s, char * mesg,
+-        unsigned int *l, unsigned int max);
+-int afp_server_connect(struct afp_server *s, int full);
+-
+-struct afp_server * afp_server_complete_connection(
+-	void * priv,
+-	struct afp_server * server,
+-	struct sockaddr_in * address, unsigned char * versions,
+-	unsigned int uams, char * username, char * password,
+-	unsigned int requested_version, unsigned int uam_mask);
+-
+-int afp_connect_volume(struct afp_volume * volume, struct afp_server * server,
+-	char * mesg, unsigned int * l, unsigned int max);
+-int something_is_mounted(struct afp_server * server);
+-
+-int add_cache_entry(struct afp_file_info * file) ;
+-struct afp_file_info * get_cache_by_name(char * name);
+-struct afp_server * find_server_by_address(struct sockaddr_in * address);
+-struct afp_server * find_server_by_signature(char * signature);
+-struct afp_server * find_server_by_name(char * name);
+-int server_still_valid(struct afp_server * server);
+-
+-
+-struct afp_server * get_server_base(void);
+-int afp_server_remove(struct afp_server * server);
+-
+-int afp_unmount_volume(struct afp_volume * volume);
+-int afp_unmount_all_volumes(struct afp_server * server);
+-
+-#define volume_is_readonly(x) (((x)->attributes&kReadOnly) || \
+-	((x)->extra_flags & VOLUME_EXTRA_FLAGS_READONLY))
+-
+-int afp_opendt(struct afp_volume *volume, unsigned short * refnum);
+-
+-int afp_closedt(struct afp_server * server, unsigned short * refnum);
+-
+-int afp_getcomment(struct afp_volume *volume, unsigned int did,
+-        const char * pathname, struct afp_comment * comment);
+-
+-int afp_addcomment(struct afp_volume *volume, unsigned int did,
+-        const char * pathname, char * comment,uint64_t *size);
+-
+-int afp_geticon(struct afp_volume * volume, unsigned int filecreator,
+-        unsigned int filetype, unsigned char icontype, 
+-	unsigned short length, struct afp_icon * icon);
+-
+-/* Things you want to do to a server */
+-
+-int afp_getsrvrmsg(struct afp_server *server, unsigned short messagetype,unsigned char utf8, unsigned char block, char * mesg);
+-
+-int afp_login(struct afp_server *server, char * uaname,
+-        char * userauthinfo, unsigned int userauthinfo_len,
+-	struct afp_rx_buffer *rx);
+-
+-int afp_changepassword(struct afp_server *server, char * uaname,
+-        char * userauthinfo, unsigned int userauthinfo_len,
+-	struct afp_rx_buffer *rx);
+-
+-int afp_logincont(struct afp_server *server, unsigned short id,
+-        char * userauthinfo, unsigned int userauthinfo_len,
+-	struct afp_rx_buffer *rx);
+-
+-int afp_getsessiontoken(struct afp_server * server, int type,
+-        unsigned int timestamp, struct afp_token *outgoing_token,
+-        struct afp_token * incoming_token);
+-
+-int afp_getsrvrparms(struct afp_server *server);
+-
+-int afp_logout(struct afp_server *server,unsigned char wait);
+-
+-int afp_mapname(struct afp_server * server, unsigned char subfunction,
+-        char * name, unsigned int * id);
+-
+-int afp_mapid(struct afp_server * server, unsigned char subfunction,
+-	unsigned int id, char *name);
+-
+-int afp_getuserinfo(struct afp_server * server, int thisuser,
+-	unsigned int userid, unsigned short bitmap, 
+-	unsigned int *newuid, unsigned int *newgid);
+-
+-int afp_zzzzz(struct afp_server *server);
+-
+-int afp_volopen(struct afp_volume * volume, 
+-		unsigned short bitmap, char * password);
+-
+-int afp_flush(struct afp_volume * volume);
+-
+-int afp_getfiledirparms(struct afp_volume *volume, unsigned int did, 
+-	unsigned int filebitmap, unsigned int dirbitmap, const char * pathname,
+-	struct afp_file_info *fp);
+-
+-int afp_enumerate(struct afp_volume * volume, 
+-	unsigned int dirid, 
+-	unsigned int filebitmap, unsigned int dirbitmap, 
+-        unsigned short reqcount,
+-        unsigned short startindex,
+-        char * path,
+-	struct afp_file_info ** file_p);
+-
+-int afp_enumerateext2(struct afp_volume * volume, 
+-	unsigned int dirid, 
+-	unsigned int filebitmap, unsigned int dirbitmap, 
+-        unsigned short reqcount,
+-        unsigned long startindex,
+-        char * path,
+-	struct afp_file_info ** file_p);
+-
+-int afp_openfork(struct afp_volume * volume,
+-        unsigned char forktype,
+-        unsigned int dirid,
+-        unsigned short accessmode,
+-        char * filename, 
+-	struct afp_file_info *fp);
+-
+-int afp_read(struct afp_volume * volume, unsigned short forkid,
+-                uint32_t offset,
+-                uint32_t count, struct afp_rx_buffer * rx);
+-
+-int afp_readext(struct afp_volume * volume, unsigned short forkid,
+-                uint64_t offset,
+-                uint64_t count, struct afp_rx_buffer * rx);
+-
+-int afp_getvolparms(struct afp_volume * volume, unsigned short bitmap);
+-
+-
+-int afp_createdir(struct afp_volume * volume, unsigned int dirid, const char * pathname, unsigned int *did_p);
+-
+-int afp_delete(struct afp_volume * volume,
+-        unsigned int dirid, char * pathname);
+-
+-
+-int afp_createfile(struct afp_volume * volume, unsigned char flag,
+-        unsigned int did, char * pathname);
+-
+-int afp_write(struct afp_volume * volume, unsigned short forkid,
+-        uint32_t offset, uint32_t reqcount,
+-        char * data, uint32_t * written);
+-
+-int afp_writeext(struct afp_volume * volume, unsigned short forkid,
+-        uint64_t offset, uint64_t reqcount,
+-        char * data, uint64_t * written);
+-
+-int afp_flushfork(struct afp_volume * volume, unsigned short forkid);
+-
+-int afp_closefork(struct afp_volume * volume, unsigned short forkid);
+-int afp_setfileparms(struct afp_volume * volume,
+-        unsigned int dirid, const char * pathname, unsigned short bitmap,
+-        struct afp_file_info *fp);
+-int afp_setfiledirparms(struct afp_volume * volume, 
+-        unsigned int dirid, const char * pathname, unsigned short bitmap,
+-        struct afp_file_info *fp);
+-
+-int afp_setdirparms(struct afp_volume * volume,
+-        unsigned int dirid, const char * pathname, unsigned short bitmap,
+-        struct afp_file_info *fp);
+-
+-int afp_volclose(struct afp_volume * volume);
+-
+-
+-int afp_setforkparms(struct afp_volume *volume,
+-        unsigned short forkid, unsigned short bitmap, unsigned long len);
+-
+-int afp_byterangelock(struct afp_volume * volume,
+-        unsigned char flag,
+-        unsigned short forkid,
+-        uint32_t offset,
+-        uint32_t len, uint32_t *generated_offset);
+-
+-int afp_byterangelockext(struct afp_volume * volume,
+-        unsigned char flag,
+-        unsigned short forkid,
+-        uint64_t offset,
+-        uint64_t len, uint64_t *generated_offset);
+-
+-int afp_moveandrename(struct afp_volume *volume,
+-	unsigned int src_did,
+-	unsigned int dst_did,
+-	char * src_path, char * dst_path, char *new_name);
+-
+-int afp_rename(struct afp_volume * volume,
+-        unsigned int dirid,
+-        char * path_from, char * path_to);
+-
+-int afp_listextattr(struct afp_volume * volume,
+-        unsigned int dirid, unsigned short bitmap,
+-        char * pathname, struct afp_extattr_info * info);
+-
+-/* This is a currently undocumented command */
+-int afp_newcommand76(struct afp_volume * volume, unsigned int dlen, char * data);
+-
+-/* For debugging */
+-char * afp_get_command_name(char code);
+-
+-
+-#endif
+diff -Naur afpfs-ng-0.8.1/include/afp_protocol.h afpfs-ng-0.8.1.patch/include/afp_protocol.h
+--- afpfs-ng-0.8.1/include/afp_protocol.h	2008-02-18 04:33:43.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/afp_protocol.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,361 +0,0 @@
+-
+-#ifndef _AFP_PROTOCOL_H_
+-#define _AFP_PROTOCOL_H_
+-
+-#include <sys/types.h>
+-#include <stddef.h>
+-#include <unistd.h>
+-#include <stdint.h>
+-
+-/* This file defines constants for the Apple File Protocol.
+-   All page references are from "Apple Filing Protocol Programming" version 3.2.
+-   except where noted.
+-*/
+-
+-#define AFP_SERVER_NAME_LEN 33
+-#define AFP_SERVER_NAME_UTF8_LEN 255
+-#define AFP_VOLUME_NAME_LEN 33
+-#define AFP_VOLUME_NAME_UTF8_LEN 33
+-#define AFP_SIGNATURE_LEN 16
+-#define AFP_MACHINETYPE_LEN 33
+-#define AFP_LOGINMESG_LEN 200
+-#define AFP_VOLPASS_LEN 8
+-#define AFP_HOSTNAME_LEN 255
+-/* This is actually just a guess, and only used for appletalk */
+-#define AFP_ZONE_LEN 255
+-
+-#define AFP_SERVER_ICON_LEN 256
+-
+-
+-#define AFP_MAX_USERNAME_LEN 127
+-#define AFP_MAX_PASSWORD_LEN 127
+-
+-
+-/* This is the maximum length of any UAM string */
+-#define AFP_UAM_LENGTH 24
+-
+-/* This is the maximum length of any path description */
+-#define AFP_MAX_PATH 768
+-
+-#define AFP_VOL_FLAT 1
+-#define AFP_VOL_FIXED 2
+-#define AFP_VOL_VARIABLE 3
+-
+-/* The root directory ID, p.26 */
+-
+-#define AFP_ROOT_DID 2
+-
+-/* Path type constants, p.249 */
+-
+-enum {
+-kFPShortName = 1,
+-kFPLongName = 2,
+-kFPUTF8Name = 3
+-};
+-
+-/* fork types */
+-
+-#define AFP_FORKTYPE_DATA 0x0
+-#define AFP_FORKTYPE_RESOURCE 0x80
+-
+-/* openfork access modes, from p.196 */
+-
+-#define AFP_OPENFORK_ALLOWREAD 1
+-#define AFP_OPENFORK_ALLOWWRITE 2
+-#define AFP_OPENFORK_DENYREAD 0x10
+-#define AFP_OPENFORK_DENYWRITE 0x20
+-
+-/* Message type for getsrvmesg, p. 169*/
+-
+-typedef enum {
+-  AFPMESG_LOGIN = 0,
+-  AFPMESG_SERVER = 1
+-} afpmessage_t;
+-
+-/* Message bitmap for getsrvrmsg */
+-
+-#define AFP_GETSRVRMSG_UTF8 0x2
+-#define AFP_GETSRVRMSG_GETMSG 0x1
+-
+-
+-/* Maximum Version length, p.17 */
+-#define AFP_MAX_VERSION_LENGTH 16
+-
+-/* Maximum length of a token, this is undocumented */
+-#define AFP_TOKEN_MAX_LEN 256
+-
+-/* The maximum size of a file for AFP 2 */
+-#define AFP_MAX_AFP2_FILESIZE (4294967296)
+-
+-/* Unix privs, p.240 */
+-
+-struct afp_unixprivs {
+-	uint32_t uid __attribute__((__packed__));
+-	uint32_t gid __attribute__((__packed__));
+-	uint32_t permissions __attribute__((__packed__));
+-	uint32_t ua_permissions __attribute__((__packed__));
+-
+-};
+-
+-
+-/* AFP Volume attributes bitmap, p.241 */
+-
+-enum {
+-    kReadOnly = 0x01,
+-    kHasVolumePassword = [REDACTED]
+-    kSupportsFileIDs = 0x04,
+-    kSupportsCatSearch = 0x08,
+-    kSupportsBlankAccessPrivs = 0x10,
+-    kSupportsUnixPrivs = 0x20,
+-    kSupportsUTF8Names = 0x40,
+-    kNoNetworkUserIDs = 0x80,
+-    kDefaultPrivsFromParent = 0x100,
+-    kNoExchangeFiles = 0x200,
+-    kSupportsExtAttrs = 0x400,
+-    kSupportsACLs=0x800
+-};
+-
+-/* AFP file creation constantes, p.250 */
+-enum {
+-kFPSoftCreate = 0,
+-kFPHardCreate = 0x80
+-};
+-
+-/* AFP Directory attributes, taken from the protocol guide p.236 */
+-
+-enum {
+-    kFPAttributeBit = 0x1,
+-    kFPParentDirIDBit = 0x2,
+-    kFPCreateDateBit = 0x4,
+-    kFPModDateBit = 0x8,
+-    kFPBackupDateBit = 0x10,
+-    kFPFinderInfoBit = 0x20,
+-    kFPLongNameBit = 0x40,
+-    kFPShortNameBit = 0x80,
+-    kFPNodeIDBit = 0x100,
+-    kFPOffspringCountBit = 0x0200,
+-    kFPOwnerIDBit = 0x0400,
+-    kFPGroupIDBit = 0x0800,
+-    kFPAccessRightsBit = 0x1000,
+-    kFPProDOSInfoBit = 0x2000, // AFP version 2.2 and earlier
+-    kFPUTF8NameBit = 0x2000, // AFP version 3.0 and later
+-    kFPUnixPrivsBit = 0x8000 // AFP version 3.0 and later
+-};
+-
+-/* AFP File bitmap, p.238.  These are the ones not in the AFP Directory
+-   attributes map. */
+-
+-enum {
+-	kFPDataForkLenBit = 0x0200,
+-	kFPRsrcForkLenBit = 0x0400,
+-	kFPExtDataForkLenBit = 0x0800, // AFP version 3.0 and later
+-	kFPLaunchLimitBit = 0x1000,
+-	kFPExtRsrcForkLenBit = 0x4000, // AFP version 3.0 and later
+-};
+-
+-/* AFP Extended Attributes Bitmap, p.238  */
+-
+-enum {
+-	kXAttrNoFollow = 0x1,
+-	kXAttrCreate = 0x2,
+-	kXAttrREplace=0x4
+-};
+-
+-
+-/* AFP function codes */
+-enum AFPFunction
+-{
+-        afpByteRangeLock = 1, afpCloseVol, afpCloseDir, afpCloseFork,
+-        afpCopyFile, afpCreateDir, afpCreateFile,
+-        afpDelete, afpEnumerate, afpFlush, afpFlushFork,
+-        afpGetForkParms = 14, afpGetSrvrInfo, afpGetSrvrParms,
+-        afpGetVolParms, afpLogin, afpLoginCont, afpLogout, afpMapID,
+-        afpMapName, afpMoveAndRename, afpOpenVol, afpOpenDir, afpOpenFork,
+-        afpRead, afpRename, afpSetDirParms, afpSetFileParms,
+-        afpSetForkParms, afpSetVolParms, afpWrite, afpGetFileDirParms,
+-	afpSetFileDirParms, afpChangePassword,
+-        afpGetUserInfo=37,afpGetSrvrMsg = 38,
+-	afpOpenDT=48,
+-	afpCloseDT=49,
+-	afpGetIcon=51, afpGetIconInfo=52,
+-	afpAddComment=56, afpRemoveComment=57, afpGetComment=58,
+-	afpByteRangeLockExt=59, afpReadExt, afpWriteExt,
+-	afpGetAuthMethods=62,
+-	afp_LoginExt=63,
+-	afpGetSessionToken=64,
+-	afpDisconnectOldSession=65,
+-	afpEnumerateExt=66,
+-	afpCatSearchExt = 67,
+-	afpEnumerateExt2 = 68, afpGetExtAttr, afpSetExtAttr, 
+-	afpRemoveExtAttr , afpListExtAttrs,
+-	afpZzzzz = 122,
+-	afpAddIcon=192,
+-};
+-
+-/* AFP Volume bitmap.  Take from 242 of the protocol guide. */
+-enum {
+-	kFPBadVolPre222Bitmap = 0xFe00,
+-	kFPBadVolBitmap = 0xF000,
+-	kFPVolAttributeBit = 0x1,
+-	kFPVolSignatureBit = 0x2,
+-	kFPVolCreateDateBit = 0x4,
+-	kFPVolModDateBit = 0x8,
+-	kFPVolBackupDateBit = 0x10,
+-	kFPVolIDBit = 0x20,
+-	kFPVolBytesFreeBit = 0x40,
+-	kFPVolBytesTotalBit = 0x80,
+-	kFPVolNameBit = 0x100,
+-	kFPVolExtBytesFreeBit = 0x200,
+-	kFPVolExtBytesTotalBit = 0x400,
+-	kFPVolBlockSizeBit = 0x800
+-};
+-
+-/* AFP Attention Codes -- 4 bits */
+-#define AFPATTN_SHUTDOWN     (1 << 15)            /* shutdown/disconnect */
+-#define AFPATTN_CRASH        (1 << 14)            /* server crashed */
+-#define AFPATTN_MESG         (1 << 13)            /* server has message */
+-#define AFPATTN_NORECONNECT  (1 << 12)            /* don't reconnect */
+-/* server notification */
+-#define AFPATTN_NOTIFY       (AFPATTN_MESG | AFPATTN_NORECONNECT) 
+-
+-/* extended bitmap -- 12 bits. volchanged is only useful w/ a server
+- * notification, and time is only useful for shutdown. */
+-#define AFPATTN_VOLCHANGED   (1 << 0)             /* volume has changed */
+-#define AFPATTN_TIME(x)      ((x) & 0xfff)        /* time in minutes */
+-
+-#define kFPNoErr 0
+-
+-/* AFP result codes, p252 */
+-#define kASPSessClosed -1072
+-#define kFPAccessDenied -5000
+-#define kFPAuthContinue -5001
+-#define kFPBadUAM -5002
+-#define kFPBadVersNum -5003
+-#define kFPBitmapErr -5004
+-#define kFPCantMove -5005
+-#define kFPDenyConflict -5006
+-#define kFPDirNotEmpty -5007
+-#define kFPDiskFull -5008
+-#define kFPEOFErr -5009
+-#define kFPFileBusy -5010
+-#define kFPFlatVol -5011
+-#define kFPItemNotFound -5012
+-#define kFPLockErr -5013
+-#define kFPMiscErr -5014
+-#define kFPNoMoreLocks -5015
+-#define kFPNoServer -5016
+-#define kFPObjectExists -5017
+-#define kFPObjectNotFound -5018
+-#define kFPParamErr -5019
+-#define kFPRangeNotLocked -5020
+-#define kFPRangeOverlap -5021
+-#define kFPSessClosed -5022
+-#define kFPUserNotAuth -5023
+-#define kFPCallNotSupported -5024
+-#define kFPObjectTypeErr -5025
+-#define kFPTooManyFilesOpen -5026
+-#define kFPServerGoingDown -5027
+-#define kFPCantRename -5028
+-#define kFPDirNotFound -5029
+-#define kFPIconTypeError -5030
+-#define kFPVolLocked -5031
+-#define kFPObjectLocked -5032
+-#define kFPContainsSharedErr -5033
+-#define kFPIDNotFound -5034
+-#define kFPIDExists -5035
+-#define kFPDiffVolErr  -5036
+-#define kFPCatalogChanged -5037
+-#define kFPSameObjectErr -5038
+-#define kFPBadIDErr -5039
+-#define kFPPwdSameErr -5040
+-#define kFPPwdTooShortErr -5041
+-#define kFPPwdExpiredErr -5042
+-#define kFPInsideSharedErr -5043
+-#define kFPInsideTrashErr -5044
+-#define kFPPwdNeedsChangeErr -5045
+-#define kFPPwdPolicyErr -5046
+-#define kFPDiskQuotaExceeded –5047 
+-
+-
+-
+-/* These flags determine to lock or unlock in ByteRangeLock(Ext) */
+-
+-enum {
+-ByteRangeLock_Lock = 0,
+-ByteRangeLock_Unlock = 1
+-};
+-
+-/* These flags are used in volopen and getsrvrparm replies, p.171 */
+-
+-#define HasConfigInfo 0x1
+-#define HasPassword 0x80
+-
+-/* These are the subfunction for kFPMapID, as per p.248 */
+-
+-enum {
+-kUserIDToName = 1,
+-kGroupIDToName = 2,
+-kUserIDToUTF8Name = 3,
+-kGroupIDToUTF8Name = 4,
+-kUserUUIDToUTF8Name = 5,
+-kGroupUUIDToUTF8Name = 6
+-};
+-
+-
+-/* These are the subfunction flags described in the FPMapName command, p.286.
+-   Note that this is different than what's described on p. 186. */
+-
+-enum {
+-kNameToUserID = 1,
+-kNameToGroupID = 2,
+-kUTF8NameToUserID = 3,
+-kUTF8NameToGroupID = 4,
+-kUTF8NameToUserUUID = 5,
+-kUTF8NameToGroupUUID = 6
+-};
+-
+-/* These are bits for FPGetUserInfo, p.173. */
+-#define kFPGetUserInfo_USER_ID 1
+-#define kFPGetUserInfo_PRI_GROUPID 2
+-
+-/* Flags for the replies of GetSrvrInfo and DSI GetStatus, p.240 */
+-
+-enum {
+-	kSupportsCopyfile = 0x01,
+-	kSupportsChgPwd = 0x02,
+-	kDontAllowSavePwd = 0x04,
+-	kSupportsSrvrMsg = 0x08,
+-	kSrvrSig = 0x10,
+-	kSupportsTCP = 0x20,
+-	kSupportsSrvrNotify = 0x40,
+-	kSupportsReconnect = 0x80,
+-	kSupportsDirServices = 0x100,
+-	kSupportsUTF8SrvrName = 0x200,
+-	kSupportsUUIDs = 0x400,
+-	kSupportsSuperClient = 0x8000
+-};
+-
+-
+-/* p.247 */
+-
+-enum {
+-	kLoginWithoutID = 0,
+-	kLoginWithID = 1,
+-	kReconnWithID = 2,
+-	kLoginWithTimeAndID = 3,
+-	kReconnWithTimeAndID = 4,
+-	kRecon1Login = 5,
+-	kRecon1ReconnectLogin = 6,
+-	kRecon1Refresh = 7, kGetKerberosSessionKey = 8
+-};
+-
+-
+-#define AFP_CHMOD_ALLOWED_BITS_22 \
+-	(S_IRUSR |S_IWUSR | S_IRGRP | S_IWGRP |S_IROTH | S_IWOTH | S_IFREG )
+-
+-
+-#endif
+-
+-
+-
+-
+diff -Naur afpfs-ng-0.8.1/include/codepage.h afpfs-ng-0.8.1.patch/include/codepage.h
+--- afpfs-ng-0.8.1/include/codepage.h	2007-09-23 16:21:30.000000000 +0200
++++ afpfs-ng-0.8.1.patch/include/codepage.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,11 +0,0 @@
+-#ifndef __CODE_PAGE_H_
+-#define __CODE_PAGE_H_
+-int convert_utf8dec_to_utf8pre(const char *src, int src_len,
+-	char * dest, int dest_len);
+-int convert_utf8pre_to_utf8dec(const char * src, int src_len, 
+-	char * dest, int dest_len);
+-int convert_path_to_unix(char encoding, char * dest, 
+-	char * src, int dest_len);
+-int convert_path_to_afp(char encoding, char * dest, 
+-	char * src, int dest_len);
+-#endif
+diff -Naur afpfs-ng-0.8.1/include/dsi.h afpfs-ng-0.8.1.patch/include/dsi.h
+--- afpfs-ng-0.8.1/include/dsi.h	2008-02-18 04:33:24.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/dsi.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,33 +0,0 @@
+-
+-#ifndef __DSI_H_
+-#define __DSI_H_
+-
+-#include "afp.h"
+-
+-struct dsi_request
+-{
+-	unsigned short requestid;
+-	unsigned char subcommand;
+-	void * other;
+-	unsigned char wait;
+-	pthread_cond_t  condition_cond;
+-	struct dsi_request * next;
+-	int return_code;
+-};
+-
+-int dsi_receive(struct afp_server * server, void * data, int size);
+-int dsi_getstatus(struct afp_server * server);
+-
+-int dsi_opensession(struct afp_server *server);
+-
+-int dsi_send(struct afp_server *server, char * msg, int size,int wait,unsigned char subcommand, void ** other);
+-struct dsi_session * dsi_create(struct afp_server *server);
+-int dsi_restart(struct afp_server *server);
+-int dsi_recv(struct afp_server * server);
+-
+-#define DSI_BLOCK_TIMEOUT -1
+-#define DSI_DONT_WAIT 0
+-#define DSI_DEFAULT_TIMEOUT 5
+-
+-
+-#endif
+diff -Naur afpfs-ng-0.8.1/include/libafpclient.h afpfs-ng-0.8.1.patch/include/libafpclient.h
+--- afpfs-ng-0.8.1/include/libafpclient.h	2008-01-30 05:37:59.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/libafpclient.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,50 +0,0 @@
+-
+-#ifndef __CLIENT_H_
+-#define __CLIENT_H_
+-
+-#include <unistd.h>
+-#include <syslog.h>
+-
+-#define MAX_CLIENT_RESPONSE 2048
+-
+-
+-enum loglevels {
+-        AFPFSD,
+-};
+-
+-struct afp_server;
+-struct afp_volume;
+-
+-struct libafpclient {
+-        int (*unmount_volume) (struct afp_volume * volume);
+-	void (*log_for_client)(void * priv,
+-        	enum loglevels loglevel, int logtype, const char *message);
+-	void (*forced_ending_hook)(void);
+-	int (*scan_extra_fds)(int command_fd,fd_set *set, int * max_fd);
+-	void (*loop_started)(void);
+-} ;
+-
+-extern struct libafpclient * libafpclient;
+-
+-void libafpclient_register(struct libafpclient * tmpclient);
+-
+-
+-void signal_main_thread(void);
+-
+-/* These are logging functions */
+-
+-#define MAXLOGSIZE 2048
+-
+-#define LOG_METHOD_SYSLOG 1
+-#define LOG_METHOD_STDOUT 2
+-
+-void set_log_method(int m);
+-
+-
+-void log_for_client(void * priv,
+-        enum loglevels loglevel, int logtype, char * message,...);
+-
+-void stdout_log_for_client(void * priv,
+-	enum loglevels loglevel, int logtype, const char *message);
+-
+-#endif
+diff -Naur afpfs-ng-0.8.1/include/Makefile.am afpfs-ng-0.8.1.patch/include/Makefile.am
+--- afpfs-ng-0.8.1/include/Makefile.am	1970-01-01 01:00:00.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/Makefile.am	2011-09-10 12:13:50.126124692 +0200
+@@ -0,0 +1,3 @@
++## Process this file with automake to produce Makefile.in
++
++SUBDIRS = afpfs-ng
+diff -Naur afpfs-ng-0.8.1/include/map_def.h afpfs-ng-0.8.1.patch/include/map_def.h
+--- afpfs-ng-0.8.1/include/map_def.h	2008-01-17 05:55:46.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/map_def.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,15 +0,0 @@
+-#ifndef __MAP_H_
+-#define __MAP_H_
+-
+-#include "afp.h"
+-
+-#define AFP_MAPPING_UNKNOWN 0
+-#define AFP_MAPPING_COMMON 1
+-#define AFP_MAPPING_LOGINIDS 2
+-#define AFP_MAPPING_NAME 3
+-
+-unsigned int map_string_to_num(char * name);
+-char * get_mapping_name(struct afp_volume * volume);
+-
+-
+-#endif
+diff -Naur afpfs-ng-0.8.1/include/midlevel.h afpfs-ng-0.8.1.patch/include/midlevel.h
+--- afpfs-ng-0.8.1/include/midlevel.h	2007-12-24 20:39:25.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/midlevel.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,64 +0,0 @@
+-#ifndef __MIDLEVEL_H_
+-#define __MIDLEVEL_H_ 
+-
+-#include <utime.h>
+-#include "afp.h"
+-
+-int ml_open(struct afp_volume * volume, const char *path, int flags, 
+-        struct afp_file_info **newfp);
+-
+-int ml_creat(struct afp_volume * volume, const char *path,mode_t mode);
+-
+-int ml_readdir(struct afp_volume * volume, 
+-	const char *path, 
+-	struct afp_file_info **base);
+-
+-int ml_read(struct afp_volume * volume, const char *path,
+-	char *buf, size_t size, off_t offset,
+-	struct afp_file_info *fp, int * eof);
+-
+-int ml_chmod(struct afp_volume * vol, const char * path, mode_t mode);
+-
+-int ml_unlink(struct afp_volume * vol, const char *path);
+-
+-int ml_mkdir(struct afp_volume * vol, const char * path, mode_t mode);
+-
+-int ml_close(struct afp_volume * volume, const char * path,
+-        struct afp_file_info * fp);
+-
+-int ml_getattr(struct afp_volume * volume, const char *path, 
+-	struct stat *stbuf);
+-
+-int ml_write(struct afp_volume * volume, const char * path, 
+-	const char *data, size_t size, off_t offset,
+-	struct afp_file_info * fp, uid_t uid,
+-	gid_t gid);
+-
+-int ml_readlink(struct afp_volume * vol, const char * path,
+-        char *buf, size_t size);
+-
+-int ml_rmdir(struct afp_volume * vol, const char *path);
+-
+-int ml_chown(struct afp_volume * vol, const char * path,   
+-        uid_t uid, gid_t gid);
+-
+-int ml_truncate(struct afp_volume * vol, const char * path, off_t offset);
+-
+-int ml_utime(struct afp_volume * vol, const char * path,
+-	struct utimbuf * timebuf);
+-
+-int ml_symlink(struct afp_volume *vol, const char * path1, const char * path2);
+-
+-int ml_rename(struct afp_volume * vol,
+-	const char * path_from, const char * path_to);
+-
+-int ml_statfs(struct afp_volume * vol, const char *path, struct statvfs *stat);
+-
+-void afp_ml_filebase_free(struct afp_file_info **filebase);
+-
+-int ml_passwd(struct afp_server *server,
+-                char * username, char * oldpasswd, char * newpasswd);
+-
+-
+-
+-#endif
+diff -Naur afpfs-ng-0.8.1/include/uams_def.h afpfs-ng-0.8.1.patch/include/uams_def.h
+--- afpfs-ng-0.8.1/include/uams_def.h	2007-09-07 15:10:51.000000000 +0200
++++ afpfs-ng-0.8.1.patch/include/uams_def.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,16 +0,0 @@
+-#ifndef __UAM_DEFS_H_
+-#define __UAM_DEFS_H_
+-
+-#define UAM_NOUSERAUTHENT 0x1
+-#define UAM_CLEARTXTPASSWRD 0x2
+-#define UAM_RANDNUMEXCHANGE 0x4
+-#define UAM_2WAYRANDNUM 0x8
+-#define UAM_DHCAST128 0x10
+-#define UAM_CLIENTKRB 0x20
+-#define UAM_DHX2 0x40
+-#define UAM_RECON1 0x80
+-
+-int uam_string_to_bitmap(char * name);
+-char * uam_bitmap_to_string(unsigned int bitmap);
+-
+-#endif
+diff -Naur afpfs-ng-0.8.1/include/utils.h afpfs-ng-0.8.1.patch/include/utils.h
+--- afpfs-ng-0.8.1/include/utils.h	2008-02-18 04:33:58.000000000 +0100
++++ afpfs-ng-0.8.1.patch/include/utils.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,43 +0,0 @@
+-#ifndef __UTILS_H_
+-#define __UTILS_H_
+-#include <stdio.h>
+-
+-#include "afp.h"
+-
+-#if BYTE_ORDER == BIG_ENDIAN
+-#define hton64(x)       (x)
+-#define ntoh64(x)       (x)
+-#else /* BYTE_ORDER == BIG_ENDIAN */
+-#define hton64(x)       ((u_int64_t) (htonl(((x) >> 32) & 0xffffffffLL)) | \
+-                         (u_int64_t) ((htonl(x) & 0xffffffffLL) << 32))
+-#define ntoh64(x)       (hton64(x))
+-#endif /* BYTE_ORDER == BIG_ENDIAN */
+-
+-#define min(a,b) (((a)<(b)) ? (a) : (b))
+-#define max(a,b) (((a)>(b)) ? (a) : (b))
+-
+-
+-
+-unsigned char unixpath_to_afppath(
+-        struct afp_server * server,
+-        char * buf);
+-
+-unsigned char sizeof_path_header(struct afp_server * server);
+-
+-
+-
+-unsigned char copy_from_pascal(char *dest, char *pascal,unsigned int max_len) ;
+-unsigned short copy_from_pascal_two(char *dest, char *pascal,unsigned int max_len);
+-
+-unsigned char copy_to_pascal(char *dest, const char *src);
+-unsigned short copy_to_pascal_two(char *dest, const char *src);
+-
+-void copy_path(struct afp_server * server, char * dest, const char * pathname, unsigned char len);
+-
+-
+-char * create_path(struct afp_server * server, char * pathname, unsigned short * len);
+-
+-
+-int invalid_filename(struct afp_server * server, const char * filename);
+-
+-#endif
+diff -Naur afpfs-ng-0.8.1/lib/afp.c afpfs-ng-0.8.1.patch/lib/afp.c
+--- afpfs-ng-0.8.1/lib/afp.c	2008-03-08 03:44:16.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/afp.c	2011-09-10 12:13:50.131124759 +0200
+@@ -9,7 +9,7 @@
+ 
+ 
+ 
+-#include "afp.h"
++#include "afpfs-ng/afp.h"
+ #include <config.h>
+ 
+ #include <stdio.h>
+@@ -21,17 +21,17 @@
+ #include <sys/socket.h>
+ #include <errno.h>
+ 
+-#include "afp_protocol.h"
+-#include "libafpclient.h"
++#include "afpfs-ng/afp_protocol.h"
++#include "afpfs-ng/libafpclient.h"
+ #include "server.h"
+-#include "dsi.h"
++#include "afpfs-ng/dsi.h"
+ #include "dsi_protocol.h"
+-#include "utils.h"
++#include "afpfs-ng/utils.h"
+ #include "afp_replies.h"
+ #include "afp_internal.h"
+ #include "did.h"
+ #include "forklist.h"
+-#include "codepage.h"
++#include "afpfs-ng/codepage.h"
+ 
+ struct afp_versions      afp_versions[] = {
+             { "AFPVersion 1.1", 11 },
+diff -Naur afpfs-ng-0.8.1/lib/afp_internal.h afpfs-ng-0.8.1.patch/lib/afp_internal.h
+--- afpfs-ng-0.8.1/lib/afp_internal.h	2007-11-09 05:27:20.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/afp_internal.h	2011-09-10 12:13:50.132124772 +0200
+@@ -1,7 +1,7 @@
+ #ifndef _AFP_INTERNAL_H_
+ #define _AFP_INTERNAL_H_
+ 
+-#include "afp.h"
++#include "afpfs-ng/afp.h"
+ 
+ extern struct afp_versions afp_versions[];
+ 
+diff -Naur afpfs-ng-0.8.1/lib/afp_url.c afpfs-ng-0.8.1.patch/lib/afp_url.c
+--- afpfs-ng-0.8.1/lib/afp_url.c	2008-03-04 21:16:49.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/afp_url.c	2011-09-10 12:13:50.132124772 +0200
+@@ -3,7 +3,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <errno.h>
+-#include "afp.h"
++#include "afpfs-ng/afp.h"
+ 
+ void afp_default_url(struct afp_url *url)
+ {
+diff -Naur afpfs-ng-0.8.1/lib/client.c afpfs-ng-0.8.1.patch/lib/client.c
+--- afpfs-ng-0.8.1/lib/client.c	2008-02-18 04:36:30.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/client.c	2011-09-10 12:13:50.132124772 +0200
+@@ -1,5 +1,5 @@
+-#include <afp.h>
+-#include <libafpclient.h>
++#include <afpfs-ng/afp.h>
++#include <afpfs-ng/libafpclient.h>
+ 
+ 
+ struct libafpclient * libafpclient = NULL;
+diff -Naur afpfs-ng-0.8.1/lib/codepage.c afpfs-ng-0.8.1.patch/lib/codepage.c
+--- afpfs-ng-0.8.1/lib/codepage.c	2008-02-18 04:36:54.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/codepage.c	2011-09-10 12:13:50.133124786 +0200
+@@ -14,8 +14,8 @@
+ 
+ #include <string.h>
+ #include <stdlib.h>
+-#include "afp_protocol.h"
+-#include "utils.h"
++#include "afpfs-ng/afp_protocol.h"
++#include "afpfs-ng/utils.h"
+ #include "unicode.h"
+ 
+ int convert_utf8dec_to_utf8pre(const char *src, int src_len,
+diff -Naur afpfs-ng-0.8.1/lib/connect.c afpfs-ng-0.8.1.patch/lib/connect.c
+--- afpfs-ng-0.8.1/lib/connect.c	2008-02-18 04:38:59.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/connect.c	2011-09-10 12:13:50.133124786 +0200
+@@ -10,13 +10,13 @@
+ #include <string.h>
+ #include <sys/socket.h>
+ 
+-#include "afp.h"
+-#include "dsi.h"
+-#include "utils.h"
+-#include "uams_def.h"
+-#include "codepage.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/utils.h"
++#include "afpfs-ng/uams_def.h"
++#include "afpfs-ng/codepage.h"
+ #include "users.h"
+-#include "libafpclient.h"
++#include "afpfs-ng/libafpclient.h"
+ #include "server.h"
+ 
+ 
+diff -Naur afpfs-ng-0.8.1/lib/did.c afpfs-ng-0.8.1.patch/lib/did.c
+--- afpfs-ng-0.8.1/lib/did.c	2008-02-18 04:39:17.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/did.c	2011-09-10 12:13:50.133124786 +0200
+@@ -9,8 +9,8 @@
+ #include <string.h>
+ #include <stdio.h>
+ 
+-#include "afp.h"
+-#include "afp_protocol.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/afp_protocol.h"
+ 
+ #undef DID_CACHE_DISABLE
+ 
+diff -Naur afpfs-ng-0.8.1/lib/dsi.c afpfs-ng-0.8.1.patch/lib/dsi.c
+--- afpfs-ng-0.8.1/lib/dsi.c	2008-02-18 04:53:03.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/dsi.c	2011-09-10 12:13:50.134124800 +0200
+@@ -19,12 +19,12 @@
+ #include <signal.h>
+ #include <iconv.h>
+ 
+-#include "utils.h"
+-#include "dsi.h"
+-#include "afp.h"
+-#include "uams_def.h"
++#include "afpfs-ng/utils.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/uams_def.h"
+ #include "dsi_protocol.h"
+-#include "libafpclient.h"
++#include "afpfs-ng/libafpclient.h"
+ #include "afp_internal.h"
+ #include "afp_replies.h"
+ 
+diff -Naur afpfs-ng-0.8.1/lib/forklist.c afpfs-ng-0.8.1.patch/lib/forklist.c
+--- afpfs-ng-0.8.1/lib/forklist.c	2008-01-17 05:49:16.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/forklist.c	2011-09-10 12:13:50.135124814 +0200
+@@ -10,7 +10,7 @@
+ */
+ 
+ 
+-#include "afp.h"
++#include "afpfs-ng/afp.h"
+ 
+ #include <stdlib.h>
+ #include <pthread.h>
+diff -Naur afpfs-ng-0.8.1/lib/log.c afpfs-ng-0.8.1.patch/lib/log.c
+--- afpfs-ng-0.8.1/lib/log.c	2008-01-30 05:37:58.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/log.c	2011-09-10 12:13:50.135124814 +0200
+@@ -3,7 +3,7 @@
+ #include <stdarg.h>
+ #include <string.h>
+ #include <stdlib.h>
+-#include "libafpclient.h"
++#include "afpfs-ng/libafpclient.h"
+ 
+ void log_for_client(void * priv,
+ 	enum loglevels loglevel, int logtype, char *format, ...) {
+diff -Naur afpfs-ng-0.8.1/lib/loop.c afpfs-ng-0.8.1.patch/lib/loop.c
+--- afpfs-ng-0.8.1/lib/loop.c	2008-02-18 04:40:11.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/loop.c	2011-09-10 12:13:50.135124814 +0200
+@@ -16,9 +16,9 @@
+ #include <sys/time.h>
+ #include <signal.h>
+ 
+-#include "afp.h"
+-#include "dsi.h"
+-#include "utils.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/utils.h"
+ 
+ #define SIGNAL_TO_USE SIGUSR2
+ 
+diff -Naur afpfs-ng-0.8.1/lib/lowlevel.c afpfs-ng-0.8.1.patch/lib/lowlevel.c
+--- afpfs-ng-0.8.1/lib/lowlevel.c	2008-02-20 02:33:17.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/lowlevel.c	2011-09-10 12:13:50.136124828 +0200
+@@ -19,10 +19,10 @@
+ #else
+ #include <fcntl.h>
+ #endif
+-#include "afp.h"
+-#include "afp_protocol.h"
+-#include "codepage.h"
+-#include "utils.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/afp_protocol.h"
++#include "afpfs-ng/codepage.h"
++#include "afpfs-ng/utils.h"
+ #include "did.h"
+ #include "users.h"
+ 
+diff -Naur afpfs-ng-0.8.1/lib/map_def.c afpfs-ng-0.8.1.patch/lib/map_def.c
+--- afpfs-ng-0.8.1/lib/map_def.c	2007-09-07 15:10:59.000000000 +0200
++++ afpfs-ng-0.8.1.patch/lib/map_def.c	2011-09-10 12:13:50.136124828 +0200
+@@ -1,6 +1,6 @@
+ #include <string.h>
+-#include "afp.h"
+-#include "map_def.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/map_def.h"
+ 
+ static char *afp_map_strings[] = {
+ 	"Unknown",
+diff -Naur afpfs-ng-0.8.1/lib/meta.c afpfs-ng-0.8.1.patch/lib/meta.c
+--- afpfs-ng-0.8.1/lib/meta.c	2008-01-04 04:52:44.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/meta.c	2011-09-10 12:13:50.137124841 +0200
+@@ -17,10 +17,10 @@
+ #include <unistd.h>
+ #include <sys/time.h>
+ 
+-#include "afp.h"
+-#include "dsi.h"
+-#include "afp_protocol.h"
+-#include "utils.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/afp_protocol.h"
++#include "afpfs-ng/utils.h"
+ 
+ 
+ int afp_meta_getattr(const char *path, struct stat *stbuf)
+diff -Naur afpfs-ng-0.8.1/lib/midlevel.c afpfs-ng-0.8.1.patch/lib/midlevel.c
+--- afpfs-ng-0.8.1/lib/midlevel.c	2008-03-08 17:08:18.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/midlevel.c	2011-09-10 12:13:50.160125150 +0200
+@@ -10,7 +10,7 @@
+ */
+ 
+ 
+-#include "afp.h"
++#include "afpfs-ng/afp.h"
+ 
+ #include <sys/stat.h>
+ #include <string.h>
+@@ -28,9 +28,9 @@
+ #include "users.h"
+ #include "did.h"
+ #include "resource.h"
+-#include "utils.h"
+-#include "codepage.h"
+-#include "midlevel.h"
++#include "afpfs-ng/utils.h"
++#include "afpfs-ng/codepage.h"
++#include "afpfs-ng/midlevel.h"
+ #include "afp_internal.h"
+ #include "forklist.h"
+ #include "uams.h"
+diff -Naur afpfs-ng-0.8.1/lib/proto_attr.c afpfs-ng-0.8.1.patch/lib/proto_attr.c
+--- afpfs-ng-0.8.1/lib/proto_attr.c	2008-01-30 05:37:58.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/proto_attr.c	2011-09-10 12:13:50.168125257 +0200
+@@ -7,10 +7,10 @@
+ 
+ #include <string.h>
+ #include <stdlib.h>
+-#include "dsi.h"
+-#include "afp.h"
+-#include "utils.h"
+-#include "afp_protocol.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/utils.h"
++#include "afpfs-ng/afp_protocol.h"
+ #include "dsi_protocol.h"
+ 
+ /* This is a new command, function 76.  There are currently no docs, so this 
+diff -Naur afpfs-ng-0.8.1/lib/proto_desktop.c afpfs-ng-0.8.1.patch/lib/proto_desktop.c
+--- afpfs-ng-0.8.1/lib/proto_desktop.c	2008-02-18 04:44:11.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/proto_desktop.c	2011-09-10 12:13:50.168125257 +0200
+@@ -9,10 +9,10 @@
+ #include <string.h>
+ #include <stdlib.h>
+ 
+-#include "dsi.h"
+-#include "afp.h"
+-#include "utils.h"
+-#include "afp_protocol.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/utils.h"
++#include "afpfs-ng/afp_protocol.h"
+ #include "dsi_protocol.h"
+ 
+ /* closedt, addicon, geticoninfo, addappl, removeappl */
+diff -Naur afpfs-ng-0.8.1/lib/proto_directory.c afpfs-ng-0.8.1.patch/lib/proto_directory.c
+--- afpfs-ng-0.8.1/lib/proto_directory.c	2008-02-19 03:39:29.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/proto_directory.c	2011-09-10 12:13:50.168125257 +0200
+@@ -9,10 +9,10 @@
+ #include <string.h>
+ #include <stdlib.h>
+ 
+-#include "dsi.h"
+-#include "afp.h"
+-#include "utils.h"
+-#include "afp_protocol.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/utils.h"
++#include "afpfs-ng/afp_protocol.h"
+ #include "dsi_protocol.h"
+ #include "afp_replies.h"
+ 
+diff -Naur afpfs-ng-0.8.1/lib/proto_files.c afpfs-ng-0.8.1.patch/lib/proto_files.c
+--- afpfs-ng-0.8.1/lib/proto_files.c	2008-02-18 04:46:18.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/proto_files.c	2011-09-10 12:13:50.169125270 +0200
+@@ -8,11 +8,11 @@
+ 
+ #include <stdlib.h>
+ #include <string.h>
+-#include "dsi.h"
+-#include "afp.h"
+-#include "utils.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/utils.h"
+ #include "dsi_protocol.h"
+-#include "afp_protocol.h"
++#include "afpfs-ng/afp_protocol.h"
+ #include "afp_internal.h"
+ 
+ /* afp_setfileparms, afp_setdirparms and afpsetfiledirparms are all remarkably
+diff -Naur afpfs-ng-0.8.1/lib/proto_fork.c afpfs-ng-0.8.1.patch/lib/proto_fork.c
+--- afpfs-ng-0.8.1/lib/proto_fork.c	2008-01-30 05:37:58.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/proto_fork.c	2011-09-10 12:13:50.169125270 +0200
+@@ -9,11 +9,11 @@
+ #include <stdlib.h>
+ #include <string.h>
+ 
+-#include "dsi.h"
+-#include "afp.h"
+-#include "utils.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/utils.h"
+ #include "dsi_protocol.h"
+-#include "afp_protocol.h"
++#include "afpfs-ng/afp_protocol.h"
+ 
+ int afp_setforkparms(struct afp_volume * volume,
+ 	unsigned short forkid, unsigned short bitmap, unsigned long len)
+diff -Naur afpfs-ng-0.8.1/lib/proto_login.c afpfs-ng-0.8.1.patch/lib/proto_login.c
+--- afpfs-ng-0.8.1/lib/proto_login.c	2008-01-30 05:37:59.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/proto_login.c	2011-09-10 12:13:50.169125270 +0200
+@@ -10,10 +10,10 @@
+ 
+ #include <stdlib.h>
+ #include <string.h>
+-#include "dsi.h"
++#include "afpfs-ng/dsi.h"
+ #include "dsi_protocol.h"
+-#include "afp.h"
+-#include "utils.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/utils.h"
+ #include "afp_internal.h"
+ 
+ 
+diff -Naur afpfs-ng-0.8.1/lib/proto_map.c afpfs-ng-0.8.1.patch/lib/proto_map.c
+--- afpfs-ng-0.8.1/lib/proto_map.c	2008-01-30 05:37:59.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/proto_map.c	2011-09-10 12:13:50.170125283 +0200
+@@ -9,11 +9,11 @@
+ #include <stdlib.h>
+ #include <string.h>
+ 
+-#include "dsi.h"
+-#include "afp.h"
+-#include "utils.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/utils.h"
+ #include "dsi_protocol.h"
+-#include "afp_protocol.h"
++#include "afpfs-ng/afp_protocol.h"
+ 
+ /* This is used to pass the return values back from afp_getuserinfo_reply() */
+ struct uidgid {
+diff -Naur afpfs-ng-0.8.1/lib/proto_replyblock.c afpfs-ng-0.8.1.patch/lib/proto_replyblock.c
+--- afpfs-ng-0.8.1/lib/proto_replyblock.c	2008-02-18 04:46:19.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/proto_replyblock.c	2011-09-10 12:13:50.170125283 +0200
+@@ -6,9 +6,9 @@
+  */
+ 
+ #include <string.h>
+-#include "dsi.h"
+-#include "afp.h"
+-#include "utils.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/utils.h"
+ #include "afp_internal.h"
+ 
+ 
+diff -Naur afpfs-ng-0.8.1/lib/proto_server.c afpfs-ng-0.8.1.patch/lib/proto_server.c
+--- afpfs-ng-0.8.1/lib/proto_server.c	2008-02-19 02:56:21.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/proto_server.c	2011-09-10 12:13:50.170125283 +0200
+@@ -7,12 +7,12 @@
+  */
+ #include <stdlib.h>
+ #include <string.h>
+-#include "dsi.h"
+-#include "afp.h"
+-#include "utils.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/utils.h"
+ #include "dsi_protocol.h"
+-#include "afp_protocol.h"
+-#include "codepage.h"
++#include "afpfs-ng/afp_protocol.h"
++#include "afpfs-ng/codepage.h"
+ #include "afp_internal.h"
+ 
+ int afp_getsrvrparms(struct afp_server *server)
+diff -Naur afpfs-ng-0.8.1/lib/proto_session.c afpfs-ng-0.8.1.patch/lib/proto_session.c
+--- afpfs-ng-0.8.1/lib/proto_session.c	2008-02-18 04:46:19.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/proto_session.c	2011-09-10 12:13:50.170125283 +0200
+@@ -8,10 +8,10 @@
+  */
+ #include <stdlib.h>
+ #include <string.h>
+-#include "dsi.h"
++#include "afpfs-ng/dsi.h"
+ #include "dsi_protocol.h"
+-#include "afp.h"
+-#include "utils.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/utils.h"
+ 
+ int afp_getsessiontoken(struct afp_server * server, int type, 
+ 	unsigned int timestamp, struct afp_token *outgoing_token, 
+diff -Naur afpfs-ng-0.8.1/lib/proto_volume.c afpfs-ng-0.8.1.patch/lib/proto_volume.c
+--- afpfs-ng-0.8.1/lib/proto_volume.c	2008-02-18 04:47:48.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/proto_volume.c	2011-09-10 12:13:50.171125296 +0200
+@@ -8,13 +8,13 @@
+ 
+ #include <string.h>
+ #include <stdlib.h>
+-#include "dsi.h"
+-#include "afp.h"
+-#include "utils.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/utils.h"
+ #include "dsi_protocol.h"
+-#include "afp_protocol.h"
++#include "afpfs-ng/afp_protocol.h"
+ #include "afp_internal.h"
+-#include "codepage.h"
++#include "afpfs-ng/codepage.h"
+ 
+ static int parse_volbitmap_reply(struct afp_server * server, 
+ 		struct afp_volume * tmpvol, 
+diff -Naur afpfs-ng-0.8.1/lib/resource.c afpfs-ng-0.8.1.patch/lib/resource.c
+--- afpfs-ng-0.8.1/lib/resource.c	2008-02-18 04:46:56.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/resource.c	2011-09-10 12:13:50.171125296 +0200
+@@ -3,11 +3,11 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <fcntl.h>
+-#include "afp.h"
++#include "afpfs-ng/afp.h"
+ #include "resource.h"
+ #include "lowlevel.h"
+ #include "did.h"
+-#include "midlevel.h"
++#include "afpfs-ng/midlevel.h"
+ 
+ #define appledouble ".AppleDouble"
+ #define finderinfo_string ".finderinfo"
+diff -Naur afpfs-ng-0.8.1/lib/server.c afpfs-ng-0.8.1.patch/lib/server.c
+--- afpfs-ng-0.8.1/lib/server.c	2008-02-19 02:56:21.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/server.c	2011-09-10 12:13:50.172125310 +0200
+@@ -8,15 +8,15 @@
+ #include <string.h>
+ #include <time.h>
+ 
+-#include "afp.h"
+-#include "dsi.h"
+-#include "utils.h"
+-#include "uams_def.h"
+-#include "codepage.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/utils.h"
++#include "afpfs-ng/uams_def.h"
++#include "afpfs-ng/codepage.h"
+ #include "users.h"
+-#include "libafpclient.h"
++#include "afpfs-ng/libafpclient.h"
+ #include "afp_internal.h"
+-#include "dsi.h"
++#include "afpfs-ng/dsi.h"
+ 
+ 
+ struct afp_server * afp_server_complete_connection(
+diff -Naur afpfs-ng-0.8.1/lib/status.c afpfs-ng-0.8.1.patch/lib/status.c
+--- afpfs-ng-0.8.1/lib/status.c	2008-03-08 17:08:38.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/status.c	2011-09-10 12:13:50.172125310 +0200
+@@ -1,8 +1,8 @@
+ #include <string.h>
+ #include <stdio.h>
+-#include "map_def.h"
+-#include "dsi.h"
+-#include "afp.h"
++#include "afpfs-ng/map_def.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/afp.h"
+ 
+ int afp_status_header(char * text, int * len) 
+ {
+diff -Naur afpfs-ng-0.8.1/lib/uams.c afpfs-ng-0.8.1.patch/lib/uams.c
+--- afpfs-ng-0.8.1/lib/uams.c	2008-01-04 04:52:44.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/uams.c	2011-09-10 12:13:50.173125324 +0200
+@@ -8,10 +8,10 @@
+ 
+ #include <string.h>
+ #include <stdlib.h>
+-#include "dsi.h"
+-#include "afp.h"
+-#include "utils.h"
+-#include "uams_def.h"
++#include "afpfs-ng/dsi.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/utils.h"
++#include "afpfs-ng/uams_def.h"
+ #include "config.h"
+ 
+ #ifdef HAVE_LIBGCRYPT
+diff -Naur afpfs-ng-0.8.1/lib/users.c afpfs-ng-0.8.1.patch/lib/users.c
+--- afpfs-ng-0.8.1/lib/users.c	2008-02-18 04:48:56.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/users.c	2011-09-10 12:13:50.174125338 +0200
+@@ -3,8 +3,8 @@
+ #include <grp.h>
+ #include <string.h>
+ 
+-#include "afp.h"
+-#include "map_def.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/map_def.h"
+ 
+ /* How mapping works
+  *
+diff -Naur afpfs-ng-0.8.1/lib/utils.c afpfs-ng-0.8.1.patch/lib/utils.c
+--- afpfs-ng-0.8.1/lib/utils.c	2008-02-18 04:53:37.000000000 +0100
++++ afpfs-ng-0.8.1.patch/lib/utils.c	2011-09-10 12:13:50.174125338 +0200
+@@ -8,10 +8,10 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <stdlib.h>
+-#include "afp.h"
+-#include "utils.h"
++#include "afpfs-ng/afp.h"
++#include "afpfs-ng/utils.h"
+ #include "afp_internal.h"
+-#include "afp_protocol.h"
++#include "afpfs-ng/afp_protocol.h"
+ 
+ struct afp_path_header_long {
+ 	unsigned char type;
+diff -Naur afpfs-ng-0.8.1/Makefile.am afpfs-ng-0.8.1.patch/Makefile.am
+--- afpfs-ng-0.8.1/Makefile.am	2008-02-18 04:24:14.000000000 +0100
++++ afpfs-ng-0.8.1.patch/Makefile.am	2011-09-10 12:13:50.176125365 +0200
+@@ -1,5 +1,5 @@
+ if HAVE_LIBFUSE
+-SUBDIRS = lib fuse cmdline docs
++SUBDIRS = lib fuse cmdline include docs
+ else
+-SUBDIRS = lib cmdline docs
++SUBDIRS = lib cmdline include docs
+ endif
diff --git a/abs/extra/community/afpfs-ng/01-gcrypt.patch b/abs/extra/community/afpfs-ng/01-gcrypt.patch
deleted file mode 100644
index 7bcace2..0000000
--- a/abs/extra/community/afpfs-ng/01-gcrypt.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -ru afpfs-ng-0.8.1/configure.ac afpfs-ng-0.8.1+iPhone/configure.ac
---- afpfs-ng-0.8.1/configure.ac	2008-03-08 16:23:12.000000000 +0000
-+++ afpfs-ng-0.8.1+iPhone/configure.ac	2010-10-24 05:26:15.000000000 +0000
-@@ -50,21 +50,6 @@
- 	case $host in
- 		*-*-darwin*) 
- 		AC_MSG_CHECKING([for correct gcrypt version])
--		AC_RUN_IFELSE(
--			[AC_LANG_PROGRAM([
--				#include <gcrypt.h>
--				#include <stdio.h>],[
--				char*p= GCRYPT_VERSION;
--				unsigned int vers;
--				vers=atoi(p)*10000;
--				p=strchr(p,'.')+1;
--				vers+=atoi(p)*100;
--				p=strchr(p,'.')+1;
--				vers+=atoi(p);
--				if (vers<10400) return 1;
--			])],
--			[AC_MSG_RESULT([yes])],
--			[AC_MSG_ERROR([version is < 1.4.0])])
- 		AM_CONDITIONAL(HAVE_LIBGCRYPT, true)
- 		AC_DEFINE([HAVE_LIBGCRYPT], [1] )
- 		;;
-
diff --git a/abs/extra/community/afpfs-ng/02-pointer.patch b/abs/extra/community/afpfs-ng/02-pointer.patch
deleted file mode 100644
index 80507b5..0000000
--- a/abs/extra/community/afpfs-ng/02-pointer.patch
+++ /dev/null
@@ -1,280 +0,0 @@
-diff -up afpfs-ng-0.8.1/cmdline/getstatus.c.pointer afpfs-ng-0.8.1/cmdline/getstatus.c
---- afpfs-ng-0.8.1/cmdline/getstatus.c.pointer	2011-06-14 17:06:35.000000000 +0200
-+++ afpfs-ng-0.8.1/cmdline/getstatus.c	2011-06-14 17:07:25.000000000 +0200
-@@ -1,4 +1,5 @@
- #include <stdio.h>
-+#include <stdlib.h>
- #include <string.h>
- #include <pthread.h>
- 
-diff -up afpfs-ng-0.8.1/fuse/client.c.pointer afpfs-ng-0.8.1/fuse/client.c
---- afpfs-ng-0.8.1/fuse/client.c.pointer	2008-03-08 03:44:16.000000000 +0100
-+++ afpfs-ng-0.8.1/fuse/client.c	2011-06-14 17:02:15.000000000 +0200
-@@ -61,8 +61,9 @@ static int start_afpfsd(void)
- 			snprintf(filename, PATH_MAX,
- 				"/usr/local/bin/%s",AFPFSD_FILENAME);
- 			if (access(filename,X_OK)) {
--				snprintf(filename, "/usr/bin/%s",
-+				snprintf(filename, sizeof(filename), "/usr/bin/%s",
- 					AFPFSD_FILENAME);
-+				filename[sizeof(filename) - 1] = 0;
- 				if (access(filename,X_OK)) {
- 					printf("Could not find server (%s)\n",
- 						filename);
-diff -up afpfs-ng-0.8.1/fuse/fuse_int.c.pointer afpfs-ng-0.8.1/fuse/fuse_int.c
---- afpfs-ng-0.8.1/fuse/fuse_int.c.pointer	2008-03-02 06:06:24.000000000 +0100
-+++ afpfs-ng-0.8.1/fuse/fuse_int.c	2011-06-14 17:02:15.000000000 +0200
-@@ -197,7 +197,7 @@ static int fuse_open(const char *path, s
- 	ret = ml_open(volume,path,flags,&fp);
- 
- 	if (ret==0) 
--		fi->fh=(void *) fp;
-+		fi->fh=(unsigned long) fp;
- 
- 	return ret;
- }
-diff -up afpfs-ng-0.8.1/include/afpfs-ng/afp.h.pointer afpfs-ng-0.8.1/include/afp.h
---- afpfs-ng-0.8.1/include/afpfs-ng/afp.h.pointer	2008-03-08 17:08:18.000000000 +0100
-+++ afpfs-ng-0.8.1/include/afpfs-ng/afp.h	2011-06-14 17:02:15.000000000 +0200
-@@ -370,7 +370,7 @@ int afp_unmount_all_volumes(struct afp_s
- 
- int afp_opendt(struct afp_volume *volume, unsigned short * refnum);
- 
--int afp_closedt(struct afp_server * server, unsigned short * refnum);
-+int afp_closedt(struct afp_server * server, unsigned short refnum);
- 
- int afp_getcomment(struct afp_volume *volume, unsigned int did,
-         const char * pathname, struct afp_comment * comment);
-diff -up afpfs-ng-0.8.1/include/afpfs-gn/utils.h.pointer afpfs-ng-0.8.1/include/utils.h
---- afpfs-ng-0.8.1/include/afpfs-ng/utils.h.pointer	2008-02-18 04:33:58.000000000 +0100
-+++ afpfs-ng-0.8.1/include/afpfs-ng/utils.h	2011-06-14 17:02:15.000000000 +0200
-@@ -8,8 +8,8 @@
- #define hton64(x)       (x)
- #define ntoh64(x)       (x)
- #else /* BYTE_ORDER == BIG_ENDIAN */
--#define hton64(x)       ((u_int64_t) (htonl(((x) >> 32) & 0xffffffffLL)) | \
--                         (u_int64_t) ((htonl(x) & 0xffffffffLL) << 32))
-+#define hton64(x)       ((u_int64_t) (htonl((((unsigned long long)(x)) >> 32) & 0xffffffffLL)) | \
-+                         (u_int64_t) ((htonl((unsigned long long)(x)) & 0xffffffffLL) << 32))
- #define ntoh64(x)       (hton64(x))
- #endif /* BYTE_ORDER == BIG_ENDIAN */
- 
-diff -up afpfs-ng-0.8.1/lib/afp_url.c.pointer afpfs-ng-0.8.1/lib/afp_url.c
---- afpfs-ng-0.8.1/lib/afp_url.c.pointer	2008-03-04 21:16:49.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/afp_url.c	2011-06-14 17:02:15.000000000 +0200
-@@ -33,7 +33,7 @@ static int check_port(char * port) 
- static int check_uamname(const char * uam) 
- {
- 	char * p;
--	for (p=uam;*p;p++) {
-+	for (p=(char *)uam;*p;p++) {
- 		if (*p==' ') continue;
- 		if ((*p<'A') || (*p>'z')) return -1;
- 	}
-@@ -188,7 +188,7 @@ int afp_parse_url(struct afp_url * url, 
- 		return -1;
- 
- 	}
--	if (p==NULL) p=toparse;
-+	if (p==NULL) p=(char *)toparse;
- 
- 	/* Now split on the first / */
- 	if (sscanf(p,"%[^/]/%[^$]",
-diff -up afpfs-ng-0.8.1/lib/did.c.pointer afpfs-ng-0.8.1/lib/did.c
---- afpfs-ng-0.8.1/lib/did.c.pointer	2008-02-18 04:39:17.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/did.c	2011-06-14 17:02:15.000000000 +0200
-@@ -226,7 +226,7 @@ int get_dirid(struct afp_volume * volume
- 
- 
- 	/* Go to the end of last known entry */
--	p=path+(p-copy);
-+	p=(char *)path+(p-copy);
- 	p2=p;
- 
- 	while ((p=strchr(p+1,'/'))) {
-diff -up afpfs-ng-0.8.1/lib/dsi.c.pointer afpfs-ng-0.8.1/lib/dsi.c
---- afpfs-ng-0.8.1/lib/dsi.c.pointer	2008-02-18 04:53:03.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/dsi.c	2011-06-14 17:02:15.000000000 +0200
-@@ -474,7 +474,7 @@ void dsi_getstatus_reply(struct afp_serv
- 	}
- 	server->flags=ntohs(reply1->flags);
- 
--	p=(void *)((unsigned int) server->incoming_buffer + sizeof(*reply1));
-+	p=(void *)((unsigned long) server->incoming_buffer + sizeof(*reply1));
- 	p+=copy_from_pascal(server->server_name,p,AFP_SERVER_NAME_LEN)+1;
- 
- 	/* Now work our way through the variable bits */
-@@ -757,7 +757,7 @@ gotenough:
- 		printf("<<< read() of rest of AFP, %d bytes\n",amount_to_read);
- 		#endif
- 		ret = read(server->fd, (void *)
--		(((unsigned int) server->incoming_buffer)+server->data_read),
-+		(((unsigned long) server->incoming_buffer)+server->data_read),
- 			amount_to_read);
- 		if (ret<0) return -1;
- 		if (ret==0) {
-diff -up afpfs-ng-0.8.1/lib/loop.c.pointer afpfs-ng-0.8.1/lib/loop.c
---- afpfs-ng-0.8.1/lib/loop.c.pointer	2008-02-18 04:40:11.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/loop.c	2011-06-14 17:02:15.000000000 +0200
-@@ -25,7 +25,7 @@
- static unsigned char exit_program=0;
- 
- static pthread_t ending_thread;
--static pthread_t main_thread = NULL;
-+static pthread_t main_thread = (pthread_t)NULL;
- 
- static int loop_started=0;
- static pthread_cond_t loop_started_condition;
-diff -up afpfs-ng-0.8.1/lib/lowlevel.c.pointer afpfs-ng-0.8.1/lib/lowlevel.c
---- afpfs-ng-0.8.1/lib/lowlevel.c.pointer	2008-02-20 02:33:17.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/lowlevel.c	2011-06-14 17:02:15.000000000 +0200
-@@ -582,7 +582,7 @@ int ll_getattr(struct afp_volume * volum
- 	if (volume->server->using_version->av_number>=30)
- 		stbuf->st_mode |= fp.unixprivs.permissions;
- 	else
--		set_nonunix_perms(stbuf,&fp);
-+		set_nonunix_perms(&stbuf->st_mode,&fp);
- 
- 	stbuf->st_uid=fp.unixprivs.uid;
- 	stbuf->st_gid=fp.unixprivs.gid;
-diff -up afpfs-ng-0.8.1/lib/midlevel.c.pointer afpfs-ng-0.8.1/lib/midlevel.c
---- afpfs-ng-0.8.1/lib/midlevel.c.pointer	2008-03-08 17:08:18.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/midlevel.c	2011-06-14 17:02:15.000000000 +0200
-@@ -713,7 +713,7 @@ int ml_write(struct afp_volume * volume,
- {
- 
- 	int ret,err=0;
--	int totalwritten = 0;
-+	size_t totalwritten = 0;
- 	uint64_t sizetowrite, ignored;
- 	unsigned char flags = 0;
- 	unsigned int max_packet_size=volume->server->tx_quantum;
-diff -up afpfs-ng-0.8.1/lib/proto_attr.c.pointer afpfs-ng-0.8.1/lib/proto_attr.c
---- afpfs-ng-0.8.1/lib/proto_attr.c.pointer	2008-01-30 05:37:58.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/proto_attr.c	2011-06-14 17:02:15.000000000 +0200
-@@ -166,7 +166,7 @@ int afp_getextattr(struct afp_volume * v
- 	copy_path(server,p,pathname,strlen(pathname));
- 	unixpath_to_afppath(server,p);
- 	p2=p+sizeof_path_header(server)+strlen(pathname);
--	if (((unsigned int ) p2) & 0x1) p2++;
-+	if (((unsigned long) p2) & 0x1) p2++;
- 	req2=(void *) p2;
- 
- 	req2->len=htons(namelen);
-diff -up afpfs-ng-0.8.1/lib/proto_desktop.c.pointer afpfs-ng-0.8.1/lib/proto_desktop.c
---- afpfs-ng-0.8.1/lib/proto_desktop.c.pointer	2008-02-18 04:44:11.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/proto_desktop.c	2011-06-14 17:02:15.000000000 +0200
-@@ -168,7 +168,7 @@ int afp_getcomment_reply(struct afp_serv
- 	return 0;
- }
- 
--int afp_closedt(struct afp_server * server, unsigned short * refnum) 
-+int afp_closedt(struct afp_server * server, unsigned short refnum) 
- {
- 	struct {
- 		struct dsi_header dsi_header __attribute__((__packed__));
-diff -up afpfs-ng-0.8.1/lib/proto_directory.c.pointer afpfs-ng-0.8.1/lib/proto_directory.c
---- afpfs-ng-0.8.1/lib/proto_directory.c.pointer	2008-02-19 03:39:29.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/proto_directory.c	2011-06-14 17:02:15.000000000 +0200
-@@ -248,6 +248,7 @@ int afp_enumerate_reply(struct afp_serve
- 
- 	return 0;
- }
-+
- int afp_enumerateext2_reply(struct afp_server *server, char * buf, unsigned int size, void * other) 
- {
- 
-@@ -266,8 +267,7 @@ int afp_enumerateext2_reply(struct afp_s
- 	char * p = buf + sizeof(*reply);
- 	int i;
- 	char  *max=buf+size;
--	struct afp_file_info * filebase = NULL, *filecur=NULL, *new_file=NULL;
--	void ** x = other;
-+	struct afp_file_info * filebase = NULL, *filecur = NULL, *new_file = NULL, **x = (struct afp_file_info **) other;
- 
- 	if (reply->dsi_header.return_code.error_code) {
- 		return reply->dsi_header.return_code.error_code;
-diff -up afpfs-ng-0.8.1/lib/proto_map.c.pointer afpfs-ng-0.8.1/lib/proto_map.c
---- afpfs-ng-0.8.1/lib/proto_map.c.pointer	2008-01-30 05:37:59.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/proto_map.c	2011-06-14 17:02:15.000000000 +0200
-@@ -122,7 +122,7 @@ int afp_mapid_reply(struct afp_server *s
- 
- 	if (reply->header.return_code.error_code!=kFPNoErr) return -1;
- 
--	copy_from_pascal_two(name,&reply->name,255);
-+	copy_from_pascal_two(name,reply->name,255);
- 
- 	return 0;
- }
-diff -up afpfs-ng-0.8.1/lib/proto_session.c.pointer afpfs-ng-0.8.1/lib/proto_session.c
---- afpfs-ng-0.8.1/lib/proto_session.c.pointer	2008-02-18 04:46:19.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/proto_session.c	2011-06-14 17:02:15.000000000 +0200
-@@ -39,7 +39,7 @@ int afp_getsessiontoken(struct afp_serve
- 	switch (type) {
- 	case kLoginWithTimeAndID:
- 	case kReconnWithTimeAndID: {
--		uint32_t *p = (void *) (((unsigned int) request)+
-+		uint32_t *p = (void *) (((unsigned long) request)+
- 			sizeof(*request));
- 
- 		offset=sizeof(timestamp);
-@@ -63,7 +63,7 @@ int afp_getsessiontoken(struct afp_serve
- 		goto error;
- 	}
- 
--	data=(void *) (((unsigned int) request)+sizeof(*request)+offset);
-+	data=(void *) (((unsigned long) request)+sizeof(*request)+offset);
- 	request->idlength=htonl(datalen);
- 	request->pad=0;
- 	request->type=htons(type);
-@@ -127,7 +127,7 @@ int afp_disconnectoldsession(struct afp_
- 	if ((request=malloc(sizeof(*request) + AFP_TOKEN_MAX_LEN))==NULL)
- 		return -1;
- 
--	token_data  = request + sizeof(*request);
-+	token_data  = (char *)request + sizeof(*request);
- 
- 	request->type=htons(type);
- 
-diff -up afpfs-ng-0.8.1/lib/uams.c.pointer afpfs-ng-0.8.1/lib/uams.c
---- afpfs-ng-0.8.1/lib/uams.c.pointer	2008-01-04 04:52:44.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/uams.c	2011-06-14 17:02:15.000000000 +0200
-@@ -180,7 +180,7 @@ static int cleartxt_login(struct afp_ser
- 		goto cleartxt_fail;
- 
- 	p += copy_to_pascal(p, username) + 1;
--	if ((int)p & 0x1)
-+	if ((long)p & 0x1)
- 		len--;
- 	else
- 		p++;
-@@ -230,7 +230,7 @@ static int cleartxt_passwd(struct afp_se
- 		goto cleartxt_fail;
- 
- 	p += copy_to_pascal(p, username) + 1;
--	if ((int)p & 0x1)
-+	if ((long)p & 0x1)
- 		len--;
- 	else
- 		p++;
-@@ -580,7 +580,7 @@ static int dhx_login(struct afp_server *
- 	if (ai == NULL)
- 		goto dhx_noctx_fail;
- 	d += copy_to_pascal(ai, username) + 1;
--	if (((int)d) % 2)
-+	if (((long)d) % 2)
- 		d++;
- 	else
- 		ai_len--;
-diff -up afpfs-ng-0.8.1/lib/utils.c.pointer afpfs-ng-0.8.1/lib/utils.c
---- afpfs-ng-0.8.1/lib/utils.c.pointer	2008-02-18 04:53:37.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/utils.c	2011-06-14 17:02:15.000000000 +0200
-@@ -196,7 +196,7 @@ int invalid_filename(struct afp_server *
- 			maxlen=255;
- 
- 
--	p=filename+1;
-+	p=(char *)filename+1;
- 	while ((q=strchr(p,'/'))) {
- 		if (q>p+maxlen)
- 			return 1;
diff --git a/abs/extra/community/afpfs-ng/10-fix-errno.patch b/abs/extra/community/afpfs-ng/10-fix-errno.patch
deleted file mode 100644
index ff7ce44..0000000
--- a/abs/extra/community/afpfs-ng/10-fix-errno.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- afpfs-ng-0.8.1/lib/afp.c	2011-09-04 19:42:42.000000000 +0200
-+++ afpfs-ng-0.8.1/lib/afp.c	2011-09-04 19:39:44.000000000 +0200
-@@ -19,7 +19,6 @@
- #include <sys/time.h>
- #include <sys/types.h>
- #include <sys/socket.h>
--#include <errno.h>
- 
- #include <afpfs-ng/afp_protocol.h>
- #include <afpfs-ng/libafpclient.h>
---- afpfs-ng-0.8.1/lib/afp_url.c	2011-09-04 19:42:42.000000000 +0200
-+++ afpfs-ng-0.8.1/lib/afp_url.c	2011-09-04 19:40:27.000000000 +0200
-@@ -21,7 +21,9 @@
- 
- static int check_port(char * port) 
- {
--	long long ret = strtol(port,NULL,10);
-+	long long ret = 0;
-+	errno = 0;
-+	ret = strtol(port,NULL,10);
- 	if ((ret<0) || (ret>32767)) return -1;
- 	if (errno) {
- 		printf("port error\n");
diff --git a/abs/extra/community/afpfs-ng/20-build-error-fixes.patch b/abs/extra/community/afpfs-ng/20-build-error-fixes.patch
deleted file mode 100644
index 303e264..0000000
--- a/abs/extra/community/afpfs-ng/20-build-error-fixes.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-Description: Fix build errors.
-Origin: http://anonscm.debian.org/gitweb/?p=collab-maint/afpfs-ng.git;a=blob;f=debian/patches/build-error-fixes.patch
-
---- a/lib/afp_url.c
-+++ b/lib/afp_url.c
-@@ -233,7 +233,7 @@
- 		}
- 	}
- 
--	snprintf(url->servername,strlen(p)+1,p);
-+	strcpy(url->servername,p);
- 	if (check_servername(url->servername)) {
- 			if (verbose) printf("This isn't a valid servername\n");
- 			return -1;
-@@ -263,7 +263,7 @@
- 	if ((q=escape_strrchr(p,':',":"))) {
- 		*q='\0';
- 		q++;
--		snprintf(url->password,strlen(q)+1,q);
-+		strcpy(url->password,q);
- 		if (check_password(url->password)) {
- 			if (verbose) printf("This isn't a valid passwd\n");
- 			return -1;
-@@ -276,7 +276,7 @@
- 	if ((q=strstr(p,";AUTH="))) {
- 		*q='\0';
- 		q+=6;
--		snprintf(url->uamname,strlen(q)+1,q);
-+		strcpy(url->uamname,q);
- 		if (check_uamname(url->uamname)) {
- 			if (verbose) printf("This isn't a valid uamname\n");
- 			return -1;
-@@ -284,7 +284,7 @@
- 	}
- 
- 	if (strlen(p)>0) {
--		snprintf(url->username,strlen(p)+1,p);
-+		strcpy(url->username,p);
- 		if (check_username(url->username)) {
- 			if (verbose) printf("This isn't a valid username\n");
- 			return -1;;
-@@ -304,12 +304,12 @@
- 		*q='\0';
- 		q++;
- 	}
--	snprintf(url->volumename,strlen(p)+1,p);
-+	strcpy(url->volumename,p);
- 
- 
- 	if (q) {
- 		url->path[0]='/';
--		snprintf(url->path+1,strlen(q)+1,q);
-+		strcpy(url->path+1,q);
- 	}
- 
- done:
---- a/fuse/commands.c
-+++ b/fuse/commands.c
-@@ -163,8 +163,7 @@
- 
- 	if (c) {
- 		len = strlen(c->client_string);
--		snprintf(c->client_string+len,
--			MAX_CLIENT_RESPONSE-len,
-+		strcpy(c->client_string+len,
- 			message);
- 	} else {
- 
-@@ -468,7 +467,7 @@
- 	volume->mapping=req->map;
- 	afp_detect_mapping(volume);
- 
--	snprintf(volume->mountpoint,255,req->mountpoint);
-+	strcpy(volume->mountpoint,req->mountpoint);
- 
- 	/* Create the new thread and block until we get an answer back */
- 	{
---- a/fuse/client.c
-+++ b/fuse/client.c
-@@ -547,7 +547,7 @@
- done:
- 	memset(toprint,0,MAX_CLIENT_RESPONSE+200);
- 	snprintf(toprint,MAX_CLIENT_RESPONSE+200,"%s",incoming_buffer+sizeof(*answer));
--	printf(toprint);
-+	printf("%s",toprint);
- 	return ((struct afp_server_response *) incoming_buffer)->result;
- 
- 	return 0;
---- a/cmdline/cmdline_afp.c
-+++ b/cmdline/cmdline_afp.c
-@@ -828,11 +828,11 @@
- 	char text[40960];
- 
- 	afp_status_header(text,&len);
--	printf(text);
-+	printf("%s",text);
- 
- 	len=40960;
- 	afp_status_server(server,text,&len);
--	printf(text);
-+	printf("%s",text);
- 	return 0;
- }
- 
---- a/cmdline/cmdline_testafp.c
-+++ b/cmdline/cmdline_testafp.c
-@@ -26,12 +26,12 @@
- 	struct afp_url valid_url;
- 	afp_default_url(&valid_url);
- 	valid_url.protocol=protocol;
--	sprintf(valid_url.servername,servername);
--	sprintf(valid_url.volumename,volumename);
--	sprintf(valid_url.path,path);
--	sprintf(valid_url.username,username);
--	sprintf(valid_url.password,password);
--	sprintf(valid_url.uamname,uamname);
-+	strcpy(valid_url.servername,servername);
-+	strcpy(valid_url.volumename,volumename);
-+	strcpy(valid_url.path,path);
-+	strcpy(valid_url.username,username);
-+	strcpy(valid_url.password,password);
-+	strcpy(valid_url.uamname,uamname);
- 	valid_url.port=port;
- 
- 	if (afp_url_validate(url_string,&valid_url)) 
diff --git a/abs/extra/community/afpfs-ng/21-header-path-fix.patch b/abs/extra/community/afpfs-ng/21-header-path-fix.patch
deleted file mode 100644
index fe79b1f..0000000
--- a/abs/extra/community/afpfs-ng/21-header-path-fix.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Description: Ensure internal headers are picked instead of system headers.
-Origin: http://anonscm.debian.org/gitweb/?p=collab-maint/afpfs-ng.git;a=blob;f=debian/patches/header-path-fix.patch
-
---- a/include/afpfs-ng/afp.h
-+++ b/include/afpfs-ng/afp.h
-@@ -7,8 +7,8 @@
- #include <netdb.h>
- #include <sys/statvfs.h>
- #include <pwd.h>
--#include <afpfs-ng/afp_protocol.h>
--#include <afpfs-ng/libafpclient.h>
-+#include "afp_protocol.h"
-+#include "libafpclient.h"
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
diff --git a/abs/extra/community/afpfs-ng/30-include-fixes.patch b/abs/extra/community/afpfs-ng/30-include-fixes.patch
deleted file mode 100644
index de4f883..0000000
--- a/abs/extra/community/afpfs-ng/30-include-fixes.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- a/include/afpfs-ng/dsi.h	2012-02-23 10:02:07.062734160 +0100
-+++ b/include/afpfs-ng/dsi.h	2012-02-23 10:09:46.297111254 +0100
-@@ -2,7 +2,7 @@
- #ifndef __DSI_H_
- #define __DSI_H_
- 
--#include "afpfs-ng/afp.h"
-+#include "afp.h"
- 
- struct dsi_request
- {
---- a/include/afpfs-ng/map_def.h	2012-02-23 10:02:07.062734160 +0100
-+++ b/include/afpfs-ng/map_def.h	2012-02-23 10:11:32.769953053 +0100
-@@ -1,7 +1,7 @@
- #ifndef __MAP_H_
- #define __MAP_H_
- 
--#include "afpfs-ng/afp.h"
-+#include "afp.h"
- 
- #define AFP_MAPPING_UNKNOWN 0
- #define AFP_MAPPING_COMMON 1
---- a/include/afpfs-ng/midlevel.h	2012-02-23 10:02:07.062734160 +0100
-+++ b/include/afpfs-ng/midlevel.h	2012-02-23 10:12:40.519943675 +0100
-@@ -2,7 +2,7 @@
- #define __MIDLEVEL_H_ 
- 
- #include <utime.h>
--#include "afpfs-ng/afp.h"
-+#include "afp.h"
- 
- int ml_open(struct afp_volume * volume, const char *path, int flags, 
-         struct afp_file_info **newfp);
---- a/include/afpfs-ng/utils.h	2012-02-23 10:14:42.212332892 +0100
-+++ b/include/afpfs-ng/utils.h	2012-02-23 10:14:51.116069525 +0100
-@@ -2,7 +2,7 @@
- #define __UTILS_H_
- #include <stdio.h>
- 
--#include "afpfs-ng/afp.h"
-+#include "afp.h"
- 
- #if BYTE_ORDER == BIG_ENDIAN
- #define hton64(x)       (x)
diff --git a/abs/extra/community/afpfs-ng/PKGBUILD b/abs/extra/community/afpfs-ng/PKGBUILD
deleted file mode 100644
index 4538db9..0000000
--- a/abs/extra/community/afpfs-ng/PKGBUILD
+++ /dev/null
@@ -1,66 +0,0 @@
-# $Id$
-# Maintainer: BlackIkeEagle <ike DOT devolder AT gmail DOT com>
-# Contributor: slubman <slubman.dndd@laposte.net>
-
-pkgname=afpfs-ng
-pkgver=0.8.1
-pkgrel=5
-pkgdesc="A client for the Apple Filing Protocol (AFP)"
-url="http://alexthepuffin.googlepages.com/"
-license=('GPL')
-depends=('gmp' 'fuse' 'libgcrypt')
-arch=('i686' 'x86_64')
-options=(!libtool)
-source=(
-	"http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2"
-	'fix_afpfs-ng_includes.patch'
-	'01-gcrypt.patch'
-	'02-pointer.patch'
-	'10-fix-errno.patch'
-	'20-build-error-fixes.patch'
-	'21-header-path-fix.patch'
-	'30-include-fixes.patch'
-)
-sha256sums=(
-	'688560de1cde57ab8d9e0ef7dc6436dbf0267fe8884f9014e50ff92b297b01a8'
-	'627d94ab3c1cbc002b18839f514c6fa980b0a25dfc21e8761b389fcd39f32755'
-	'18dc77b064fc02c229e0cfa071a7e31cde6d0243671ebde2f561ebdf09dc38bb'
-	'8537b086c496e776be2a6757325717cb15dee6dcf2aedccebed6b4b2332d3dc1'
-	'0e1c0c0e3a9ff6e55ccbbbc1b4de630c874ff058e2ea94360b7d90e650d04811'
-	'393662da1bcd5d3aba180a2add37d9006e0a487c3bb7bf157a15aa492f4d6a87'
-	'f551ae9debe8ce2c4ed1d7a8bce497801ace995473876a5fefa0443353232477'
-	'71b8f52923cef39f0cccb8fdff610575958fd5dbed66e5aa4413ae6aceeec656'
-)
-
-build() {
-	cd "$pkgname-$pkgver"
-	# apply patches
-	msg2 'fix_afpfs-ng_includes.patch'
-	patch -Np1 -i "$srcdir/fix_afpfs-ng_includes.patch"
-	msg2 '01-gcrypt.patch'
-	patch -Np1 -i "$srcdir/01-gcrypt.patch"
-	msg2 '02-pointer.patch'
-	patch -Np1 -i "$srcdir/02-pointer.patch"
-	msg2 '10-fix-errno.patch'
-	patch -Np1 -i "$srcdir/10-fix-errno.patch"
-	msg2 '20-build-error-fixes.patch'
-	patch -Np1 -i "$srcdir/20-build-error-fixes.patch"
-	msg2 '21-header-path-fix.patch'
-	patch -Np1 -i "$srcdir/21-header-path-fix.patch"
-	msg2 '30-include-fixes.patch'
-	patch -Np1 -i "$srcdir/30-include-fixes.patch"
-
-	./configure --prefix=/usr
-	make
-}
-
-package() {
-	cd "$pkgname-$pkgver"
-	make DESTDIR="$pkgdir" install
-
-	# install headers
-	cd include
-	for header in afpfs-ng/*.h; do
-		install -Dm644 "$header" "$pkgdir/usr/include/$header"
-	done
-}
diff --git a/abs/extra/community/afpfs-ng/fix_afpfs-ng_includes.patch b/abs/extra/community/afpfs-ng/fix_afpfs-ng_includes.patch
deleted file mode 100644
index f507a48..0000000
--- a/abs/extra/community/afpfs-ng/fix_afpfs-ng_includes.patch
+++ /dev/null
@@ -1,3082 +0,0 @@
-diff -Naur afpfs-ng-0.8.1/cmdline/cmdline_afp.c afpfs-ng-0.8.1.patch/cmdline/cmdline_afp.c
---- afpfs-ng-0.8.1/cmdline/cmdline_afp.c	2008-02-19 02:54:19.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/cmdline/cmdline_afp.c	2011-09-10 12:13:50.102124369 +0200
-@@ -3,9 +3,9 @@
- 	
- */
- 
--#include "afp.h"
--#include "midlevel.h"
--#include "map_def.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/midlevel.h"
-+#include "afpfs-ng/map_def.h"
- 
- #include <string.h>
- #include <stdio.h>
-diff -Naur afpfs-ng-0.8.1/cmdline/cmdline_testafp.c afpfs-ng-0.8.1.patch/cmdline/cmdline_testafp.c
---- afpfs-ng-0.8.1/cmdline/cmdline_testafp.c	2008-03-04 21:16:50.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/cmdline/cmdline_testafp.c	2011-09-10 12:13:50.102124369 +0200
-@@ -3,8 +3,8 @@
- 	
- */
- 
--#include "afp.h"
--#include "midlevel.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/midlevel.h"
- 
- #include "cmdline_main.h"
- 
-diff -Naur afpfs-ng-0.8.1/cmdline/getstatus.c afpfs-ng-0.8.1.patch/cmdline/getstatus.c
---- afpfs-ng-0.8.1/cmdline/getstatus.c	2008-02-18 04:28:09.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/cmdline/getstatus.c	2011-09-10 12:13:50.109124463 +0200
-@@ -2,7 +2,7 @@
- #include <string.h>
- #include <pthread.h>
- 
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- 
- static int getstatus(char * address_string, unsigned int port)
- {
-diff -Naur afpfs-ng-0.8.1/configure.ac afpfs-ng-0.8.1.patch/configure.ac
---- afpfs-ng-0.8.1/configure.ac	2008-03-08 17:23:12.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/configure.ac	2011-09-10 12:13:50.109124463 +0200
-@@ -11,6 +11,7 @@
- AC_PROG_CC
- AC_PROG_INSTALL
- AC_PROG_LIBTOOL
-+AM_PROG_CC_C_O
- 
- # Checks for libraries.
- # FIXME: Replace `main' with a function in `-lncurses':
-@@ -105,7 +106,7 @@
- 
- 
- 
--AC_CONFIG_FILES([lib/Makefile fuse/Makefile cmdline/Makefile Makefile docs/Makefile])
-+AC_CONFIG_FILES([lib/Makefile fuse/Makefile cmdline/Makefile Makefile include/Makefile include/afpfs-ng/Makefile docs/Makefile])
- 
- AC_OUTPUT
- 
-diff -Naur afpfs-ng-0.8.1/fuse/client.c afpfs-ng-0.8.1.patch/fuse/client.c
---- afpfs-ng-0.8.1/fuse/client.c	2008-03-08 03:44:16.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/fuse/client.c	2011-09-10 12:13:50.110124477 +0200
-@@ -12,11 +12,11 @@
- #include <grp.h>
- 
- #include "config.h"
--#include <afp.h>
-+#include <afpfs-ng/afp.h>
- #include "afp_server.h"
--#include "uams_def.h"
--#include "map_def.h"
--#include "libafpclient.h"
-+#include "afpfs-ng/uams_def.h"
-+#include "afpfs-ng/map_def.h"
-+#include "afpfs-ng/libafpclient.h"
- 
- #define default_uam "Cleartxt Passwrd"
- 
-diff -Naur afpfs-ng-0.8.1/fuse/commands.c afpfs-ng-0.8.1.patch/fuse/commands.c
---- afpfs-ng-0.8.1/fuse/commands.c	2008-03-08 17:06:25.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/fuse/commands.c	2011-09-10 12:13:50.110124477 +0200
-@@ -19,15 +19,15 @@
- #include <getopt.h>
- #include <signal.h>
- 
--#include "afp.h"
--#include "dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/dsi.h"
- #include "afp_server.h"
--#include "utils.h"
-+#include "afpfs-ng/utils.h"
- #include "daemon.h"
--#include "uams_def.h"
--#include "codepage.h"
--#include "libafpclient.h"
--#include "map_def.h"
-+#include "afpfs-ng/uams_def.h"
-+#include "afpfs-ng/codepage.h"
-+#include "afpfs-ng/libafpclient.h"
-+#include "afpfs-ng/map_def.h"
- #include "fuse_int.h"
- #include "fuse_error.h"
- #include "fuse_internal.h"
-diff -Naur afpfs-ng-0.8.1/fuse/daemon.c afpfs-ng-0.8.1.patch/fuse/daemon.c
---- afpfs-ng-0.8.1/fuse/daemon.c	2008-03-04 18:26:05.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/fuse/daemon.c	2011-09-10 12:13:50.110124477 +0200
-@@ -23,11 +23,11 @@
- #include <signal.h>
- #include <sys/socket.h>
- 
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- 
--#include "dsi.h"
-+#include "afpfs-ng/dsi.h"
- #include "afp_server.h"
--#include "utils.h"
-+#include "afpfs-ng/utils.h"
- #include "daemon.h"
- #include "commands.h"
- 
-diff -Naur afpfs-ng-0.8.1/fuse/fuse_error.c afpfs-ng-0.8.1.patch/fuse/fuse_error.c
---- afpfs-ng-0.8.1/fuse/fuse_error.c	2008-01-18 05:40:10.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/fuse/fuse_error.c	2011-09-10 12:13:50.111124491 +0200
-@@ -4,7 +4,7 @@
- #include <unistd.h>
- #include <string.h>
- #include <stdio.h>
--#include "libafpclient.h"
-+#include "afpfs-ng/libafpclient.h"
- #include "fuse_internal.h"
- 
- #define TMP_FILE "/tmp/fuse_stderr"
-diff -Naur afpfs-ng-0.8.1/fuse/fuse_int.c afpfs-ng-0.8.1.patch/fuse/fuse_int.c
---- afpfs-ng-0.8.1/fuse/fuse_int.c	2008-03-02 06:06:24.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/fuse/fuse_int.c	2011-09-10 12:13:50.111124491 +0200
-@@ -18,7 +18,7 @@
- #define FUSE_USE_VERSION 25
- 
- 
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- 
- #include <fuse.h>
- #include <stdio.h>
-@@ -39,10 +39,10 @@
- #include <pwd.h>
- #include <stdarg.h>
- 
--#include "dsi.h"
--#include "afp_protocol.h"
--#include "codepage.h"
--#include "midlevel.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp_protocol.h"
-+#include "afpfs-ng/codepage.h"
-+#include "afpfs-ng/midlevel.h"
- #include "fuse_error.h"
- 
- /* Uncomment the following line to enable full debugging: */
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/afp.h afpfs-ng-0.8.1.patch/include/afpfs-ng/afp.h
---- afpfs-ng-0.8.1/include/afpfs-ng/afp.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/afp.h	2011-09-10 12:13:50.112124505 +0200
-@@ -0,0 +1,533 @@
-+
-+#ifndef _AFP_H_
-+#define _AFP_H_
-+
-+#include <arpa/inet.h>
-+#include <pthread.h>
-+#include <netdb.h>
-+#include <sys/statvfs.h>
-+#include <pwd.h>
-+#include <afpfs-ng/afp_protocol.h>
-+#include <afpfs-ng/libafpclient.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <unistd.h>
-+#include <netinet/in.h>
-+
-+
-+#define AFPFS_VERSION "0.8.1"
-+
-+/* This is the maximum AFP version this library supports */
-+#define AFP_MAX_SUPPORTED_VERSION 32
-+
-+/* afp_url is used to pass locations around */
-+struct afp_url {
-+	enum {TCPIP,AT} protocol;
-+	char username[AFP_MAX_USERNAME_LEN];
-+	char uamname[50];
-+	char password[AFP_MAX_PASSWORD_LEN];
-+	char servername[AFP_SERVER_NAME_UTF8_LEN];
-+	int port;
-+	char volumename[AFP_VOLUME_NAME_UTF8_LEN];
-+	char path[AFP_MAX_PATH];
-+
-+	int requested_version;
-+	char zone[AFP_ZONE_LEN]; /* Only used for Appletalk */
-+	char volpassword[9];;
-+};
-+
-+struct afp_token {
-+	unsigned int length;
-+	char data[AFP_TOKEN_MAX_LEN];
-+};
-+
-+#define SERVER_MAX_VERSIONS 10
-+#define SERVER_MAX_UAMS 10
-+
-+struct afp_rx_buffer {
-+	unsigned int size;
-+	unsigned int maxsize;
-+	char * data;
-+	int errorcode;
-+};
-+
-+
-+struct afp_file_info {
-+	unsigned short attributes;
-+	unsigned int did;
-+	unsigned int creation_date;
-+	unsigned int modification_date;
-+	unsigned int backup_date;
-+	unsigned int fileid;
-+	unsigned short offspring;
-+	char sync;
-+	char finderinfo[32];
-+	char name[AFP_MAX_PATH];
-+	char basename[AFP_MAX_PATH];
-+	char translated_name[AFP_MAX_PATH];
-+	struct afp_unixprivs unixprivs;
-+	unsigned int accessrights;
-+	struct afp_file_info * next;
-+	struct afp_file_info * largelist_next;
-+	unsigned char isdir;
-+	unsigned long long size;
-+	unsigned short resourcesize;
-+	unsigned int resource;
-+	unsigned short forkid;
-+	struct afp_icon * icon;
-+	int eof;
-+};
-+
-+
-+#define VOLUME_EXTRA_FLAGS_VOL_CHMOD_KNOWN 0x1
-+#define VOLUME_EXTRA_FLAGS_VOL_CHMOD_BROKEN 0x2
-+#define VOLUME_EXTRA_FLAGS_SHOW_APPLEDOUBLE 0x4
-+#define VOLUME_EXTRA_FLAGS_VOL_SUPPORTS_UNIX 0x8
-+#define VOLUME_EXTRA_FLAGS_NO_LOCKING 0x10
-+#define VOLUME_EXTRA_FLAGS_IGNORE_UNIXPRIVS 0x20
-+#define VOLUME_EXTRA_FLAGS_READONLY 0x40
-+
-+#define AFP_VOLUME_UNMOUNTED 0
-+#define AFP_VOLUME_MOUNTED 1
-+#define AFP_VOLUME_UNMOUNTING 2
-+
-+struct afp_volume {
-+	unsigned short volid;
-+	char flags;  /* This is from afpGetSrvrParms */
-+	unsigned short attributes; /* This is from VolOpen */
-+	unsigned short signature;  /* This is fixed or variable */
-+	unsigned int creation_date;
-+	unsigned int modification_date;
-+	unsigned int backup_date;
-+	struct statvfs stat;
-+	unsigned char mounted;
-+	char mountpoint[255];
-+	struct afp_server * server;
-+	char volume_name[AFP_VOLUME_NAME_LEN];
-+	char volume_name_printable[AFP_VOLUME_NAME_UTF8_LEN];
-+	unsigned short dtrefnum;
-+	char volpassword[AFP_VOLPASS_LEN];
-+	unsigned int extra_flags; /* This is an afpfs-ng specific field */
-+
-+	/* Our directory ID cache */
-+	struct did_cache_entry * did_cache_base;
-+	pthread_mutex_t did_cache_mutex;
-+
-+	/* Our journal of open forks */
-+	struct afp_file_info * open_forks;
-+	pthread_mutex_t open_forks_mutex;
-+
-+	/* Used to trigger startup */
-+        pthread_cond_t  startup_condition_cond;
-+
-+	struct {
-+		uint64_t hits;
-+		uint64_t misses;
-+		uint64_t expired;
-+		uint64_t force_removed;
-+	} did_cache_stats;
-+
-+	void * priv;  /* This is a private structure for fuse/cmdline, etc */
-+	pthread_t thread; /* This is the per-volume thread */
-+
-+	int mapping;
-+
-+};
-+
-+#define SERVER_STATE_CONNECTED 1
-+#define SERVER_STATE_DISCONNECTED 2
-+
-+enum server_type{
-+	AFPFS_SERVER_TYPE_UNKNOWN,
-+	AFPFS_SERVER_TYPE_NETATALK,
-+	AFPFS_SERVER_TYPE_AIRPORT,
-+	AFPFS_SERVER_TYPE_MACINTOSH,
-+};
-+
-+#define is_netatalk(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_NETATALK )
-+#define is_airport(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_AIRPORT )
-+#define is_macintosh(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_MACINTOSH )
-+
-+
-+
-+struct afp_versions {
-+        char        *av_name;
-+        int         av_number;
-+};
-+extern struct afp_versions afp_versions[];
-+
-+struct afp_server {
-+
-+	/* Our buffer sizes */
-+	unsigned int tx_quantum;
-+	unsigned int rx_quantum;
-+
-+	unsigned int tx_delay;
-+
-+	/* Connection information */
-+	struct sockaddr_in address;
-+	int fd;
-+
-+	/* Some stats, for information only */
-+	struct {
-+		uint64_t runt_packets;
-+		uint64_t incoming_dsi;
-+		uint64_t rx_bytes;
-+		uint64_t tx_bytes;
-+		uint64_t requests_pending;
-+	} stats;
-+
-+	/* General information */
-+	char server_name[AFP_SERVER_NAME_LEN];
-+	char server_name_utf8[AFP_SERVER_NAME_UTF8_LEN];
-+        char server_name_printable[AFP_SERVER_NAME_UTF8_LEN];
-+
-+	char machine_type[17];
-+	char icon[256];
-+	char signature[16];
-+	unsigned short flags;
-+	int connect_state;
-+	enum server_type server_type;
-+
-+	/* This is the time we connected */
-+	time_t connect_time;
-+
-+	/* UAMs */
-+	unsigned int supported_uams;
-+	unsigned int using_uam;
-+
-+	/* Authentication */
-+	char username[AFP_MAX_USERNAME_LEN];
-+	char password[AFP_MAX_PASSWORD_LEN];
-+
-+	/* Session */
-+	struct afp_token token;
-+	char need_resume;
-+
-+	/* Versions */
-+	unsigned char requested_version;
-+	unsigned char versions[SERVER_MAX_VERSIONS];
-+	struct afp_versions *using_version;
-+
-+	/* Volumes */
-+	unsigned char num_volumes;
-+	struct afp_volume * volumes;
-+
-+	void * dsi;
-+	unsigned int exit_flag;
-+
-+	/* Our DSI request queue */
-+	pthread_mutex_t requestid_mutex;
-+	pthread_mutex_t request_queue_mutex;
-+	unsigned short lastrequestid;
-+	unsigned short expectedrequestid;
-+	struct dsi_request * command_requests;
-+
-+
-+	char loginmesg[200];
-+	char servermesg[200];
-+	char path_encoding;
-+
-+	/* This is the data for the incoming buffer */
-+	char * incoming_buffer;
-+	int data_read;
-+	int bufsize;
-+
-+	/* And this is for the outgoing queue */
-+	pthread_mutex_t send_mutex;
-+
-+	/* This is for user mapping */
-+	struct passwd passwd;
-+	unsigned int server_uid, server_gid;
-+	int server_gid_valid;
-+
-+	struct afp_server *next;
-+
-+	/* These are for DSI attention packets */
-+	unsigned int attention_quantum;
-+	unsigned int attention_len;
-+	char * attention_buffer;
-+
-+};
-+
-+struct afp_extattr_info {
-+	unsigned int maxsize;
-+	unsigned int size;
-+	char data[1024];
-+};
-+struct afp_comment {
-+	unsigned int maxsize;
-+	unsigned int size;
-+	char *data;
-+};
-+
-+struct afp_icon {
-+	unsigned int maxsize;
-+	unsigned int size;
-+	char *data;
-+};
-+
-+#define AFP_DEFAULT_ATTENTION_QUANTUM 1024
-+
-+void afp_unixpriv_to_stat(struct afp_file_info *fp,
-+	struct stat *stat);
-+
-+int init_uams(void) ;
-+
-+unsigned int find_uam_by_name(const char * name);
-+char * uam_bitmap_to_string(unsigned int bitmap);
-+
-+
-+char * get_uam_names_list(void);
-+
-+unsigned int default_uams_mask(void);
-+
-+struct afp_volume * find_volume_by_name(struct afp_server * server,
-+        const char * volname);
-+
-+struct afp_connection_request {
-+        unsigned int uam_mask;
-+	struct afp_url url;
-+};
-+
-+void afp_default_url(struct afp_url *url);
-+int afp_parse_url(struct afp_url * url, const char * toparse, int verbose);
-+void afp_print_url(struct afp_url * url);
-+int afp_url_validate(char * url_string, struct afp_url * valid_url);
-+
-+int afp_list_volnames(struct afp_server * server, char * names, int max);
-+
-+/* User mapping */
-+int afp_detect_mapping(struct afp_volume * volume);
-+
-+/* These are some functions that help with simple status text generation */
-+
-+int afp_status_header(char * text, int * len);
-+int afp_status_server(struct afp_server * s,char * text, int * len);
-+
-+
-+struct afp_server * afp_server_full_connect(void * priv, struct afp_connection_request * req);
-+
-+void * just_end_it_now(void *other);
-+void add_fd_and_signal(int fd);
-+void loop_disconnect(struct afp_server *s);
-+void afp_wait_for_started_loop(void);
-+
-+
-+struct afp_versions * pick_version(unsigned char *versions,
-+	unsigned char requested) ;
-+int pick_uam(unsigned int u1, unsigned int u2);
-+
-+int afp_server_login(struct afp_server *server,
-+        char * mesg, unsigned int *l, unsigned int max);
-+
-+
-+int afp_dologin(struct afp_server *server,
-+	unsigned int uam, char * username, char * passwd);
-+
-+void afp_free_server(struct afp_server **server);
-+
-+struct afp_server * afp_server_init(struct sockaddr_in * address);
-+int afp_get_address(void * priv, const char * hostname, unsigned int port,
-+	struct sockaddr_in * address);
-+
-+
-+int afp_main_loop(int command_fd);
-+int afp_main_quick_startup(pthread_t * thread);
-+
-+int afp_server_destroy(struct afp_server *s) ;
-+int afp_server_reconnect(struct afp_server * s, char * mesg,
-+        unsigned int *l, unsigned int max);
-+int afp_server_connect(struct afp_server *s, int full);
-+
-+struct afp_server * afp_server_complete_connection(
-+	void * priv,
-+	struct afp_server * server,
-+	struct sockaddr_in * address, unsigned char * versions,
-+	unsigned int uams, char * username, char * password,
-+	unsigned int requested_version, unsigned int uam_mask);
-+
-+int afp_connect_volume(struct afp_volume * volume, struct afp_server * server,
-+	char * mesg, unsigned int * l, unsigned int max);
-+int something_is_mounted(struct afp_server * server);
-+
-+int add_cache_entry(struct afp_file_info * file) ;
-+struct afp_file_info * get_cache_by_name(char * name);
-+struct afp_server * find_server_by_address(struct sockaddr_in * address);
-+struct afp_server * find_server_by_signature(char * signature);
-+struct afp_server * find_server_by_name(char * name);
-+int server_still_valid(struct afp_server * server);
-+
-+
-+struct afp_server * get_server_base(void);
-+int afp_server_remove(struct afp_server * server);
-+
-+int afp_unmount_volume(struct afp_volume * volume);
-+int afp_unmount_all_volumes(struct afp_server * server);
-+
-+#define volume_is_readonly(x) (((x)->attributes&kReadOnly) || \
-+	((x)->extra_flags & VOLUME_EXTRA_FLAGS_READONLY))
-+
-+int afp_opendt(struct afp_volume *volume, unsigned short * refnum);
-+
-+int afp_closedt(struct afp_server * server, unsigned short * refnum);
-+
-+int afp_getcomment(struct afp_volume *volume, unsigned int did,
-+        const char * pathname, struct afp_comment * comment);
-+
-+int afp_addcomment(struct afp_volume *volume, unsigned int did,
-+        const char * pathname, char * comment,uint64_t *size);
-+
-+int afp_geticon(struct afp_volume * volume, unsigned int filecreator,
-+        unsigned int filetype, unsigned char icontype, 
-+	unsigned short length, struct afp_icon * icon);
-+
-+/* Things you want to do to a server */
-+
-+int afp_getsrvrmsg(struct afp_server *server, unsigned short messagetype,unsigned char utf8, unsigned char block, char * mesg);
-+
-+int afp_login(struct afp_server *server, char * uaname,
-+        char * userauthinfo, unsigned int userauthinfo_len,
-+	struct afp_rx_buffer *rx);
-+
-+int afp_changepassword(struct afp_server *server, char * uaname,
-+        char * userauthinfo, unsigned int userauthinfo_len,
-+	struct afp_rx_buffer *rx);
-+
-+int afp_logincont(struct afp_server *server, unsigned short id,
-+        char * userauthinfo, unsigned int userauthinfo_len,
-+	struct afp_rx_buffer *rx);
-+
-+int afp_getsessiontoken(struct afp_server * server, int type,
-+        unsigned int timestamp, struct afp_token *outgoing_token,
-+        struct afp_token * incoming_token);
-+
-+int afp_getsrvrparms(struct afp_server *server);
-+
-+int afp_logout(struct afp_server *server,unsigned char wait);
-+
-+int afp_mapname(struct afp_server * server, unsigned char subfunction,
-+        char * name, unsigned int * id);
-+
-+int afp_mapid(struct afp_server * server, unsigned char subfunction,
-+	unsigned int id, char *name);
-+
-+int afp_getuserinfo(struct afp_server * server, int thisuser,
-+	unsigned int userid, unsigned short bitmap, 
-+	unsigned int *newuid, unsigned int *newgid);
-+
-+int afp_zzzzz(struct afp_server *server);
-+
-+int afp_volopen(struct afp_volume * volume, 
-+		unsigned short bitmap, char * password);
-+
-+int afp_flush(struct afp_volume * volume);
-+
-+int afp_getfiledirparms(struct afp_volume *volume, unsigned int did, 
-+	unsigned int filebitmap, unsigned int dirbitmap, const char * pathname,
-+	struct afp_file_info *fp);
-+
-+int afp_enumerate(struct afp_volume * volume, 
-+	unsigned int dirid, 
-+	unsigned int filebitmap, unsigned int dirbitmap, 
-+        unsigned short reqcount,
-+        unsigned short startindex,
-+        char * path,
-+	struct afp_file_info ** file_p);
-+
-+int afp_enumerateext2(struct afp_volume * volume, 
-+	unsigned int dirid, 
-+	unsigned int filebitmap, unsigned int dirbitmap, 
-+        unsigned short reqcount,
-+        unsigned long startindex,
-+        char * path,
-+	struct afp_file_info ** file_p);
-+
-+int afp_openfork(struct afp_volume * volume,
-+        unsigned char forktype,
-+        unsigned int dirid,
-+        unsigned short accessmode,
-+        char * filename, 
-+	struct afp_file_info *fp);
-+
-+int afp_read(struct afp_volume * volume, unsigned short forkid,
-+                uint32_t offset,
-+                uint32_t count, struct afp_rx_buffer * rx);
-+
-+int afp_readext(struct afp_volume * volume, unsigned short forkid,
-+                uint64_t offset,
-+                uint64_t count, struct afp_rx_buffer * rx);
-+
-+int afp_getvolparms(struct afp_volume * volume, unsigned short bitmap);
-+
-+
-+int afp_createdir(struct afp_volume * volume, unsigned int dirid, const char * pathname, unsigned int *did_p);
-+
-+int afp_delete(struct afp_volume * volume,
-+        unsigned int dirid, char * pathname);
-+
-+
-+int afp_createfile(struct afp_volume * volume, unsigned char flag,
-+        unsigned int did, char * pathname);
-+
-+int afp_write(struct afp_volume * volume, unsigned short forkid,
-+        uint32_t offset, uint32_t reqcount,
-+        char * data, uint32_t * written);
-+
-+int afp_writeext(struct afp_volume * volume, unsigned short forkid,
-+        uint64_t offset, uint64_t reqcount,
-+        char * data, uint64_t * written);
-+
-+int afp_flushfork(struct afp_volume * volume, unsigned short forkid);
-+
-+int afp_closefork(struct afp_volume * volume, unsigned short forkid);
-+int afp_setfileparms(struct afp_volume * volume,
-+        unsigned int dirid, const char * pathname, unsigned short bitmap,
-+        struct afp_file_info *fp);
-+int afp_setfiledirparms(struct afp_volume * volume, 
-+        unsigned int dirid, const char * pathname, unsigned short bitmap,
-+        struct afp_file_info *fp);
-+
-+int afp_setdirparms(struct afp_volume * volume,
-+        unsigned int dirid, const char * pathname, unsigned short bitmap,
-+        struct afp_file_info *fp);
-+
-+int afp_volclose(struct afp_volume * volume);
-+
-+
-+int afp_setforkparms(struct afp_volume *volume,
-+        unsigned short forkid, unsigned short bitmap, unsigned long len);
-+
-+int afp_byterangelock(struct afp_volume * volume,
-+        unsigned char flag,
-+        unsigned short forkid,
-+        uint32_t offset,
-+        uint32_t len, uint32_t *generated_offset);
-+
-+int afp_byterangelockext(struct afp_volume * volume,
-+        unsigned char flag,
-+        unsigned short forkid,
-+        uint64_t offset,
-+        uint64_t len, uint64_t *generated_offset);
-+
-+int afp_moveandrename(struct afp_volume *volume,
-+	unsigned int src_did,
-+	unsigned int dst_did,
-+	char * src_path, char * dst_path, char *new_name);
-+
-+int afp_rename(struct afp_volume * volume,
-+        unsigned int dirid,
-+        char * path_from, char * path_to);
-+
-+int afp_listextattr(struct afp_volume * volume,
-+        unsigned int dirid, unsigned short bitmap,
-+        char * pathname, struct afp_extattr_info * info);
-+
-+/* This is a currently undocumented command */
-+int afp_newcommand76(struct afp_volume * volume, unsigned int dlen, char * data);
-+
-+/* For debugging */
-+char * afp_get_command_name(char code);
-+
-+
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/afp_protocol.h afpfs-ng-0.8.1.patch/include/afpfs-ng/afp_protocol.h
---- afpfs-ng-0.8.1/include/afpfs-ng/afp_protocol.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/afp_protocol.h	2011-09-10 12:13:50.112124505 +0200
-@@ -0,0 +1,361 @@
-+
-+#ifndef _AFP_PROTOCOL_H_
-+#define _AFP_PROTOCOL_H_
-+
-+#include <sys/types.h>
-+#include <stddef.h>
-+#include <unistd.h>
-+#include <stdint.h>
-+
-+/* This file defines constants for the Apple File Protocol.
-+   All page references are from "Apple Filing Protocol Programming" version 3.2.
-+   except where noted.
-+*/
-+
-+#define AFP_SERVER_NAME_LEN 33
-+#define AFP_SERVER_NAME_UTF8_LEN 255
-+#define AFP_VOLUME_NAME_LEN 33
-+#define AFP_VOLUME_NAME_UTF8_LEN 33
-+#define AFP_SIGNATURE_LEN 16
-+#define AFP_MACHINETYPE_LEN 33
-+#define AFP_LOGINMESG_LEN 200
-+#define AFP_VOLPASS_LEN 8
-+#define AFP_HOSTNAME_LEN 255
-+/* This is actually just a guess, and only used for appletalk */
-+#define AFP_ZONE_LEN 255
-+
-+#define AFP_SERVER_ICON_LEN 256
-+
-+
-+#define AFP_MAX_USERNAME_LEN 127
-+#define AFP_MAX_PASSWORD_LEN 127
-+
-+
-+/* This is the maximum length of any UAM string */
-+#define AFP_UAM_LENGTH 24
-+
-+/* This is the maximum length of any path description */
-+#define AFP_MAX_PATH 768
-+
-+#define AFP_VOL_FLAT 1
-+#define AFP_VOL_FIXED 2
-+#define AFP_VOL_VARIABLE 3
-+
-+/* The root directory ID, p.26 */
-+
-+#define AFP_ROOT_DID 2
-+
-+/* Path type constants, p.249 */
-+
-+enum {
-+kFPShortName = 1,
-+kFPLongName = 2,
-+kFPUTF8Name = 3
-+};
-+
-+/* fork types */
-+
-+#define AFP_FORKTYPE_DATA 0x0
-+#define AFP_FORKTYPE_RESOURCE 0x80
-+
-+/* openfork access modes, from p.196 */
-+
-+#define AFP_OPENFORK_ALLOWREAD 1
-+#define AFP_OPENFORK_ALLOWWRITE 2
-+#define AFP_OPENFORK_DENYREAD 0x10
-+#define AFP_OPENFORK_DENYWRITE 0x20
-+
-+/* Message type for getsrvmesg, p. 169*/
-+
-+typedef enum {
-+  AFPMESG_LOGIN = 0,
-+  AFPMESG_SERVER = 1
-+} afpmessage_t;
-+
-+/* Message bitmap for getsrvrmsg */
-+
-+#define AFP_GETSRVRMSG_UTF8 0x2
-+#define AFP_GETSRVRMSG_GETMSG 0x1
-+
-+
-+/* Maximum Version length, p.17 */
-+#define AFP_MAX_VERSION_LENGTH 16
-+
-+/* Maximum length of a token, this is undocumented */
-+#define AFP_TOKEN_MAX_LEN 256
-+
-+/* The maximum size of a file for AFP 2 */
-+#define AFP_MAX_AFP2_FILESIZE (4294967296)
-+
-+/* Unix privs, p.240 */
-+
-+struct afp_unixprivs {
-+	uint32_t uid __attribute__((__packed__));
-+	uint32_t gid __attribute__((__packed__));
-+	uint32_t permissions __attribute__((__packed__));
-+	uint32_t ua_permissions __attribute__((__packed__));
-+
-+};
-+
-+
-+/* AFP Volume attributes bitmap, p.241 */
-+
-+enum {
-+    kReadOnly = 0x01,
-+    kHasVolumePassword = [REDACTED]
-+    kSupportsFileIDs = 0x04,
-+    kSupportsCatSearch = 0x08,
-+    kSupportsBlankAccessPrivs = 0x10,
-+    kSupportsUnixPrivs = 0x20,
-+    kSupportsUTF8Names = 0x40,
-+    kNoNetworkUserIDs = 0x80,
-+    kDefaultPrivsFromParent = 0x100,
-+    kNoExchangeFiles = 0x200,
-+    kSupportsExtAttrs = 0x400,
-+    kSupportsACLs=0x800
-+};
-+
-+/* AFP file creation constantes, p.250 */
-+enum {
-+kFPSoftCreate = 0,
-+kFPHardCreate = 0x80
-+};
-+
-+/* AFP Directory attributes, taken from the protocol guide p.236 */
-+
-+enum {
-+    kFPAttributeBit = 0x1,
-+    kFPParentDirIDBit = 0x2,
-+    kFPCreateDateBit = 0x4,
-+    kFPModDateBit = 0x8,
-+    kFPBackupDateBit = 0x10,
-+    kFPFinderInfoBit = 0x20,
-+    kFPLongNameBit = 0x40,
-+    kFPShortNameBit = 0x80,
-+    kFPNodeIDBit = 0x100,
-+    kFPOffspringCountBit = 0x0200,
-+    kFPOwnerIDBit = 0x0400,
-+    kFPGroupIDBit = 0x0800,
-+    kFPAccessRightsBit = 0x1000,
-+    kFPProDOSInfoBit = 0x2000, // AFP version 2.2 and earlier
-+    kFPUTF8NameBit = 0x2000, // AFP version 3.0 and later
-+    kFPUnixPrivsBit = 0x8000 // AFP version 3.0 and later
-+};
-+
-+/* AFP File bitmap, p.238.  These are the ones not in the AFP Directory
-+   attributes map. */
-+
-+enum {
-+	kFPDataForkLenBit = 0x0200,
-+	kFPRsrcForkLenBit = 0x0400,
-+	kFPExtDataForkLenBit = 0x0800, // AFP version 3.0 and later
-+	kFPLaunchLimitBit = 0x1000,
-+	kFPExtRsrcForkLenBit = 0x4000, // AFP version 3.0 and later
-+};
-+
-+/* AFP Extended Attributes Bitmap, p.238  */
-+
-+enum {
-+	kXAttrNoFollow = 0x1,
-+	kXAttrCreate = 0x2,
-+	kXAttrREplace=0x4
-+};
-+
-+
-+/* AFP function codes */
-+enum AFPFunction
-+{
-+        afpByteRangeLock = 1, afpCloseVol, afpCloseDir, afpCloseFork,
-+        afpCopyFile, afpCreateDir, afpCreateFile,
-+        afpDelete, afpEnumerate, afpFlush, afpFlushFork,
-+        afpGetForkParms = 14, afpGetSrvrInfo, afpGetSrvrParms,
-+        afpGetVolParms, afpLogin, afpLoginCont, afpLogout, afpMapID,
-+        afpMapName, afpMoveAndRename, afpOpenVol, afpOpenDir, afpOpenFork,
-+        afpRead, afpRename, afpSetDirParms, afpSetFileParms,
-+        afpSetForkParms, afpSetVolParms, afpWrite, afpGetFileDirParms,
-+	afpSetFileDirParms, afpChangePassword,
-+        afpGetUserInfo=37,afpGetSrvrMsg = 38,
-+	afpOpenDT=48,
-+	afpCloseDT=49,
-+	afpGetIcon=51, afpGetIconInfo=52,
-+	afpAddComment=56, afpRemoveComment=57, afpGetComment=58,
-+	afpByteRangeLockExt=59, afpReadExt, afpWriteExt,
-+	afpGetAuthMethods=62,
-+	afp_LoginExt=63,
-+	afpGetSessionToken=64,
-+	afpDisconnectOldSession=65,
-+	afpEnumerateExt=66,
-+	afpCatSearchExt = 67,
-+	afpEnumerateExt2 = 68, afpGetExtAttr, afpSetExtAttr, 
-+	afpRemoveExtAttr , afpListExtAttrs,
-+	afpZzzzz = 122,
-+	afpAddIcon=192,
-+};
-+
-+/* AFP Volume bitmap.  Take from 242 of the protocol guide. */
-+enum {
-+	kFPBadVolPre222Bitmap = 0xFe00,
-+	kFPBadVolBitmap = 0xF000,
-+	kFPVolAttributeBit = 0x1,
-+	kFPVolSignatureBit = 0x2,
-+	kFPVolCreateDateBit = 0x4,
-+	kFPVolModDateBit = 0x8,
-+	kFPVolBackupDateBit = 0x10,
-+	kFPVolIDBit = 0x20,
-+	kFPVolBytesFreeBit = 0x40,
-+	kFPVolBytesTotalBit = 0x80,
-+	kFPVolNameBit = 0x100,
-+	kFPVolExtBytesFreeBit = 0x200,
-+	kFPVolExtBytesTotalBit = 0x400,
-+	kFPVolBlockSizeBit = 0x800
-+};
-+
-+/* AFP Attention Codes -- 4 bits */
-+#define AFPATTN_SHUTDOWN     (1 << 15)            /* shutdown/disconnect */
-+#define AFPATTN_CRASH        (1 << 14)            /* server crashed */
-+#define AFPATTN_MESG         (1 << 13)            /* server has message */
-+#define AFPATTN_NORECONNECT  (1 << 12)            /* don't reconnect */
-+/* server notification */
-+#define AFPATTN_NOTIFY       (AFPATTN_MESG | AFPATTN_NORECONNECT) 
-+
-+/* extended bitmap -- 12 bits. volchanged is only useful w/ a server
-+ * notification, and time is only useful for shutdown. */
-+#define AFPATTN_VOLCHANGED   (1 << 0)             /* volume has changed */
-+#define AFPATTN_TIME(x)      ((x) & 0xfff)        /* time in minutes */
-+
-+#define kFPNoErr 0
-+
-+/* AFP result codes, p252 */
-+#define kASPSessClosed -1072
-+#define kFPAccessDenied -5000
-+#define kFPAuthContinue -5001
-+#define kFPBadUAM -5002
-+#define kFPBadVersNum -5003
-+#define kFPBitmapErr -5004
-+#define kFPCantMove -5005
-+#define kFPDenyConflict -5006
-+#define kFPDirNotEmpty -5007
-+#define kFPDiskFull -5008
-+#define kFPEOFErr -5009
-+#define kFPFileBusy -5010
-+#define kFPFlatVol -5011
-+#define kFPItemNotFound -5012
-+#define kFPLockErr -5013
-+#define kFPMiscErr -5014
-+#define kFPNoMoreLocks -5015
-+#define kFPNoServer -5016
-+#define kFPObjectExists -5017
-+#define kFPObjectNotFound -5018
-+#define kFPParamErr -5019
-+#define kFPRangeNotLocked -5020
-+#define kFPRangeOverlap -5021
-+#define kFPSessClosed -5022
-+#define kFPUserNotAuth -5023
-+#define kFPCallNotSupported -5024
-+#define kFPObjectTypeErr -5025
-+#define kFPTooManyFilesOpen -5026
-+#define kFPServerGoingDown -5027
-+#define kFPCantRename -5028
-+#define kFPDirNotFound -5029
-+#define kFPIconTypeError -5030
-+#define kFPVolLocked -5031
-+#define kFPObjectLocked -5032
-+#define kFPContainsSharedErr -5033
-+#define kFPIDNotFound -5034
-+#define kFPIDExists -5035
-+#define kFPDiffVolErr  -5036
-+#define kFPCatalogChanged -5037
-+#define kFPSameObjectErr -5038
-+#define kFPBadIDErr -5039
-+#define kFPPwdSameErr -5040
-+#define kFPPwdTooShortErr -5041
-+#define kFPPwdExpiredErr -5042
-+#define kFPInsideSharedErr -5043
-+#define kFPInsideTrashErr -5044
-+#define kFPPwdNeedsChangeErr -5045
-+#define kFPPwdPolicyErr -5046
-+#define kFPDiskQuotaExceeded –5047 
-+
-+
-+
-+/* These flags determine to lock or unlock in ByteRangeLock(Ext) */
-+
-+enum {
-+ByteRangeLock_Lock = 0,
-+ByteRangeLock_Unlock = 1
-+};
-+
-+/* These flags are used in volopen and getsrvrparm replies, p.171 */
-+
-+#define HasConfigInfo 0x1
-+#define HasPassword 0x80
-+
-+/* These are the subfunction for kFPMapID, as per p.248 */
-+
-+enum {
-+kUserIDToName = 1,
-+kGroupIDToName = 2,
-+kUserIDToUTF8Name = 3,
-+kGroupIDToUTF8Name = 4,
-+kUserUUIDToUTF8Name = 5,
-+kGroupUUIDToUTF8Name = 6
-+};
-+
-+
-+/* These are the subfunction flags described in the FPMapName command, p.286.
-+   Note that this is different than what's described on p. 186. */
-+
-+enum {
-+kNameToUserID = 1,
-+kNameToGroupID = 2,
-+kUTF8NameToUserID = 3,
-+kUTF8NameToGroupID = 4,
-+kUTF8NameToUserUUID = 5,
-+kUTF8NameToGroupUUID = 6
-+};
-+
-+/* These are bits for FPGetUserInfo, p.173. */
-+#define kFPGetUserInfo_USER_ID 1
-+#define kFPGetUserInfo_PRI_GROUPID 2
-+
-+/* Flags for the replies of GetSrvrInfo and DSI GetStatus, p.240 */
-+
-+enum {
-+	kSupportsCopyfile = 0x01,
-+	kSupportsChgPwd = 0x02,
-+	kDontAllowSavePwd = 0x04,
-+	kSupportsSrvrMsg = 0x08,
-+	kSrvrSig = 0x10,
-+	kSupportsTCP = 0x20,
-+	kSupportsSrvrNotify = 0x40,
-+	kSupportsReconnect = 0x80,
-+	kSupportsDirServices = 0x100,
-+	kSupportsUTF8SrvrName = 0x200,
-+	kSupportsUUIDs = 0x400,
-+	kSupportsSuperClient = 0x8000
-+};
-+
-+
-+/* p.247 */
-+
-+enum {
-+	kLoginWithoutID = 0,
-+	kLoginWithID = 1,
-+	kReconnWithID = 2,
-+	kLoginWithTimeAndID = 3,
-+	kReconnWithTimeAndID = 4,
-+	kRecon1Login = 5,
-+	kRecon1ReconnectLogin = 6,
-+	kRecon1Refresh = 7, kGetKerberosSessionKey = 8
-+};
-+
-+
-+#define AFP_CHMOD_ALLOWED_BITS_22 \
-+	(S_IRUSR |S_IWUSR | S_IRGRP | S_IWGRP |S_IROTH | S_IWOTH | S_IFREG )
-+
-+
-+#endif
-+
-+
-+
-+
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/codepage.h afpfs-ng-0.8.1.patch/include/afpfs-ng/codepage.h
---- afpfs-ng-0.8.1/include/afpfs-ng/codepage.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/codepage.h	2011-09-10 12:13:50.113124518 +0200
-@@ -0,0 +1,11 @@
-+#ifndef __CODE_PAGE_H_
-+#define __CODE_PAGE_H_
-+int convert_utf8dec_to_utf8pre(const char *src, int src_len,
-+	char * dest, int dest_len);
-+int convert_utf8pre_to_utf8dec(const char * src, int src_len, 
-+	char * dest, int dest_len);
-+int convert_path_to_unix(char encoding, char * dest, 
-+	char * src, int dest_len);
-+int convert_path_to_afp(char encoding, char * dest, 
-+	char * src, int dest_len);
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/dsi.h afpfs-ng-0.8.1.patch/include/afpfs-ng/dsi.h
---- afpfs-ng-0.8.1/include/afpfs-ng/dsi.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/dsi.h	2011-09-10 12:13:50.115124544 +0200
-@@ -0,0 +1,33 @@
-+
-+#ifndef __DSI_H_
-+#define __DSI_H_
-+
-+#include "afpfs-ng/afp.h"
-+
-+struct dsi_request
-+{
-+	unsigned short requestid;
-+	unsigned char subcommand;
-+	void * other;
-+	unsigned char wait;
-+	pthread_cond_t  condition_cond;
-+	struct dsi_request * next;
-+	int return_code;
-+};
-+
-+int dsi_receive(struct afp_server * server, void * data, int size);
-+int dsi_getstatus(struct afp_server * server);
-+
-+int dsi_opensession(struct afp_server *server);
-+
-+int dsi_send(struct afp_server *server, char * msg, int size,int wait,unsigned char subcommand, void ** other);
-+struct dsi_session * dsi_create(struct afp_server *server);
-+int dsi_restart(struct afp_server *server);
-+int dsi_recv(struct afp_server * server);
-+
-+#define DSI_BLOCK_TIMEOUT -1
-+#define DSI_DONT_WAIT 0
-+#define DSI_DEFAULT_TIMEOUT 5
-+
-+
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/libafpclient.h afpfs-ng-0.8.1.patch/include/afpfs-ng/libafpclient.h
---- afpfs-ng-0.8.1/include/afpfs-ng/libafpclient.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/libafpclient.h	2011-09-10 12:13:50.115124544 +0200
-@@ -0,0 +1,50 @@
-+
-+#ifndef __CLIENT_H_
-+#define __CLIENT_H_
-+
-+#include <unistd.h>
-+#include <syslog.h>
-+
-+#define MAX_CLIENT_RESPONSE 2048
-+
-+
-+enum loglevels {
-+        AFPFSD,
-+};
-+
-+struct afp_server;
-+struct afp_volume;
-+
-+struct libafpclient {
-+        int (*unmount_volume) (struct afp_volume * volume);
-+	void (*log_for_client)(void * priv,
-+        	enum loglevels loglevel, int logtype, const char *message);
-+	void (*forced_ending_hook)(void);
-+	int (*scan_extra_fds)(int command_fd,fd_set *set, int * max_fd);
-+	void (*loop_started)(void);
-+} ;
-+
-+extern struct libafpclient * libafpclient;
-+
-+void libafpclient_register(struct libafpclient * tmpclient);
-+
-+
-+void signal_main_thread(void);
-+
-+/* These are logging functions */
-+
-+#define MAXLOGSIZE 2048
-+
-+#define LOG_METHOD_SYSLOG 1
-+#define LOG_METHOD_STDOUT 2
-+
-+void set_log_method(int m);
-+
-+
-+void log_for_client(void * priv,
-+        enum loglevels loglevel, int logtype, char * message,...);
-+
-+void stdout_log_for_client(void * priv,
-+	enum loglevels loglevel, int logtype, const char *message);
-+
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/Makefile.am afpfs-ng-0.8.1.patch/include/afpfs-ng/Makefile.am
---- afpfs-ng-0.8.1/include/afpfs-ng/Makefile.am	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/Makefile.am	2011-09-10 12:13:50.115124544 +0200
-@@ -0,0 +1,6 @@
-+## Process this file with automake to produce Makefile.in
-+
-+afpfsincludedir = $(includedir)/afpfs-ng
-+
-+afpfsinclude_HEADERS = afp.h afp_protocol.h libafpclient.h
-+nodist_afpfsinclude_HEADERS =  codepage.h dsi.h  map_def.h midlevel.h uams_def.h utils.h
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/map_def.h afpfs-ng-0.8.1.patch/include/afpfs-ng/map_def.h
---- afpfs-ng-0.8.1/include/afpfs-ng/map_def.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/map_def.h	2011-09-10 12:13:50.116124557 +0200
-@@ -0,0 +1,15 @@
-+#ifndef __MAP_H_
-+#define __MAP_H_
-+
-+#include "afpfs-ng/afp.h"
-+
-+#define AFP_MAPPING_UNKNOWN 0
-+#define AFP_MAPPING_COMMON 1
-+#define AFP_MAPPING_LOGINIDS 2
-+#define AFP_MAPPING_NAME 3
-+
-+unsigned int map_string_to_num(char * name);
-+char * get_mapping_name(struct afp_volume * volume);
-+
-+
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/midlevel.h afpfs-ng-0.8.1.patch/include/afpfs-ng/midlevel.h
---- afpfs-ng-0.8.1/include/afpfs-ng/midlevel.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/midlevel.h	2011-09-10 12:13:50.116124557 +0200
-@@ -0,0 +1,64 @@
-+#ifndef __MIDLEVEL_H_
-+#define __MIDLEVEL_H_ 
-+
-+#include <utime.h>
-+#include "afpfs-ng/afp.h"
-+
-+int ml_open(struct afp_volume * volume, const char *path, int flags, 
-+        struct afp_file_info **newfp);
-+
-+int ml_creat(struct afp_volume * volume, const char *path,mode_t mode);
-+
-+int ml_readdir(struct afp_volume * volume, 
-+	const char *path, 
-+	struct afp_file_info **base);
-+
-+int ml_read(struct afp_volume * volume, const char *path,
-+	char *buf, size_t size, off_t offset,
-+	struct afp_file_info *fp, int * eof);
-+
-+int ml_chmod(struct afp_volume * vol, const char * path, mode_t mode);
-+
-+int ml_unlink(struct afp_volume * vol, const char *path);
-+
-+int ml_mkdir(struct afp_volume * vol, const char * path, mode_t mode);
-+
-+int ml_close(struct afp_volume * volume, const char * path,
-+        struct afp_file_info * fp);
-+
-+int ml_getattr(struct afp_volume * volume, const char *path, 
-+	struct stat *stbuf);
-+
-+int ml_write(struct afp_volume * volume, const char * path, 
-+	const char *data, size_t size, off_t offset,
-+	struct afp_file_info * fp, uid_t uid,
-+	gid_t gid);
-+
-+int ml_readlink(struct afp_volume * vol, const char * path,
-+        char *buf, size_t size);
-+
-+int ml_rmdir(struct afp_volume * vol, const char *path);
-+
-+int ml_chown(struct afp_volume * vol, const char * path,   
-+        uid_t uid, gid_t gid);
-+
-+int ml_truncate(struct afp_volume * vol, const char * path, off_t offset);
-+
-+int ml_utime(struct afp_volume * vol, const char * path,
-+	struct utimbuf * timebuf);
-+
-+int ml_symlink(struct afp_volume *vol, const char * path1, const char * path2);
-+
-+int ml_rename(struct afp_volume * vol,
-+	const char * path_from, const char * path_to);
-+
-+int ml_statfs(struct afp_volume * vol, const char *path, struct statvfs *stat);
-+
-+void afp_ml_filebase_free(struct afp_file_info **filebase);
-+
-+int ml_passwd(struct afp_server *server,
-+                char * username, char * oldpasswd, char * newpasswd);
-+
-+
-+
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/uams_def.h afpfs-ng-0.8.1.patch/include/afpfs-ng/uams_def.h
---- afpfs-ng-0.8.1/include/afpfs-ng/uams_def.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/uams_def.h	2011-09-10 12:13:50.116124557 +0200
-@@ -0,0 +1,16 @@
-+#ifndef __UAM_DEFS_H_
-+#define __UAM_DEFS_H_
-+
-+#define UAM_NOUSERAUTHENT 0x1
-+#define UAM_CLEARTXTPASSWRD 0x2
-+#define UAM_RANDNUMEXCHANGE 0x4
-+#define UAM_2WAYRANDNUM 0x8
-+#define UAM_DHCAST128 0x10
-+#define UAM_CLIENTKRB 0x20
-+#define UAM_DHX2 0x40
-+#define UAM_RECON1 0x80
-+
-+int uam_string_to_bitmap(char * name);
-+char * uam_bitmap_to_string(unsigned int bitmap);
-+
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/utils.h afpfs-ng-0.8.1.patch/include/afpfs-ng/utils.h
---- afpfs-ng-0.8.1/include/afpfs-ng/utils.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/utils.h	2011-09-10 12:13:50.116124557 +0200
-@@ -0,0 +1,43 @@
-+#ifndef __UTILS_H_
-+#define __UTILS_H_
-+#include <stdio.h>
-+
-+#include "afpfs-ng/afp.h"
-+
-+#if BYTE_ORDER == BIG_ENDIAN
-+#define hton64(x)       (x)
-+#define ntoh64(x)       (x)
-+#else /* BYTE_ORDER == BIG_ENDIAN */
-+#define hton64(x)       ((u_int64_t) (htonl(((x) >> 32) & 0xffffffffLL)) | \
-+                         (u_int64_t) ((htonl(x) & 0xffffffffLL) << 32))
-+#define ntoh64(x)       (hton64(x))
-+#endif /* BYTE_ORDER == BIG_ENDIAN */
-+
-+#define min(a,b) (((a)<(b)) ? (a) : (b))
-+#define max(a,b) (((a)>(b)) ? (a) : (b))
-+
-+
-+
-+unsigned char unixpath_to_afppath(
-+        struct afp_server * server,
-+        char * buf);
-+
-+unsigned char sizeof_path_header(struct afp_server * server);
-+
-+
-+
-+unsigned char copy_from_pascal(char *dest, char *pascal,unsigned int max_len) ;
-+unsigned short copy_from_pascal_two(char *dest, char *pascal,unsigned int max_len);
-+
-+unsigned char copy_to_pascal(char *dest, const char *src);
-+unsigned short copy_to_pascal_two(char *dest, const char *src);
-+
-+void copy_path(struct afp_server * server, char * dest, const char * pathname, unsigned char len);
-+
-+
-+char * create_path(struct afp_server * server, char * pathname, unsigned short * len);
-+
-+
-+int invalid_filename(struct afp_server * server, const char * filename);
-+
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afp.h afpfs-ng-0.8.1.patch/include/afp.h
---- afpfs-ng-0.8.1/include/afp.h	2008-03-08 17:08:18.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afp.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,533 +0,0 @@
--
--#ifndef _AFP_H_
--#define _AFP_H_
--
--#include <arpa/inet.h>
--#include <pthread.h>
--#include <netdb.h>
--#include <sys/statvfs.h>
--#include <pwd.h>
--#include <afp_protocol.h>
--#include <libafpclient.h>
--#include <sys/types.h>
--#include <sys/stat.h>
--#include <unistd.h>
--#include <netinet/in.h>
--
--
--#define AFPFS_VERSION "0.8.1"
--
--/* This is the maximum AFP version this library supports */
--#define AFP_MAX_SUPPORTED_VERSION 32
--
--/* afp_url is used to pass locations around */
--struct afp_url {
--	enum {TCPIP,AT} protocol;
--	char username[AFP_MAX_USERNAME_LEN];
--	char uamname[50];
--	char password[AFP_MAX_PASSWORD_LEN];
--	char servername[AFP_SERVER_NAME_UTF8_LEN];
--	int port;
--	char volumename[AFP_VOLUME_NAME_UTF8_LEN];
--	char path[AFP_MAX_PATH];
--
--	int requested_version;
--	char zone[AFP_ZONE_LEN]; /* Only used for Appletalk */
--	char volpassword[9];;
--};
--
--struct afp_token {
--	unsigned int length;
--	char data[AFP_TOKEN_MAX_LEN];
--};
--
--#define SERVER_MAX_VERSIONS 10
--#define SERVER_MAX_UAMS 10
--
--struct afp_rx_buffer {
--	unsigned int size;
--	unsigned int maxsize;
--	char * data;
--	int errorcode;
--};
--
--
--struct afp_file_info {
--	unsigned short attributes;
--	unsigned int did;
--	unsigned int creation_date;
--	unsigned int modification_date;
--	unsigned int backup_date;
--	unsigned int fileid;
--	unsigned short offspring;
--	char sync;
--	char finderinfo[32];
--	char name[AFP_MAX_PATH];
--	char basename[AFP_MAX_PATH];
--	char translated_name[AFP_MAX_PATH];
--	struct afp_unixprivs unixprivs;
--	unsigned int accessrights;
--	struct afp_file_info * next;
--	struct afp_file_info * largelist_next;
--	unsigned char isdir;
--	unsigned long long size;
--	unsigned short resourcesize;
--	unsigned int resource;
--	unsigned short forkid;
--	struct afp_icon * icon;
--	int eof;
--};
--
--
--#define VOLUME_EXTRA_FLAGS_VOL_CHMOD_KNOWN 0x1
--#define VOLUME_EXTRA_FLAGS_VOL_CHMOD_BROKEN 0x2
--#define VOLUME_EXTRA_FLAGS_SHOW_APPLEDOUBLE 0x4
--#define VOLUME_EXTRA_FLAGS_VOL_SUPPORTS_UNIX 0x8
--#define VOLUME_EXTRA_FLAGS_NO_LOCKING 0x10
--#define VOLUME_EXTRA_FLAGS_IGNORE_UNIXPRIVS 0x20
--#define VOLUME_EXTRA_FLAGS_READONLY 0x40
--
--#define AFP_VOLUME_UNMOUNTED 0
--#define AFP_VOLUME_MOUNTED 1
--#define AFP_VOLUME_UNMOUNTING 2
--
--struct afp_volume {
--	unsigned short volid;
--	char flags;  /* This is from afpGetSrvrParms */
--	unsigned short attributes; /* This is from VolOpen */
--	unsigned short signature;  /* This is fixed or variable */
--	unsigned int creation_date;
--	unsigned int modification_date;
--	unsigned int backup_date;
--	struct statvfs stat;
--	unsigned char mounted;
--	char mountpoint[255];
--	struct afp_server * server;
--	char volume_name[AFP_VOLUME_NAME_LEN];
--	char volume_name_printable[AFP_VOLUME_NAME_UTF8_LEN];
--	unsigned short dtrefnum;
--	char volpassword[AFP_VOLPASS_LEN];
--	unsigned int extra_flags; /* This is an afpfs-ng specific field */
--
--	/* Our directory ID cache */
--	struct did_cache_entry * did_cache_base;
--	pthread_mutex_t did_cache_mutex;
--
--	/* Our journal of open forks */
--	struct afp_file_info * open_forks;
--	pthread_mutex_t open_forks_mutex;
--
--	/* Used to trigger startup */
--        pthread_cond_t  startup_condition_cond;
--
--	struct {
--		uint64_t hits;
--		uint64_t misses;
--		uint64_t expired;
--		uint64_t force_removed;
--	} did_cache_stats;
--
--	void * priv;  /* This is a private structure for fuse/cmdline, etc */
--	pthread_t thread; /* This is the per-volume thread */
--
--	int mapping;
--
--};
--
--#define SERVER_STATE_CONNECTED 1
--#define SERVER_STATE_DISCONNECTED 2
--
--enum server_type{
--	AFPFS_SERVER_TYPE_UNKNOWN,
--	AFPFS_SERVER_TYPE_NETATALK,
--	AFPFS_SERVER_TYPE_AIRPORT,
--	AFPFS_SERVER_TYPE_MACINTOSH,
--};
--
--#define is_netatalk(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_NETATALK )
--#define is_airport(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_AIRPORT )
--#define is_macintosh(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_MACINTOSH )
--
--
--
--struct afp_versions {
--        char        *av_name;
--        int         av_number;
--};
--extern struct afp_versions afp_versions[];
--
--struct afp_server {
--
--	/* Our buffer sizes */
--	unsigned int tx_quantum;
--	unsigned int rx_quantum;
--
--	unsigned int tx_delay;
--
--	/* Connection information */
--	struct sockaddr_in address;
--	int fd;
--
--	/* Some stats, for information only */
--	struct {
--		uint64_t runt_packets;
--		uint64_t incoming_dsi;
--		uint64_t rx_bytes;
--		uint64_t tx_bytes;
--		uint64_t requests_pending;
--	} stats;
--
--	/* General information */
--	char server_name[AFP_SERVER_NAME_LEN];
--	char server_name_utf8[AFP_SERVER_NAME_UTF8_LEN];
--        char server_name_printable[AFP_SERVER_NAME_UTF8_LEN];
--
--	char machine_type[17];
--	char icon[256];
--	char signature[16];
--	unsigned short flags;
--	int connect_state;
--	enum server_type server_type;
--
--	/* This is the time we connected */
--	time_t connect_time;
--
--	/* UAMs */
--	unsigned int supported_uams;
--	unsigned int using_uam;
--
--	/* Authentication */
--	char username[AFP_MAX_USERNAME_LEN];
--	char password[AFP_MAX_PASSWORD_LEN];
--
--	/* Session */
--	struct afp_token token;
--	char need_resume;
--
--	/* Versions */
--	unsigned char requested_version;
--	unsigned char versions[SERVER_MAX_VERSIONS];
--	struct afp_versions *using_version;
--
--	/* Volumes */
--	unsigned char num_volumes;
--	struct afp_volume * volumes;
--
--	void * dsi;
--	unsigned int exit_flag;
--
--	/* Our DSI request queue */
--	pthread_mutex_t requestid_mutex;
--	pthread_mutex_t request_queue_mutex;
--	unsigned short lastrequestid;
--	unsigned short expectedrequestid;
--	struct dsi_request * command_requests;
--
--
--	char loginmesg[200];
--	char servermesg[200];
--	char path_encoding;
--
--	/* This is the data for the incoming buffer */
--	char * incoming_buffer;
--	int data_read;
--	int bufsize;
--
--	/* And this is for the outgoing queue */
--	pthread_mutex_t send_mutex;
--
--	/* This is for user mapping */
--	struct passwd passwd;
--	unsigned int server_uid, server_gid;
--	int server_gid_valid;
--
--	struct afp_server *next;
--
--	/* These are for DSI attention packets */
--	unsigned int attention_quantum;
--	unsigned int attention_len;
--	char * attention_buffer;
--
--};
--
--struct afp_extattr_info {
--	unsigned int maxsize;
--	unsigned int size;
--	char data[1024];
--};
--struct afp_comment {
--	unsigned int maxsize;
--	unsigned int size;
--	char *data;
--};
--
--struct afp_icon {
--	unsigned int maxsize;
--	unsigned int size;
--	char *data;
--};
--
--#define AFP_DEFAULT_ATTENTION_QUANTUM 1024
--
--void afp_unixpriv_to_stat(struct afp_file_info *fp,
--	struct stat *stat);
--
--int init_uams(void) ;
--
--unsigned int find_uam_by_name(const char * name);
--char * uam_bitmap_to_string(unsigned int bitmap);
--
--
--char * get_uam_names_list(void);
--
--unsigned int default_uams_mask(void);
--
--struct afp_volume * find_volume_by_name(struct afp_server * server,
--        const char * volname);
--
--struct afp_connection_request {
--        unsigned int uam_mask;
--	struct afp_url url;
--};
--
--void afp_default_url(struct afp_url *url);
--int afp_parse_url(struct afp_url * url, const char * toparse, int verbose);
--void afp_print_url(struct afp_url * url);
--int afp_url_validate(char * url_string, struct afp_url * valid_url);
--
--int afp_list_volnames(struct afp_server * server, char * names, int max);
--
--/* User mapping */
--int afp_detect_mapping(struct afp_volume * volume);
--
--/* These are some functions that help with simple status text generation */
--
--int afp_status_header(char * text, int * len);
--int afp_status_server(struct afp_server * s,char * text, int * len);
--
--
--struct afp_server * afp_server_full_connect(void * priv, struct afp_connection_request * req);
--
--void * just_end_it_now(void *other);
--void add_fd_and_signal(int fd);
--void loop_disconnect(struct afp_server *s);
--void afp_wait_for_started_loop(void);
--
--
--struct afp_versions * pick_version(unsigned char *versions,
--	unsigned char requested) ;
--int pick_uam(unsigned int u1, unsigned int u2);
--
--int afp_server_login(struct afp_server *server,
--        char * mesg, unsigned int *l, unsigned int max);
--
--
--int afp_dologin(struct afp_server *server,
--	unsigned int uam, char * username, char * passwd);
--
--void afp_free_server(struct afp_server **server);
--
--struct afp_server * afp_server_init(struct sockaddr_in * address);
--int afp_get_address(void * priv, const char * hostname, unsigned int port,
--	struct sockaddr_in * address);
--
--
--int afp_main_loop(int command_fd);
--int afp_main_quick_startup(pthread_t * thread);
--
--int afp_server_destroy(struct afp_server *s) ;
--int afp_server_reconnect(struct afp_server * s, char * mesg,
--        unsigned int *l, unsigned int max);
--int afp_server_connect(struct afp_server *s, int full);
--
--struct afp_server * afp_server_complete_connection(
--	void * priv,
--	struct afp_server * server,
--	struct sockaddr_in * address, unsigned char * versions,
--	unsigned int uams, char * username, char * password,
--	unsigned int requested_version, unsigned int uam_mask);
--
--int afp_connect_volume(struct afp_volume * volume, struct afp_server * server,
--	char * mesg, unsigned int * l, unsigned int max);
--int something_is_mounted(struct afp_server * server);
--
--int add_cache_entry(struct afp_file_info * file) ;
--struct afp_file_info * get_cache_by_name(char * name);
--struct afp_server * find_server_by_address(struct sockaddr_in * address);
--struct afp_server * find_server_by_signature(char * signature);
--struct afp_server * find_server_by_name(char * name);
--int server_still_valid(struct afp_server * server);
--
--
--struct afp_server * get_server_base(void);
--int afp_server_remove(struct afp_server * server);
--
--int afp_unmount_volume(struct afp_volume * volume);
--int afp_unmount_all_volumes(struct afp_server * server);
--
--#define volume_is_readonly(x) (((x)->attributes&kReadOnly) || \
--	((x)->extra_flags & VOLUME_EXTRA_FLAGS_READONLY))
--
--int afp_opendt(struct afp_volume *volume, unsigned short * refnum);
--
--int afp_closedt(struct afp_server * server, unsigned short * refnum);
--
--int afp_getcomment(struct afp_volume *volume, unsigned int did,
--        const char * pathname, struct afp_comment * comment);
--
--int afp_addcomment(struct afp_volume *volume, unsigned int did,
--        const char * pathname, char * comment,uint64_t *size);
--
--int afp_geticon(struct afp_volume * volume, unsigned int filecreator,
--        unsigned int filetype, unsigned char icontype, 
--	unsigned short length, struct afp_icon * icon);
--
--/* Things you want to do to a server */
--
--int afp_getsrvrmsg(struct afp_server *server, unsigned short messagetype,unsigned char utf8, unsigned char block, char * mesg);
--
--int afp_login(struct afp_server *server, char * uaname,
--        char * userauthinfo, unsigned int userauthinfo_len,
--	struct afp_rx_buffer *rx);
--
--int afp_changepassword(struct afp_server *server, char * uaname,
--        char * userauthinfo, unsigned int userauthinfo_len,
--	struct afp_rx_buffer *rx);
--
--int afp_logincont(struct afp_server *server, unsigned short id,
--        char * userauthinfo, unsigned int userauthinfo_len,
--	struct afp_rx_buffer *rx);
--
--int afp_getsessiontoken(struct afp_server * server, int type,
--        unsigned int timestamp, struct afp_token *outgoing_token,
--        struct afp_token * incoming_token);
--
--int afp_getsrvrparms(struct afp_server *server);
--
--int afp_logout(struct afp_server *server,unsigned char wait);
--
--int afp_mapname(struct afp_server * server, unsigned char subfunction,
--        char * name, unsigned int * id);
--
--int afp_mapid(struct afp_server * server, unsigned char subfunction,
--	unsigned int id, char *name);
--
--int afp_getuserinfo(struct afp_server * server, int thisuser,
--	unsigned int userid, unsigned short bitmap, 
--	unsigned int *newuid, unsigned int *newgid);
--
--int afp_zzzzz(struct afp_server *server);
--
--int afp_volopen(struct afp_volume * volume, 
--		unsigned short bitmap, char * password);
--
--int afp_flush(struct afp_volume * volume);
--
--int afp_getfiledirparms(struct afp_volume *volume, unsigned int did, 
--	unsigned int filebitmap, unsigned int dirbitmap, const char * pathname,
--	struct afp_file_info *fp);
--
--int afp_enumerate(struct afp_volume * volume, 
--	unsigned int dirid, 
--	unsigned int filebitmap, unsigned int dirbitmap, 
--        unsigned short reqcount,
--        unsigned short startindex,
--        char * path,
--	struct afp_file_info ** file_p);
--
--int afp_enumerateext2(struct afp_volume * volume, 
--	unsigned int dirid, 
--	unsigned int filebitmap, unsigned int dirbitmap, 
--        unsigned short reqcount,
--        unsigned long startindex,
--        char * path,
--	struct afp_file_info ** file_p);
--
--int afp_openfork(struct afp_volume * volume,
--        unsigned char forktype,
--        unsigned int dirid,
--        unsigned short accessmode,
--        char * filename, 
--	struct afp_file_info *fp);
--
--int afp_read(struct afp_volume * volume, unsigned short forkid,
--                uint32_t offset,
--                uint32_t count, struct afp_rx_buffer * rx);
--
--int afp_readext(struct afp_volume * volume, unsigned short forkid,
--                uint64_t offset,
--                uint64_t count, struct afp_rx_buffer * rx);
--
--int afp_getvolparms(struct afp_volume * volume, unsigned short bitmap);
--
--
--int afp_createdir(struct afp_volume * volume, unsigned int dirid, const char * pathname, unsigned int *did_p);
--
--int afp_delete(struct afp_volume * volume,
--        unsigned int dirid, char * pathname);
--
--
--int afp_createfile(struct afp_volume * volume, unsigned char flag,
--        unsigned int did, char * pathname);
--
--int afp_write(struct afp_volume * volume, unsigned short forkid,
--        uint32_t offset, uint32_t reqcount,
--        char * data, uint32_t * written);
--
--int afp_writeext(struct afp_volume * volume, unsigned short forkid,
--        uint64_t offset, uint64_t reqcount,
--        char * data, uint64_t * written);
--
--int afp_flushfork(struct afp_volume * volume, unsigned short forkid);
--
--int afp_closefork(struct afp_volume * volume, unsigned short forkid);
--int afp_setfileparms(struct afp_volume * volume,
--        unsigned int dirid, const char * pathname, unsigned short bitmap,
--        struct afp_file_info *fp);
--int afp_setfiledirparms(struct afp_volume * volume, 
--        unsigned int dirid, const char * pathname, unsigned short bitmap,
--        struct afp_file_info *fp);
--
--int afp_setdirparms(struct afp_volume * volume,
--        unsigned int dirid, const char * pathname, unsigned short bitmap,
--        struct afp_file_info *fp);
--
--int afp_volclose(struct afp_volume * volume);
--
--
--int afp_setforkparms(struct afp_volume *volume,
--        unsigned short forkid, unsigned short bitmap, unsigned long len);
--
--int afp_byterangelock(struct afp_volume * volume,
--        unsigned char flag,
--        unsigned short forkid,
--        uint32_t offset,
--        uint32_t len, uint32_t *generated_offset);
--
--int afp_byterangelockext(struct afp_volume * volume,
--        unsigned char flag,
--        unsigned short forkid,
--        uint64_t offset,
--        uint64_t len, uint64_t *generated_offset);
--
--int afp_moveandrename(struct afp_volume *volume,
--	unsigned int src_did,
--	unsigned int dst_did,
--	char * src_path, char * dst_path, char *new_name);
--
--int afp_rename(struct afp_volume * volume,
--        unsigned int dirid,
--        char * path_from, char * path_to);
--
--int afp_listextattr(struct afp_volume * volume,
--        unsigned int dirid, unsigned short bitmap,
--        char * pathname, struct afp_extattr_info * info);
--
--/* This is a currently undocumented command */
--int afp_newcommand76(struct afp_volume * volume, unsigned int dlen, char * data);
--
--/* For debugging */
--char * afp_get_command_name(char code);
--
--
--#endif
-diff -Naur afpfs-ng-0.8.1/include/afp_protocol.h afpfs-ng-0.8.1.patch/include/afp_protocol.h
---- afpfs-ng-0.8.1/include/afp_protocol.h	2008-02-18 04:33:43.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afp_protocol.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,361 +0,0 @@
--
--#ifndef _AFP_PROTOCOL_H_
--#define _AFP_PROTOCOL_H_
--
--#include <sys/types.h>
--#include <stddef.h>
--#include <unistd.h>
--#include <stdint.h>
--
--/* This file defines constants for the Apple File Protocol.
--   All page references are from "Apple Filing Protocol Programming" version 3.2.
--   except where noted.
--*/
--
--#define AFP_SERVER_NAME_LEN 33
--#define AFP_SERVER_NAME_UTF8_LEN 255
--#define AFP_VOLUME_NAME_LEN 33
--#define AFP_VOLUME_NAME_UTF8_LEN 33
--#define AFP_SIGNATURE_LEN 16
--#define AFP_MACHINETYPE_LEN 33
--#define AFP_LOGINMESG_LEN 200
--#define AFP_VOLPASS_LEN 8
--#define AFP_HOSTNAME_LEN 255
--/* This is actually just a guess, and only used for appletalk */
--#define AFP_ZONE_LEN 255
--
--#define AFP_SERVER_ICON_LEN 256
--
--
--#define AFP_MAX_USERNAME_LEN 127
--#define AFP_MAX_PASSWORD_LEN 127
--
--
--/* This is the maximum length of any UAM string */
--#define AFP_UAM_LENGTH 24
--
--/* This is the maximum length of any path description */
--#define AFP_MAX_PATH 768
--
--#define AFP_VOL_FLAT 1
--#define AFP_VOL_FIXED 2
--#define AFP_VOL_VARIABLE 3
--
--/* The root directory ID, p.26 */
--
--#define AFP_ROOT_DID 2
--
--/* Path type constants, p.249 */
--
--enum {
--kFPShortName = 1,
--kFPLongName = 2,
--kFPUTF8Name = 3
--};
--
--/* fork types */
--
--#define AFP_FORKTYPE_DATA 0x0
--#define AFP_FORKTYPE_RESOURCE 0x80
--
--/* openfork access modes, from p.196 */
--
--#define AFP_OPENFORK_ALLOWREAD 1
--#define AFP_OPENFORK_ALLOWWRITE 2
--#define AFP_OPENFORK_DENYREAD 0x10
--#define AFP_OPENFORK_DENYWRITE 0x20
--
--/* Message type for getsrvmesg, p. 169*/
--
--typedef enum {
--  AFPMESG_LOGIN = 0,
--  AFPMESG_SERVER = 1
--} afpmessage_t;
--
--/* Message bitmap for getsrvrmsg */
--
--#define AFP_GETSRVRMSG_UTF8 0x2
--#define AFP_GETSRVRMSG_GETMSG 0x1
--
--
--/* Maximum Version length, p.17 */
--#define AFP_MAX_VERSION_LENGTH 16
--
--/* Maximum length of a token, this is undocumented */
--#define AFP_TOKEN_MAX_LEN 256
--
--/* The maximum size of a file for AFP 2 */
--#define AFP_MAX_AFP2_FILESIZE (4294967296)
--
--/* Unix privs, p.240 */
--
--struct afp_unixprivs {
--	uint32_t uid __attribute__((__packed__));
--	uint32_t gid __attribute__((__packed__));
--	uint32_t permissions __attribute__((__packed__));
--	uint32_t ua_permissions __attribute__((__packed__));
--
--};
--
--
--/* AFP Volume attributes bitmap, p.241 */
--
--enum {
--    kReadOnly = 0x01,
--    kHasVolumePassword = [REDACTED]
--    kSupportsFileIDs = 0x04,
--    kSupportsCatSearch = 0x08,
--    kSupportsBlankAccessPrivs = 0x10,
--    kSupportsUnixPrivs = 0x20,
--    kSupportsUTF8Names = 0x40,
--    kNoNetworkUserIDs = 0x80,
--    kDefaultPrivsFromParent = 0x100,
--    kNoExchangeFiles = 0x200,
--    kSupportsExtAttrs = 0x400,
--    kSupportsACLs=0x800
--};
--
--/* AFP file creation constantes, p.250 */
--enum {
--kFPSoftCreate = 0,
--kFPHardCreate = 0x80
--};
--
--/* AFP Directory attributes, taken from the protocol guide p.236 */
--
--enum {
--    kFPAttributeBit = 0x1,
--    kFPParentDirIDBit = 0x2,
--    kFPCreateDateBit = 0x4,
--    kFPModDateBit = 0x8,
--    kFPBackupDateBit = 0x10,
--    kFPFinderInfoBit = 0x20,
--    kFPLongNameBit = 0x40,
--    kFPShortNameBit = 0x80,
--    kFPNodeIDBit = 0x100,
--    kFPOffspringCountBit = 0x0200,
--    kFPOwnerIDBit = 0x0400,
--    kFPGroupIDBit = 0x0800,
--    kFPAccessRightsBit = 0x1000,
--    kFPProDOSInfoBit = 0x2000, // AFP version 2.2 and earlier
--    kFPUTF8NameBit = 0x2000, // AFP version 3.0 and later
--    kFPUnixPrivsBit = 0x8000 // AFP version 3.0 and later
--};
--
--/* AFP File bitmap, p.238.  These are the ones not in the AFP Directory
--   attributes map. */
--
--enum {
--	kFPDataForkLenBit = 0x0200,
--	kFPRsrcForkLenBit = 0x0400,
--	kFPExtDataForkLenBit = 0x0800, // AFP version 3.0 and later
--	kFPLaunchLimitBit = 0x1000,
--	kFPExtRsrcForkLenBit = 0x4000, // AFP version 3.0 and later
--};
--
--/* AFP Extended Attributes Bitmap, p.238  */
--
--enum {
--	kXAttrNoFollow = 0x1,
--	kXAttrCreate = 0x2,
--	kXAttrREplace=0x4
--};
--
--
--/* AFP function codes */
--enum AFPFunction
--{
--        afpByteRangeLock = 1, afpCloseVol, afpCloseDir, afpCloseFork,
--        afpCopyFile, afpCreateDir, afpCreateFile,
--        afpDelete, afpEnumerate, afpFlush, afpFlushFork,
--        afpGetForkParms = 14, afpGetSrvrInfo, afpGetSrvrParms,
--        afpGetVolParms, afpLogin, afpLoginCont, afpLogout, afpMapID,
--        afpMapName, afpMoveAndRename, afpOpenVol, afpOpenDir, afpOpenFork,
--        afpRead, afpRename, afpSetDirParms, afpSetFileParms,
--        afpSetForkParms, afpSetVolParms, afpWrite, afpGetFileDirParms,
--	afpSetFileDirParms, afpChangePassword,
--        afpGetUserInfo=37,afpGetSrvrMsg = 38,
--	afpOpenDT=48,
--	afpCloseDT=49,
--	afpGetIcon=51, afpGetIconInfo=52,
--	afpAddComment=56, afpRemoveComment=57, afpGetComment=58,
--	afpByteRangeLockExt=59, afpReadExt, afpWriteExt,
--	afpGetAuthMethods=62,
--	afp_LoginExt=63,
--	afpGetSessionToken=64,
--	afpDisconnectOldSession=65,
--	afpEnumerateExt=66,
--	afpCatSearchExt = 67,
--	afpEnumerateExt2 = 68, afpGetExtAttr, afpSetExtAttr, 
--	afpRemoveExtAttr , afpListExtAttrs,
--	afpZzzzz = 122,
--	afpAddIcon=192,
--};
--
--/* AFP Volume bitmap.  Take from 242 of the protocol guide. */
--enum {
--	kFPBadVolPre222Bitmap = 0xFe00,
--	kFPBadVolBitmap = 0xF000,
--	kFPVolAttributeBit = 0x1,
--	kFPVolSignatureBit = 0x2,
--	kFPVolCreateDateBit = 0x4,
--	kFPVolModDateBit = 0x8,
--	kFPVolBackupDateBit = 0x10,
--	kFPVolIDBit = 0x20,
--	kFPVolBytesFreeBit = 0x40,
--	kFPVolBytesTotalBit = 0x80,
--	kFPVolNameBit = 0x100,
--	kFPVolExtBytesFreeBit = 0x200,
--	kFPVolExtBytesTotalBit = 0x400,
--	kFPVolBlockSizeBit = 0x800
--};
--
--/* AFP Attention Codes -- 4 bits */
--#define AFPATTN_SHUTDOWN     (1 << 15)            /* shutdown/disconnect */
--#define AFPATTN_CRASH        (1 << 14)            /* server crashed */
--#define AFPATTN_MESG         (1 << 13)            /* server has message */
--#define AFPATTN_NORECONNECT  (1 << 12)            /* don't reconnect */
--/* server notification */
--#define AFPATTN_NOTIFY       (AFPATTN_MESG | AFPATTN_NORECONNECT) 
--
--/* extended bitmap -- 12 bits. volchanged is only useful w/ a server
-- * notification, and time is only useful for shutdown. */
--#define AFPATTN_VOLCHANGED   (1 << 0)             /* volume has changed */
--#define AFPATTN_TIME(x)      ((x) & 0xfff)        /* time in minutes */
--
--#define kFPNoErr 0
--
--/* AFP result codes, p252 */
--#define kASPSessClosed -1072
--#define kFPAccessDenied -5000
--#define kFPAuthContinue -5001
--#define kFPBadUAM -5002
--#define kFPBadVersNum -5003
--#define kFPBitmapErr -5004
--#define kFPCantMove -5005
--#define kFPDenyConflict -5006
--#define kFPDirNotEmpty -5007
--#define kFPDiskFull -5008
--#define kFPEOFErr -5009
--#define kFPFileBusy -5010
--#define kFPFlatVol -5011
--#define kFPItemNotFound -5012
--#define kFPLockErr -5013
--#define kFPMiscErr -5014
--#define kFPNoMoreLocks -5015
--#define kFPNoServer -5016
--#define kFPObjectExists -5017
--#define kFPObjectNotFound -5018
--#define kFPParamErr -5019
--#define kFPRangeNotLocked -5020
--#define kFPRangeOverlap -5021
--#define kFPSessClosed -5022
--#define kFPUserNotAuth -5023
--#define kFPCallNotSupported -5024
--#define kFPObjectTypeErr -5025
--#define kFPTooManyFilesOpen -5026
--#define kFPServerGoingDown -5027
--#define kFPCantRename -5028
--#define kFPDirNotFound -5029
--#define kFPIconTypeError -5030
--#define kFPVolLocked -5031
--#define kFPObjectLocked -5032
--#define kFPContainsSharedErr -5033
--#define kFPIDNotFound -5034
--#define kFPIDExists -5035
--#define kFPDiffVolErr  -5036
--#define kFPCatalogChanged -5037
--#define kFPSameObjectErr -5038
--#define kFPBadIDErr -5039
--#define kFPPwdSameErr -5040
--#define kFPPwdTooShortErr -5041
--#define kFPPwdExpiredErr -5042
--#define kFPInsideSharedErr -5043
--#define kFPInsideTrashErr -5044
--#define kFPPwdNeedsChangeErr -5045
--#define kFPPwdPolicyErr -5046
--#define kFPDiskQuotaExceeded –5047 
--
--
--
--/* These flags determine to lock or unlock in ByteRangeLock(Ext) */
--
--enum {
--ByteRangeLock_Lock = 0,
--ByteRangeLock_Unlock = 1
--};
--
--/* These flags are used in volopen and getsrvrparm replies, p.171 */
--
--#define HasConfigInfo 0x1
--#define HasPassword 0x80
--
--/* These are the subfunction for kFPMapID, as per p.248 */
--
--enum {
--kUserIDToName = 1,
--kGroupIDToName = 2,
--kUserIDToUTF8Name = 3,
--kGroupIDToUTF8Name = 4,
--kUserUUIDToUTF8Name = 5,
--kGroupUUIDToUTF8Name = 6
--};
--
--
--/* These are the subfunction flags described in the FPMapName command, p.286.
--   Note that this is different than what's described on p. 186. */
--
--enum {
--kNameToUserID = 1,
--kNameToGroupID = 2,
--kUTF8NameToUserID = 3,
--kUTF8NameToGroupID = 4,
--kUTF8NameToUserUUID = 5,
--kUTF8NameToGroupUUID = 6
--};
--
--/* These are bits for FPGetUserInfo, p.173. */
--#define kFPGetUserInfo_USER_ID 1
--#define kFPGetUserInfo_PRI_GROUPID 2
--
--/* Flags for the replies of GetSrvrInfo and DSI GetStatus, p.240 */
--
--enum {
--	kSupportsCopyfile = 0x01,
--	kSupportsChgPwd = 0x02,
--	kDontAllowSavePwd = 0x04,
--	kSupportsSrvrMsg = 0x08,
--	kSrvrSig = 0x10,
--	kSupportsTCP = 0x20,
--	kSupportsSrvrNotify = 0x40,
--	kSupportsReconnect = 0x80,
--	kSupportsDirServices = 0x100,
--	kSupportsUTF8SrvrName = 0x200,
--	kSupportsUUIDs = 0x400,
--	kSupportsSuperClient = 0x8000
--};
--
--
--/* p.247 */
--
--enum {
--	kLoginWithoutID = 0,
--	kLoginWithID = 1,
--	kReconnWithID = 2,
--	kLoginWithTimeAndID = 3,
--	kReconnWithTimeAndID = 4,
--	kRecon1Login = 5,
--	kRecon1ReconnectLogin = 6,
--	kRecon1Refresh = 7, kGetKerberosSessionKey = 8
--};
--
--
--#define AFP_CHMOD_ALLOWED_BITS_22 \
--	(S_IRUSR |S_IWUSR | S_IRGRP | S_IWGRP |S_IROTH | S_IWOTH | S_IFREG )
--
--
--#endif
--
--
--
--
-diff -Naur afpfs-ng-0.8.1/include/codepage.h afpfs-ng-0.8.1.patch/include/codepage.h
---- afpfs-ng-0.8.1/include/codepage.h	2007-09-23 16:21:30.000000000 +0200
-+++ afpfs-ng-0.8.1.patch/include/codepage.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,11 +0,0 @@
--#ifndef __CODE_PAGE_H_
--#define __CODE_PAGE_H_
--int convert_utf8dec_to_utf8pre(const char *src, int src_len,
--	char * dest, int dest_len);
--int convert_utf8pre_to_utf8dec(const char * src, int src_len, 
--	char * dest, int dest_len);
--int convert_path_to_unix(char encoding, char * dest, 
--	char * src, int dest_len);
--int convert_path_to_afp(char encoding, char * dest, 
--	char * src, int dest_len);
--#endif
-diff -Naur afpfs-ng-0.8.1/include/dsi.h afpfs-ng-0.8.1.patch/include/dsi.h
---- afpfs-ng-0.8.1/include/dsi.h	2008-02-18 04:33:24.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/dsi.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,33 +0,0 @@
--
--#ifndef __DSI_H_
--#define __DSI_H_
--
--#include "afp.h"
--
--struct dsi_request
--{
--	unsigned short requestid;
--	unsigned char subcommand;
--	void * other;
--	unsigned char wait;
--	pthread_cond_t  condition_cond;
--	struct dsi_request * next;
--	int return_code;
--};
--
--int dsi_receive(struct afp_server * server, void * data, int size);
--int dsi_getstatus(struct afp_server * server);
--
--int dsi_opensession(struct afp_server *server);
--
--int dsi_send(struct afp_server *server, char * msg, int size,int wait,unsigned char subcommand, void ** other);
--struct dsi_session * dsi_create(struct afp_server *server);
--int dsi_restart(struct afp_server *server);
--int dsi_recv(struct afp_server * server);
--
--#define DSI_BLOCK_TIMEOUT -1
--#define DSI_DONT_WAIT 0
--#define DSI_DEFAULT_TIMEOUT 5
--
--
--#endif
-diff -Naur afpfs-ng-0.8.1/include/libafpclient.h afpfs-ng-0.8.1.patch/include/libafpclient.h
---- afpfs-ng-0.8.1/include/libafpclient.h	2008-01-30 05:37:59.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/libafpclient.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,50 +0,0 @@
--
--#ifndef __CLIENT_H_
--#define __CLIENT_H_
--
--#include <unistd.h>
--#include <syslog.h>
--
--#define MAX_CLIENT_RESPONSE 2048
--
--
--enum loglevels {
--        AFPFSD,
--};
--
--struct afp_server;
--struct afp_volume;
--
--struct libafpclient {
--        int (*unmount_volume) (struct afp_volume * volume);
--	void (*log_for_client)(void * priv,
--        	enum loglevels loglevel, int logtype, const char *message);
--	void (*forced_ending_hook)(void);
--	int (*scan_extra_fds)(int command_fd,fd_set *set, int * max_fd);
--	void (*loop_started)(void);
--} ;
--
--extern struct libafpclient * libafpclient;
--
--void libafpclient_register(struct libafpclient * tmpclient);
--
--
--void signal_main_thread(void);
--
--/* These are logging functions */
--
--#define MAXLOGSIZE 2048
--
--#define LOG_METHOD_SYSLOG 1
--#define LOG_METHOD_STDOUT 2
--
--void set_log_method(int m);
--
--
--void log_for_client(void * priv,
--        enum loglevels loglevel, int logtype, char * message,...);
--
--void stdout_log_for_client(void * priv,
--	enum loglevels loglevel, int logtype, const char *message);
--
--#endif
-diff -Naur afpfs-ng-0.8.1/include/Makefile.am afpfs-ng-0.8.1.patch/include/Makefile.am
---- afpfs-ng-0.8.1/include/Makefile.am	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/Makefile.am	2011-09-10 12:13:50.126124692 +0200
-@@ -0,0 +1,3 @@
-+## Process this file with automake to produce Makefile.in
-+
-+SUBDIRS = afpfs-ng
-diff -Naur afpfs-ng-0.8.1/include/map_def.h afpfs-ng-0.8.1.patch/include/map_def.h
---- afpfs-ng-0.8.1/include/map_def.h	2008-01-17 05:55:46.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/map_def.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,15 +0,0 @@
--#ifndef __MAP_H_
--#define __MAP_H_
--
--#include "afp.h"
--
--#define AFP_MAPPING_UNKNOWN 0
--#define AFP_MAPPING_COMMON 1
--#define AFP_MAPPING_LOGINIDS 2
--#define AFP_MAPPING_NAME 3
--
--unsigned int map_string_to_num(char * name);
--char * get_mapping_name(struct afp_volume * volume);
--
--
--#endif
-diff -Naur afpfs-ng-0.8.1/include/midlevel.h afpfs-ng-0.8.1.patch/include/midlevel.h
---- afpfs-ng-0.8.1/include/midlevel.h	2007-12-24 20:39:25.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/midlevel.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,64 +0,0 @@
--#ifndef __MIDLEVEL_H_
--#define __MIDLEVEL_H_ 
--
--#include <utime.h>
--#include "afp.h"
--
--int ml_open(struct afp_volume * volume, const char *path, int flags, 
--        struct afp_file_info **newfp);
--
--int ml_creat(struct afp_volume * volume, const char *path,mode_t mode);
--
--int ml_readdir(struct afp_volume * volume, 
--	const char *path, 
--	struct afp_file_info **base);
--
--int ml_read(struct afp_volume * volume, const char *path,
--	char *buf, size_t size, off_t offset,
--	struct afp_file_info *fp, int * eof);
--
--int ml_chmod(struct afp_volume * vol, const char * path, mode_t mode);
--
--int ml_unlink(struct afp_volume * vol, const char *path);
--
--int ml_mkdir(struct afp_volume * vol, const char * path, mode_t mode);
--
--int ml_close(struct afp_volume * volume, const char * path,
--        struct afp_file_info * fp);
--
--int ml_getattr(struct afp_volume * volume, const char *path, 
--	struct stat *stbuf);
--
--int ml_write(struct afp_volume * volume, const char * path, 
--	const char *data, size_t size, off_t offset,
--	struct afp_file_info * fp, uid_t uid,
--	gid_t gid);
--
--int ml_readlink(struct afp_volume * vol, const char * path,
--        char *buf, size_t size);
--
--int ml_rmdir(struct afp_volume * vol, const char *path);
--
--int ml_chown(struct afp_volume * vol, const char * path,   
--        uid_t uid, gid_t gid);
--
--int ml_truncate(struct afp_volume * vol, const char * path, off_t offset);
--
--int ml_utime(struct afp_volume * vol, const char * path,
--	struct utimbuf * timebuf);
--
--int ml_symlink(struct afp_volume *vol, const char * path1, const char * path2);
--
--int ml_rename(struct afp_volume * vol,
--	const char * path_from, const char * path_to);
--
--int ml_statfs(struct afp_volume * vol, const char *path, struct statvfs *stat);
--
--void afp_ml_filebase_free(struct afp_file_info **filebase);
--
--int ml_passwd(struct afp_server *server,
--                char * username, char * oldpasswd, char * newpasswd);
--
--
--
--#endif
-diff -Naur afpfs-ng-0.8.1/include/uams_def.h afpfs-ng-0.8.1.patch/include/uams_def.h
---- afpfs-ng-0.8.1/include/uams_def.h	2007-09-07 15:10:51.000000000 +0200
-+++ afpfs-ng-0.8.1.patch/include/uams_def.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,16 +0,0 @@
--#ifndef __UAM_DEFS_H_
--#define __UAM_DEFS_H_
--
--#define UAM_NOUSERAUTHENT 0x1
--#define UAM_CLEARTXTPASSWRD 0x2
--#define UAM_RANDNUMEXCHANGE 0x4
--#define UAM_2WAYRANDNUM 0x8
--#define UAM_DHCAST128 0x10
--#define UAM_CLIENTKRB 0x20
--#define UAM_DHX2 0x40
--#define UAM_RECON1 0x80
--
--int uam_string_to_bitmap(char * name);
--char * uam_bitmap_to_string(unsigned int bitmap);
--
--#endif
-diff -Naur afpfs-ng-0.8.1/include/utils.h afpfs-ng-0.8.1.patch/include/utils.h
---- afpfs-ng-0.8.1/include/utils.h	2008-02-18 04:33:58.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/utils.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,43 +0,0 @@
--#ifndef __UTILS_H_
--#define __UTILS_H_
--#include <stdio.h>
--
--#include "afp.h"
--
--#if BYTE_ORDER == BIG_ENDIAN
--#define hton64(x)       (x)
--#define ntoh64(x)       (x)
--#else /* BYTE_ORDER == BIG_ENDIAN */
--#define hton64(x)       ((u_int64_t) (htonl(((x) >> 32) & 0xffffffffLL)) | \
--                         (u_int64_t) ((htonl(x) & 0xffffffffLL) << 32))
--#define ntoh64(x)       (hton64(x))
--#endif /* BYTE_ORDER == BIG_ENDIAN */
--
--#define min(a,b) (((a)<(b)) ? (a) : (b))
--#define max(a,b) (((a)>(b)) ? (a) : (b))
--
--
--
--unsigned char unixpath_to_afppath(
--        struct afp_server * server,
--        char * buf);
--
--unsigned char sizeof_path_header(struct afp_server * server);
--
--
--
--unsigned char copy_from_pascal(char *dest, char *pascal,unsigned int max_len) ;
--unsigned short copy_from_pascal_two(char *dest, char *pascal,unsigned int max_len);
--
--unsigned char copy_to_pascal(char *dest, const char *src);
--unsigned short copy_to_pascal_two(char *dest, const char *src);
--
--void copy_path(struct afp_server * server, char * dest, const char * pathname, unsigned char len);
--
--
--char * create_path(struct afp_server * server, char * pathname, unsigned short * len);
--
--
--int invalid_filename(struct afp_server * server, const char * filename);
--
--#endif
-diff -Naur afpfs-ng-0.8.1/lib/afp.c afpfs-ng-0.8.1.patch/lib/afp.c
---- afpfs-ng-0.8.1/lib/afp.c	2008-03-08 03:44:16.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/afp.c	2011-09-10 12:13:50.131124759 +0200
-@@ -9,7 +9,7 @@
- 
- 
- 
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- #include <config.h>
- 
- #include <stdio.h>
-@@ -21,17 +21,17 @@
- #include <sys/socket.h>
- #include <errno.h>
- 
--#include "afp_protocol.h"
--#include "libafpclient.h"
-+#include "afpfs-ng/afp_protocol.h"
-+#include "afpfs-ng/libafpclient.h"
- #include "server.h"
--#include "dsi.h"
-+#include "afpfs-ng/dsi.h"
- #include "dsi_protocol.h"
--#include "utils.h"
-+#include "afpfs-ng/utils.h"
- #include "afp_replies.h"
- #include "afp_internal.h"
- #include "did.h"
- #include "forklist.h"
--#include "codepage.h"
-+#include "afpfs-ng/codepage.h"
- 
- struct afp_versions      afp_versions[] = {
-             { "AFPVersion 1.1", 11 },
-diff -Naur afpfs-ng-0.8.1/lib/afp_internal.h afpfs-ng-0.8.1.patch/lib/afp_internal.h
---- afpfs-ng-0.8.1/lib/afp_internal.h	2007-11-09 05:27:20.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/afp_internal.h	2011-09-10 12:13:50.132124772 +0200
-@@ -1,7 +1,7 @@
- #ifndef _AFP_INTERNAL_H_
- #define _AFP_INTERNAL_H_
- 
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- 
- extern struct afp_versions afp_versions[];
- 
-diff -Naur afpfs-ng-0.8.1/lib/afp_url.c afpfs-ng-0.8.1.patch/lib/afp_url.c
---- afpfs-ng-0.8.1/lib/afp_url.c	2008-03-04 21:16:49.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/afp_url.c	2011-09-10 12:13:50.132124772 +0200
-@@ -3,7 +3,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <errno.h>
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- 
- void afp_default_url(struct afp_url *url)
- {
-diff -Naur afpfs-ng-0.8.1/lib/client.c afpfs-ng-0.8.1.patch/lib/client.c
---- afpfs-ng-0.8.1/lib/client.c	2008-02-18 04:36:30.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/client.c	2011-09-10 12:13:50.132124772 +0200
-@@ -1,5 +1,5 @@
--#include <afp.h>
--#include <libafpclient.h>
-+#include <afpfs-ng/afp.h>
-+#include <afpfs-ng/libafpclient.h>
- 
- 
- struct libafpclient * libafpclient = NULL;
-diff -Naur afpfs-ng-0.8.1/lib/codepage.c afpfs-ng-0.8.1.patch/lib/codepage.c
---- afpfs-ng-0.8.1/lib/codepage.c	2008-02-18 04:36:54.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/codepage.c	2011-09-10 12:13:50.133124786 +0200
-@@ -14,8 +14,8 @@
- 
- #include <string.h>
- #include <stdlib.h>
--#include "afp_protocol.h"
--#include "utils.h"
-+#include "afpfs-ng/afp_protocol.h"
-+#include "afpfs-ng/utils.h"
- #include "unicode.h"
- 
- int convert_utf8dec_to_utf8pre(const char *src, int src_len,
-diff -Naur afpfs-ng-0.8.1/lib/connect.c afpfs-ng-0.8.1.patch/lib/connect.c
---- afpfs-ng-0.8.1/lib/connect.c	2008-02-18 04:38:59.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/connect.c	2011-09-10 12:13:50.133124786 +0200
-@@ -10,13 +10,13 @@
- #include <string.h>
- #include <sys/socket.h>
- 
--#include "afp.h"
--#include "dsi.h"
--#include "utils.h"
--#include "uams_def.h"
--#include "codepage.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/uams_def.h"
-+#include "afpfs-ng/codepage.h"
- #include "users.h"
--#include "libafpclient.h"
-+#include "afpfs-ng/libafpclient.h"
- #include "server.h"
- 
- 
-diff -Naur afpfs-ng-0.8.1/lib/did.c afpfs-ng-0.8.1.patch/lib/did.c
---- afpfs-ng-0.8.1/lib/did.c	2008-02-18 04:39:17.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/did.c	2011-09-10 12:13:50.133124786 +0200
-@@ -9,8 +9,8 @@
- #include <string.h>
- #include <stdio.h>
- 
--#include "afp.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/afp_protocol.h"
- 
- #undef DID_CACHE_DISABLE
- 
-diff -Naur afpfs-ng-0.8.1/lib/dsi.c afpfs-ng-0.8.1.patch/lib/dsi.c
---- afpfs-ng-0.8.1/lib/dsi.c	2008-02-18 04:53:03.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/dsi.c	2011-09-10 12:13:50.134124800 +0200
-@@ -19,12 +19,12 @@
- #include <signal.h>
- #include <iconv.h>
- 
--#include "utils.h"
--#include "dsi.h"
--#include "afp.h"
--#include "uams_def.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/uams_def.h"
- #include "dsi_protocol.h"
--#include "libafpclient.h"
-+#include "afpfs-ng/libafpclient.h"
- #include "afp_internal.h"
- #include "afp_replies.h"
- 
-diff -Naur afpfs-ng-0.8.1/lib/forklist.c afpfs-ng-0.8.1.patch/lib/forklist.c
---- afpfs-ng-0.8.1/lib/forklist.c	2008-01-17 05:49:16.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/forklist.c	2011-09-10 12:13:50.135124814 +0200
-@@ -10,7 +10,7 @@
- */
- 
- 
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- 
- #include <stdlib.h>
- #include <pthread.h>
-diff -Naur afpfs-ng-0.8.1/lib/log.c afpfs-ng-0.8.1.patch/lib/log.c
---- afpfs-ng-0.8.1/lib/log.c	2008-01-30 05:37:58.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/log.c	2011-09-10 12:13:50.135124814 +0200
-@@ -3,7 +3,7 @@
- #include <stdarg.h>
- #include <string.h>
- #include <stdlib.h>
--#include "libafpclient.h"
-+#include "afpfs-ng/libafpclient.h"
- 
- void log_for_client(void * priv,
- 	enum loglevels loglevel, int logtype, char *format, ...) {
-diff -Naur afpfs-ng-0.8.1/lib/loop.c afpfs-ng-0.8.1.patch/lib/loop.c
---- afpfs-ng-0.8.1/lib/loop.c	2008-02-18 04:40:11.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/loop.c	2011-09-10 12:13:50.135124814 +0200
-@@ -16,9 +16,9 @@
- #include <sys/time.h>
- #include <signal.h>
- 
--#include "afp.h"
--#include "dsi.h"
--#include "utils.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/utils.h"
- 
- #define SIGNAL_TO_USE SIGUSR2
- 
-diff -Naur afpfs-ng-0.8.1/lib/lowlevel.c afpfs-ng-0.8.1.patch/lib/lowlevel.c
---- afpfs-ng-0.8.1/lib/lowlevel.c	2008-02-20 02:33:17.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/lowlevel.c	2011-09-10 12:13:50.136124828 +0200
-@@ -19,10 +19,10 @@
- #else
- #include <fcntl.h>
- #endif
--#include "afp.h"
--#include "afp_protocol.h"
--#include "codepage.h"
--#include "utils.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/afp_protocol.h"
-+#include "afpfs-ng/codepage.h"
-+#include "afpfs-ng/utils.h"
- #include "did.h"
- #include "users.h"
- 
-diff -Naur afpfs-ng-0.8.1/lib/map_def.c afpfs-ng-0.8.1.patch/lib/map_def.c
---- afpfs-ng-0.8.1/lib/map_def.c	2007-09-07 15:10:59.000000000 +0200
-+++ afpfs-ng-0.8.1.patch/lib/map_def.c	2011-09-10 12:13:50.136124828 +0200
-@@ -1,6 +1,6 @@
- #include <string.h>
--#include "afp.h"
--#include "map_def.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/map_def.h"
- 
- static char *afp_map_strings[] = {
- 	"Unknown",
-diff -Naur afpfs-ng-0.8.1/lib/meta.c afpfs-ng-0.8.1.patch/lib/meta.c
---- afpfs-ng-0.8.1/lib/meta.c	2008-01-04 04:52:44.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/meta.c	2011-09-10 12:13:50.137124841 +0200
-@@ -17,10 +17,10 @@
- #include <unistd.h>
- #include <sys/time.h>
- 
--#include "afp.h"
--#include "dsi.h"
--#include "afp_protocol.h"
--#include "utils.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp_protocol.h"
-+#include "afpfs-ng/utils.h"
- 
- 
- int afp_meta_getattr(const char *path, struct stat *stbuf)
-diff -Naur afpfs-ng-0.8.1/lib/midlevel.c afpfs-ng-0.8.1.patch/lib/midlevel.c
---- afpfs-ng-0.8.1/lib/midlevel.c	2008-03-08 17:08:18.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/midlevel.c	2011-09-10 12:13:50.160125150 +0200
-@@ -10,7 +10,7 @@
- */
- 
- 
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- 
- #include <sys/stat.h>
- #include <string.h>
-@@ -28,9 +28,9 @@
- #include "users.h"
- #include "did.h"
- #include "resource.h"
--#include "utils.h"
--#include "codepage.h"
--#include "midlevel.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/codepage.h"
-+#include "afpfs-ng/midlevel.h"
- #include "afp_internal.h"
- #include "forklist.h"
- #include "uams.h"
-diff -Naur afpfs-ng-0.8.1/lib/proto_attr.c afpfs-ng-0.8.1.patch/lib/proto_attr.c
---- afpfs-ng-0.8.1/lib/proto_attr.c	2008-01-30 05:37:58.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_attr.c	2011-09-10 12:13:50.168125257 +0200
-@@ -7,10 +7,10 @@
- 
- #include <string.h>
- #include <stdlib.h>
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/afp_protocol.h"
- #include "dsi_protocol.h"
- 
- /* This is a new command, function 76.  There are currently no docs, so this 
-diff -Naur afpfs-ng-0.8.1/lib/proto_desktop.c afpfs-ng-0.8.1.patch/lib/proto_desktop.c
---- afpfs-ng-0.8.1/lib/proto_desktop.c	2008-02-18 04:44:11.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_desktop.c	2011-09-10 12:13:50.168125257 +0200
-@@ -9,10 +9,10 @@
- #include <string.h>
- #include <stdlib.h>
- 
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/afp_protocol.h"
- #include "dsi_protocol.h"
- 
- /* closedt, addicon, geticoninfo, addappl, removeappl */
-diff -Naur afpfs-ng-0.8.1/lib/proto_directory.c afpfs-ng-0.8.1.patch/lib/proto_directory.c
---- afpfs-ng-0.8.1/lib/proto_directory.c	2008-02-19 03:39:29.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_directory.c	2011-09-10 12:13:50.168125257 +0200
-@@ -9,10 +9,10 @@
- #include <string.h>
- #include <stdlib.h>
- 
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/afp_protocol.h"
- #include "dsi_protocol.h"
- #include "afp_replies.h"
- 
-diff -Naur afpfs-ng-0.8.1/lib/proto_files.c afpfs-ng-0.8.1.patch/lib/proto_files.c
---- afpfs-ng-0.8.1/lib/proto_files.c	2008-02-18 04:46:18.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_files.c	2011-09-10 12:13:50.169125270 +0200
-@@ -8,11 +8,11 @@
- 
- #include <stdlib.h>
- #include <string.h>
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "dsi_protocol.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/afp_protocol.h"
- #include "afp_internal.h"
- 
- /* afp_setfileparms, afp_setdirparms and afpsetfiledirparms are all remarkably
-diff -Naur afpfs-ng-0.8.1/lib/proto_fork.c afpfs-ng-0.8.1.patch/lib/proto_fork.c
---- afpfs-ng-0.8.1/lib/proto_fork.c	2008-01-30 05:37:58.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_fork.c	2011-09-10 12:13:50.169125270 +0200
-@@ -9,11 +9,11 @@
- #include <stdlib.h>
- #include <string.h>
- 
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "dsi_protocol.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/afp_protocol.h"
- 
- int afp_setforkparms(struct afp_volume * volume,
- 	unsigned short forkid, unsigned short bitmap, unsigned long len)
-diff -Naur afpfs-ng-0.8.1/lib/proto_login.c afpfs-ng-0.8.1.patch/lib/proto_login.c
---- afpfs-ng-0.8.1/lib/proto_login.c	2008-01-30 05:37:59.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_login.c	2011-09-10 12:13:50.169125270 +0200
-@@ -10,10 +10,10 @@
- 
- #include <stdlib.h>
- #include <string.h>
--#include "dsi.h"
-+#include "afpfs-ng/dsi.h"
- #include "dsi_protocol.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "afp_internal.h"
- 
- 
-diff -Naur afpfs-ng-0.8.1/lib/proto_map.c afpfs-ng-0.8.1.patch/lib/proto_map.c
---- afpfs-ng-0.8.1/lib/proto_map.c	2008-01-30 05:37:59.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_map.c	2011-09-10 12:13:50.170125283 +0200
-@@ -9,11 +9,11 @@
- #include <stdlib.h>
- #include <string.h>
- 
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "dsi_protocol.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/afp_protocol.h"
- 
- /* This is used to pass the return values back from afp_getuserinfo_reply() */
- struct uidgid {
-diff -Naur afpfs-ng-0.8.1/lib/proto_replyblock.c afpfs-ng-0.8.1.patch/lib/proto_replyblock.c
---- afpfs-ng-0.8.1/lib/proto_replyblock.c	2008-02-18 04:46:19.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_replyblock.c	2011-09-10 12:13:50.170125283 +0200
-@@ -6,9 +6,9 @@
-  */
- 
- #include <string.h>
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "afp_internal.h"
- 
- 
-diff -Naur afpfs-ng-0.8.1/lib/proto_server.c afpfs-ng-0.8.1.patch/lib/proto_server.c
---- afpfs-ng-0.8.1/lib/proto_server.c	2008-02-19 02:56:21.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_server.c	2011-09-10 12:13:50.170125283 +0200
-@@ -7,12 +7,12 @@
-  */
- #include <stdlib.h>
- #include <string.h>
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "dsi_protocol.h"
--#include "afp_protocol.h"
--#include "codepage.h"
-+#include "afpfs-ng/afp_protocol.h"
-+#include "afpfs-ng/codepage.h"
- #include "afp_internal.h"
- 
- int afp_getsrvrparms(struct afp_server *server)
-diff -Naur afpfs-ng-0.8.1/lib/proto_session.c afpfs-ng-0.8.1.patch/lib/proto_session.c
---- afpfs-ng-0.8.1/lib/proto_session.c	2008-02-18 04:46:19.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_session.c	2011-09-10 12:13:50.170125283 +0200
-@@ -8,10 +8,10 @@
-  */
- #include <stdlib.h>
- #include <string.h>
--#include "dsi.h"
-+#include "afpfs-ng/dsi.h"
- #include "dsi_protocol.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- 
- int afp_getsessiontoken(struct afp_server * server, int type, 
- 	unsigned int timestamp, struct afp_token *outgoing_token, 
-diff -Naur afpfs-ng-0.8.1/lib/proto_volume.c afpfs-ng-0.8.1.patch/lib/proto_volume.c
---- afpfs-ng-0.8.1/lib/proto_volume.c	2008-02-18 04:47:48.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_volume.c	2011-09-10 12:13:50.171125296 +0200
-@@ -8,13 +8,13 @@
- 
- #include <string.h>
- #include <stdlib.h>
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "dsi_protocol.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/afp_protocol.h"
- #include "afp_internal.h"
--#include "codepage.h"
-+#include "afpfs-ng/codepage.h"
- 
- static int parse_volbitmap_reply(struct afp_server * server, 
- 		struct afp_volume * tmpvol, 
-diff -Naur afpfs-ng-0.8.1/lib/resource.c afpfs-ng-0.8.1.patch/lib/resource.c
---- afpfs-ng-0.8.1/lib/resource.c	2008-02-18 04:46:56.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/resource.c	2011-09-10 12:13:50.171125296 +0200
-@@ -3,11 +3,11 @@
- #include <string.h>
- #include <errno.h>
- #include <fcntl.h>
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- #include "resource.h"
- #include "lowlevel.h"
- #include "did.h"
--#include "midlevel.h"
-+#include "afpfs-ng/midlevel.h"
- 
- #define appledouble ".AppleDouble"
- #define finderinfo_string ".finderinfo"
-diff -Naur afpfs-ng-0.8.1/lib/server.c afpfs-ng-0.8.1.patch/lib/server.c
---- afpfs-ng-0.8.1/lib/server.c	2008-02-19 02:56:21.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/server.c	2011-09-10 12:13:50.172125310 +0200
-@@ -8,15 +8,15 @@
- #include <string.h>
- #include <time.h>
- 
--#include "afp.h"
--#include "dsi.h"
--#include "utils.h"
--#include "uams_def.h"
--#include "codepage.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/uams_def.h"
-+#include "afpfs-ng/codepage.h"
- #include "users.h"
--#include "libafpclient.h"
-+#include "afpfs-ng/libafpclient.h"
- #include "afp_internal.h"
--#include "dsi.h"
-+#include "afpfs-ng/dsi.h"
- 
- 
- struct afp_server * afp_server_complete_connection(
-diff -Naur afpfs-ng-0.8.1/lib/status.c afpfs-ng-0.8.1.patch/lib/status.c
---- afpfs-ng-0.8.1/lib/status.c	2008-03-08 17:08:38.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/status.c	2011-09-10 12:13:50.172125310 +0200
-@@ -1,8 +1,8 @@
- #include <string.h>
- #include <stdio.h>
--#include "map_def.h"
--#include "dsi.h"
--#include "afp.h"
-+#include "afpfs-ng/map_def.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
- 
- int afp_status_header(char * text, int * len) 
- {
-diff -Naur afpfs-ng-0.8.1/lib/uams.c afpfs-ng-0.8.1.patch/lib/uams.c
---- afpfs-ng-0.8.1/lib/uams.c	2008-01-04 04:52:44.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/uams.c	2011-09-10 12:13:50.173125324 +0200
-@@ -8,10 +8,10 @@
- 
- #include <string.h>
- #include <stdlib.h>
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
--#include "uams_def.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/uams_def.h"
- #include "config.h"
- 
- #ifdef HAVE_LIBGCRYPT
-diff -Naur afpfs-ng-0.8.1/lib/users.c afpfs-ng-0.8.1.patch/lib/users.c
---- afpfs-ng-0.8.1/lib/users.c	2008-02-18 04:48:56.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/users.c	2011-09-10 12:13:50.174125338 +0200
-@@ -3,8 +3,8 @@
- #include <grp.h>
- #include <string.h>
- 
--#include "afp.h"
--#include "map_def.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/map_def.h"
- 
- /* How mapping works
-  *
-diff -Naur afpfs-ng-0.8.1/lib/utils.c afpfs-ng-0.8.1.patch/lib/utils.c
---- afpfs-ng-0.8.1/lib/utils.c	2008-02-18 04:53:37.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/utils.c	2011-09-10 12:13:50.174125338 +0200
-@@ -8,10 +8,10 @@
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "afp_internal.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/afp_protocol.h"
- 
- struct afp_path_header_long {
- 	unsigned char type;
-diff -Naur afpfs-ng-0.8.1/Makefile.am afpfs-ng-0.8.1.patch/Makefile.am
---- afpfs-ng-0.8.1/Makefile.am	2008-02-18 04:24:14.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/Makefile.am	2011-09-10 12:13:50.176125365 +0200
-@@ -1,5 +1,5 @@
- if HAVE_LIBFUSE
--SUBDIRS = lib fuse cmdline docs
-+SUBDIRS = lib fuse cmdline include docs
- else
--SUBDIRS = lib cmdline docs
-+SUBDIRS = lib cmdline include docs
- endif
diff --git a/abs/extra/community/fluidsynth/PKGBUILD b/abs/extra/community/fluidsynth/PKGBUILD
deleted file mode 100644
index 944222e..0000000
--- a/abs/extra/community/fluidsynth/PKGBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# $Id: PKGBUILD 94804 2010-10-11 11:48:58Z schiv $
-# Maintainer: Ray Rashif <schiv@archlinux.org>
-# Contributor: damir <damir@archlinux.org>
-
-pkgname=fluidsynth
-pkgver=1.1.3
-pkgrel=1
-pkgdesc="A real-time software synthesizer based on the SoundFont 2 specifications"
-arch=(i686 x86_64)
-url="http://www.fluidsynth.org/"
-depends=('glib2' 'jack' 'dbus-core')
-makedepends=('cmake' 'ladspa' 'doxygen')
-optdepends=('bash: init script')
-license=('LGPL')
-backup=('etc/conf.d/fluidsynth')
-source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
-        fluidsynth.conf
-        fluidsynthd)
-md5sums=('0d3e3cc770b4da413010dfb7dfdce9c8'
-         '16c5f4d4cbdddc6c5fcbd4fd4cc142f1'
-         'b296dbfb524c2164f552f68bd9abe2ec')
-
-build() {
-  cd "$srcdir/$pkgname-$pkgver"
-
-  cmake . -DCMAKE_INSTALL_PREFIX=/usr \
-          -DCMAKE_BUILD_TYPE=Release \
-          -Denable-ladspa=ON \
-          -DLIB_SUFFIX=""
-  make
-}
-
-package() {
-  cd "$srcdir/$pkgname-$pkgver"
-
-  make DESTDIR="$pkgdir/" install
-
-  install -Dm644 "$srcdir/fluidsynth.conf" \
-    "$pkgdir/etc/conf.d/fluidsynth"
-
-  install -Dm755 "$srcdir/fluidsynthd" \
-    "$pkgdir/etc/rc.d/fluidsynth"
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/abs/extra/community/fluidsynth/fluidsynth.conf b/abs/extra/community/fluidsynth/fluidsynth.conf
deleted file mode 100644
index 5267d58..0000000
--- a/abs/extra/community/fluidsynth/fluidsynth.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-FSYNTH_OPTS="-a alsa -m alsa_seq -r 48000"
-FSYNTH_SOUNDFONT=""
\ No newline at end of file
diff --git a/abs/extra/community/fluidsynth/fluidsynthd b/abs/extra/community/fluidsynth/fluidsynthd
deleted file mode 100644
index ca1e8fa..0000000
--- a/abs/extra/community/fluidsynth/fluidsynthd
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-[ -f /etc/conf.d/fluidsynth ] && . /etc/conf.d/fluidsynth
-
-PID=`pidof -o %PPID /usr/bin/fluidsynth`
-case "$1" in
-   start)
-     stat_busy "Starting Fluidsynth soundfont synthesizer"
-     [ -z "$PID" ] && /usr/bin/fluidsynth -is $FSYNTH_OPTS $FSYNTH_SOUNDFONT > /dev/null 2>&1 &
-     if [ $? -gt 0 ]; then
-       stat_fail
-     else
-       echo $PID > /var/run/fluidsynth.pid
-       add_daemon fluidsynth
-       stat_done
-     fi
-     ;;
-   stop)
-     stat_busy "Stopping Fluidsynth soundfont synthesizer"
-     [ ! -z "$PID" ]  && kill $PID &> /dev/null 2>&1
-     if [ $? -gt 0 ]; then
-       stat_fail
-     else
-       rm /var/run/fluidsynth.pid
-       rm_daemon fluidsynth
-       stat_done
-     fi
-     ;;
-   restart)
-     $0 stop
-     sleep 1
-     $0 start
-     ;;
-   *)
-     echo "usage: $0 {start|stop|restart}"
-esac
-exit 0
diff --git a/abs/extra/community/libmodplug/PKGBUILD b/abs/extra/community/libmodplug/PKGBUILD
deleted file mode 100644
index 3065783..0000000
--- a/abs/extra/community/libmodplug/PKGBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# $Id$
-# Maintainer:
-# Contributor: Jan de Groot <jgc@archlinux.org>
-# Contributor: Patrick Leslie Polzer <leslie.polzer@gmx.net>
-
-pkgname=libmodplug
-pkgver=0.8.8.3
-pkgrel=1
-pkgdesc="A MOD playing library"
-arch=('i686' 'x86_64')
-url="http://modplug-xmms.sourceforge.net/"
-license=('custom')
-depends=('gcc-libs')
-options=('!libtool')
-source=("http://downloads.sourceforge.net/modplug-xmms/${pkgname}-${pkgver}.tar.gz")
-md5sums=('8a9c713f0f56894163ddc61f9a0d1f71')
-
-build() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  ./configure --prefix=/usr
-  make
-}
-
-package() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  make DESTDIR="${pkgdir}" install
-  install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
-}
diff --git a/abs/extra/community/libnfs/PKGBUILD b/abs/extra/community/libnfs/PKGBUILD
deleted file mode 100644
index 687a416..0000000
--- a/abs/extra/community/libnfs/PKGBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# $Id$
-# Maintainer: BlackIkeEagle <ike DOT devolder AT gmail DOT com>
-
-pkgname=libnfs
-pkgver=1.3.0
-pkgrel=1
-pkgdesc="client library for accessing NFS shares"
-arch=('i686' 'x86_64')
-url="https://github.com/sahlberg/libnfs"
-license=('GPL')
-depends=('glibc')
-source=("$pkgname-$pkgver.tar.gz::https://github.com/sahlberg/libnfs/tarball/$pkgname-$pkgver")
-_srcfolder=sahlberg-libnfs-47e5a2c
-sha256sums=('0acda3029db699c3978684080843f71d222ad35b30a2ff0d220d144e98854948')
-options=(!libtool)
-
-build() {
-  mv "$_srcfolder" "$pkgname-$pkgver"
-
-  cd "$pkgname-$pkgver"
-
-  autoreconf -vif
-  ./configure --prefix=/usr
-  make
-}
-
-package() {
-  cd "$pkgname-$pkgver"
-  make DESTDIR="$pkgdir" install
-}
diff --git a/abs/extra/community/libshairport/PKGBUILD b/abs/extra/community/libshairport/PKGBUILD
deleted file mode 100644
index 293e1cc..0000000
--- a/abs/extra/community/libshairport/PKGBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id$
-# Maintainer: BlackIkeEagle <ike DOT devolder AT gmail DOT com>
-
-pkgname=libshairport
-_developer='amejia1'
-_version=1.2.1
-_commithash='aeb4987'
-pkgver=${_version}
-pkgrel=2
-pkgdesc="emulates an AirPort Express"
-arch=('i686' 'x86_64')
-url='https://github.com/amejia1/libshairport'
-license=('GPL')
-depends=('openssl' 'libao')
-source=("$pkgname-$pkgver.tar.gz::https://github.com/amejia1/libshairport/tarball/$_commithash")
-sha256sums=('003c65f56123a7cb090b2d7249f0facbef668f7db6048f4b458713892a6911ca')
-options=(!libtool)
-
-_srcfolder=$_developer-$pkgname-$_commithash
-
-build() {
-  mv "$_srcfolder" "$pkgname-$pkgver"
-
-  cd "$pkgname-$pkgver"
-  autoreconf -vif
-  ./configure --prefix=/usr
-  make
-}
-
-package() {
-  cd "$pkgname-$pkgver"
-  make DESTDIR="$pkgdir" install
-}
diff --git a/abs/extra/dbus-c++/PKGBUILD b/abs/extra/dbus-c++/PKGBUILD
new file mode 100644
index 0000000..d79922e
--- /dev/null
+++ b/abs/extra/dbus-c++/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Xavier D. <magicrhesus@ouranos.be>
+# Contributor: Zarra <zarraxx@gmail.com>
+
+pkgname=dbus-c++
+_pkgname=lib$pkgname
+pkgver=0.9.0
+pkgrel=4
+pkgdesc="A C++ API for D-BUS"
+url="http://sourceforge.net/projects/dbus-cplusplus/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('dbus>=1.2.0' 'glib2')
+makedepends=('autoconf' 'automake' 'libtool')
+options=('!libtool')
+source=("http://sourceforge.net/projects/dbus-cplusplus/files/dbus-c%2B%2B/$pkgver/libdbus-c%2B%2B-$pkgver.tar.gz"
+	      'gcc47.patch')
+md5sums=('e752116f523fa88ef041e63d3dee4de2'
+         '9319b402b15f37d881b51bc758368900')
+
+build() {
+    cd "$srcdir/$_pkgname-$pkgver"
+
+    patch -Np0 -i "$srcdir/gcc47.patch"
+    export LDFLAGS+=" -lexpat -lpthread" # -lpthread needed for i686
+
+    ./autogen.sh --prefix=/usr \
+                 --disable-static \
+                 --enable-glib \
+                 --disable-ecore
+    make
+}
+
+package() {
+  cd "$srcdir/$_pkgname-$pkgver"
+
+  make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/extra/dbus-c++/gcc47.patch b/abs/extra/dbus-c++/gcc47.patch
new file mode 100644
index 0000000..6a82773
--- /dev/null
+++ b/abs/extra/dbus-c++/gcc47.patch
@@ -0,0 +1,10 @@
+--- src/eventloop-integration.cpp.orig	2012-05-09 11:22:09.683290763 +0200
++++ src/eventloop-integration.cpp	2012-05-09 11:22:44.313288912 +0200
+@@ -38,6 +38,7 @@
+ #include <cassert>
+ #include <sys/poll.h>
+ #include <fcntl.h>
++#include <unistd.h>
+ 
+ using namespace DBus;
+ using namespace std;
diff --git a/abs/extra/doxygen/PKGBUILD b/abs/extra/doxygen/PKGBUILD
index 19ca9c8..d877cd2 100644
--- a/abs/extra/doxygen/PKGBUILD
+++ b/abs/extra/doxygen/PKGBUILD
@@ -1,7 +1,7 @@
 # $Id: PKGBUILD 84267 2010-06-28 05:13:23Z dan $
 # Maintainer: Dan McGee <dan@archlinux.org>
 pkgname=doxygen
-pkgver=1.7.2
+pkgver=1.8.2
 pkgrel=1
 pkgdesc="A documentation system for C++, C, Java, IDL and PHP"
 license=('GPL')
@@ -21,6 +21,5 @@ build() {
   make INSTALL=${startdir}/pkg/usr MAN1DIR=share/man/man1 install
 }
 
-md5sums=('13e76e10fb55581a16ee04de35c264f0')
 
-md5sums=('d5f3e32474186abc64288db6b8ffd7f0')
+md5sums=('6fa7baf995fa3f71cfc09e264ba88a83')
diff --git a/abs/extra/fluidsynth/PKGBUILD b/abs/extra/fluidsynth/PKGBUILD
new file mode 100644
index 0000000..bef6083
--- /dev/null
+++ b/abs/extra/fluidsynth/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 166870 2012-09-20 10:08:01Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=fluidsynth
+pkgver=1.1.6
+pkgrel=1
+pkgdesc="A real-time software synthesizer based on the SoundFont 2 specifications"
+arch=('i686' 'x86_64')
+url="http://www.fluidsynth.org/"
+#depends=('glib2' 'jack' 'dbus-core' 'libpulse')
+depends=('glib2'  'dbus-core' )
+makedepends=('cmake' 'ladspa' 'doxygen')
+#optdepends=('pulseaudio: PulseAudio sound support')
+license=('LGPL')
+backup=('etc/conf.d/fluidsynth')
+install=$pkgname.install
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+        'fluidsynth.conf'
+        'fluidsynth.rc'
+        'fluidsynth.systemd')
+md5sums=('ae5aca6de824b4173667cbd3a310b263'
+         '7d0ab0d75d4e87652f4cb7ffeac8a82b'
+         'b296dbfb524c2164f552f68bd9abe2ec'
+         'e0406748a154409907df62292be32e8a')
+
+build() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  cmake . -DCMAKE_INSTALL_PREFIX=/usr \
+          -DCMAKE_BUILD_TYPE=Release \
+          -Denable-ladspa=ON \
+          -DLIB_SUFFIX=""
+  make
+}
+
+package() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  make DESTDIR="$pkgdir/" install
+
+  install -Dm644 "$srcdir/fluidsynth.conf" \
+    "$pkgdir/etc/conf.d/fluidsynth"
+
+  install -Dm755 "$srcdir/fluidsynth.rc" \
+    "$pkgdir/etc/rc.d/fluidsynth"
+
+  install -Dm644 "$srcdir/fluidsynth.systemd" \
+    "$pkgdir/usr/lib/systemd/system/fluidsynth.service"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/extra/fluidsynth/__changelog b/abs/extra/fluidsynth/__changelog
new file mode 100644
index 0000000..144c13b
--- /dev/null
+++ b/abs/extra/fluidsynth/__changelog
@@ -0,0 +1 @@
+removed pulse jack
diff --git a/abs/extra/fluidsynth/fluidsynth.conf b/abs/extra/fluidsynth/fluidsynth.conf
new file mode 100644
index 0000000..b8465fa
--- /dev/null
+++ b/abs/extra/fluidsynth/fluidsynth.conf
@@ -0,0 +1,2 @@
+FSYNTH_OPTS="-a alsa -m alsa_seq -r 48000"
+FSYNTH_SOUNDFONT="" # path to your soundfont
diff --git a/abs/extra/fluidsynth/fluidsynth.install b/abs/extra/fluidsynth/fluidsynth.install
new file mode 100644
index 0000000..86e05f8
--- /dev/null
+++ b/abs/extra/fluidsynth/fluidsynth.install
@@ -0,0 +1,19 @@
+post_install() {
+	echo
+	echo "  > To use FluidSynth as a daemon edit /etc/conf.d/fluidsynth"
+	echo
+	echo "  > Systemd users need to copy the service file from:"
+	echo "      /usr/lib/systemd/system/fluidsynth.service"
+	echo "  > to:"
+	echo "      /etc/systemd/system/multi-user.target.wants/"
+	echo "  > and then edit accordingly."
+	echo
+	echo "  > PulseAudio output when running as a daemon"
+	echo "  > is known to be problematic. See:"
+	echo "      https://bbs.archlinux.org/viewtopic.php?id=135092"
+	echo
+}
+
+post_upgrade() {
+	post_install
+}
diff --git a/abs/extra/fluidsynth/fluidsynth.rc b/abs/extra/fluidsynth/fluidsynth.rc
new file mode 100644
index 0000000..ca1e8fa
--- /dev/null
+++ b/abs/extra/fluidsynth/fluidsynth.rc
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[ -f /etc/conf.d/fluidsynth ] && . /etc/conf.d/fluidsynth
+
+PID=`pidof -o %PPID /usr/bin/fluidsynth`
+case "$1" in
+   start)
+     stat_busy "Starting Fluidsynth soundfont synthesizer"
+     [ -z "$PID" ] && /usr/bin/fluidsynth -is $FSYNTH_OPTS $FSYNTH_SOUNDFONT > /dev/null 2>&1 &
+     if [ $? -gt 0 ]; then
+       stat_fail
+     else
+       echo $PID > /var/run/fluidsynth.pid
+       add_daemon fluidsynth
+       stat_done
+     fi
+     ;;
+   stop)
+     stat_busy "Stopping Fluidsynth soundfont synthesizer"
+     [ ! -z "$PID" ]  && kill $PID &> /dev/null 2>&1
+     if [ $? -gt 0 ]; then
+       stat_fail
+     else
+       rm /var/run/fluidsynth.pid
+       rm_daemon fluidsynth
+       stat_done
+     fi
+     ;;
+   restart)
+     $0 stop
+     sleep 1
+     $0 start
+     ;;
+   *)
+     echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/extra/fluidsynth/fluidsynth.systemd b/abs/extra/fluidsynth/fluidsynth.systemd
new file mode 100644
index 0000000..06784fe
--- /dev/null
+++ b/abs/extra/fluidsynth/fluidsynth.systemd
@@ -0,0 +1,9 @@
+[Unit]
+Description=FluidSynth Daemon
+After=sound.target
+
+[Service]
+ExecStart=/usr/bin/fluidsynth -is -a alsa -m alsa_seq -r 48000 # append soundfont path here
+
+[Install]
+WantedBy=multi-user.target
diff --git a/abs/extra/libconfig/PKGBUILD b/abs/extra/libconfig/PKGBUILD
new file mode 100644
index 0000000..fe7ac1e
--- /dev/null
+++ b/abs/extra/libconfig/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 55397 2011-09-11 21:15:58Z spupykin $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: see .contrib
+
+pkgname=libconfig
+pkgver=1.4.8
+pkgrel=1
+pkgdesc="C/C++ Configuration File Library"
+arch=('i686' 'x86_64')
+url="http://hyperrealm.com/libconfig/libconfig.html"
+license=('LGPL')
+depends=('gcc-libs' 'texinfo')
+install=$pkgname.install
+options=('!libtool' '!emptydirs' 'zipman')
+source=("http://www.hyperrealm.com/libconfig/$pkgname-$pkgver.tar.gz")
+md5sums=('36788da452e9fcfc8efb7661ef5d31ef')
+
+build() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  ./configure --prefix=/usr
+  make
+}
+
+package() {
+	cd "$srcdir/$pkgname-$pkgver"
+
+  make DESTDIR="$pkgdir" install
+  rm "$pkgdir/usr/share/info/dir"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/extra/libconfig/libconfig.install b/abs/extra/libconfig/libconfig.install
new file mode 100644
index 0000000..c03d5f7
--- /dev/null
+++ b/abs/extra/libconfig/libconfig.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(libconfig.info.gz)
+
+post_install() {
+  for file in ${filelist[@]}; do
+    install-info $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  for file in ${filelist[@]}; do
+    install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
diff --git a/abs/extra/libffado/60-ffado.rules b/abs/extra/libffado/60-ffado.rules
deleted file mode 100644
index 6ab8ef8..0000000
--- a/abs/extra/libffado/60-ffado.rules
+++ /dev/null
@@ -1,27 +0,0 @@
-SUBSYSTEM!="firewire", GOTO="ffado_end"
-
-ATTR{vendor}=="0x000166", GROUP="audio", ENV{ID_FFADO}="1" # TC GROUP A/S
-ATTR{vendor}=="0x0001f2", GROUP="audio", ENV{ID_FFADO}="1" # Mark of the Unicorn, Inc.
-ATTR{vendor}=="0x0003db", GROUP="audio", ENV{ID_FFADO}="1" # Apogee Electronics Corp.
-ATTR{vendor}=="0x000595", GROUP="audio", ENV{ID_FFADO}="1" # Alesis Corporation
-ATTR{vendor}=="0x0007f5", GROUP="audio", ENV{ID_FFADO}="1" # Bridgeco Co AG
-ATTR{vendor}=="0x000a92", GROUP="audio", ENV{ID_FFADO}="1" # Presonus Corporation
-ATTR{vendor}=="0x000aac", GROUP="audio", ENV{ID_FFADO}="1" # TerraTec Electronic GmbH
-ATTR{vendor}=="0x000d6c", GROUP="audio", ENV{ID_FFADO}="1" # M-Audio
-ATTR{vendor}=="0x000f1b", GROUP="audio", ENV{ID_FFADO}="1" # Ego Systems Inc.
-ATTR{vendor}=="0x000ff2", GROUP="audio", ENV{ID_FFADO}="1" # Loud Technologies Inc.
-ATTR{vendor}=="0x001260", GROUP="audio", ENV{ID_FFADO}="1" # Stanton Magnetics,inc.
-ATTR{vendor}=="0x00130e", GROUP="audio", ENV{ID_FFADO}="1" # Focusrite Audio Engineering Limited
-ATTR{vendor}=="0x001486", GROUP="audio", ENV{ID_FFADO}="1" # Echo Digital Audio Corporation
-ATTR{vendor}=="0x001564", GROUP="audio", ENV{ID_FFADO}="1" # BEHRINGER Spezielle Studiotechnik GmbH
-ATTR{vendor}=="0x001c2d", GROUP="audio", ENV{ID_FFADO}="1" # FlexRadio Systems
-ATTR{vendor}=="0x001c6a", GROUP="audio", ENV{ID_FFADO}="1" # Weiss Engineering Ltd.
-ATTR{vendor}=="0x0040ab", GROUP="audio", ENV{ID_FFADO}="1" # ROLAND DG CORPORATION
-
-# The devices below abuse another Vendor's ID, and therefore we need more advanced rules for those.
-
-ATTR{vendor}=="0x00000a", ATTR{model}=="0x030000", ATTR{units}=="*0x00a02d:0x010001*", GROUP="audio", ENV{ID_FFADO}="1" # CME, Matrix K FW
-ATTR{vendor}=="0x00000f", ATTR{model}=="0x01006?", ATTR{units}=="*0x00a02d:0x010001*", GROUP="audio", ENV{ID_FFADO}="1" # Mackie, Onyx Firewire
-ATTR{vendor}=="0x000a35", ATTR{units}=="0x000a35:0x00000[12]", GROUP="audio", ENV{ID_FFADO}="1" # RME
-
-LABEL="ffado_end"
diff --git a/abs/extra/libffado/PKGBUILD b/abs/extra/libffado/PKGBUILD
index 772ebec..d1a0915 100644
--- a/abs/extra/libffado/PKGBUILD
+++ b/abs/extra/libffado/PKGBUILD
@@ -1,49 +1,46 @@
-# $Id: PKGBUILD 157813 2012-04-30 03:19:10Z heftig $
+# $Id: PKGBUILD 168113 2012-10-06 05:43:33Z schiv $
 # Maintainer: Ray Rashif <schiv@archlinux.org>
 # Contributor: galiyosha@gmail.com
 # Contributor: Jon Kristian Nilsen <jokr.nilsen@gmail.com>
 
 pkgname=libffado
-pkgver=2.0.1
-pkgrel=7
+pkgver=2.1.0
+pkgrel=3
 pkgdesc="Driver for FireWire audio devices"
 arch=('i686' 'x86_64')
 url="http://www.ffado.org/"
 license=('GPL')
-depends=('libiec61883' 'libavc1394' 'libsigc++'
-         'libxml++' 'alsa-lib' 'dbus')
-makedepends=('scons' 'python2-pyqt')
+depends=('libiec61883' 'libavc1394' 'dbus-c++'
+         'libxml++' 'alsa-lib' 'libsigc++' 'libconfig')
+makedepends=('scons' 'subversion' 'python2-pyqt')
 optdepends=('python2: ffado-diag'
             'python2-pyqt: mixer applet')
 provides=('ffado')
-source=("http://www.ffado.org/files/$pkgname-$pkgver.tar.gz"
-        "libffado-gcc47.patch" "fix-segfault-on-close.patch" '60-ffado.rules')
-md5sums=('786f31facd417e6207e429f50af0e15e'
-         '287bb3f506e31626c4b8f91f0e1d9407'
-         'ac9763cb2dc2f3eb4e1894e30645c6f1'
-         'f03a3e950801c4405b8934084651bca8')
+source=("http://www.ffado.org/files/$pkgname-$pkgver.tgz"
+        'python2-qt.patch')
+md5sums=('26bce2be0b9c1fa4e614f2f494edf388'
+         '10aa837f5521da213caa93e1ddc58c0e')
+
+_scons-conf() {
+  scons DEBUG=False \
+        PREFIX=/usr \
+        MANDIR=/usr/share/man \
+        UDEVDIR=/usr/lib/udev/rules.d \
+        COMPILE_FLAGS="$CFLAGS" $@
+}
 
 build() {
   cd "$srcdir/$pkgname-$pkgver"
 
-  patch -p1 -i "$srcdir"/libffado-gcc47.patch
-  patch -p3 -i "$srcdir"/fix-segfault-on-close.patch
-
-  # hack to use CFLAGS without optimising
-  sed -i 's/-O2//g' SConstruct
+  # python2 fix
+  patch -Np1 -i "$srcdir/python2-qt.patch"
 
-  if [ "$CARCH" = "x86_64" ]; then
-    sed -i "s/-m64/-m64 $CFLAGS/g" SConstruct
+  # build!
+  if [ "$CARCH" = 'x86_64' ]; then
+    _scons-conf ENABLE_OPTIMIZATIONS=True
   else
-    sed -i "s/-m32/-m32 $CFLAGS/g" SConstruct
+    _scons-conf
   fi
-
-  # python2 fix
-  sed -i 's:python $SOURCE:python2 $SOURCE:' SConstruct
-  sed -i 's:python support/tools:python2 support/tools:' \
-    support/tools/SConscript
-
-  scons PREFIX=/usr
 }
 
 package() {
@@ -51,16 +48,6 @@ package() {
 
   scons DESTDIR="$pkgdir" WILL_DEAL_WITH_XDG_MYSELF="True" install
 
-  # add audio device rules
-  # see https://bugs.archlinux.org/task/26342
-  install -Dm644 "$srcdir/60-ffado.rules" \
-    "$pkgdir/usr/lib/udev/rules.d/60-ffado.rules"
-
-  # python2 fix
-  for i in $(grep '^#!.*bin.*python' -R "$pkgdir" | sed 's/:.*//'); do
-    sed -i 's:^#!.*bin.*python:#!/usr/bin/python2:' "$i"
-  done
-
   # desktop files & icons
   install -Dm644 support/xdg/ffado.org-ffadomixer.desktop \
     "$pkgdir/usr/share/applications/ffadomixer.desktop"
diff --git a/abs/extra/libffado/fix-segfault-on-close.patch b/abs/extra/libffado/fix-segfault-on-close.patch
deleted file mode 100644
index c81b97e..0000000
--- a/abs/extra/libffado/fix-segfault-on-close.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-Index: /trunk/libffado/src/debugmodule/debugmodule.h
-===================================================================
---- /trunk/libffado/src/debugmodule/debugmodule.h (revision 1763)
-+++ /trunk/libffado/src/debugmodule/debugmodule.h (revision 1999)
-@@ -283,6 +283,10 @@
- void hexDumpQuadlets( quadlet_t *data_start, unsigned int length );
- 
-+class DebugModuleManager;
-+
- class DebugModule {
- public:
-+    friend class DebugModuleManager;
-+
-     enum {
-         eDL_Message      = DEBUG_LEVEL_MESSAGE,
-@@ -333,4 +337,5 @@
-     std::string   m_name;
-     debug_level_t m_level;
-+    DebugModuleManager* m_manager;
- };
- 
-Index: /trunk/libffado/src/debugmodule/debugmodule.cpp
-===================================================================
---- /trunk/libffado/src/debugmodule/debugmodule.cpp (revision 1763)
-+++ /trunk/libffado/src/debugmodule/debugmodule.cpp (revision 1999)
-@@ -84,5 +84,6 @@
- //              << endl;
- //     }
--    if ( !DebugModuleManager::instance()->unregisterModule( *this ) ) {
-+
-+    if (m_manager && !m_manager->unregisterModule( *this ) ) {
-         cerr << "Could not unregister DebugModule at DebugModuleManager"
-              << endl;
-@@ -263,12 +264,9 @@
- DebugModuleManager::~DebugModuleManager()
- {
--    // cleanin up leftover modules
--    for ( DebugModuleVectorIterator it = m_debugModules.begin();
--          it != m_debugModules.end();
--          ++it )
-+    // cleaning up leftover modules
-+    while (!m_debugModules.empty())
-     {
--        fprintf(stderr,"Cleaning up leftover debug module: %s\n",(*it)->getName().c_str());
--        m_debugModules.erase( it );
--        delete *it;
-+        DebugModule *mod = m_debugModules.back();
-+        unregisterModule(*mod);
-     }
- 
-@@ -455,4 +453,6 @@
-     } else {
-         m_debugModules.push_back( &debugModule );
-+        if (debugModule.m_manager == NULL)
-+                debugModule.m_manager = this;
-     }
-     return true;
-@@ -469,4 +469,6 @@
-         if ( *it == &debugModule ) {
-             m_debugModules.erase( it );
-+            if (debugModule.m_manager == this)
-+                debugModule.m_manager = NULL;
-             return true;
-         }
diff --git a/abs/extra/libffado/libffado-gcc47.patch b/abs/extra/libffado/libffado-gcc47.patch
deleted file mode 100644
index f296956..0000000
--- a/abs/extra/libffado/libffado-gcc47.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-diff -Naur libffado-2.0.1-old/src/bebob/bebob_dl_mgr.cpp libffado-2.0.1/src/bebob/bebob_dl_mgr.cpp
---- libffado-2.0.1-old/src/bebob/bebob_dl_mgr.cpp	2009-05-17 23:42:38.000000000 +1000
-+++ libffado-2.0.1/src/bebob/bebob_dl_mgr.cpp	2012-04-29 15:26:29.011454798 +1000
-@@ -35,6 +35,7 @@
- 
- #include <cstdio>
- #include <cstring>
-+#include <unistd.h>
- 
- namespace BeBoB {
-     enum {
-diff -Naur libffado-2.0.1-old/src/ffadodevice.cpp libffado-2.0.1/src/ffadodevice.cpp
---- libffado-2.0.1-old/src/ffadodevice.cpp	2008-11-23 21:25:32.000000000 +1000
-+++ libffado-2.0.1/src/ffadodevice.cpp	2012-04-29 15:26:54.883998052 +1000
-@@ -34,6 +34,7 @@
- 
- #include <iostream>
- #include <sstream>
-+#include <unistd.h>
- 
- #include <assert.h>
- 
-diff -Naur libffado-2.0.1-old/src/fireworks/fireworks_device.cpp libffado-2.0.1/src/fireworks/fireworks_device.cpp
---- libffado-2.0.1-old/src/fireworks/fireworks_device.cpp	2009-11-23 00:40:08.000000000 +1000
-+++ libffado-2.0.1/src/fireworks/fireworks_device.cpp	2012-04-29 15:27:24.123105334 +1000
-@@ -44,6 +44,7 @@
- #define FIREWORKS_MIN_FIRMWARE_VERSION 0x04080000
- 
- #include <sstream>
-+#include <unistd.h>
- using namespace std;
- 
- // FireWorks is the platform used and developed by ECHO AUDIO
-diff -Naur libffado-2.0.1-old/src/libieee1394/IsoHandlerManager.cpp libffado-2.0.1/src/libieee1394/IsoHandlerManager.cpp
---- libffado-2.0.1-old/src/libieee1394/IsoHandlerManager.cpp	2010-04-18 05:15:54.000000000 +1000
-+++ libffado-2.0.1/src/libieee1394/IsoHandlerManager.cpp	2012-04-29 15:27:44.515816147 +1000
-@@ -34,6 +34,7 @@
- #include "libutil/Configuration.h"
- 
- #include <cstring>
-+#include <unistd.h>
- #include <assert.h>
- 
- IMPL_DEBUG_MODULE( IsoHandlerManager, IsoHandlerManager, DEBUG_LEVEL_NORMAL );
-diff -Naur libffado-2.0.1-old/support/dbus/test-dbus.cpp libffado-2.0.1/support/dbus/test-dbus.cpp
---- libffado-2.0.1-old/support/dbus/test-dbus.cpp	2008-04-27 03:30:41.000000000 +1000
-+++ libffado-2.0.1/support/dbus/test-dbus.cpp	2012-04-29 15:28:31.531047923 +1000
-@@ -24,6 +24,7 @@
- #include <argp.h>
- #include <stdlib.h>
- #include <iostream>
-+#include <unistd.h>
- #include <signal.h>
- 
- #include "controlclient.h"
diff --git a/abs/extra/libffado/python2-qt.patch b/abs/extra/libffado/python2-qt.patch
new file mode 100644
index 0000000..042aa26
--- /dev/null
+++ b/abs/extra/libffado/python2-qt.patch
@@ -0,0 +1,246 @@
+diff -baur libffado-2.1.0.orig/SConstruct libffado-2.1.0/SConstruct
+--- libffado-2.1.0.orig/SConstruct	2012-09-19 14:18:53.827448582 +0800
++++ libffado-2.1.0/SConstruct	2012-09-19 14:20:01.670414379 +0800
+@@ -1,4 +1,4 @@
+-#! /usr/bin/python
++#!/usr/bin/python2
+ # -*- coding: utf-8 -*-
+ #
+ # Copyright (C) 2007, 2008, 2010 Arnold Krille
+@@ -134,7 +134,7 @@
+ 
+ def CheckForPyModule( context, module ):
+     context.Message( "Checking for the python module '" + module + "' " )
+-    ret = context.TryAction( "python $SOURCE", "import %s" % module, ".py" )
++    ret = context.TryAction( "python2 $SOURCE", "import %s" % module, ".py" )
+     context.Result( ret[0] )
+     return ret[0]
+ 
+@@ -351,7 +351,7 @@
+ 
+ # PyQT checks
+ build_mixer = False
+-if conf.CheckForApp( 'which pyuic4' ) and conf.CheckForPyModule( 'dbus' ) and conf.CheckForPyModule( 'PyQt4' ) and conf.CheckForPyModule( 'dbus.mainloop.qt' ):
++if conf.CheckForApp( 'which python2-pyuic4' ) and conf.CheckForPyModule( 'dbus' ) and conf.CheckForPyModule( 'PyQt4' ) and conf.CheckForPyModule( 'dbus.mainloop.qt' ):
+     env['PYUIC4'] = True
+     build_mixer = True
+ 
+diff -baur libffado-2.1.0.orig/admin/dbus.py libffado-2.1.0/admin/dbus.py
+--- libffado-2.1.0.orig/admin/dbus.py	2012-09-19 14:18:53.857448419 +0800
++++ libffado-2.1.0/admin/dbus.py	2012-09-19 14:19:02.957399122 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ # Copyright (C) 2007-2008 Arnold Krille
+ # Copyright (C) 2007-2008 Pieter Palmers
+diff -baur libffado-2.1.0.orig/admin/doxygen.py libffado-2.1.0/admin/doxygen.py
+--- libffado-2.1.0.orig/admin/doxygen.py	2012-09-19 14:18:53.857448419 +0800
++++ libffado-2.1.0/admin/doxygen.py	2012-09-19 14:19:02.957399122 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ # Copyright (C) 2007-2008 Arnold Krille
+ #
+diff -baur libffado-2.1.0.orig/admin/pkgconfig.py libffado-2.1.0/admin/pkgconfig.py
+--- libffado-2.1.0.orig/admin/pkgconfig.py	2012-09-19 14:18:53.857448419 +0800
++++ libffado-2.1.0/admin/pkgconfig.py	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ # Copyright (C) 2007-2008 Arnold Krille
+ #
+diff -baur libffado-2.1.0.orig/admin/pyuic.py libffado-2.1.0/admin/pyuic.py
+--- libffado-2.1.0.orig/admin/pyuic.py	2012-09-19 14:18:53.857448419 +0800
++++ libffado-2.1.0/admin/pyuic.py	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ # Copyright (C) 2007-2008 Arnold Krille
+ #
+diff -baur libffado-2.1.0.orig/admin/pyuic4.py libffado-2.1.0/admin/pyuic4.py
+--- libffado-2.1.0.orig/admin/pyuic4.py	2012-09-19 14:18:53.857448419 +0800
++++ libffado-2.1.0/admin/pyuic4.py	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ # Copyright (C) 2007-2008 Arnold Krille
+ #
+@@ -21,10 +21,8 @@
+ # along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ #
+ 
+-import imp
+-
+ def pyuic4_action( target, source, env ):
+-	env.Execute( "pyuic4 " + str( source[0] ) + " > " + str( target[0] ) )
++	env.Execute( "python2-pyuic4 " + str( source[0] ) + " > " + str( target[0] ) )
+ 	return 0
+ 
+ def pyuic4_string( target, source, env ):
+@@ -34,7 +32,7 @@
+ 	context.Message( "Checking for pyuic4 (by checking for the python module pyqtconfig) " )
+ 	ret = True
+ 	try:
+-		imp.find_module( "pyqtconfig" )
++		import PyQt4.pyqtconfig
+ 	except ImportError:
+ 		ret = False
+ 	context.Result( ret )
+diff -baur libffado-2.1.0.orig/admin/scanreplace.py libffado-2.1.0/admin/scanreplace.py
+--- libffado-2.1.0.orig/admin/scanreplace.py	2012-09-19 14:18:53.857448419 +0800
++++ libffado-2.1.0/admin/scanreplace.py	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ # Copyright (C) 2007-2008 Arnold Krille
+ #
+diff -baur libffado-2.1.0.orig/doc/SConscript libffado-2.1.0/doc/SConscript
+--- libffado-2.1.0.orig/doc/SConscript	2012-09-19 14:18:53.857448419 +0800
++++ libffado-2.1.0/doc/SConscript	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#!/usr/bin/python2
+ 
+ Import( 'env' )
+ 
+diff -baur libffado-2.1.0.orig/support/dbus/SConscript libffado-2.1.0/support/dbus/SConscript
+--- libffado-2.1.0.orig/support/dbus/SConscript	2012-09-19 14:18:53.827448582 +0800
++++ libffado-2.1.0/support/dbus/SConscript	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/bin/env python
++#!/usr/bin/python2
+ #
+ # Copyright (C) 2007,2008,2011 Arnold Krille
+ # Copyright (C) 2007-2008 Pieter Palmers
+diff -baur libffado-2.1.0.orig/support/mixer-qt4/SConscript libffado-2.1.0/support/mixer-qt4/SConscript
+--- libffado-2.1.0.orig/support/mixer-qt4/SConscript	2012-09-19 14:18:53.830781898 +0800
++++ libffado-2.1.0/support/mixer-qt4/SConscript	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ # Copyright (C) 2007-2009 Arnold Krille
+ # Copyright (C) 2007-2008 Pieter Palmers
+diff -baur libffado-2.1.0.orig/support/mixer-qt4/ffado/ffadowindow.py libffado-2.1.0/support/mixer-qt4/ffado/ffadowindow.py
+--- libffado-2.1.0.orig/support/mixer-qt4/ffado/ffadowindow.py	2012-09-19 14:18:53.830781898 +0800
++++ libffado-2.1.0/support/mixer-qt4/ffado/ffadowindow.py	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ # Copyright (C) 2005-2008 by Pieter Palmers
+ #               2007-2009 by Arnold Krille
+diff -baur libffado-2.1.0.orig/support/mixer-qt4/ffado-mixer-profiler.in libffado-2.1.0/support/mixer-qt4/ffado-mixer-profiler.in
+--- libffado-2.1.0.orig/support/mixer-qt4/ffado-mixer-profiler.in	2012-09-19 14:18:53.830781898 +0800
++++ libffado-2.1.0/support/mixer-qt4/ffado-mixer-profiler.in	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ # Copyright (C) 2005-2009 by Pieter Palmers
+ #               2007-2009 by Arnold Krille
+diff -baur libffado-2.1.0.orig/support/mixer-qt4/ffado-mixer.in libffado-2.1.0/support/mixer-qt4/ffado-mixer.in
+--- libffado-2.1.0.orig/support/mixer-qt4/ffado-mixer.in	2012-09-19 14:18:53.834115214 +0800
++++ libffado-2.1.0/support/mixer-qt4/ffado-mixer.in	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ # Copyright (C) 2005-2008 by Pieter Palmers
+ #               2007-2009 by Arnold Krille
+diff -baur libffado-2.1.0.orig/support/tools/SConscript libffado-2.1.0/support/tools/SConscript
+--- libffado-2.1.0.orig/support/tools/SConscript	2012-09-19 14:18:53.830781898 +0800
++++ libffado-2.1.0/support/tools/SConscript	2012-09-19 14:20:51.970141882 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ # Copyright (C) 2007-2008 Arnold Krille
+ # Copyright (C) 2007-2008 Pieter Palmers
+@@ -43,7 +43,7 @@
+ # For the installation of the stuff
+ e['pythondir'] = Template( os.path.join( e['sharedir'], 'python' ) ).safe_substitute( e )
+ 
+-e.Command( "static_info.txt", "#/SConstruct", "python support/tools/ffado-diag-static > $TARGET" )
++e.Command( "static_info.txt", "#/SConstruct", "python2 support/tools/ffado-diag-static > $TARGET" )
+ 
+ e.ScanReplace( "ffado-diag.in" )
+ 
+diff -baur libffado-2.1.0.orig/support/tools/ffado-diag-static libffado-2.1.0/support/tools/ffado-diag-static
+--- libffado-2.1.0.orig/support/tools/ffado-diag-static	2012-09-19 14:18:53.830781898 +0800
++++ libffado-2.1.0/support/tools/ffado-diag-static	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ 
+ #
+@@ -74,7 +74,7 @@
+     # check libraries
+     print "   gcc ............... %s" % get_version_first_line('gcc --version')
+     print "   g++ ............... %s" % get_version_first_line('g++ --version')
+-    print "   PyQt4 (by pyuic4) . %s" % get_version_first_line('pyuic4 --version')
++    print "   PyQt4 (by pyuic4) . %s" % get_version_first_line('python2-pyuic4 --version')
+     print "   jackd ............. %s" % get_version_first_line('jackd --version')
+     print "     path ............ %s" % get_command_path('jackd')
+     print "     flags ........... %s" % get_package_flags("jack")
+diff -baur libffado-2.1.0.orig/support/tools/ffado-diag.in libffado-2.1.0/support/tools/ffado-diag.in
+--- libffado-2.1.0.orig/support/tools/ffado-diag.in	2012-09-19 14:18:53.830781898 +0800
++++ libffado-2.1.0/support/tools/ffado-diag.in	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ 
+ #
+@@ -120,7 +120,7 @@
+     print " Prerequisites (dynamic at run-time)..."
+     print "   gcc ............... %s" % get_version_first_line('gcc --version')
+     print "   g++ ............... %s" % get_version_first_line('g++ --version')
+-    print "   PyQt4 (by pyuic4) . %s" % get_version_first_line('pyuic4 --version')
++    print "   PyQt4 (by pyuic4) . %s" % get_version_first_line('python2-pyuic4 --version')
+     print "   jackd ............. %s" % get_version_first_line('jackd --version')
+     print "     path ............ %s" % get_command_path('jackd')
+     print "     flags ........... %s" % get_package_flags("jack")
+diff -baur libffado-2.1.0.orig/support/tools/ffado-sandbox-install.py libffado-2.1.0/support/tools/ffado-sandbox-install.py
+--- libffado-2.1.0.orig/support/tools/ffado-sandbox-install.py	2012-09-19 14:18:53.830781898 +0800
++++ libffado-2.1.0/support/tools/ffado-sandbox-install.py	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ 
+ #
+diff -baur libffado-2.1.0.orig/support/tools/listirqinfo.py libffado-2.1.0/support/tools/listirqinfo.py
+--- libffado-2.1.0.orig/support/tools/listirqinfo.py	2012-09-19 14:18:53.830781898 +0800
++++ libffado-2.1.0/support/tools/listirqinfo.py	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ 
+ #
+diff -baur libffado-2.1.0.orig/tests/dbus_test.py libffado-2.1.0/tests/dbus_test.py
+--- libffado-2.1.0.orig/tests/dbus_test.py	2012-09-19 14:18:53.837448529 +0800
++++ libffado-2.1.0/tests/dbus_test.py	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ # Copyright (C) 2005-2007 by Pieter Palmers
+ #               2007-2008 by Arnold Krille
+diff -baur libffado-2.1.0.orig/tests/python/test-eap-ctrl.py libffado-2.1.0/tests/python/test-eap-ctrl.py
+--- libffado-2.1.0.orig/tests/python/test-eap-ctrl.py	2012-09-19 14:18:53.837448529 +0800
++++ libffado-2.1.0/tests/python/test-eap-ctrl.py	2012-09-19 14:19:02.957399123 +0800
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ #
+ # Copyright (C) 2005-2009 by Pieter Palmers
+ #
diff --git a/abs/extra/libimobiledevice/HOME-segfault.patch b/abs/extra/libimobiledevice/HOME-segfault.patch
new file mode 100644
index 0000000..e48e6cb
--- /dev/null
+++ b/abs/extra/libimobiledevice/HOME-segfault.patch
@@ -0,0 +1,14 @@
+The patch fixes segfault when both $XDG_CONFIG_HOME and $HOME are unset
+Signed-off-by: Maxim Mikityanskiy <maxtram95@gmail.com>
+--- src/userpref.c.orig	2012-06-04 17:04:57.387303630 +0300
++++ src/userpref.c	2012-06-04 17:06:05.741301627 +0300
+@@ -125,6 +125,9 @@
+ 	const char *cdir = getenv("XDG_CONFIG_HOME");
+ 	if (!cdir) {
+ 		cdir = getenv("HOME");
++		if (!cdir) {
++			cdir="/root";
++		}
+ 		strcpy(__config_dir, cdir);
+ 		strcat(__config_dir, DIR_SEP_S);
+ 		strcat(__config_dir, ".config");
diff --git a/abs/extra/libimobiledevice/PKGBUILD b/abs/extra/libimobiledevice/PKGBUILD
index 81a8003..bc921ac 100644
--- a/abs/extra/libimobiledevice/PKGBUILD
+++ b/abs/extra/libimobiledevice/PKGBUILD
@@ -1,27 +1,23 @@
-# $Id$
+# $Id: PKGBUILD 164989 2012-08-08 00:24:19Z tomegun $
 # Maintainer : Ionut Biru <ibiru@archlinux.org>
 # Contributor: Gabriel Martinez < reitaka at gmail dot com >
 
 pkgname=libimobiledevice
-pkgver=1.1.1
-pkgrel=3
+pkgver=1.1.4
+pkgrel=2
 pkgdesc="Is a software library that talks the protocols to support iPhone and iPod Touch devices on Linux"
 url="http://libimobiledevice.org/"
 arch=('i686' 'x86_64')
 license=('GPL2' 'LGPL2.1')
-depends=('usbmuxd' 'libplist' 'gnutls' 'libgcrypt')
-makedepends=('python2' 'swig')
+depends=('usbmuxd' 'gnutls' 'libgcrypt')
 options=('!libtool')
 source=(http://libimobiledevice.org/downloads/$pkgname-$pkgver.tar.bz2
-        swig-version-check.patch)
-md5sums=('cdc13037e822d9ac2e109536701d153a'
-         '8bb215e36fe0e08a72332c108c7842cc')
+	HOME-segfault.patch)
 
 build() {
   cd "$pkgname-$pkgver"
 
-  # SWIG version check is wrong (still not fixed upstream)
-  patch -p1 -i ../swig-version-check.patch
+  patch -p0 < "$srcdir/HOME-segfault.patch"
 
   PYTHON=/usr/bin/python2 ./configure --prefix=/usr
   make
@@ -31,3 +27,5 @@ package() {
   cd "$pkgname-$pkgver"
   make DESTDIR="$pkgdir" install
 }
+md5sums=('3f28cbc6a2e30d34685049c0abde5183'
+         '0de709dbf8e79d0b00cca06f5e61d57c')
diff --git a/abs/extra/libimobiledevice/swig-version-check.patch b/abs/extra/libimobiledevice/swig-version-check.patch
deleted file mode 100644
index c56b095..0000000
--- a/abs/extra/libimobiledevice/swig-version-check.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -Nur libimobiledevice-1.0.3.old/configure libimobiledevice-1.0.3/configure
---- libimobiledevice-1.0.3.old/configure	2010-10-04 07:38:37.000000000 -0700
-+++ libimobiledevice-1.0.3/configure	2010-10-08 05:43:05.466686656 -0700
-@@ -3477,9 +3477,7 @@
-                         if test -z "$available_patch" ; then
-                                 available_patch=0
-                         fi
--                        if test $available_major -ne $required_major \
--                                -o $available_minor -ne $required_minor \
--                                -o $available_patch -lt $required_patch ; then
-+                        if test $available_major -lt $required_major ; then
-                                 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >= 1.3.21 is required.  You have $swig_version.  You should look at http://www.swig.org" >&5
- $as_echo "$as_me: WARNING: SWIG version >= 1.3.21 is required.  You have $swig_version.  You should look at http://www.swig.org" >&2;}
-                                 SWIG=false
diff --git a/abs/extra/libmicrohttpd/PKGBUILD b/abs/extra/libmicrohttpd/PKGBUILD
index e56945d..7312377 100644
--- a/abs/extra/libmicrohttpd/PKGBUILD
+++ b/abs/extra/libmicrohttpd/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 35497 2010-12-21 07:51:02Z spupykin $
+# $Id: PKGBUILD 79771 2012-11-12 09:04:51Z spupykin $
 # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
 # Maintainer: Norberto Lopes <shelika@mail.telepac.pt>
 # Contributor: Kao Dome <kaodome@gmail.com>
@@ -6,16 +6,17 @@
 # Contributor: Mathias Rohnstock <linksoft@gmx.de>
 
 pkgname=libmicrohttpd
-pkgver=0.9.3
-pkgrel=2
+pkgver=0.9.23
+pkgrel=1
 pkgdesc="a small C library that is supposed to make it easy to run an HTTP server as part of another application."
 arch=('i686' 'x86_64')
 url="http://www.gnu.org/software/libmicrohttpd/"
 license=('LGPL')
-options=(!libtool)
-depends=('gnutls')
+options=('!libtool')
+depends=('gnutls' 'libgcrypt')
+install=libmicrohttpd.install
 source=(ftp://ftp.gnu.org/gnu/libmicrohttpd/$pkgname-$pkgver.tar.gz)
-md5sums=('a6c7dae57c51afd648b45a526098429a')
+md5sums=('efd038d93836adc0149beaa1c2927f61')
 
 build() {
   cd ${pkgname}-${pkgver}
@@ -31,5 +32,6 @@ package() {
 	${pkgdir}/usr/include/$pkgname/platform.h
   install -Dm644 ${srcdir}/${pkgname}-${pkgver}/src/include/plibc/plibc.h \
 	${pkgdir}/usr/include/$pkgname/plibc.h
-  sed -i 's#Cflags: -I${includedir}#Cflags: -I${includedir} -I{includedir}/libmicrohttpd#' $pkgdir/usr/lib/pkgconfig/libmicrohttpd.pc
+  sed -i 's#Cflags: -I${includedir}#Cflags: -I${includedir} -I{includedir}/libmicrohttpd#' \
+	$pkgdir/usr/lib/pkgconfig/libmicrohttpd.pc
 }
diff --git a/abs/extra/libmicrohttpd/libmicrohttpd.install b/abs/extra/libmicrohttpd/libmicrohttpd.install
new file mode 100644
index 0000000..dc0d2b9
--- /dev/null
+++ b/abs/extra/libmicrohttpd/libmicrohttpd.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(microhttpd.info microhttpd-tutorial.info)
+
+post_install() {
+  [ -x usr/bin/install-info ] || return 0
+  for file in ${filelist[@]}; do
+    install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  [ -x usr/bin/install-info ] || return 0
+  for file in ${filelist[@]}; do
+    install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+  done
+}
diff --git a/abs/extra/libmodplug/PKGBUILD b/abs/extra/libmodplug/PKGBUILD
new file mode 100644
index 0000000..0db6639
--- /dev/null
+++ b/abs/extra/libmodplug/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 150611 2012-02-18 22:54:35Z pierre $
+# Maintainer:
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Patrick Leslie Polzer <leslie.polzer@gmx.net>
+
+pkgname=libmodplug
+pkgver=0.8.8.4
+pkgrel=1
+pkgdesc="A MOD playing library"
+arch=('i686' 'x86_64')
+url="http://modplug-xmms.sourceforge.net/"
+license=('custom')
+depends=('gcc-libs')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/modplug-xmms/${pkgname}-${pkgver}.tar.gz")
+md5sums=('fddc3c704c5489de2a3cf0fedfec59db')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  make DESTDIR="${pkgdir}" install
+  install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/abs/extra/libnfs/PKGBUILD b/abs/extra/libnfs/PKGBUILD
new file mode 100644
index 0000000..eaef7ac
--- /dev/null
+++ b/abs/extra/libnfs/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 68570 2012-03-28 10:32:51Z idevolder $
+# Maintainer: BlackIkeEagle <ike DOT devolder AT gmail DOT com>
+
+pkgname=libnfs
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="client library for accessing NFS shares"
+arch=('i686' 'x86_64')
+url="https://github.com/sahlberg/libnfs"
+license=('GPL')
+depends=('glibc')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/sahlberg/libnfs/tarball/$pkgname-$pkgver")
+_srcfolder=sahlberg-libnfs-47e5a2c
+sha256sums=('0acda3029db699c3978684080843f71d222ad35b30a2ff0d220d144e98854948')
+options=(!libtool)
+
+build() {
+  mv "$_srcfolder" "$pkgname-$pkgver"
+
+  cd "$pkgname-$pkgver"
+
+  autoreconf -vif
+  ./configure --prefix=/usr
+  make
+}
+
+package() {
+  cd "$pkgname-$pkgver"
+  make DESTDIR="$pkgdir" install
+}
diff --git a/abs/extra/libshairport/PKGBUILD b/abs/extra/libshairport/PKGBUILD
new file mode 100644
index 0000000..d6e406c
--- /dev/null
+++ b/abs/extra/libshairport/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 68571 2012-03-28 10:35:14Z idevolder $
+# Maintainer: BlackIkeEagle <ike DOT devolder AT gmail DOT com>
+
+pkgname=libshairport
+_developer='amejia1'
+_version=1.2.1
+_commithash='aeb4987'
+pkgver=${_version}
+pkgrel=2
+pkgdesc="emulates an AirPort Express"
+arch=('i686' 'x86_64')
+url='https://github.com/amejia1/libshairport'
+license=('GPL')
+depends=('openssl' 'libao')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/amejia1/libshairport/tarball/$_commithash")
+sha256sums=('003c65f56123a7cb090b2d7249f0facbef668f7db6048f4b458713892a6911ca')
+options=(!libtool)
+
+_srcfolder=$_developer-$pkgname-$_commithash
+
+build() {
+  mv "$_srcfolder" "$pkgname-$pkgver"
+
+  cd "$pkgname-$pkgver"
+  autoreconf -vif
+  ./configure --prefix=/usr
+  make
+}
+
+package() {
+  cd "$pkgname-$pkgver"
+  make DESTDIR="$pkgdir" install
+}
diff --git a/abs/extra/libsigc++/PKGBUILD b/abs/extra/libsigc++/PKGBUILD
index 308b99e..f40723b 100644
--- a/abs/extra/libsigc++/PKGBUILD
+++ b/abs/extra/libsigc++/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 151408 2012-02-26 10:35:06Z pierre $
+# $Id: PKGBUILD 166999 2012-09-24 17:45:03Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Tom Newsom <Jeepster@gmx.co.uk>
 
 pkgbase=libsigc++
 pkgname=('libsigc++' 'libsigc++-docs')
-pkgver=2.2.10
-pkgrel=2
+pkgver=2.2.11
+pkgrel=1
 arch=('i686' 'x86_64')
 license=('LGPL')
 url="http://libsigc.sourceforge.net/"
 makedepends=('gcc-libs')
 options=('!libtool' '!emptydirs')
-source=("http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/2.2/${pkgbase}-${pkgver}.tar.bz2")
-sha256sums=('d3d810c2ad469edfb2d4db29643bef189b7613019eadbd4a72823af3c73c959c')
+source=("http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/2.2/${pkgbase}-${pkgver}.tar.xz")
+sha256sums=('9834045f74f56752c2c6b3cdc195c30ab8314ad22dc8e626d6f67f940f1e4957')
 
 build() {
   cd "${srcdir}/${pkgbase}-${pkgver}"
diff --git a/abs/extra/libssh/PKGBUILD b/abs/extra/libssh/PKGBUILD
index f70c291..a2dc1bf 100644
--- a/abs/extra/libssh/PKGBUILD
+++ b/abs/extra/libssh/PKGBUILD
@@ -1,22 +1,22 @@
-# $Id$
+# $Id: PKGBUILD 138141 2011-09-17 12:41:18Z andrea $
 # Maintainer: Andrea Scarpino <andrea@archlinux.org>
 # Contributor: ice-man <icemanf@gmail.com>
 # Contributor: sergeantspoon <sergeantspoon@archlinux.us>
 
 pkgname=libssh
-pkgver=0.4.6
-pkgrel=2
+pkgver=0.5.2
+pkgrel=1
 pkgdesc="Library for accessing ssh client services through C libraries"
 url="http://www.libssh.org/"
 license=('LGPL')
 arch=('i686' 'x86_64')
 depends=('openssl')
 makedepends=('cmake' 'doxygen')
-source=("http://www.libssh.org/files/0.4/${pkgname}-${pkgver}.tar.gz")
-md5sums=('9efdc8911fdb150fb16500c2fbe4ef2e')
+source=("https://red.libssh.org/attachments/download/27/${pkgname}-${pkgver}.tar.gz")
+md5sums=('38b67c48af7a9204660a3e08f97ceba6')
 
 build() {
-  cd ${srcdir}
+  cd "${srcdir}"
   mkdir build
   cd build
   cmake ../${pkgname}-${pkgver} \
@@ -26,6 +26,6 @@ build() {
 }
 
 package(){
-  cd ${srcdir}/build
-  make DESTDIR=${pkgdir} install
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
 }
diff --git a/abs/extra/libssh/__changelog b/abs/extra/libssh/__changelog
deleted file mode 100644
index 9e60b2f..0000000
--- a/abs/extra/libssh/__changelog
+++ /dev/null
@@ -1 +0,0 @@
-12/27/10 - chw - fixed URL for source
diff --git a/abs/extra/libxml++/PKGBUILD b/abs/extra/libxml++/PKGBUILD
index 198544c..8e7c83e 100644
--- a/abs/extra/libxml++/PKGBUILD
+++ b/abs/extra/libxml++/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 137178 2011-09-06 09:14:31Z ibiru $
+# $Id: PKGBUILD 170207 2012-11-05 11:38:10Z jgc $
 # Maintainer: damir <damir@archlinux.org>
 
 pkgbase=libxml++
 pkgname=('libxml++' 'libxml++-docs')
-pkgver=2.34.2
+pkgver=2.36.0
 pkgrel=1
 arch=('i686' 'x86_64')
 license=('LGPL')
 url="http://libxmlplusplus.sourceforge.net/"
 makedepends=('pkgconfig' 'glibmm-docs' 'libxml2' 'glibmm')
 options=('!libtool' '!emptydirs')
-source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/2.34/${pkgbase}-${pkgver}.tar.xz)
-sha256sums=('77daba20ab76631071d4ed4cc18fa2e981160ca05ae661e8d146f2b0728f9baa')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/2.36/${pkgbase}-${pkgver}.tar.xz)
+sha256sums=('bfdf327bf9ebd12946b7aa6a152045f209d5c9fecd06ebfcdf9b3e7c1af6e2e1')
 
 build() {
   cd "${srcdir}/${pkgbase}-${pkgver}"
diff --git a/abs/extra/libxml++/libxml++-2.36.0-1.src.tar.gz b/abs/extra/libxml++/libxml++-2.36.0-1.src.tar.gz
new file mode 120000
index 0000000..5ef6071
--- /dev/null
+++ b/abs/extra/libxml++/libxml++-2.36.0-1.src.tar.gz
@@ -0,0 +1 @@
+/data/pkg_repo/src_packages/libxml++-2.36.0-1.src.tar.gz
\ No newline at end of file
diff --git a/abs/extra/sdl_image/PKGBUILD b/abs/extra/sdl_image/PKGBUILD
index 062490b..3f5fefb 100644
--- a/abs/extra/sdl_image/PKGBUILD
+++ b/abs/extra/sdl_image/PKGBUILD
@@ -1,22 +1,29 @@
-# $Id$
-# Maintainer: Allan McRae <allan@archlinux.org>
+# $Id: PKGBUILD 148924 2012-02-05 11:56:07Z ibiru $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
 # Contributor: Tom Newsom <Jeepster@gmx.co.uk>
 
 pkgname=sdl_image
-pkgver=1.2.10
+pkgver=1.2.12
 pkgrel=2
 pkgdesc="A simple library to load images of various formats as SDL surfaces"
 arch=('i686' 'x86_64')
-license=('LGPL')
+license=('custom')
 depends=('sdl>=1.2.13' 'libpng' 'libjpeg>=7' 'libtiff' 'zlib')
 options=('!libtool')
 url="http://www.libsdl.org/projects/SDL_image/"
-source=(http://www.libsdl.org/projects/SDL_image/release/SDL_image-${pkgver}.tar.gz)
-md5sums=('6c06584b31559e2b59f2b982d0d1f628')
+source=(http://www.libsdl.org/projects/SDL_image/release/SDL_image-$pkgver.tar.gz)
+md5sums=('a0f9098ebe5400f0bdc9b62e60797ecb')
 
 build() {
-  cd ${srcdir}/SDL_image-${pkgver}
-  ./configure --prefix=/usr
-  make || return 1
-  make DESTDIR=${pkgdir} install
+  cd "$srcdir/SDL_image-$pkgver"
+  ./configure --prefix=/usr --disable-static
+  make
+}
+
+package() {
+  cd "$srcdir/SDL_image-$pkgver"
+  make DESTDIR="$pkgdir" install
+
+  install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
 }
diff --git a/abs/extra/sdl_mixer/PKGBUILD b/abs/extra/sdl_mixer/PKGBUILD
index f241519..626d401 100644
--- a/abs/extra/sdl_mixer/PKGBUILD
+++ b/abs/extra/sdl_mixer/PKGBUILD
@@ -1,29 +1,48 @@
-# $Id: PKGBUILD 70367 2010-02-26 13:24:25Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
+# $Id: PKGBUILD 170804 2012-11-12 02:00:36Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
 # Contributor: Tom Newsom <Jeepster@gmx.co.uk>
 # Contributor: Lukas Sabota <punkrockguy318@cocmast.net> (Timidity Patch)
 
 pkgname=sdl_mixer
-pkgver=1.2.11
-pkgrel=2
+pkgver=1.2.12
+pkgrel=3
 pkgdesc="A simple multi-channel audio mixer"
 arch=('i686' 'x86_64')
 url="http://www.libsdl.org/projects/SDL_mixer/"
-license=('LGPL' 'GPL')
+license=('custom')
 depends=('sdl>=1.2.12' 'libvorbis' 'libmikmod' 'smpeg')
+makedepends=('fluidsynth')
+optdepends=('fluidsynth: MIDI software synth, replaces built-in timidity')
 options=('!libtool')
-source=(http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${pkgver}.tar.gz)
-md5sums=('65ada3d997fe85109191a5fb083f248c')
+source=(http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-$pkgver.tar.gz
+        mikmod1.patch mikmod2.patch fluidsynth-volume.patch double-free-crash.patch)
+md5sums=('e03ff73d77a55e3572ad0217131dc4a1'
+         '95a6d58686fe3017d58c39e3e1dd40f7'
+         'd823994c3961f2ff48644478f27a27d1'
+         'eed8b61defde36ac2077ef96d868ea3e'
+         '4b4835c63297f016a198cacb7dd68ec1')
 
 build() {
-  cd ${srcdir}/SDL_mixer-${pkgver}
+  cd "$srcdir/SDL_mixer-$pkgver"
 
-  sed -e "/CONFIG_FILE_ETC/s/\/etc\/timidity.cfg/\/etc\/timidity++\/timidity.cfg/" \
-      -e "/DEFAULT_PATH/s/\/etc\/timidity/\/etc\/timidity++/" \
-      -e "/DEFAULT_PATH2/s/\/usr\/local\/lib\/timidity/\/usr\/lib\/timidity/" \
+  patch -Np1 -i ../mikmod1.patch
+  patch -Np1 -i ../mikmod2.patch
+  patch -Np1 -i ../fluidsynth-volume.patch
+  patch -Np1 -i ../double-free-crash.patch
+
+  sed -e "/CONFIG_FILE_ETC/s|/etc/timidity.cfg|/etc/timidity++/timidity.cfg|" \
+      -e "/DEFAULT_PATH/s|/etc/timidity|/etc/timidity++|" \
+      -e "/DEFAULT_PATH2/s|/usr/local/lib/timidity|/usr/lib/timidity|" \
       -i timidity/config.h
 
-  ./configure --prefix=/usr
-  make || return 1
-  make DESTDIR=${pkgdir} install
+  ./configure --prefix=/usr --disable-static
+  make
+}
+
+package() {
+  cd "$srcdir/SDL_mixer-$pkgver"
+  make DESTDIR="$pkgdir" install
+
+  install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
 }
diff --git a/abs/extra/sdl_mixer/double-free-crash.patch b/abs/extra/sdl_mixer/double-free-crash.patch
new file mode 100644
index 0000000..6f4e6a1
--- /dev/null
+++ b/abs/extra/sdl_mixer/double-free-crash.patch
@@ -0,0 +1,32 @@
+
+# HG changeset patch
+# User Sam Lantinga <slouken@libsdl.org>
+# Date 1329087437 18000
+# Node ID 2d713670db9b832b0c5aa700824900bc1fc3c3cd
+# Parent  df72f22b4b411ad4b08f924329678aabd5ac97d6
+Fixed 1418 - crash on double free if loading WAV file failed
+
+diff -r df72f22b4b41 -r 2d713670db9b mixer.c
+--- a/mixer.c	Mon Jan 30 21:41:45 2012 -0500
++++ b/mixer.c	Sun Feb 12 17:57:17 2012 -0500
+@@ -610,13 +610,15 @@
+ 			break;
+ 		default:
+ 			SDL_SetError("Unrecognized sound file type");
+-			return(0);			
++			if ( freesrc ) {
++				SDL_RWclose(src);
++			}
++			loaded = NULL;
++			break;
+ 	}
+ 	if ( !loaded ) {
++		/* The individual loaders have closed src if needed */
+ 		SDL_free(chunk);
+-		if ( freesrc ) {
+-			SDL_RWclose(src);
+-		}
+ 		return(NULL);
+ 	}
+ 
+
diff --git a/abs/extra/sdl_mixer/fluidsynth-volume.patch b/abs/extra/sdl_mixer/fluidsynth-volume.patch
new file mode 100644
index 0000000..cf346ed
--- /dev/null
+++ b/abs/extra/sdl_mixer/fluidsynth-volume.patch
@@ -0,0 +1,23 @@
+
+# HG changeset patch
+# User James Le Cuirot <chewi@aura-online.co.uk>
+# Date 1330896767 0
+# Node ID c92001a2c18f628698c58aa4e05a7335d10d0e9e
+# Parent  2d713670db9b832b0c5aa700824900bc1fc3c3cd
+Raise the maximum FluidSynth gain from 0.8 to 1.2 because apparently the former is too quiet in some cases.
+
+diff -r 2d713670db9b -r c92001a2c18f fluidsynth.c
+--- a/fluidsynth.c	Sun Feb 12 17:57:17 2012 -0500
++++ b/fluidsynth.c	Sun Mar 04 21:32:47 2012 +0000
+@@ -176,8 +176,8 @@
+ 
+ void fluidsynth_setvolume(FluidSynthMidiSong *song, int volume)
+ {
+-	/* FluidSynth's default is 0.2. Make 0.8 the maximum. */
+-	fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 0.00625));
++	/* FluidSynth's default is 0.2. Make 1.2 the maximum. */
++	fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 1.2 / MIX_MAX_VOLUME));
+ }
+ 
+ int fluidsynth_playsome(FluidSynthMidiSong *song, void *dest, int dest_len)
+
diff --git a/abs/extra/sdl_mixer/mikmod1.patch b/abs/extra/sdl_mixer/mikmod1.patch
new file mode 100644
index 0000000..b3bb829
--- /dev/null
+++ b/abs/extra/sdl_mixer/mikmod1.patch
@@ -0,0 +1,67 @@
+
+# HG changeset patch
+# User Sam Lantinga <slouken@libsdl.org>
+# Date 1342998807 25200
+# Node ID 56cad6484b04f83c8d42428c755a046678506436
+# Parent  c92001a2c18f628698c58aa4e05a7335d10d0e9e
+Paul P Komkoff Jr fixed malloc/free mismatch in the MikMod driver
+
+diff -r c92001a2c18f -r 56cad6484b04 CHANGES
+--- a/CHANGES	Sun Mar 04 21:32:47 2012 +0000
++++ b/CHANGES	Sun Jul 22 16:13:27 2012 -0700
+@@ -1,3 +1,7 @@
++1.2.13:
++Paul P Komkoff Jr - Sun Jul 22 16:12:28 PDT 2012
++ * Fixed malloc/free mismatch in the MikMod driver
++
+ 1.2.12:
+ Sam Lantinga - Sat Jan 14 22:00:29 2012 -0500
+  * Fixed seek offset with SMPEG (was relative, should be absolute)
+diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.c
+--- a/dynamic_mod.c	Sun Mar 04 21:32:47 2012 +0000
++++ b/dynamic_mod.c	Sun Jul 22 16:13:27 2012 -0700
+@@ -93,6 +93,13 @@
+ 			SDL_UnloadObject(mikmod.handle);
+ 			return -1;
+ 		}
++		mikmod.MikMod_free =
++			(void (*)(void*))
++			SDL_LoadFunction(mikmod.handle, "MikMod_free");
++		if ( mikmod.MikMod_free == NULL ) {
++			SDL_UnloadObject(mikmod.handle);
++			return -1;
++		}
+ 		mikmod.Player_Active =
+ 			(BOOL (*)(void))
+ 			SDL_LoadFunction(mikmod.handle, "Player_Active");
+diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.h
+--- a/dynamic_mod.h	Sun Mar 04 21:32:47 2012 +0000
++++ b/dynamic_mod.h	Sun Jul 22 16:13:27 2012 -0700
+@@ -35,6 +35,7 @@
+ 	void (*MikMod_RegisterDriver)(struct MDRIVER*);
+ 	int* MikMod_errno;
+ 	char* (*MikMod_strerror)(int);
++	void (*MikMod_free)(void*);
+ 	BOOL (*Player_Active)(void);
+ 	void (*Player_Free)(MODULE*);
+ 	MODULE* (*Player_LoadGeneric)(MREADER*,int,BOOL);
+diff -r c92001a2c18f -r 56cad6484b04 music_mod.c
+--- a/music_mod.c	Sun Mar 04 21:32:47 2012 +0000
++++ b/music_mod.c	Sun Jul 22 16:13:27 2012 -0700
+@@ -109,13 +109,13 @@
+ 
+ 	list = mikmod.MikMod_InfoDriver();
+ 	if ( list )
+-	  free(list);
++	  mikmod.MikMod_free(list);
+ 	else
+ 	  mikmod.MikMod_RegisterDriver(mikmod.drv_nos);
+ 
+ 	list = mikmod.MikMod_InfoLoader();
+ 	if ( list )
+-	  free(list);
++	  mikmod.MikMod_free(list);
+ 	else
+ 	  mikmod.MikMod_RegisterAllLoaders();
+ 
+
diff --git a/abs/extra/sdl_mixer/mikmod2.patch b/abs/extra/sdl_mixer/mikmod2.patch
new file mode 100644
index 0000000..6e89ca8
--- /dev/null
+++ b/abs/extra/sdl_mixer/mikmod2.patch
@@ -0,0 +1,35 @@
+
+# HG changeset patch
+# User Sam Lantinga <slouken@libsdl.org>
+# Date 1343000017 25200
+# Node ID 2ebb0d016f277f7f643d8a66ed0e1099e10d1fba
+# Parent  56cad6484b04f83c8d42428c755a046678506436
+Fixed normal linking with libmikmod and linking with earlier versions of libmikmod.
+
+diff -r 56cad6484b04 -r 2ebb0d016f27 dynamic_mod.c
+--- a/dynamic_mod.c	Sun Jul 22 16:13:27 2012 -0700
++++ b/dynamic_mod.c	Sun Jul 22 16:33:37 2012 -0700
+@@ -97,8 +97,8 @@
+ 			(void (*)(void*))
+ 			SDL_LoadFunction(mikmod.handle, "MikMod_free");
+ 		if ( mikmod.MikMod_free == NULL ) {
+-			SDL_UnloadObject(mikmod.handle);
+-			return -1;
++			/* libmikmod 3.1 and earlier doesn't have it */
++			mikmod.MikMod_free = free;
+ 		}
+ 		mikmod.Player_Active =
+ 			(BOOL (*)(void))
+@@ -246,6 +246,11 @@
+ 		mikmod.MikMod_RegisterDriver = MikMod_RegisterDriver;
+ 		mikmod.MikMod_errno = &MikMod_errno;
+ 		mikmod.MikMod_strerror = MikMod_strerror;
++#if LIBMIKMOD_VERSION < ((3<<16)|(2<<8))
++		mikmod.MikMod_free = free;
++#else
++		mikmod.MikMod_free = MikMod_free;
++#endif
+ 		mikmod.Player_Active = Player_Active;
+ 		mikmod.Player_Free = Player_Free;
+ 		mikmod.Player_LoadGeneric = Player_LoadGeneric;
+
diff --git a/abs/extra/smpeg/PKGBUILD b/abs/extra/smpeg/PKGBUILD
index 1b52434..fe2acfe 100644
--- a/abs/extra/smpeg/PKGBUILD
+++ b/abs/extra/smpeg/PKGBUILD
@@ -1,28 +1,35 @@
-# $Id: PKGBUILD 19615 2008-11-28 13:17:01Z allan $
+# $Id: PKGBUILD 168611 2012-10-13 11:49:26Z andyrtr $
 # Maintainer: Eric Belanger <eric@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 
 pkgname=smpeg
 pkgver=0.4.4
-pkgrel=4
+pkgrel=7
 pkgdesc="SDL MPEG Player Library"
 arch=('i686' 'x86_64')
 url="http://icculus.org/smpeg/"
 license=('LGPL')
 depends=('sdl')
-makedepends=('gtk' 'mesa')
+#makedepends=('gtk' 'mesa' 'glu')
+makedepends=('gtk' 'mesa' )
+optdepends=('gtk: to use gtv ' 'glu: to use glmovie')
 options=('!libtool' '!makeflags')
-source=(http://mirrors.dotsrc.org/lokigames/open-source/smpeg/$pkgname-$pkgver.tar.gz smpeg-0.4.4-gcc41.patch)
-md5sums=('59c76ac704088ef5539210190c4e1fe3' '8b979a58307d7196655758bd3d2466c4')
-sha1sums=('6d7f4449472e6270ab435b2224f3fad951c35259' '7d9a2ad7f6b702dfe3adcb87601d9b55022bbd1e')
+source=(http://mirrors.dotsrc.org/lokigames/open-source/smpeg/${pkgname}-${pkgver}.tar.gz
+        smpeg-0.4.4-gcc41.patch)
+sha1sums=('6d7f4449472e6270ab435b2224f3fad951c35259'
+          '7d9a2ad7f6b702dfe3adcb87601d9b55022bbd1e')
 
 build() {
-  cd $startdir/src/$pkgname-$pkgver
-  patch -p1 < ../smpeg-0.4.4-gcc41.patch
-  ./configure --prefix=/usr
-  make LDFLAGS+=-lstdc++ || return 1
-  make DESTDIR=$startdir/pkg install
+  cd ${srcdir}/${pkgname}-${pkgver}
+  patch -p1 -i $srcdir/smpeg-0.4.4-gcc41.patch
+  ./configure --prefix=/usr --mandir=/usr/share/man --disable-static
+  make LDFLAGS+=-lstdc++
+}
+
+package() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  make DESTDIR=${pkgdir} install
   
-  #fix aclocal warnings
+  # fix aclocal warnings
   sed -i "s#(AM_PATH_SMPEG#([AM_PATH_SMPEG]#" ${pkgdir}/usr/share/aclocal/smpeg.m4
 }
diff --git a/abs/extra/upower/0001-Send-resume-signal-when-built-with-systemd-and-using.patch b/abs/extra/upower/0001-Send-resume-signal-when-built-with-systemd-and-using.patch
new file mode 100644
index 0000000..2694334
--- /dev/null
+++ b/abs/extra/upower/0001-Send-resume-signal-when-built-with-systemd-and-using.patch
@@ -0,0 +1,35 @@
+From a5b3dd887dcd60e981626ae2e15c874311fc4fef Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Sun, 2 Sep 2012 04:36:13 +0200
+Subject: [PATCH] Send resume signal when built with systemd and using
+ pm-utils suspend
+
+This case was apparently overlooked when adding systemd support.
+
+Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+---
+ src/linux/up-backend.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/src/linux/up-backend.c b/src/linux/up-backend.c
+index ddd4472..52b430e 100644
+--- a/src/linux/up-backend.c
++++ b/src/linux/up-backend.c
+@@ -603,10 +603,11 @@ gboolean
+ up_backend_emits_resuming (UpBackend *backend)
+ {
+ #ifdef HAVE_SYSTEMD
+-	return TRUE;
+-#else
+-	return FALSE;
++	if (sd_booted ())
++		return TRUE;
++	else
+ #endif
++	return FALSE;
+ }
+ 
+ /**
+-- 
+1.7.12
+
diff --git a/abs/extra/upower/PKGBUILD b/abs/extra/upower/PKGBUILD
index 370f483..d27d378 100644
--- a/abs/extra/upower/PKGBUILD
+++ b/abs/extra/upower/PKGBUILD
@@ -1,27 +1,38 @@
-# $Id$
+# $Id: PKGBUILD 166524 2012-09-09 15:41:20Z heftig $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=upower
-pkgver=0.9.15
+pkgver=0.9.18
 pkgrel=2
 pkgdesc="Abstraction for enumerating power devices, listening to device events and querying history and statistics"
 arch=('i686' 'x86_64')
 url="http://upower.freedesktop.org"
 license=('GPL')
-depends=('udev' 'libusb' 'polkit' 'pm-utils' 'dbus-glib' 'libimobiledevice')
-makedepends=('intltool' 'docbook-xsl' 'gobject-introspection')
+depends=('systemd-tools' 'libsystemd' 'libusb' 'polkit' 'pm-utils' 'dbus-glib' 'libimobiledevice')
+makedepends=('intltool' 'docbook-xsl' 'gobject-introspection' 'systemd')
 options=('!libtool')
-source=($url/releases/$pkgname-$pkgver.tar.xz)
-sha256sums=('d5941480f32dcee47401b3f650485c71f70e7eb0d92537bf4b62410248a6238c')
+source=($url/releases/$pkgname-$pkgver.tar.xz
+        0001-Send-resume-signal-when-built-with-systemd-and-using.patch)
 
 build() {
-  cd "$srcdir/$pkgname-$pkgver"
-  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
-      --libexecdir=/usr/lib/upower --disable-static
+  cd "$pkgname-$pkgver"
+
+  # put udev files in /usr/lib
+  sed -i "/slashlibdir=/s#/lib#/usr/lib#" configure
+
+  # https://bugs.freedesktop.org/show_bug.cgi?id=54371
+  patch -Np1 -i ../0001-Send-resume-signal-when-built-with-systemd-and-using.patch
+
+  ./configure --prefix=/usr --sysconfdir=/etc \
+    --localstatedir=/var \
+    --libexecdir=/usr/lib/$pkgname \
+    --disable-static
   make
 }
 
 package() {
-  cd "$srcdir/$pkgname-$pkgver"
+  cd "$pkgname-$pkgver"
   make DESTDIR="$pkgdir" install
 }
+md5sums=('bfaaa1e7f8479fca5594406b3c36dff9'
+         '188afea4919dc324b2efbae35d9d216a')
diff --git a/abs/extra/usbmuxd/85-usbmuxd.rules b/abs/extra/usbmuxd/85-usbmuxd.rules
new file mode 100644
index 0000000..ec9f725
--- /dev/null
+++ b/abs/extra/usbmuxd/85-usbmuxd.rules
@@ -0,0 +1,9 @@
+# usbmuxd ("Apple Mobile Device" muxer listening on /var/run/usbmuxd)
+
+# Forces iDevices to the last USB configuration and runs usbmuxd
+TEST=="/sys/fs/cgroup/systemd", ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", ATTR{idProduct}=="12[9a][0-9a-f]", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}!="$attr{bNumConfigurations}", ATTR{bConfigurationValue}="$attr{bNumConfigurations}", OWNER="usbmux", TAG+="systemd", ENV{SYSTEMD_WANTS}="usbmuxd.service", GOTO="usbmuxd_systemd_end"
+ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", ATTR{idProduct}=="12[9a][0-9a-f]", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}!="$attr{bNumConfigurations}", ATTR{bConfigurationValue}="$attr{bNumConfigurations}", OWNER="usbmux", RUN+="/usr/sbin/usbmuxd -u -U usbmux"
+LABEL="usbmuxd_systemd_end"
+
+# Exit usbmuxd when the last device is removed
+ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", ENV{INTERFACE}=="255/*", RUN+="/usr/sbin/usbmuxd -x"
diff --git a/abs/extra/usbmuxd/PKGBUILD b/abs/extra/usbmuxd/PKGBUILD
index 758cb66..885dcae 100644
--- a/abs/extra/usbmuxd/PKGBUILD
+++ b/abs/extra/usbmuxd/PKGBUILD
@@ -1,25 +1,24 @@
-# $Id$
+# $Id: PKGBUILD 164371 2012-07-31 19:43:35Z eric $
 # Maintainer : Ionut Biru <ibiru@archlinux.org>
 # Contributor: Gabriel Martinez < reitaka at gmail dot com >
 
 pkgname=usbmuxd
-pkgver=1.0.7
-pkgrel=2
+pkgver=1.0.8
+pkgrel=1
 pkgdesc="USB Multiplex Daemon"
 url="http://marcansoft.com/blog/iphonelinux/usbmuxd/"
 arch=('i686' 'x86_64')
 license=('GPL2' 'GPL3' 'LGPL2.1')
-depends=('libusb>=1.0.8')
+depends=('libusb' 'libplist')
 makedepends=('cmake')
 install=usbmuxd.install
-source=(http://marcansoft.com/uploads/${pkgname}/${pkgname}-${pkgver}.tar.bz2
-        usbmuxd-udevuser.patch
-        usbmuxd-describe.patch)
+source=("http://cgit.sukimashita.com/${pkgname}.git/snapshot/${pkgname}-${pkgver}.tar.bz2"
+	'usbmuxd.service'
+	'85-usbmuxd.rules')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  patch -Np1 -i "${srcdir}/usbmuxd-udevuser.patch"
-  patch -Np1 -i "${srcdir}/usbmuxd-describe.patch"
+  echo "${pkgver}" > version.tag
   mkdir build
   cd build
   cmake ../ -DCMAKE_INSTALL_PREFIX:PATH=/usr -DLIB_SUFFIX=""
@@ -29,7 +28,18 @@ build() {
 package() {
   cd "${srcdir}/${pkgname}-${pkgver}/build"
   make DESTDIR="${pkgdir}" install
+
+  # fix udev dir being hardcoded
+  mv "${pkgdir}/lib/udev" "${pkgdir}/usr/lib/"
+  rmdir "${pkgdir}/lib"
+  # install systemd service file
+  install -D -m644 ${srcdir}/usbmuxd.service ${pkgdir}/usr/lib/systemd/system/usbmuxd.service
+  # use udev rule that works with systemd
+  install -m644 ${srcdir}/85-usbmuxd.rules ${pkgdir}/usr/lib/udev/rules.d/
+  #fix version
+  sed -i "s/Version.*$/Version: ${pkgver}/g"  $pkgdir/usr/lib/pkgconfig/libusbmuxd.pc
+
 }
-md5sums=('6f431541f3177fa06aa6df9ceecb2da0'
-         '8526f24f4ad16cd6b2a7321c0b59592c'
-         'bac157d6e01e1e0d56750f73850b96fb')
+md5sums=('87fd27773a84e97ac6e2dc28b08d682e'
+         'dae0660f972510a6483992b5b81e1b5a'
+         'dc4b2893651149eccbf7b2c8467cd288')
diff --git a/abs/extra/usbmuxd/__changelog b/abs/extra/usbmuxd/__changelog
index 7b30556..e5a6fbf 100644
--- a/abs/extra/usbmuxd/__changelog
+++ b/abs/extra/usbmuxd/__changelog
@@ -1 +1,3 @@
-- added usbmuxd-describe.patch so version number is correctly detected
+#fix version -jm
+sed -i "s/Version.*$/Version: ${pkgver}/g"  $pkgdir/usr/lib/pkgconfig/libusbmuxd.pc
+
diff --git a/abs/extra/usbmuxd/usbmuxd-describe.patch b/abs/extra/usbmuxd/usbmuxd-describe.patch
deleted file mode 100644
index 3023235..0000000
--- a/abs/extra/usbmuxd/usbmuxd-describe.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- usbmuxd-1.0.7/Modules/describe.sh.orig	2012-04-07 22:37:03.218203610 +0000
-+++ usbmuxd-1.0.7/Modules/describe.sh	2012-04-07 22:37:22.979010437 +0000
-@@ -1,17 +1,8 @@
- #!/bin/bash
- 
--# Check for git and a git repo.
--if head=`git rev-parse --verify HEAD 2>/dev/null`; then
--	/bin/echo -n `git describe`
--
--	# Are there uncommitted changes?
--	git update-index --refresh --unmerged > /dev/null
--	git diff-index --quiet HEAD || /bin/echo -n -dirty
--else
- # Check for version tag
- 	if [ -e version.tag ]; then
- 		/bin/echo -n `cat version.tag`
- 	fi
--fi
- 
- echo
diff --git a/abs/extra/usbmuxd/usbmuxd-udevuser.patch b/abs/extra/usbmuxd/usbmuxd-udevuser.patch
deleted file mode 100644
index 51c8f3d..0000000
--- a/abs/extra/usbmuxd/usbmuxd-udevuser.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur usbmuxd-1.0.7.orig/udev/85-usbmuxd.rules.in usbmuxd-1.0.7/udev/85-usbmuxd.rules.in
---- usbmuxd-1.0.7.orig/udev/85-usbmuxd.rules.in	2011-08-04 15:28:32.751579507 +0000
-+++ usbmuxd-1.0.7/udev/85-usbmuxd.rules.in	2011-08-04 15:36:20.139265124 +0000
-@@ -1,7 +1,7 @@
- # usbmuxd (iPhone "Apple Mobile Device" MUXer listening on /var/run/usbmuxd)
- 
- # Forces iDevices to the last USB configuration and runs usbmuxd
--ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", ATTR{idProduct}=="12[9a][0-9a-f]", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}!="$attr{bNumConfigurations}", ATTR{bConfigurationValue}="$attr{bNumConfigurations}", RUN+="@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -u -U usbmux"
-+ACTION=="add", SUBSYSTEM=="usb", OWNER="usbmux", ATTR{idVendor}=="05ac", ATTR{idProduct}=="12[9a][0-9a-f]", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}!="$attr{bNumConfigurations}", ATTR{bConfigurationValue}="$attr{bNumConfigurations}", RUN+="@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -u -U usbmux"
- 
- # Exit usbmuxd when the last device is removed
- ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", ENV{INTERFACE}=="255/*", RUN+="@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -x"
diff --git a/abs/extra/usbmuxd/usbmuxd.service b/abs/extra/usbmuxd/usbmuxd.service
new file mode 100644
index 0000000..fbebf65
--- /dev/null
+++ b/abs/extra/usbmuxd/usbmuxd.service
@@ -0,0 +1,5 @@
+[Unit]
+Description=iOS USB Muxer
+
+[Service]
+ExecStart=/usr/sbin/usbmuxd -u -f -U usbmux
diff --git a/abs/extra/vdpau-video/PKGBUILD b/abs/extra/vdpau-video/PKGBUILD
index b426e75..dcb8714 100644
--- a/abs/extra/vdpau-video/PKGBUILD
+++ b/abs/extra/vdpau-video/PKGBUILD
@@ -10,8 +10,9 @@ license=('GPL')
 depends=('libva' 'libvdpau')
 makedepends=('mesa')
 options=('!libtool')
-source=(http://www.splitted-desktop.com/~gbeauchesne/vdpau-video/${pkgname}-${pkgver}.tar.gz)
-md5sums=('18870e007ecdc50a528861fa55556364')
+#source=(http://www.splitted-desktop.com/~gbeauchesne/vdpau-video/${pkgname}-${pkgver}.tar.gz)
+source=(http://www.slackware.com/~alien/slackbuilds/vdpau-video/build/vdpau-video-0.7.3.tar.gz )
+
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
@@ -23,3 +24,4 @@ build() {
 # vim:set ts=2 sw=2 et:
 
 
+md5sums=('18870e007ecdc50a528861fa55556364')
diff --git a/abs/extra/vdpau-video/__changelog b/abs/extra/vdpau-video/__changelog
new file mode 100644
index 0000000..2ee9561
--- /dev/null
+++ b/abs/extra/vdpau-video/__changelog
@@ -0,0 +1 @@
+corrected url -jm
-- 
cgit v0.12

