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 = 0x02, ++ 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 = 0x02, +- 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 = 0x02, -+ 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 = 0x02, -- 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