diff options
author | Michael Hanson <mihanson@linhes.org> | 2012-04-14 05:13:05 (GMT) |
---|---|---|
committer | Michael Hanson <mihanson@linhes.org> | 2012-04-14 05:13:05 (GMT) |
commit | 5e96cb93d1f17a98a8f8a118b2659ea4d71d3f43 (patch) | |
tree | acde2ddc972337f648a826f3d961dcb8bebf892a /abs | |
parent | 8e721470713e6a5a164f1d7682b0d248cb87b03c (diff) | |
parent | 502a19b42d9df3fb3c3e521a37eebd20f9fbd984 (diff) | |
download | linhes_pkgbuild-5e96cb93d1f17a98a8f8a118b2659ea4d71d3f43.zip linhes_pkgbuild-5e96cb93d1f17a98a8f8a118b2659ea4d71d3f43.tar.gz linhes_pkgbuild-5e96cb93d1f17a98a8f8a118b2659ea4d71d3f43.tar.bz2 |
Merge branch 'testing' of linhes.org:linhes_pkgbuild into testing
Conflicts:
abs/extra/bluez/PKGBUILD
abs/extra/bluez/__changelog
Diffstat (limited to 'abs')
68 files changed, 6370 insertions, 630 deletions
diff --git a/abs/core/LinHES-config/PKGBUILD b/abs/core/LinHES-config/PKGBUILD index 1c26f9b..de71e5b 100644 --- a/abs/core/LinHES-config/PKGBUILD +++ b/abs/core/LinHES-config/PKGBUILD @@ -1,6 +1,6 @@ pkgname=LinHES-config pkgver=2.3 -pkgrel=61 +pkgrel=64 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev LinHes-config ) pkgdesc="Install and configure your system" depends=('bc' 'libstatgrab' 'mysql-python' 'expect' 'curl' 'dnsutils' 'parted' @@ -112,7 +112,7 @@ md5sums=('64fad755c12f8eb12940e216e403354e' '9ae8d79f620c6d19973c55c32a921874' '960017a34d9cc78af6298f45aad6eb8e' 'ecf9e5df20683a769c4a8a8f2d65de85' - 'eaf845dda830c531649d5840e0584f8e' + '6d32a88e76b0a97b0ce67d37ef6394aa' '5a1cbcf58855bbd93a5a18e6673aa2e6' '6aff504ed5e860adc1b7317cd0780900' '55fccb1da0417a896b724f7cfc32dd5a' @@ -125,7 +125,7 @@ md5sums=('64fad755c12f8eb12940e216e403354e' '5f3259afe031fda189edae41dd1458f0' 'dc150c1e2c915a55a616d1af5bb1f6de' 'b845de3e05c1734cce4b9ac5e8f1baaf' - '8f58093cc2bbf92c95e54090cf243117' + '03d866e4dc287d13734e35f4ebe15edb' '5e69839659d65ddda35b8a9982dc29e9' '62b4ce94277c32f525db5c1480670acd' 'ec6a9961e4d1b53ec1240c5979efff11' diff --git a/abs/core/LinHES-config/mv_ir.py b/abs/core/LinHES-config/mv_ir.py index 0e54f92..df6feb5 100755 --- a/abs/core/LinHES-config/mv_ir.py +++ b/abs/core/LinHES-config/mv_ir.py @@ -44,7 +44,7 @@ def setup_lirc_links(mythhome): else: logging.debug(" %s/.lircrc already present",mythhome) else: - logging.debug(" /etc/lircrc does not exisit, can not link it") + logging.debug(" /etc/lircrc does not exist, can not link it") def scrub_modules(filename,module): logging.debug(" scrubbing %s from %s",module,filename) @@ -92,6 +92,8 @@ def setup_ir_remote(Remotetype,templates,mythhome,HostBlasterType): mv_common.runcmd(cmd) cmd = "mv /etc/lircrc /etc/lircrc-%s" %currenttime mv_common.runcmd(cmd) + cmd = "mv /etc/remote.run /etc/remote.run-%s" %currenttime + mv_common.runcmd(cmd) if os.path.isdir(mythhome+"/remotes/"+Remotetype): @@ -113,6 +115,15 @@ def setup_ir_remote(Remotetype,templates,mythhome,HostBlasterType): logging.debug(" %s is a dir, skipping",filename) continue include_file("/etc/lircrc",filename) + files = mythhome + "/remotes/" + Remotetype + "/remote.run*" + logging.debug(" Using %s",files) + for filename in glob.glob(files): + # Ignore subfolders + if os.path.isdir (filename): + logging.debug(" %s is a dir, skipping",filename) + continue + cmd = "cp %s /etc/remote.run" %filename + mv_common.runcmd(cmd) else: #template dir files = templates + "/remotes/" + Remotetype + "/lircd*" @@ -131,9 +142,18 @@ def setup_ir_remote(Remotetype,templates,mythhome,HostBlasterType): logging.debug(" %s is a dir, skipping",filename) continue include_file("/etc/lircrc",filename) + files = templates + "/remotes/" + Remotetype + "/remote.run*" + logging.debug(" Using %s",files) + for filename in glob.glob(files): + # Ignore subfolders + if os.path.isdir (filename): + logging.debug(" %s is a dir, skipping",filename) + continue + cmd = "cp %s /etc/remote.run" %filename + mv_common.runcmd(cmd) - cmd = "chmod 755 /etc/lircrc" + cmd = "chmod 755 /etc/lircrc /etc/remote.run" mv_common.runcmd(cmd) mv_common.add_service("lircd") @@ -365,4 +385,4 @@ def setup_ir(systemconfig, data_config): else: logging.debug(" LCD not defined") logging.info("__End IR\n") - return rc
\ No newline at end of file + return rc diff --git a/abs/core/LinHES-config/soundconfig.sh b/abs/core/LinHES-config/soundconfig.sh index 5778cee..c268136 100755 --- a/abs/core/LinHES-config/soundconfig.sh +++ b/abs/core/LinHES-config/soundconfig.sh @@ -28,6 +28,9 @@ function load_alsa() { # echo " installing alsa-lib" #pacman -Sf --noconfirm alsa-lib + echo " uninstalling oss" + pacman -R --noconfirm oss + echo "triggering udev module load" depmod -a cd - > /dev/null diff --git a/abs/core/LinHES-system/PKGBUILD b/abs/core/LinHES-system/PKGBUILD index 1734865..f8baeaf 100644 --- a/abs/core/LinHES-system/PKGBUILD +++ b/abs/core/LinHES-system/PKGBUILD @@ -1,6 +1,6 @@ pkgname=LinHES-system pkgver=2 -pkgrel=37 +pkgrel=41 arch=('i686') MVDIR=$startdir/pkg/usr/LH BINDIR=$startdir/pkg/usr/bin @@ -11,7 +11,7 @@ backup=(etc/modprobe.d/alsa-base) binfiles="LinHES-start optimize_mythdb.py myth_mtc.py myth_mtc.sh LinHES-run firstboot.sh load-modules-mythvantage.sh - unclutter-toggle.sh tvterm.sh smolt.cron + unclutter-toggle.sh tvterm.sh mythfrontend-start set_windowmanager.sh myth_status.py myth_status.sh xmsg.py install_supplemental_service.sh @@ -19,9 +19,11 @@ binfiles="LinHES-start optimize_mythdb.py lh_system_restore_job lh_system_host_update lh_system_all_host_update - add_storage.py" + add_storage.py + diskspace.sh" -source=(LinHES-session LinHES-profile.sh $binfiles alsa-base myth_mtc.lr) +source=(LinHES-session LinHES-profile.sh $binfiles alsa-base myth_mtc.lr + diskspace smolt.cron) build() { cd $startdir/src @@ -45,6 +47,7 @@ build() { install -m644 -D $startdir/src/alsa-base $startdir/pkg/etc/modprobe.d/alsa-base.conf install -m755 -D $startdir/src/smolt.cron $startdir/pkg/etc/cron.weekly/smolt.cron + install -m755 -D $startdir/src/diskspace $startdir/pkg/etc/cron.tenminutes/diskspace mkdir $startdir/pkg/etc/logrotate.d cp $startdir/myth_mtc.lr $startdir/pkg/etc/logrotate.d } @@ -55,14 +58,13 @@ md5sums=('d6a564f3286590875874573107940908' 'd1f27cb422010077c841376526fe46ea' '2ef9f945e034119f77d9b6beb17e4fa5' '5c96527397a35519d72c78d6e3c8dbea' - '18a884a73344ff6eb74f63b49745e0f5' + '5e67a8b7ff57ec32d668bce7aab0aa6d' 'dc3eef2a624754e16805d72bbe488b67' 'dc0be354ce77ba2b89868fc29b942c43' '542e670e78d117657f93141e9689f54d' - 'abe887472a170bd1a8e6da6a7b7e93e4' '752488eb8bfb672ce0e4c924f7faf3d1' 'ba351b92e69bcaf26a9bf80417b09c3c' - '60219aab8a177c783d7a658d56683db4' + 'b41b08ea923d94b90d22f92e291ad9ee' '962a3e9eaba2d1466251b7ab0956705d' 'd03aedeeeda0f5e9c1eb437411c88477' '94ce8f1d5085c0db7b267db8c2e9a3ff' @@ -71,5 +73,8 @@ md5sums=('d6a564f3286590875874573107940908' '859a80ddb4c234506379c605114c1343' '47e093e8cfe4b5b96602358e1f540832' '6faeba0aeb38e772121f751cabda8683' + '68e3e87571f3b0fa4a48a10df50dc220' 'eb879fee9603a05d5420d4ce8ed9e450' - 'f1870a9522c79e6b248fcbf81dec3280') + 'f1870a9522c79e6b248fcbf81dec3280' + '84492954db16740f949d795b74383189' + 'abe887472a170bd1a8e6da6a7b7e93e4') diff --git a/abs/core/LinHES-system/diskspace b/abs/core/LinHES-system/diskspace new file mode 100755 index 0000000..ab3c91b --- /dev/null +++ b/abs/core/LinHES-system/diskspace @@ -0,0 +1,2 @@ +#!/bin/bash +/usr/bin/nice -n19 /usr/LH/bin/diskspace.sh -osd diff --git a/abs/core/LinHES-system/diskspace.sh b/abs/core/LinHES-system/diskspace.sh new file mode 100755 index 0000000..2173c6e --- /dev/null +++ b/abs/core/LinHES-system/diskspace.sh @@ -0,0 +1,81 @@ +#!/bin/sh +### Monitor free disk space +# Display alert if the free percentage of space is >= $ALERT + +# +# Static Config Variables +# +ALERT=90 # free space percentage to trigger an alert + +# +# Static Binary Paths +# +DF='/bin/df' +GREP='/bin/grep' +AWK='/bin/awk' +CUT='/bin/cut' +HOSTNAME='/bin/hostname' +DATE='/bin/date' +OSD_CAT='/usr/bin/osd_cat' +export DISPLAY=:0.0 +# +# Static System Variables +# +THIS_HOST=`${HOSTNAME}` + +# +# Check CLI Options +# +VERBOSE=false +OSD=false +for ARG in "$@" ; do + case $ARG in + "-v") + VERBOSE=true + ;; + "-osd") + OSD=true + ;; + esac +done + +#---------------------------------------------------------------------------- +. /etc/osd_cat.cfg || { + color=yellow + outline=2 + outlinecolour=black + shadow=0 + shadowcolour=black + font="-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*" +} +#---------------------------------------------------------------------------- + +[ $VERBOSE = true ] && echo "Checking free disk space on ${THIS_HOST}" +[ $VERBOSE = true ] && echo "Threshold for warning is ${ALERT}%" +[ $VERBOSE = true ] && echo "------------------------------------------------------------------" + +# Dynamic Variables +#DATE_STR=`${DATE} "+%d-%B-%y @ %H%Mhrs"` + +# Call df to find the used percentages. Grep for only local disks (not remote mounts like nfs or smb) +# Pipe the output to awk to get the needed columns, then start a while loop to process each line. +$DF -HPl | $GREP -E "^/dev/" | $AWK '{ print $5 " " $6 " " $1 }' | while read OUTPUT ; do + USED_PCENT=$(echo ${OUTPUT} | $AWK '{ print $1}' | $CUT -d'%' -f1 ) # Used space as a percentage + PARTITION=$(echo ${OUTPUT} | $AWK '{ print $2 }' ) # Mount Point (eg, /home) + DEVICE=$(echo ${OUTPUT} | $AWK '{ print $3 }' ) # Device (eg, /dev/sda1 or LABEL or UUID) + if [ $VERBOSE = true ] ; then + echo -e "Checking device ${DEVICE} which is mounted to ${PARTITION} \t${USED_PCENT}% used" + fi + if [ ${USED_PCENT} -ge $ALERT ]; then + if [ $VERBOSE = true ] ; then + echo "WARNING: ${PARTITION} (${DEVICE}) is ${USED_PCENT}% full on ${THIS_HOST}." + else + echo "WARNING: ${PARTITION} (${DEVICE}) is ${USED_PCENT}% full on ${THIS_HOST}." #| + if [ $OSD = true ] && [ ${PARTITION} = / ]; then + echo "WARNING: The root (${PARTITION}) partition is ${USED_PCENT}% full on ${THIS_HOST}." | $OSD_CAT --pos=top --offset=40 --align=center --delay=10 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font & + fi + fi + fi +done + +exit 0 diff --git a/abs/core/LinHES-system/firstboot.sh b/abs/core/LinHES-system/firstboot.sh index 7e2f603..8e3dc57 100755 --- a/abs/core/LinHES-system/firstboot.sh +++ b/abs/core/LinHES-system/firstboot.sh @@ -23,6 +23,26 @@ function try_smolt { } +function fix_lirc_socket { + . /etc/systemconfig + + # Fix LircSocket in mythtv database + SOCKET=`mysql -u mythtv -pmythtv -B --skip-column-names -h "${dbhost}" -D mythconverg -e \ + "SELECT data FROM settings WHERE value = 'LircSocket' AND hostname = '${hostname}';"` + if [ "${SOCKET}" != "/var/run/lirc/lircd" ]; then + mysql -u mythtv -pmythtv -B --skip-column-names -h "${dbhost}" -D mythconverg -e \ + "UPDATE settings SET data = '/var/run/lirc/lircd' WHERE value = 'LircSocket' AND hostname = '${hostname}';" + else + echo ">>>" + echo ">>> ATTENTION! ATTENTION! ATTENTION!" + echo ">>> Unable to connect the the MySQL database to make needed" + echo ">>> changes to the LIRC socket." + echo ">>> LIRC now uses /var/run/lirc/lircd and /dev/lirc is now" + echo ">>> obsolete. Update your MythTV settings to reflect this." + echo ">>>" + fi +} + if [ ! -e /tmp/debug ] then @@ -35,6 +55,7 @@ then fb_status=4 while [ $fb_status != 0 ] do + fix_lirc_socket try_smolt if [ $fb_status != 0 ] then diff --git a/abs/core/LinHES-system/myth_status.py b/abs/core/LinHES-system/myth_status.py index 4e44fd5..53d64d9 100644 --- a/abs/core/LinHES-system/myth_status.py +++ b/abs/core/LinHES-system/myth_status.py @@ -1,6 +1,6 @@ #!/usr/bin/python2 from MythTV import MythBE,MythDB,MythLog -import datetime,time,sys +import datetime,time,sys,subprocess try: be=MythBE() db = MythDB() @@ -12,6 +12,7 @@ cursor = db.cursor() now = datetime.datetime.now() farout=99999999 next_start_diff=datetime.timedelta(farout) +num_upcoming=12 def formatTD(td): #print td @@ -68,10 +69,15 @@ for i in a: print "" -print "Upcoming Recordings:" +print "Upcoming Recordings (Next %s scheduled):" %(num_upcoming) print "--------------------" a=be.getUpcomingRecordings() +r=0 for i in a: + r += 1 + if r > num_upcoming: + break + title_chan="%s (%s)" %(i.title, i.channame) print " %s - %s - %-50s " %(i.starttime,i.hostname, title_chan) #start_time=time.strptime(str(i.starttime), "%Y-%m-%d %H:%M:%S") @@ -101,5 +107,5 @@ else: ur=formatTD(next_start_diff) print "The next recording starts in:\n %s" %(ur) print "" - - +subprocess.call("/usr/LH/bin/diskspace.sh",shell=True) +print "" diff --git a/abs/core/linhes-scripts/PKGBUILD b/abs/core/linhes-scripts/PKGBUILD index 8b7bb1f..68a02ef 100644 --- a/abs/core/linhes-scripts/PKGBUILD +++ b/abs/core/linhes-scripts/PKGBUILD @@ -3,7 +3,7 @@ pkgname=linhes-scripts pkgver=7 -pkgrel=29 +pkgrel=33 pkgdesc="Various scripts that help to make LinHES, LinHES." arch=('i686' 'x86_64') license=('GPL2') @@ -34,7 +34,6 @@ run-limit-mythcommflag linhes_update.sh linhes_update2.sh linhes_update3.sh -install_hulu.sh update_schema_021_to_022.sh upgrade_linhes.sh remove_php_mythvideo.sh @@ -88,7 +87,6 @@ md5sums=('f56985b2d602e11dc1e10d3e7848b2a5' '9d077c24d102fa02e4f417d639d8b00a' '98979920c30bb48c02d00f6943e9e50e' '460861e6d0cf999629b734912eea0acf' - 'ccca6bdbbd86b203a3eecdbbe363e701' '65629302a4d2c3adf88cdf0ebc10d493' 'ab469714d77f3a29c7dda715e5ab98e0' '87b0dc855181f98516acb18a7d551601' @@ -103,4 +101,4 @@ md5sums=('f56985b2d602e11dc1e10d3e7848b2a5' '4b8671376fad6d76874508434d42fbfd' 'd8838461af9d446a1fd7e7883fdc75d1' 'cc9cdabcdfc969c2829b58c0e513488c' - 'cb16a30491c4352eb0eee11c2bca91f9') + 'acb72dfeda6f957bfdf4113a04fb91c0') diff --git a/abs/core/linhes-scripts/install_hulu.sh b/abs/core/linhes-scripts/install_hulu.sh deleted file mode 100644 index 9b06b2e..0000000 --- a/abs/core/linhes-scripts/install_hulu.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/bash -#install_hulu.sh -if [ -e /tmp/huludesktop_i386.deb ] -then -cd /tmp -deb2targz huludesktop_i386.deb -tar -xzvf huludesktop_i386.tar.gz -C / -else -echo "Cannot find huludesktop_i386.deb." -echo "Please download it from http://www.hulu.com/labs/hulu-desktop-linux" -echo "Then copy (or move) it to /tmp" -exit -fi -if grep -q Hulu /usr/share/mythtv/themes/defaultmenu/is.xml -then -echo "Hulu Desktop exist in Online Streams!" -else - mv /usr/share/mythtv/themes/defaultmenu/is.xml /tmp - grep -v -e /mythmenu /tmp/is.xml > /tmp/is.xml.tmp - echo "<!--#Hulu-->" >> /tmp/is.xml.tmp - echo " <button>" >> /tmp/is.xml.tmp - echo " <type>STREAM</type>" >> /tmp/is.xml.tmp - echo " <text>Hulu Desktop</text>" >> /tmp/is.xml.tmp - echo " <action>EXEC huludesktop</action>" >> /tmp/is.xml.tmp - echo " </button>" >> /tmp/is.xml.tmp - echo "<!--#Hulu-->" >> /tmp/is.xml.tmp - echo "" >> /tmp/is.xml.tmp - echo "</mythmenu>" >> /tmp/is.xml.tmp - mv /tmp/is.xml.tmp /usr/share/mythtv/themes/defaultmenu/is.xml -echo "Hulu Desktop has been added to Online Streams!" -fi -if [ -e /home/mythtv/.huludesktop ] -then -echo "Found existing Hulu configuration file." -else -cat >> /home/mythtv/.huludesktop << EOF -[display] -fullscreen = TRUE -width = 1024 -height = 576 -pos_x = 201 -pos_y = 179 - -[remote] -lirc_device = /dev/lircd -lirc_remote_identifier = mceusb -lirc_release_suffix = _UP -lirc_repeat_threshold = 10 -button_name_up = Up -button_name_down = Down -button_name_left = Left -button_name_right = Right -button_name_select = OK -button_name_menu = Home - -[flash] -flash_location = /usr/lib/mozilla/plugins/libflashplayer.so - -[screensaver] -suspend_script = /usr/bin/xscreensaver-command -deactivate -resume_script = /usr/bin/xscreensaver-command -activate - -[version] -latest = (null) -eula_version = 0 -EOF -chown mythtv.mythtv /home/mythtv/.huludesktop -fi -echo "Integration of Hulu Desktop is now complete!" -echo "Thanks for using LinHES!" diff --git a/abs/core/linhes-scripts/stop_xss.sh b/abs/core/linhes-scripts/stop_xss.sh index c600795..9d3772e 100644 --- a/abs/core/linhes-scripts/stop_xss.sh +++ b/abs/core/linhes-scripts/stop_xss.sh @@ -3,7 +3,7 @@ while [ 1=1 ]; do - if [ "$(pidof chromium)" -o "$(pidof huludesktop)" ] + if [ "$(pidof chromium)" -o "$(pidof huludesktop)" -o "$(pidof xbmc.bin)"] then xscreensaver-command -deactivate fi diff --git a/abs/core/runit-scripts/PKGBUILD b/abs/core/runit-scripts/PKGBUILD index 448af39..7e0a71c 100755 --- a/abs/core/runit-scripts/PKGBUILD +++ b/abs/core/runit-scripts/PKGBUILD @@ -1,6 +1,6 @@ pkgname=runit-scripts pkgver=2.1.1 -pkgrel=54 +pkgrel=56 pkgdesc="collection of startup scripts for runit" url="http://smarden.org/runit/" license="BSD" diff --git a/abs/core/runit-scripts/runitscripts/services/lircd/run b/abs/core/runit-scripts/runitscripts/services/lircd/run index c4053c1..93d9585 100755 --- a/abs/core/runit-scripts/runitscripts/services/lircd/run +++ b/abs/core/runit-scripts/runitscripts/services/lircd/run @@ -151,6 +151,7 @@ else fi elif [[ x$Remotetype = ximon* ]] then + /usr/bin/ir-keytable -c -p lirc -w /etc/rc_keymaps/imon_pad LCMD="/usr/sbin/lircd -r -n --driver devinput -d /dev/remotes/SoundGraph --output /var/run/lirc/lircd" exec $LCMD >>$LOG 2>>$LOG else diff --git a/abs/core/runit-scripts/runitscripts/services/remotes/finish b/abs/core/runit-scripts/runitscripts/services/remotes/finish new file mode 100755 index 0000000..ac04a33 --- /dev/null +++ b/abs/core/runit-scripts/runitscripts/services/remotes/finish @@ -0,0 +1,21 @@ +#!/bin/bash +export TERM=linux +. /etc/rc.conf +. /etc/rc.d/functions +. /usr/MythVantage/bin/install_functions.sh + +killall -9 lircd 2>/dev/null +rm -f /var/run/lirc*.pid +[ -e /etc/sv/remotes/.runtime ] || mkdir -p /etc/sv/remotes/.runtime +touch /etc/sv/remotes/.runtime/`date +%s` +numfiles=`/usr/bin/file_time_offset.py -s4 -d/etc/sv/remotes/.runtime ` +if [ $numfiles -gt 3 ] +then + rm -f /etc/sv/remotes/.runtime/* 2>/dev/null + sv stop remotes + printhl " remotes is not able to start, disabling it" +fi + + + +in_kernel_support "enable" diff --git a/abs/core/runit-scripts/runitscripts/services/remotes/run b/abs/core/runit-scripts/runitscripts/services/remotes/run new file mode 100755 index 0000000..d32b09e --- /dev/null +++ b/abs/core/runit-scripts/runitscripts/services/remotes/run @@ -0,0 +1,125 @@ +#!/bin/bash + +exec 2>&1 +export TERM=linux + +. /etc/rc.conf +. /etc/rc.d/functions +. /usr/MythVantage/bin/install_functions.sh + +LOG=/tmp/remotes.log + +if [ -f $LOG ] +then + rm -f $LOG +fi + + + + + +#What is done in this file may not be enough to start your specific remote +#If that is true of your remote place your remote startup commands in: +# /etc/remotes.sh +#Anything in that file will be used and the rest of this file is ignored + +if [ -f /etc/remotes.sh ] +then + #program must not terminate. + + stat_runit "Starting remotes from /etc/remotes.sh" + + /etc/remotes.sh +else + . /etc/systemconfig + stat_runit "Starting remotes" + + [ -e /etc/sv/remotes/.runtime ] || mkdir -p /etc/sv/remotes/.runtime + [ -e /var/run/lirc ] || mkdir -p /var/run/lirc + + num_lirc=`ls -la /dev/lirc[0-9] 2>/dev/null |wc -l ` + num_lirc=$((num_lirc-1)) + + serial_port="" + + if [ x$ReceiverType = xSerial ] + then + serial_port=$ReceiverSerialport + elif [ x$HostBlasterType = xSerial ] + then + serial_port=$HostSerialPort_blasterlirc + fi + + if [ -n "$serial_port" ] + then + #/dev/ttyS0 (COM1), port 0x3f8, irq 4 + #/dev/ttyS1 (COM2), port 0x2f8, irq 3 + #/dev/ttyS2 (COM3), port 0x3e8, irq 4 + #/dev/ttyS3 (COM4), port 0x2e8, irq 3 + + case $serial_port in + ttyS0) + FLAGS="io=0x3f8 irq=4" + ;; + ttyS1) + FLAGS="io=0x2f8 irq=3" + ;; + ttyS2) + FLAGS="io=0x3e8 irq=4" + ;; + ttyS3) + FLAGS="io=0x2e8 irq=3" + ;; + esac + /usr/bin/setserial /dev/$serial_port uart none + sleep 0.5 + /sbin/modprobe lirc_serial $FLAGS + sleep 0.5 + fi + + if [ x$HostBlasterType = xCommandIR -o x$ReceiverType = xCommandIR ] + then + CMD="/usr/sbin/lircd -r -n --driver=commandir" + printhl " Using commandir" + $CMD >>$LOG 2>>$LOG + #echo $CMD + elif [ x$HostBlasterType = xiguanaIR-usb -o x$ReceiverType = xiguanaIR-usb ] + then + sv start igdaemon + CMD="/usr/sbin/lircd -r -n --driver=iguanaIR" + printhl " Using iguanaIR usb" + #echo $CMD + $CMD >>$LOG 2>>$LOG + elif [ x$ReceiverType = "xSiliconDust_HDHR" ] + then + # if using the SiliconDust_HDHR as an I/R Receiver + printhl " Using SiliconDust on port 5000" + CMD="/usr/sbin/lircd -H udp -d 5000 -n" + exec $CMD >>$LOG 2>>$LOG + else + LASTCMD="" + + for i in `seq 1 $num_lirc` + do + CMD="/usr/sbin/lircd -r -d /dev/lirc$i --output=/var/run/lirc/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i" + printhl " Device $i" + #echo $CMD + $CMD >>$LOG 2>>$LOG + LASTCMD="--connect=localhost:876$i $LASTCMD " + done + + if [ -f /etc/remote.run ] + then + #program must not terminate. + + stat_runit "Starting remotes from /etc/remote.run" + + /etc/remote.run + else + in_kernel_support "disable" + LCMD="/usr/sbin/lircd -r -n -d /dev/lirc0 --output /var/run/lirc/lircd $LASTCMD" + #echo $LCMD + exec $LCMD >>$LOG 2>>$LOG + fi + fi +fi diff --git a/abs/core/system-templates/PKGBUILD b/abs/core/system-templates/PKGBUILD index 4f2a035..8a1df44 100755 --- a/abs/core/system-templates/PKGBUILD +++ b/abs/core/system-templates/PKGBUILD @@ -1,6 +1,6 @@ pkgname=system-templates pkgver=2.0 -pkgrel=10 +pkgrel=11 conflicts=( ) pkgdesc="Templates used for system configuration" depends=() diff --git a/abs/core/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/remote.run b/abs/core/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/remote.run new file mode 100644 index 0000000..1168696 --- /dev/null +++ b/abs/core/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/remote.run @@ -0,0 +1,3 @@ +#!/bin/bash + +/usr/sbin/lircd -r -n -d /dev/remotes/dvicoDualDigital4 --driver=devinput --output /var/run/lirc/lircd diff --git a/abs/core/system-templates/templates/remotes/dvico/remote.run b/abs/core/system-templates/templates/remotes/dvico/remote.run new file mode 100644 index 0000000..7721acd --- /dev/null +++ b/abs/core/system-templates/templates/remotes/dvico/remote.run @@ -0,0 +1,3 @@ +#!/bin/bash + +/usr/sbin/lircd -r -n -d /dev/remotes/dvicoIR --driver=dvico --output /var/run/lirc/lircd diff --git a/abs/core/system-templates/templates/remotes/imon-mce/lircd.conf.imon b/abs/core/system-templates/templates/remotes/imon-mce/lircd.conf.imon new file mode 100755 index 0000000..9b97ab1 --- /dev/null +++ b/abs/core/system-templates/templates/remotes/imon-mce/lircd.conf.imon @@ -0,0 +1,835 @@ +# generated by devinput.sh + +begin remote + + name devinput + bits 16 + eps 30 + aeps 100 + + one 0 0 + zero 0 0 + pre_data_bits 16 + pre_data 0x1 + post_data_bits 32 + post_data 0x1 + gap 132799 + toggle_bit_mask 0x0 + + begin codes + KEY_0 0x0200 + KEY_102ND 0x0056 + KEY_1 0x0201 + KEY_2 0x0202 + KEY_3 0x0203 + KEY_4 0x0204 + KEY_5 0x0205 + KEY_6 0x0206 + KEY_7 0x0207 + KEY_8 0x0208 + KEY_9 0x0209 + KEY_A 0x001E + KEY_AB 0x0196 + KEY_AGAIN 0x0081 + KEY_ALTERASE 0x00DE + KEY_ANGLE 0x0173 + KEY_APOSTROPHE 0x0028 + KEY_ARCHIVE 0x0169 + KEY_AUDIO 0x0188 + KEY_AUX 0x0186 + KEY_B 0x0030 + KEY_BACK 0x009E + KEY_BACKSLASH 0x002B + KEY_BACKSPACE 0x000E + KEY_BASSBOOST 0x00D1 + KEY_BATTERY 0x00EC + KEY_BLUE 0x0191 + KEY_BOOKMARKS 0x009C + KEY_BREAK 0x019B + KEY_BRIGHTNESSDOWN 0x00E0 + KEY_BRIGHTNESSUP 0x00E1 + KEY_BRL_DOT1 0x01F1 + KEY_BRL_DOT2 0x01F2 + KEY_BRL_DOT3 0x01F3 + KEY_BRL_DOT4 0x01F4 + KEY_BRL_DOT5 0x01F5 + KEY_BRL_DOT6 0x01F6 + KEY_BRL_DOT7 0x01F7 + KEY_BRL_DOT8 0x01F8 + KEY_C 0x002E + KEY_CALC 0x008C + KEY_CALENDAR 0x018D + KEY_CAMERA 0x00D4 + KEY_CANCEL 0x00DF + KEY_CAPSLOCK 0x003A + KEY_CD 0x017F + KEY_CHANNEL 0x016B + KEY_CHANNELDOWN 0x0193 + KEY_CHANNELUP 0x0192 + KEY_CHAT 0x00D8 + KEY_CLEAR 0x0163 + KEY_CLOSE 0x00CE + KEY_CLOSECD 0x00A0 + KEY_COFFEE 0x0098 + KEY_COMMA 0x0033 + KEY_COMPOSE 0x007F + KEY_COMPUTER 0x009D + KEY_CONFIG 0x00AB + KEY_CONNECT 0x00DA + KEY_COPY 0x0085 + KEY_CUT 0x0089 + KEY_CYCLEWINDOWS 0x009A + KEY_D 0x0020 + KEY_DEL_EOL 0x01C0 + KEY_DEL_EOS 0x01C1 + KEY_DELETE 0x006F + KEY_DELETEFILE 0x0092 + KEY_DEL_LINE 0x01C3 + KEY_DIGITS 0x019D + KEY_DIRECTION 0x0099 + KEY_DIRECTORY 0x018A + KEY_DOCUMENTS 0x00EB + KEY_DOT 0x0034 + KEY_DOWN 0x006C + KEY_DVD 0x0185 + KEY_E 0x0012 + KEY_EDIT 0x00B0 + KEY_EJECTCD 0x00A1 + KEY_EJECTCLOSECD 0x00A2 + KEY_EMAIL 0x00D7 + KEY_END 0x006B + KEY_ENTER 0x001C + KEY_EPG 0x016D + KEY_EQUAL 0x000D + KEY_ESC 0x0001 + KEY_EXIT 0x00AE + KEY_F10 0x0044 + KEY_F11 0x0057 + KEY_F12 0x0058 + KEY_F13 0x00B7 + KEY_F14 0x00B8 + KEY_F15 0x00B9 + KEY_F1 0x003B + KEY_F16 0x00BA + KEY_F17 0x00BB + KEY_F18 0x00BC + KEY_F19 0x00BD + KEY_F20 0x00BE + KEY_F21 0x00BF + KEY_F22 0x00C0 + KEY_F23 0x00C1 + KEY_F24 0x00C2 + KEY_F2 0x003C + KEY_F 0x0021 + KEY_F3 0x003D + KEY_F4 0x003E + KEY_F5 0x003F + KEY_F6 0x0040 + KEY_F7 0x0041 + KEY_F8 0x0042 + KEY_F9 0x0043 + KEY_FASTFORWARD 0x00D0 + KEY_FAVORITES 0x016C + KEY_FILE 0x0090 + KEY_FINANCE 0x00DB + KEY_FIND 0x0088 + KEY_FIRST 0x0194 + KEY_FN 0x01D0 + KEY_FN_1 0x01DE + KEY_FN_2 0x01DF + KEY_FN_B 0x01E4 + KEY_FN_D 0x01E0 + KEY_FN_E 0x01E1 + KEY_FN_ESC 0x01D1 + KEY_FN_F 0x01E2 + KEY_FN_F10 0x01DB + KEY_FN_F1 0x01D2 + KEY_FN_F11 0x01DC + KEY_FN_F12 0x01DD + KEY_FN_F2 0x01D3 + KEY_FN_F3 0x01D4 + KEY_FN_F4 0x01D5 + KEY_FN_F5 0x01D6 + KEY_FN_F6 0x01D7 + KEY_FN_F7 0x01D8 + KEY_FN_F8 0x01D9 + KEY_FN_F9 0x01DA + KEY_FN_S 0x01E3 + KEY_FORWARD 0x009F + KEY_FORWARDMAIL 0x00E9 + KEY_FRONT 0x0084 + KEY_G 0x0022 + KEY_GOTO 0x0162 + KEY_GRAVE 0x0029 + KEY_GREEN 0x018F + KEY_H 0x0023 + KEY_HANGEUL 0x007A + KEY_HANJA 0x007B + KEY_HELP 0x008A + KEY_HENKAN 0x005C + KEY_HIRAGANA 0x005B + KEY_HOME 0x0066 + KEY_HOMEPAGE 0x00AC + KEY_HP 0x00D3 + KEY_I 0x0017 + KEY_INFO 0x0166 + KEY_INSERT 0x006E + KEY_INS_LINE 0x01C2 + KEY_ISO 0x00AA + KEY_J 0x0024 + KEY_K 0x0025 + KEY_KATAKANA 0x005A + KEY_KATAKANAHIRAGANA 0x005D + KEY_KBDILLUMDOWN 0x00E5 + KEY_KBDILLUMTOGGLE 0x00E4 + KEY_KBDILLUMUP 0x00E6 + KEY_KEYBOARD 0x0176 + KEY_KP0 0x0052 + KEY_KP1 0x004F + KEY_KP2 0x0050 + KEY_KP3 0x0051 + KEY_KP4 0x004B + KEY_KP5 0x004C + KEY_KP6 0x004D + KEY_KP7 0x0047 + KEY_KP8 0x0048 + KEY_KP9 0x0049 + KEY_KPASTERISK 0x0037 + KEY_KPCOMMA 0x0079 + KEY_KPDOT 0x0053 + KEY_KPENTER 0x0060 + KEY_KPEQUAL 0x0075 + KEY_KPJPCOMMA 0x005F + KEY_KPLEFTPAREN 0x00B3 + KEY_KPMINUS 0x004A + KEY_KPPLUS 0x004E + KEY_KPPLUSMINUS 0x0076 + KEY_KPRIGHTPAREN 0x00B4 + KEY_KPSLASH 0x0062 + KEY_L 0x0026 + KEY_LANGUAGE 0x0170 + KEY_LAST 0x0195 + KEY_LEFT 0x0069 + KEY_LEFTALT 0x0038 + KEY_LEFTBRACE 0x001A + KEY_LEFTCTRL 0x001D + KEY_LEFTMETA 0x007D + KEY_LEFTSHIFT 0x002A + KEY_LINEFEED 0x0065 + KEY_LIST 0x018B + KEY_M 0x0032 + KEY_MACRO 0x0070 + KEY_MAIL 0x009B + KEY_MAX 0x01FF + KEY_MEDIA 0x00E2 + KEY_MEMO 0x018C + KEY_MENU 0x008B + KEY_MHP 0x016F + KEY_MINUS 0x000C + KEY_MODE 0x0175 + KEY_MOVE 0x00AF + KEY_MP3 0x0187 + KEY_MSDOS 0x0097 + KEY_MUHENKAN 0x005E + KEY_MUTE 0x0071 + KEY_N 0x0031 + KEY_NEW 0x00B5 + KEY_NEXT 0x0197 + KEY_NEXTSONG 0x00A3 + KEY_NUMLOCK 0x0045 + KEY_O 0x0018 + KEY_OK 0x0160 + KEY_OPEN 0x0086 + KEY_OPTION 0x0165 + KEY_P 0x0019 + KEY_PAGEDOWN 0x006D + KEY_PAGEUP 0x0068 + KEY_PASTE 0x0087 + KEY_PAUSE 0x0077 + KEY_PAUSECD 0x00C9 + KEY_PC 0x0178 + KEY_PHONE 0x00A9 + KEY_PLAY 0x00CF + KEY_PLAYCD 0x00C8 + KEY_PLAYER 0x0183 + KEY_PLAYPAUSE 0x00A4 + KEY_NUMERIC_POUND 0x020B + KEY_POWER 0x0074 + KEY_POWER2 0x0164 + KEY_PREVIOUS 0x019C + KEY_PREVIOUSSONG 0x00A5 + KEY_PRINT 0x00D2 + KEY_PROG1 0x0094 + KEY_PROG2 0x0095 + KEY_PROG3 0x00CA + KEY_PROG4 0x00CB + KEY_PROGRAM 0x016A + KEY_PROPS 0x0082 + KEY_PVR 0x016E + KEY_Q 0x0010 + KEY_QUESTION 0x00D6 + KEY_R 0x0013 + KEY_RADIO 0x0181 + KEY_RECORD 0x00A7 + KEY_RED 0x018E + KEY_REDO 0x00B6 + KEY_REFRESH 0x00AD + KEY_REPLY 0x00E8 + KEY_RESERVED 0x0000 + KEY_RESTART 0x0198 + KEY_REWIND 0x00A8 + KEY_RIGHT 0x006A + KEY_RIGHTALT 0x0064 + KEY_RIGHTBRACE 0x001B + KEY_RIGHTCTRL 0x0061 + KEY_RIGHTMETA 0x007E + KEY_RIGHTSHIFT 0x0036 + KEY_RO 0x0059 + KEY_S 0x001F + KEY_SAT 0x017D + KEY_SAT2 0x017E + KEY_SAVE 0x00EA + KEY_SCREEN 0x0177 + KEY_SCROLLDOWN 0x00B2 + KEY_SCROLLLOCK 0x0046 + KEY_SCROLLUP 0x00B1 + KEY_SEARCH 0x00D9 + KEY_SELECT 0x0161 + KEY_SEMICOLON 0x0027 + KEY_SEND 0x00E7 + KEY_SENDFILE 0x0091 + KEY_SETUP 0x008D + KEY_SHOP 0x00DD + KEY_SHUFFLE 0x019A + KEY_SLASH 0x0035 + KEY_SLEEP 0x008E + KEY_SLOW 0x0199 + KEY_SOUND 0x00D5 + KEY_SPACE 0x0039 + KEY_SPORT 0x00DC + KEY_STOP 0x0080 + KEY_STOPCD 0x00A6 + KEY_SUBTITLE 0x0172 + KEY_SUSPEND 0x00CD + KEY_SWITCHVIDEOMODE 0x00E3 + KEY_SYSRQ 0x0063 + KEY_T 0x0014 + KEY_TAB 0x000F + KEY_TAPE 0x0180 + KEY_TEEN 0x019E + KEY_TEXT 0x0184 + KEY_TIME 0x0167 + KEY_TITLE 0x0171 + KEY_TUNER 0x0182 + KEY_TV 0x0179 + KEY_TV2 0x017A + KEY_TWEN 0x019F + KEY_U 0x0016 + KEY_UNDO 0x0083 + KEY_UNKNOWN 0x00F0 + KEY_UP 0x0067 + KEY_V 0x002F + KEY_VCR 0x017B + KEY_VCR2 0x017C + KEY_VENDOR 0x0168 + KEY_VIDEO 0x0189 + KEY_VOLUMEDOWN 0x0072 + KEY_VOLUMEUP 0x0073 + KEY_W 0x0011 + KEY_WAKEUP 0x008F + KEY_WWW 0x0096 + KEY_X 0x002D + KEY_XFER 0x0093 + KEY_Y 0x0015 + KEY_YELLOW 0x0190 + KEY_YEN 0x007C + KEY_Z 0x002C + KEY_ZENKAKUHANKAKU 0x0055 + KEY_ZOOM 0x0174 + BTN_0 0x0100 + BTN_1 0x0101 + BTN_2 0x0102 + BTN_3 0x0103 + BTN_4 0x0104 + BTN_5 0x0105 + BTN_6 0x0106 + BTN_7 0x0107 + BTN_8 0x0108 + BTN_9 0x0109 + BTN_A 0x0130 + BTN_B 0x0131 + BTN_BACK 0x0116 + BTN_BASE 0x0126 + BTN_BASE2 0x0127 + BTN_BASE3 0x0128 + BTN_BASE4 0x0129 + BTN_BASE5 0x012A + BTN_BASE6 0x012B + BTN_C 0x0132 + BTN_DEAD 0x012F + BTN_DIGI 0x0140 + BTN_EXTRA 0x0114 + BTN_FORWARD 0x0115 + BTN_GAMEPAD 0x0130 + BTN_GEAR_DOWN 0x0150 + BTN_GEAR_UP 0x0151 + BTN_JOYSTICK 0x0120 + BTN_LEFT 0x0110 + BTN_MIDDLE 0x0112 + BTN_MISC 0x0100 + BTN_MODE 0x013C + BTN_MOUSE 0x0110 + BTN_PINKIE 0x0125 + BTN_RIGHT 0x0111 + BTN_SELECT 0x013A + BTN_SIDE 0x0113 + BTN_START 0x013B + BTN_STYLUS 0x014B + BTN_STYLUS2 0x014C + BTN_TASK 0x0117 + BTN_THUMB 0x0121 + BTN_THUMB2 0x0122 + BTN_THUMBL 0x013D + BTN_THUMBR 0x013E + BTN_TL 0x0136 + BTN_TL2 0x0138 + BTN_TOOL_AIRBRUSH 0x0144 + BTN_TOOL_BRUSH 0x0142 + BTN_TOOL_DOUBLETAP 0x014D + BTN_TOOL_FINGER 0x0145 + BTN_TOOL_LENS 0x0147 + BTN_TOOL_MOUSE 0x0146 + BTN_TOOL_PEN 0x0140 + BTN_TOOL_PENCIL 0x0143 + BTN_TOOL_RUBBER 0x0141 + BTN_TOOL_TRIPLETAP 0x014E + BTN_TOP 0x0123 + BTN_TOP2 0x0124 + BTN_TOUCH 0x014A + BTN_TR 0x0137 + BTN_TR2 0x0139 + BTN_TRIGGER 0x0120 + BTN_WHEEL 0x0150 + BTN_X 0x0133 + BTN_Y 0x0134 + BTN_Z 0x0135 + end codes + +end remote + +# generated by devinput.sh (obsolete 32 bit version) +begin remote + + name devinput + bits 16 + eps 30 + aeps 100 + + one 0 0 + zero 0 0 + pre_data_bits 16 + pre_data 0x8001 + gap 132799 + toggle_bit_mask 0x0 + + begin codes + KEY_0 0x0200 + KEY_102ND 0x0056 + KEY_1 0x0201 + KEY_2 0x0202 + KEY_3 0x0203 + KEY_4 0x0204 + KEY_5 0x0205 + KEY_6 0x0206 + KEY_7 0x0207 + KEY_8 0x0208 + KEY_9 0x0209 + KEY_A 0x001E + KEY_AB 0x0196 + KEY_AGAIN 0x0081 + KEY_ALTERASE 0x00DE + KEY_ANGLE 0x0173 + KEY_APOSTROPHE 0x0028 + KEY_ARCHIVE 0x0169 + KEY_AUDIO 0x0188 + KEY_AUX 0x0186 + KEY_B 0x0030 + KEY_BACK 0x009E + KEY_BACKSLASH 0x002B + KEY_BACKSPACE 0x000E + KEY_BASSBOOST 0x00D1 + KEY_BATTERY 0x00EC + KEY_BLUE 0x0191 + KEY_BOOKMARKS 0x009C + KEY_BREAK 0x019B + KEY_BRIGHTNESSDOWN 0x00E0 + KEY_BRIGHTNESSUP 0x00E1 + KEY_BRL_DOT1 0x01F1 + KEY_BRL_DOT2 0x01F2 + KEY_BRL_DOT3 0x01F3 + KEY_BRL_DOT4 0x01F4 + KEY_BRL_DOT5 0x01F5 + KEY_BRL_DOT6 0x01F6 + KEY_BRL_DOT7 0x01F7 + KEY_BRL_DOT8 0x01F8 + KEY_C 0x002E + KEY_CALC 0x008C + KEY_CALENDAR 0x018D + KEY_CAMERA 0x00D4 + KEY_CANCEL 0x00DF + KEY_CAPSLOCK 0x003A + KEY_CD 0x017F + KEY_CHANNEL 0x016B + KEY_CHANNELDOWN 0x0193 + KEY_CHANNELUP 0x0192 + KEY_CHAT 0x00D8 + KEY_CLEAR 0x0163 + KEY_CLOSE 0x00CE + KEY_CLOSECD 0x00A0 + KEY_COFFEE 0x0098 + KEY_COMMA 0x0033 + KEY_COMPOSE 0x007F + KEY_COMPUTER 0x009D + KEY_CONFIG 0x00AB + KEY_CONNECT 0x00DA + KEY_COPY 0x0085 + KEY_CUT 0x0089 + KEY_CYCLEWINDOWS 0x009A + KEY_D 0x0020 + KEY_DEL_EOL 0x01C0 + KEY_DEL_EOS 0x01C1 + KEY_DELETE 0x006F + KEY_DELETEFILE 0x0092 + KEY_DEL_LINE 0x01C3 + KEY_DIGITS 0x019D + KEY_DIRECTION 0x0099 + KEY_DIRECTORY 0x018A + KEY_DOCUMENTS 0x00EB + KEY_DOT 0x0034 + KEY_DOWN 0x006C + KEY_DVD 0x0185 + KEY_E 0x0012 + KEY_EDIT 0x00B0 + KEY_EJECTCD 0x00A1 + KEY_EJECTCLOSECD 0x00A2 + KEY_EMAIL 0x00D7 + KEY_END 0x006B + KEY_ENTER 0x001C + KEY_EPG 0x016D + KEY_EQUAL 0x000D + KEY_ESC 0x0001 + KEY_EXIT 0x00AE + KEY_F10 0x0044 + KEY_F11 0x0057 + KEY_F12 0x0058 + KEY_F13 0x00B7 + KEY_F14 0x00B8 + KEY_F15 0x00B9 + KEY_F1 0x003B + KEY_F16 0x00BA + KEY_F17 0x00BB + KEY_F18 0x00BC + KEY_F19 0x00BD + KEY_F20 0x00BE + KEY_F21 0x00BF + KEY_F22 0x00C0 + KEY_F23 0x00C1 + KEY_F24 0x00C2 + KEY_F2 0x003C + KEY_F 0x0021 + KEY_F3 0x003D + KEY_F4 0x003E + KEY_F5 0x003F + KEY_F6 0x0040 + KEY_F7 0x0041 + KEY_F8 0x0042 + KEY_F9 0x0043 + KEY_FASTFORWARD 0x00D0 + KEY_FAVORITES 0x016C + KEY_FILE 0x0090 + KEY_FINANCE 0x00DB + KEY_FIND 0x0088 + KEY_FIRST 0x0194 + KEY_FN 0x01D0 + KEY_FN_1 0x01DE + KEY_FN_2 0x01DF + KEY_FN_B 0x01E4 + KEY_FN_D 0x01E0 + KEY_FN_E 0x01E1 + KEY_FN_ESC 0x01D1 + KEY_FN_F 0x01E2 + KEY_FN_F10 0x01DB + KEY_FN_F1 0x01D2 + KEY_FN_F11 0x01DC + KEY_FN_F12 0x01DD + KEY_FN_F2 0x01D3 + KEY_FN_F3 0x01D4 + KEY_FN_F4 0x01D5 + KEY_FN_F5 0x01D6 + KEY_FN_F6 0x01D7 + KEY_FN_F7 0x01D8 + KEY_FN_F8 0x01D9 + KEY_FN_F9 0x01DA + KEY_FN_S 0x01E3 + KEY_FORWARD 0x009F + KEY_FORWARDMAIL 0x00E9 + KEY_FRONT 0x0084 + KEY_G 0x0022 + KEY_GOTO 0x0162 + KEY_GRAVE 0x0029 + KEY_GREEN 0x018F + KEY_H 0x0023 + KEY_HANGEUL 0x007A + KEY_HANJA 0x007B + KEY_HELP 0x008A + KEY_HENKAN 0x005C + KEY_HIRAGANA 0x005B + KEY_HOME 0x0066 + KEY_HOMEPAGE 0x00AC + KEY_HP 0x00D3 + KEY_I 0x0017 + KEY_INFO 0x0166 + KEY_INSERT 0x006E + KEY_INS_LINE 0x01C2 + KEY_ISO 0x00AA + KEY_J 0x0024 + KEY_K 0x0025 + KEY_KATAKANA 0x005A + KEY_KATAKANAHIRAGANA 0x005D + KEY_KBDILLUMDOWN 0x00E5 + KEY_KBDILLUMTOGGLE 0x00E4 + KEY_KBDILLUMUP 0x00E6 + KEY_KEYBOARD 0x0176 + KEY_KP0 0x0052 + KEY_KP1 0x004F + KEY_KP2 0x0050 + KEY_KP3 0x0051 + KEY_KP4 0x004B + KEY_KP5 0x004C + KEY_KP6 0x004D + KEY_KP7 0x0047 + KEY_KP8 0x0048 + KEY_KP9 0x0049 + KEY_KPASTERISK 0x0037 + KEY_KPCOMMA 0x0079 + KEY_KPDOT 0x0053 + KEY_KPENTER 0x0060 + KEY_KPEQUAL 0x0075 + KEY_KPJPCOMMA 0x005F + KEY_KPLEFTPAREN 0x00B3 + KEY_KPMINUS 0x004A + KEY_KPPLUS 0x004E + KEY_KPPLUSMINUS 0x0076 + KEY_KPRIGHTPAREN 0x00B4 + KEY_KPSLASH 0x0062 + KEY_L 0x0026 + KEY_LANGUAGE 0x0170 + KEY_LAST 0x0195 + KEY_LEFT 0x0069 + KEY_LEFTALT 0x0038 + KEY_LEFTBRACE 0x001A + KEY_LEFTCTRL 0x001D + KEY_LEFTMETA 0x007D + KEY_LEFTSHIFT 0x002A + KEY_LINEFEED 0x0065 + KEY_LIST 0x018B + KEY_M 0x0032 + KEY_MACRO 0x0070 + KEY_MAIL 0x009B + KEY_MAX 0x01FF + KEY_MEDIA 0x00E2 + KEY_MEMO 0x018C + KEY_MENU 0x008B + KEY_MHP 0x016F + KEY_MINUS 0x000C + KEY_MODE 0x0175 + KEY_MOVE 0x00AF + KEY_MP3 0x0187 + KEY_MSDOS 0x0097 + KEY_MUHENKAN 0x005E + KEY_MUTE 0x0071 + KEY_N 0x0031 + KEY_NEW 0x00B5 + KEY_NEXT 0x0197 + KEY_NEXTSONG 0x00A3 + KEY_NUMLOCK 0x0045 + KEY_NUMERIC_POUND 0x020B + KEY_O 0x0018 + KEY_OK 0x0160 + KEY_OPEN 0x0086 + KEY_OPTION 0x0165 + KEY_P 0x0019 + KEY_PAGEDOWN 0x006D + KEY_PAGEUP 0x0068 + KEY_PASTE 0x0087 + KEY_PAUSE 0x0077 + KEY_PAUSECD 0x00C9 + KEY_PC 0x0178 + KEY_PHONE 0x00A9 + KEY_PLAY 0x00CF + KEY_PLAYCD 0x00C8 + KEY_PLAYER 0x0183 + KEY_PLAYPAUSE 0x00A4 + KEY_POWER 0x0074 + KEY_POWER2 0x0164 + KEY_PREVIOUS 0x019C + KEY_PREVIOUSSONG 0x00A5 + KEY_PRINT 0x00D2 + KEY_PROG1 0x0094 + KEY_PROG2 0x0095 + KEY_PROG3 0x00CA + KEY_PROG4 0x00CB + KEY_PROGRAM 0x016A + KEY_PROPS 0x0082 + KEY_PVR 0x016E + KEY_Q 0x0010 + KEY_QUESTION 0x00D6 + KEY_R 0x0013 + KEY_RADIO 0x0181 + KEY_RECORD 0x00A7 + KEY_RED 0x018E + KEY_REDO 0x00B6 + KEY_REFRESH 0x00AD + KEY_REPLY 0x00E8 + KEY_RESERVED 0x0000 + KEY_RESTART 0x0198 + KEY_REWIND 0x00A8 + KEY_RIGHT 0x006A + KEY_RIGHTALT 0x0064 + KEY_RIGHTBRACE 0x001B + KEY_RIGHTCTRL 0x0061 + KEY_RIGHTMETA 0x007E + KEY_RIGHTSHIFT 0x0036 + KEY_RO 0x0059 + KEY_S 0x001F + KEY_SAT 0x017D + KEY_SAT2 0x017E + KEY_SAVE 0x00EA + KEY_SCREEN 0x0177 + KEY_SCROLLDOWN 0x00B2 + KEY_SCROLLLOCK 0x0046 + KEY_SCROLLUP 0x00B1 + KEY_SEARCH 0x00D9 + KEY_SELECT 0x0161 + KEY_SEMICOLON 0x0027 + KEY_SEND 0x00E7 + KEY_SENDFILE 0x0091 + KEY_SETUP 0x008D + KEY_SHOP 0x00DD + KEY_SHUFFLE 0x019A + KEY_SLASH 0x0035 + KEY_SLEEP 0x008E + KEY_SLOW 0x0199 + KEY_SOUND 0x00D5 + KEY_SPACE 0x0039 + KEY_SPORT 0x00DC + KEY_STOP 0x0080 + KEY_STOPCD 0x00A6 + KEY_SUBTITLE 0x0172 + KEY_SUSPEND 0x00CD + KEY_SWITCHVIDEOMODE 0x00E3 + KEY_SYSRQ 0x0063 + KEY_T 0x0014 + KEY_TAB 0x000F + KEY_TAPE 0x0180 + KEY_TEEN 0x019E + KEY_TEXT 0x0184 + KEY_TIME 0x0167 + KEY_TITLE 0x0171 + KEY_TUNER 0x0182 + KEY_TV 0x0179 + KEY_TV2 0x017A + KEY_TWEN 0x019F + KEY_U 0x0016 + KEY_UNDO 0x0083 + KEY_UNKNOWN 0x00F0 + KEY_UP 0x0067 + KEY_V 0x002F + KEY_VCR 0x017B + KEY_VCR2 0x017C + KEY_VENDOR 0x0168 + KEY_VIDEO 0x0189 + KEY_VOLUMEDOWN 0x0072 + KEY_VOLUMEUP 0x0073 + KEY_W 0x0011 + KEY_WAKEUP 0x008F + KEY_WWW 0x0096 + KEY_X 0x002D + KEY_XFER 0x0093 + KEY_Y 0x0015 + KEY_YELLOW 0x0190 + KEY_YEN 0x007C + KEY_Z 0x002C + KEY_ZENKAKUHANKAKU 0x0055 + KEY_ZOOM 0x0174 + BTN_0 0x0100 + BTN_1 0x0101 + BTN_2 0x0102 + BTN_3 0x0103 + BTN_4 0x0104 + BTN_5 0x0105 + BTN_6 0x0106 + BTN_7 0x0107 + BTN_8 0x0108 + BTN_9 0x0109 + BTN_A 0x0130 + BTN_B 0x0131 + BTN_BACK 0x0116 + BTN_BASE 0x0126 + BTN_BASE2 0x0127 + BTN_BASE3 0x0128 + BTN_BASE4 0x0129 + BTN_BASE5 0x012A + BTN_BASE6 0x012B + BTN_C 0x0132 + BTN_DEAD 0x012F + BTN_DIGI 0x0140 + BTN_EXTRA 0x0114 + BTN_FORWARD 0x0115 + BTN_GAMEPAD 0x0130 + BTN_GEAR_DOWN 0x0150 + BTN_GEAR_UP 0x0151 + BTN_JOYSTICK 0x0120 + BTN_LEFT 0x0110 + BTN_MIDDLE 0x0112 + BTN_MISC 0x0100 + BTN_MODE 0x013C + BTN_MOUSE 0x0110 + BTN_PINKIE 0x0125 + BTN_RIGHT 0x0111 + BTN_SELECT 0x013A + BTN_SIDE 0x0113 + BTN_START 0x013B + BTN_STYLUS 0x014B + BTN_STYLUS2 0x014C + BTN_TASK 0x0117 + BTN_THUMB 0x0121 + BTN_THUMB2 0x0122 + BTN_THUMBL 0x013D + BTN_THUMBR 0x013E + BTN_TL 0x0136 + BTN_TL2 0x0138 + BTN_TOOL_AIRBRUSH 0x0144 + BTN_TOOL_BRUSH 0x0142 + BTN_TOOL_DOUBLETAP 0x014D + BTN_TOOL_FINGER 0x0145 + BTN_TOOL_LENS 0x0147 + BTN_TOOL_MOUSE 0x0146 + BTN_TOOL_PEN 0x0140 + BTN_TOOL_PENCIL 0x0143 + BTN_TOOL_RUBBER 0x0141 + BTN_TOOL_TRIPLETAP 0x014E + BTN_TOP 0x0123 + BTN_TOP2 0x0124 + BTN_TOUCH 0x014A + BTN_TR 0x0137 + BTN_TR2 0x0139 + BTN_TRIGGER 0x0120 + BTN_WHEEL 0x0150 + BTN_X 0x0133 + BTN_Y 0x0134 + BTN_Z 0x0135 + end codes + +end remote + diff --git a/abs/core/system-templates/templates/remotes/imon-mce/lircrc b/abs/core/system-templates/templates/remotes/imon-mce/lircrc new file mode 100755 index 0000000..f16bfc3 --- /dev/null +++ b/abs/core/system-templates/templates/remotes/imon-mce/lircrc @@ -0,0 +1,922 @@ +# /home/mythtv/.mythtv/lircrc +# +# Media Center Edition Remote Control and Remote Control Keys on Media Center Keyboard +######################################################################################## +# For use with the USB MCE ir receiver +# MythTV LIRC config file for the mceusb2 or lirc_mod_mce module + +# Info about lircrc statment +#begin +# prog = ... Program controlled, irxevent, irexec, mythtv, mplayer, xine, or others +# remote = ... mceusb, or what ever you happen to have or want to call it +# button = ... remote keys names from your lircd.conf file +# repeat = ... repeat = 2 is fast, repeat = 4 is slower +# delay = ... delay before repeat, 1 is short, 4 is longer +# config = ... output key presses to key bindings editor +# mode = ... +# flags = ... +#end + + +# Updated January 30th 2008 BAK +# for the Knoppmyth project + +######################################################## irexec #################### +# the lirc irexec program must be running for this section + +# Will perform a complete shutdown +#begin +# prog = irexec +# button = Power +# config = /usr/bin/sudo halt +#end + +# Teletext = used as power down button +begin + prog = irexec + button = KEY_SUBTITLE + config = /usr/bin/sudo halt +# config = sudo /sbin/shutdown -h -t 0 now +end + + +# +################################################ Mythtv Section #################### +# MythTV Key Binding Editor location +# Mythtv Menu >>Utilities / Setup >>Edit Keys +# Key Bindings can also be found in Myth Web + +# Record +begin + prog = mythtv + button = KEY_RECORD + config = R +end + +# Stop +begin + prog = mythtv + button = KEY_STOP + config = Esc +end + +# Pause +begin + prog = mythtv + button = KEY_PAUSE + config = P +end + +# Rewind (while viewing) +begin + prog = mythtv + button = KEY_REWIND + repeat = 0 + delay = 1 + config = < +end + +# Fast forward (while viewing) +begin + prog = mythtv + button = KEY_FASTFORWARD + repeat = 0 + delay = 1 + config = > +end + +# Play +begin + prog = mythtv + button = KEY_PLAY + config = L +end + +# Skip backward (1 min default) +begin + prog = mythtv + button = KEY_PREVIOUS + repeat = 4 + delay = 4 + config = PgUp +end + +# Skip forward (1 min default) +begin + prog = mythtv + button = KEY_NEXT + repeat = 4 + delay = 4 + config = PgDown +end + +#<><><><><><><><><><><> Mythtv Control <><><><> + +# Escape/Exit/Back +begin + prog = mythtv + button = KEY_EXIT + config = Esc +end + +# Bring up OSD info +begin + prog = mythtv + button = KEY_INFO + config = I +end + +begin + prog = mythtv + button = KEY_LEFT + repeat = 3 + delay = 4 + config = Left +end + +begin + prog = mythtv + button = KEY_RIGHT + repeat = 3 + delay = 4 + config = Right +end + +begin + prog = mythtv + button = KEY_UP + repeat = 3 + delay = 4 + config = Up +end + +begin + prog = mythtv + button = KEY_DOWN + repeat = 3 + delay = 4 + config = Down +end + +# OK/Select +begin + prog = mythtv + button = KEY_OK + config = Return +end + +# The Start Button is really just a Menu key +begin + prog = mythtv + button = KEY_MEDIA + config = M +end + +#<><><><><><><><><><><><><><><> + +# Volume-Up +begin + prog = mythtv + button = KEY_VOLUMEUP + repeat = 2 + config = ] +end + +# Volume-Down +begin + prog = mythtv + button = VOLUMEDOWN + repeat = 2 + config = [ +end + +# Mute +begin + prog = mythtv + button = KEY_MUTE + config = | +end + +# Channel Up +begin + prog = mythtv + button = KEY_CHANNELUP + repeat = 3 +# delay = 1 + config = Up +end + +# Channel Down +begin + prog = mythtv + button = CHANNELDOWN + config = Down + repeat = 3 +# delay = 1 +end + +# Numbers 0-9 <><><><><><><><><><><> + +begin + prog = mythtv + button = KEY_1 +# repeat = 2 + config = 1 +end + +begin + prog = mythtv + button = KEY_2 +# repeat = 2 + config = 2 +end + +begin + prog = mythtv + button = KEY_3 +# repeat = 2 + config = 3 +end + +begin + prog = mythtv + button = KEY_4 +# repeat = 2 + config = 4 +end + +begin + prog = mythtv + button = KEY_5 +# repeat = 2 + config = 5 +end + +begin + prog = mythtv + button = KEY_6 +# repeat = 2 + config = 6 +end + +begin + prog = mythtv + button = KEY_7 +# repeat = 2 + config = 7 +end + +begin + prog = mythtv + button = KEY_8 +# repeat = 2 + config = 8 +End + +begin + prog = mythtv + button = KEY_9 +# repeat = 2 + config = 9 +end + +begin + prog = mythtv + button = KEY_0 +# repeat = 2 + config = 0 +end + +# Use Zoom for Aspect Ratio +begin + prog = mythtv + button = KEY_ZOOM + config = W +end + +#<><><><><><><><><><><><><><><><><><><><> +# Seek to previous commercial cut point +# or remove all cut points from the Editing Cutlist +begin + prog = mythtv + button = KEY_BLUE + config = Q +end + +# Seek to next commercial cut point +# or add commericial cut points to the Editing Cutlist +begin + prog = mythtv + button = KEY_NUMERIC_POUND + config = Z +end + +# Brings up the delete box +begin + prog = mythtv + button = KEY_DELETE + repeat = 0 + config = D +end + +# Toggle Editing Cutlist on or off +begin + prog = mythtv + button = KEY_ENTER + repeat = 0 + config = E +end + +#<><><><><><><><> Additional Remote Commands <><><><><><><><> +# All buttons in this section must be configured using +# MythTV's KeyBindings JumpPoints editor. +# >>> Utilities/ Setup >>> Edit Keys >>> JumpPoints >>> + +# Listen to Myth Music +begin + prog = mythtv + button = KEY_AUDIO + config = Ctrl+T +end + +# at this time connects to MythStreem +begin + prog = mythtv + button = KEY_RADIO + config = Ctrl+Alt+S +end + +# View Pictures +begin + prog = mythtv + button = KEY_CAMERA + config = Ctrl+G +end + +# Watch Videos +begin + prog = mythtv + button = KEY_VIDEO + config = Ctrl+V +end + +# Watch Live TV with Live TV Guide open +begin + prog = mythtv + button = KEY_TV + config = Ctrl+S +end + +# Watch Live TV +begin + prog = mythtv + button = KEY_GREEN + config = Ctrl+Alt+L +end + +# Recorded TV Programs +begin + prog = mythtv + button = KEY_PVR + config = Ctrl+R +end + +# Program Guide +begin + prog = mythtv + button = KEY_EPG + config = Ctrl+Alt+G +end + +# Play DVD +# There must be a disk in the DVD drive or it dos nothing +begin + prog = mythtv + button = KEY_DVD + config = Ctrl+Alt+D +end + +# unused key +#begin +# prog = mythtv +# button = Messenger +# config = Ctrl+Alt+A +#end + +# <><><><><><><><><><><><><> Teletext Buttons <><><><><><><><><><><> + +# Teletext = Show interactive MHEG screens +#begin +# prog = mythtv +# button = Teltext +# config = F7 +#end + +# Red = Red button for interactive screens. +begin + prog = mythtv + button = KEY_RED + config = F2 +end + +# Green = Green button for interactive screens. +begin + prog = mythtv + button = KEY_GREEN + config = F3 +end + +# Yellow = Yellow button for interactive screens. +begin + prog = mythtv + button = KEY_YELLOW + config = F4 +end + +# Blue = Blue button for interactive screens. +begin + prog = mythtv + button = KEY_BLUE + config = F5 +end +# +# +######################################################################### MPlayer Section ##### +# "mplayer -input keylist" Prints all keys that can be bound to commands. +# "mplayer -input cmdlist" Prints all commands that can be bound to keys +# "man mplayer" Prints documentation for MPlayer + +# Show OSD +begin + prog = mplayer + button = KEY_OK + config = osd +end + +# Pause playback +begin + prog = mplayer + button = KEY_PAUSE + config = pause +end + +# If paused, resume playing +begin + prog = mplayer + button = KEY_PLAY + config = pause +end + +# Stop playback and exit +begin + prog = mplayer + button = KEY_STOP + config = q +end + +# Exit playback +begin + prog = mplayer + button = KEY_EXIT + config = q +end + +# Subtitle +begin + prog = mplayer + button = KEY_TITLE + config = sub_visibility +end + +# Subtitle language +begin + prog = mplayer +# button = Language + button = KEY_BLUE + config = vobsub_lang +end + +# Audio language +begin + prog = mplayer + button = KEY_LANGUAGE + config = switch_audio +end + +# Volume-Up +begin + prog = mplayer + button = KEY_VOLUMEUP + repeat = 2 + config = volume +1 +end + +# Volume-Down +begin + prog = mplayer + button = KEY_VOLUMEDOWN + repeat = 2 + config = volume -1 +end + +# Mute +begin + prog = mplayer + button = KEY_MUTE + config = mute +end + +# Seek back 60 seconds +begin + prog = mplayer + button = KEY_LEFT + repeat = 2 + config = seek -60 +end + +# Seek forward 60 seconds +begin + prog = mplayer + button = KEY_RIGHT + repeat = 2 + config = seek +60 +end + +# Seek back 10 seconds +begin + prog = mplayer + button = KEY_REWIND + repeat = 2 + config = seek -10 +end + +# Seek forward 30 seconds +begin + prog = mplayer + button = KEY_FASTFORWARD + repeat = 2 + config = seek +30 +end + +# Quit +begin + prog = mplayer + button = KEY_EXIT + config = quit +end + +# Seek forward 10 minutes +begin + prog = mplayer + button = KEY_NEXT + repeat = 2 + config = seek +600 +end + +# Seek backward 10 minutes +begin + prog = mplayer + button = KEY_PREVIOUS + repeat = 2 + config = seek -600 +end + +# increase brightness +begin + button = KEY_CHANNELUP + prog = mplayer + repeat = 2 + config = brightness +1 +end + +# decrease brightness +begin + button = KEY_CHANNELDOWN + prog = mplayer + repeat = 2 + config = brightness -1 +end + +# Toggle full-screen +#begin +# prog = mplayer +# button = #??????????????????????????? +# repeat = 2 +# config = vo_fullscreen +#end + + +######################################################################## XINE Section ########## + +# For a compleate list of Xine's Lirc Keybindings use comand +# xine --keymap=lirc>.lircrc.xine.keybindings +# This creates a file in current directory called ".lircrc.xine.keybindings" +# Note: Xine has diferent sets of keybindings for lirc and keyboard + +## 01/14/2008 +# xine key bindings. +# Automatically generated by xine-ui version 0.99.6cvs. + +#<><><><><><><><><><> Xine Video Movement <><><><> + +# start playback +begin + prog = xine + button = KEY_PLAY + config = Play +end + +# playback pause toggle +begin + prog = xine + button = KEY_PAUSE + config = Pause +end + +# stop playback +begin + prog = xine + button = KEY_STOP + config = Stop +end + +# take a snapshot +#begin +# prog = xine +# button = Record +# repeat = 2 +# config = Snapshot +#end + +begin + prog = xine + button = KEY_FASTFORWARD + repeat = 2 +# delay = 1 + config = SeekRelative+7 +end + +begin + prog = xine + button = KEY_REWIND + repeat = 2 +# delay = 1 + config = SeekRelative-7 +end + +# set position to -60 seconds in current stream +begin + prog = xine + button = KEY_PREVIOUS + repeat = 2 + delay = 1 + config = SeekRelative-60 +end + +# set position to +60 seconds in current stream +begin + prog = xine + button = KEY_NEXT + repeat = 2 + delay = 1 + config = SeekRelative+60 +end +#<><><><><><><><><><><><>Xine Control<><><><><><><><><> + +# quit the program +begin + prog = xine + button = KEY_EXIT + config = Quit +end + +#display stream information using OSD +begin + prog = xine + button = KEY_INFO + config = OSDStreamInfos +end + +# menu navigate up +begin + prog = xine + button = KEY_UP + repeat = 2 + delay = 2 + config = EventUp +end + +# menu navigate down +begin + prog = xine + button = KEY_DOWN + repeat = 2 + delay = 2 + config = EventDown +end + +# menu navigate left +begin + prog = xine + button = KEY_LEFT + repeat = 2 + delay = 2 + config = EventLeft +end + +# menu navigate right +begin + prog = xine + button = KEY_RIGHT + repeat = 2 + delay = 2 + config = EventRight +end + +# menu select +begin + prog = xine + button = KEY_OK + config = EventSelect +end + +# jump to Root Menu +begin + prog = xine + button = KEY_MEDIA + config = Menu +end + +#<><><><><><><><><><><><><><><><><><><> Xine Volume / Channel <><><><><><><><> + +# increment audio volume +begin + prog = xine + button = KEY_VOLUMEUP + repeat = 1 + config = Volume+ +end + +# decrement audio volume +begin + prog = xine + button = KEY_VOLUMEDOWN + repeat = 1 + config = Volume- +end + +# audio muting toggle +begin + prog = xine + button = KEY_MUTE + config = Mute +end + +# increase brightness by 10 +begin + prog = xine + button = KEY_CHANNELUP + config = BrightnessControl+ +end + +# decrease brightness by 10 +begin + prog = xine + button = KEY_CHANNELDOWN + config = BrightnessControl- +end + +#<><><><><><><><><><><><><><><><><> Xine Menu <><><><> + +# unused key +#begin +# prog = xine +# button = RecordedTV +# config = ???????? +#end + +# visibility toggle of stream info window +begin + prog = xine + button = KEY_EPG + config = SetupShow +end + +# unused key +#begin +# prog = xine +# button = LiveTV +# config = ???????? +#end + +# jump to Title Menu +begin + prog = xine + button = KEY_DVD + config = RootMenu +end + +#<><><><><><><><><><><><><><><><><> Xine Stream Position <><><><> + +# set position in current stream + +begin + prog = xine + button = KEY_0 + config = SetPosition0% +end + +begin + prog = xine + button = KEY_1 + config = SetPosition10% +end + +begin + prog = xine + button = KEY_2 + config = SetPosition20% +end + +begin + prog = xine + button = KEY_3 + config = SetPosition30% +end + +begin + prog = xine + button = KEY_4 + config = SetPosition40% +end + +begin + prog = xine + button = KEY_5 + config = SetPosition50% +end + +begin + prog = xine + button = KEY_6 + config = SetPosition60% +end + +begin + prog = xine + button = KEY_7 + config = SetPosition70% +end + +begin + prog = xine + button = KEY_8 + config = SetPosition80% +end + +begin + prog = xine + button = KEY_9 + config = SetPosition90% +end + +#<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> + +# decrement playback speed (slow motion slowdown) +begin + prog = xine + button = KEY_BLUE + config = SpeedSlower +end + +# increment playback speed (slow motion speedup) +begin + prog = xine + button = KEY_NUMERIC_POUND + config = SpeedFaster +end + +# reset playback speed +begin + prog = xine + button = KEY_DELETE + config = SpeedReset +end + +# unused key +#begin +# prog = xine +# button = clear +# config = ????????? +#end + +# set position to -30 seconds in current stream config = SeekRelative-30 +# set position to +30 seconds in current stream config = SeekRelative+30 +# eject the current medium config = Eject +# zoom in config = ZoomIn +# zoom out config = ZoomOut +# fullscreen toggle config = ToggleFullscreen + +## +# End of xine . +## diff --git a/abs/core/system-templates/templates/remotes/imon-pad/preview.jpg b/abs/core/system-templates/templates/remotes/imon-mce/preview.jpg Binary files differindex a2e46a3..a2e46a3 100644 --- a/abs/core/system-templates/templates/remotes/imon-pad/preview.jpg +++ b/abs/core/system-templates/templates/remotes/imon-mce/preview.jpg diff --git a/abs/core/system-templates/templates/remotes/imon-mce/remote.run b/abs/core/system-templates/templates/remotes/imon-mce/remote.run new file mode 100755 index 0000000..b6052db --- /dev/null +++ b/abs/core/system-templates/templates/remotes/imon-mce/remote.run @@ -0,0 +1,4 @@ +#!/bin/bash + +/usr/bin/ir-keytable -c -p RC6 -w /etc/rc_keymaps/imon_mce +/usr/sbin/lircd -r -n --driver devinput -d /dev/remotes/SoundGraph --output /var/run/lirc/lircd diff --git a/abs/core/system-templates/templates/remotes/imon-pad/lircd.conf b/abs/core/system-templates/templates/remotes/imon-pad/lircd.conf deleted file mode 100644 index 97bbf4c..0000000 --- a/abs/core/system-templates/templates/remotes/imon-pad/lircd.conf +++ /dev/null @@ -1,88 +0,0 @@ -# Please make this file available to others
-# by sending it to <lirc@bartelmus.de>
-#
-# this config file was automatically generated
-# using lirc-0.8.0(imon_pad) on Mon Jan 23 20:22:11 2006 -#
-# contributed by M.Brakemeier -#
-# brand: SoundGraph -# model no. of remote control: iMON-PAD
-# devices being controlled by this remote:
-#
-
-begin remote
-
- name iMON-PAD
- bits 32
- eps 30
- aeps 100
-
- one 0 0
- zero 0 0
- gap 235965
- min_repeat 1
- toggle_bit 0
-
- begin codes
- AppExit 0x288195B7
- Power 0x289115B7 - Record 0x298115B7
- Play 0x2A8115B7
- Open 0x29B1d5B7 - Rewind 0x2A8195B7
- Pause 0x2A9115B7
- FastForward 0x2B8115B7
- PrevChapter 0x2B9115B7
- Stop 0x2B9715B7
- NextChapter 0x298195B7
- Esc 0x2BB715B7
- Eject 0x299395B7
- AppLauncher 0x29B715B7
- MultiMon 0x2AB195B7
- TaskSwitcher 0x2A9395B7
- Mute 0x2B9595B7
- Vol+ 0x28A395B7
- Vol- 0x28A595B7
- Ch+ 0x289395B7
- Ch- 0x288795B7
- Timer 0x2B8395B7
- 1 0x28B595B7
- 2 0x2BB195B7
- 3 0x28B195B7
- 4 0x2A8595B7
- 5 0x299595B7
- 6 0x2AA595B7
- 7 0x2B9395B7
- 8 0x2A8515B7
- 9 0x2AA115B7
- 0 0x2BA595B7
- ShiftTab 0x28B515B7
- Tab 0x29A115B7
- Red 0x2B8515B7 # MyMovie - Green 0x299195B7 # MyMusic - Blue 0x2BA115B7 # MyPhoto - Yellow 0x28A515B7 # MyTV - Bookmark 0x288515B7
- Thumbnail 0x2AB715B7
- AspectRatio 0x29A595B7
- FullScreen 0x2AA395B7
- Purple 0x29A295B7 # MyDVD - Menu 0x2BA385B7
- Caption 0x298595B7
- Language 0x2B8595B7
- MouseKeyboard 0x299115B7
- SelectSpace 0x2A9315B7
- MouseMenu 0x28B715B7
- MouseRightClick 0x688481B7
- Enter 0x28A195B7
- MouseLeftClick 0x688301B7
- WindowsKey 0x2B8195B7
- Backspace 0x28A115B7
- Mouse_N 0x690281B7 - Mouse_S 0x688291B7 - Mouse_W 0x6A8281B7 - Mouse_E 0x688A81B7 - end codes
-
-end remote
diff --git a/abs/core/system-templates/templates/remotes/imon-pad/lircrc b/abs/core/system-templates/templates/remotes/imon-pad/lircrc deleted file mode 100644 index 3ad34d8..0000000 --- a/abs/core/system-templates/templates/remotes/imon-pad/lircrc +++ /dev/null @@ -1,240 +0,0 @@ -################################### -# lircrc config as used by Stev391 June 2007 -# Not all of the buttons are configured yet, only the commonly used buttons -################################### - -# Escape -begin - prog = mythtv - button = AppExit - config = Esc - repeat = 3 -end - -# Escape Key 2 -begin - prog = mythtv - button = Esc - config = Esc -end - -# Channel Up -begin - prog = mythtv - button = Ch+ - config = Up - repeat = 3 -end - -# Channel Down -begin - prog = mythtv - button = Ch- - config = Down - repeat = 3 -end - -# Volume Up -begin - prog = mythtv - button = Vol+ - repeat = 3 - config = Right -end - -# Volume Down -begin - prog = mythtv - button = Vol- - repeat = 3 - config = Left -end - -# Enter/Return -begin - prog = mythtv - button = Enter - config = Return -end - -# Menu Button -begin - prog = mythtv - button = Menu - config = M -end - -# Mute -begin - prog = mythtv - button = Mute - config = F9 -end - -# Rewind -begin - prog = mythtv - button = Rewind - config = PgUp -end - -# Fast Forward -begin - prog = mythtv - button = FastForward - config = PgDown -end - -# Play -begin - prog = mythtv - button = Play - config = P -end - -# Pause -begin - prog = mythtv - button = Pause - config = P -end - -# Record -begin - prog = mythtv - button = Record - config = R -end - -# Stop -begin - prog = mythtv - button = Stop - config = O -end - -# Previous Track/Chapter -begin - prog = mythtv - button = PrevChapter - config = Home -end - -# Next Track/Chapter -begin - prog = mythtv - button = NextChapter - config = End -end - -# Jump Point to MythVideo -begin - prog = mythtv - button = MyMovie - config = F12 -end - -# Jump Point to MythMusic -begin - prog = mythtv - button = MyMusic - config = F11 -end - -# Jump Point to LiveTV -begin - prog = mythtv - button = MyTV - config = F10 -end - -# Jump Point to Main Menu -begin - prog = mythtv - button = Multimon - config = F2 -end - -# Jump Point to Myth Gallery -begin - prog = mythtv - button = MyPhoto - config = F3 -end - -# Jump Point to Play DVD -begin - prog = mythtv - button = MyDVD - config = F4 -end - -# Display Information -begin - prog = mythtv - button = Caption - config = I -end - -############################## -# Numbers -############################## -begin - prog = mythtv - button = 0 - config = 0 -end - -begin - prog = mythtv - button = 1 - config = 1 -end - -begin - prog = mythtv - button = 2 - config = 2 -end - -begin - prog = mythtv - button = 3 - config = 3 -end - -begin - prog = mythtv - button = 4 - config = 4 -end - -begin - prog = mythtv - button = 5 - config = 5 -end - -begin - prog = mythtv - button = 6 - config = 6 -end - -begin - prog = mythtv - button = 7 - config = 7 -end - -begin - prog = mythtv - button = 8 - config = 8 -end - -begin - prog = mythtv - button = 9 - config = 9 -end diff --git a/abs/core/system-templates/templates/remotes/imon/remote.run b/abs/core/system-templates/templates/remotes/imon/remote.run new file mode 100755 index 0000000..9d0ab2e --- /dev/null +++ b/abs/core/system-templates/templates/remotes/imon/remote.run @@ -0,0 +1,4 @@ +#!/bin/bash + +/usr/bin/ir-keytable -c -p lirc -w /etc/rc_keymaps/imon_pad +/usr/sbin/lircd -r -n --driver devinput -d /dev/remotes/SoundGraph --output /var/run/lirc/lircd diff --git a/abs/core/v4l-dvb/PKGBUILD b/abs/core/v4l-dvb/PKGBUILD index 4463335..36e4609 100644 --- a/abs/core/v4l-dvb/PKGBUILD +++ b/abs/core/v4l-dvb/PKGBUILD @@ -2,9 +2,9 @@ pkgname=v4l-dvb _kernver=`uname -r` -pkgver=20120113 -pkgrel=2 -pkgdesc="V4L-DVB device drivers (newer than those included in kernel)" +pkgver=20120407 +pkgrel=1 +pkgdesc="V4L-DVB device drivers (newer than those included in kernel26)" arch=('i686' 'x86_64') url="http://linuxtv.org/" license=('GPL2') diff --git a/abs/core/v4l-dvb/v4l-dvb.install b/abs/core/v4l-dvb/v4l-dvb.install index 8fb315c..ec6382d 100644 --- a/abs/core/v4l-dvb/v4l-dvb.install +++ b/abs/core/v4l-dvb/v4l-dvb.install @@ -1,10 +1,18 @@ post_install() { + echo ">>> Removing duplicate compressed kernel modules..." + for file in `find /lib/modules -name "*.ko"`; do if [[ -e $file.gz ]]; then rm "$file.gz"; fi; done echo ">>> Running depmod..." depmod } post_upgrade() { + echo ">>> Removing duplicate compressed kernel modules..." + for file in `find /lib/modules -name "*.ko"`; do if [[ -e $file.gz ]]; then rm "$file.gz"; fi; done echo ">>> Running depmod..." depmod } +post_remove() { + echo ">>> v4l-dvb has been removed" + echo ">>> kernel26 & dvb-firmware & linux-firmware should be reinstalled" +} diff --git a/abs/core/xorg-xdpyinfo/PKGBUILD b/abs/core/xorg-xdpyinfo/PKGBUILD new file mode 100644 index 0000000..9ee844a --- /dev/null +++ b/abs/core/xorg-xdpyinfo/PKGBUILD @@ -0,0 +1,24 @@ +# $Id$ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xorg-xdpyinfo +pkgver=1.3.0 +pkgrel=1 +pkgdesc="Display information utility for X" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('libx11' 'libxext' 'libxtst' 'libxxf86vm' 'libxxf86dga' 'libxrender' 'libxcomposite' 'libxinerama' 'libdmx') +makedepends=('xorg-util-macros') +groups=('xorg-apps' 'xorg') +source=(http://xorg.freedesktop.org/archive/individual/app/xdpyinfo-${pkgver}.tar.bz2) +sha256sums=('23ee4944a32b5701b4379cb420729eb7a4dde54de2b5b006d4747855efd6d73f') + +build() { + cd "${srcdir}/xdpyinfo-${pkgver}" + ./configure --prefix=/usr + make + make DESTDIR="${pkgdir}" install + install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" + install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/extra/bluez/PKGBUILD b/abs/extra/bluez/PKGBUILD deleted file mode 100644 index bfc7e25..0000000 --- a/abs/extra/bluez/PKGBUILD +++ /dev/null @@ -1,78 +0,0 @@ -# Maintainer: Geoffroy Carrier <geoffroy@archlinux.org> -pkgname=bluez -pkgver=4.99 -pkgrel=3 -pkgdesc="Libraries and tools for the Bluetooth protocol stack" -url="http://www.bluez.org/" -arch=('i686' 'x86_64') -license=('GPL2') -depends=('dbus-core') -makedepends=('gstreamer0.10-base' 'libusb-compat' 'libnl' 'libsndfile') -optdepends=("gstreamer0.10-base: bluetooth GStreamer support" - "alsa-lib: Audio bluetooth devices support" - "dbus-python: to run bluez-simple-agent" - "pygobject: to run bluez-simple-agent" - "libusb-compat: USB adapters support" - "libnl: netlink plugin") -conflicts=('bluez-libs' 'bluez-utils') -provides=('bluez-libs' 'bluez-utils') -replaces=('bluez-libs' 'bluez-utils') -options=('!libtool') -backup=(etc/bluetooth/{main,rfcomm,audio,network,input,serial}.conf - 'etc/conf.d/bluetooth' 'etc/dbus-1/system.d/bluetooth.conf') -install='bluez.install' -source=("http://www.kernel.org/pub/linux/bluetooth/$pkgname-$pkgver.tar.bz2" - 'bluez-4.98_audio-streaming.patch' - 'bluetooth.conf.d') - -build() { - cd "$srcdir/$pkgname-$pkgver" - - # Add directive that allows audio streaming out-of-the-box - patch -Np1 -i ${srcdir}/bluez-4.98_audio-streaming.patch || return 1 - - ./configure --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --libexecdir=/lib \ - --enable-gstreamer \ - --enable-alsa \ - --enable-usb \ - --enable-tools \ - --enable-bccmd \ - --enable-dfutool \ - --enable-hidd \ - --enable-pand \ - --enable-dund \ - --enable-wiimote \ - --disable-test \ - --disable-cups || return 1 - - make || return 1 -} - -package() { - cd "$srcdir/$pkgname-$pkgver" - make DESTDIR="$pkgdir" install || return 1 - - install -d ${pkgdir}/etc/bluetooth - install -m644 network/network.conf \ - input/input.conf \ - audio/audio.conf \ - serial/serial.conf \ - ${pkgdir}/etc/bluetooth/ - - install -D -m644 "$srcdir/bluetooth.conf.d" \ - "$pkgdir/etc/conf.d/bluetooth" || return 1 - - install -Dm755 test/simple-agent ${pkgdir}/usr/bin/bluez-simple-agent - install -Dm755 test/test-device "${pkgdir}"/usr/bin/bluez-test-device - install -Dm755 test/test-input "${pkgdir}"/usr/bin/bluez-test-input - sed -i 's#/usr/bin/python#/usr/bin/python2#' \ - ${pkgdir}/usr/bin/bluez-simple-agent \ - ${pkgdir}/usr/bin/bluez-test-device \ - ${pkgdir}/usr/bin/bluez-test-input -} -md5sums=('2387053eb5a7b02f37df4871df022a02' - 'da4ec22ee1a5c3e84d5d934440167526' - 'd12be5b494525bb1ba6eac5c3983dd3e') diff --git a/abs/extra/bluez/__changelog b/abs/extra/bluez/__changelog deleted file mode 100644 index 7627514..0000000 --- a/abs/extra/bluez/__changelog +++ /dev/null @@ -1,14 +0,0 @@ -# by mihanson -I really have no idea how this bluetooth stuff works. If anyone wants to -take a stab at getting this working properly with runit, feel free. I -only need this package to get mythpywii working. - -2010-04-01: -Make this package work with runit. All daemons were seperated into their -own run scripts. Of particular interest is rfcomm and hid2hci utilities. -They are not daemons and I added "/sbin/sv <executable> down ." in their -respective run files. All based on this thread: -http://article.gmane.org/gmane.comp.sysutils.supervision.general/1585/ - -2012-04-13 -disable cups diff --git a/abs/extra/bluez/bluetooth.conf.d b/abs/extra/bluez/bluetooth.conf.d index 8f25ef4..1c1e025 100644 --- a/abs/extra/bluez/bluetooth.conf.d +++ b/abs/extra/bluez/bluetooth.conf.d @@ -5,9 +5,6 @@ # Run the bluetoothd daemon (default: true) #DAEMON_ENABLE="false" -# Run hid2hci (default: false) -#HID2HCI_ENABLE="true" - # Run the sdp daemon (default: false) # If this is disabled, hcid's internal sdp daemon will be used #SDPD_ENABLE="true" @@ -28,6 +25,6 @@ #RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf" # Options for hidd, dund and pand (default: none) -#HIDD_OPTIONS="" +HIDD_OPTIONS="--server" #DUND_OPTIONS="" #PAND_OPTIONS="" diff --git a/abs/extra/community/afpfs-ng/01-gcrypt.patch b/abs/extra/community/afpfs-ng/01-gcrypt.patch new file mode 100644 index 0000000..7bcace2 --- /dev/null +++ b/abs/extra/community/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/community/afpfs-ng/02-pointer.patch b/abs/extra/community/afpfs-ng/02-pointer.patch new file mode 100644 index 0000000..80507b5 --- /dev/null +++ b/abs/extra/community/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/community/afpfs-ng/10-fix-errno.patch b/abs/extra/community/afpfs-ng/10-fix-errno.patch new file mode 100644 index 0000000..ff7ce44 --- /dev/null +++ b/abs/extra/community/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/community/afpfs-ng/20-build-error-fixes.patch b/abs/extra/community/afpfs-ng/20-build-error-fixes.patch new file mode 100644 index 0000000..303e264 --- /dev/null +++ b/abs/extra/community/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/community/afpfs-ng/21-header-path-fix.patch b/abs/extra/community/afpfs-ng/21-header-path-fix.patch new file mode 100644 index 0000000..fe79b1f --- /dev/null +++ b/abs/extra/community/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/community/afpfs-ng/30-include-fixes.patch b/abs/extra/community/afpfs-ng/30-include-fixes.patch new file mode 100644 index 0000000..de4f883 --- /dev/null +++ b/abs/extra/community/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/community/afpfs-ng/PKGBUILD b/abs/extra/community/afpfs-ng/PKGBUILD new file mode 100644 index 0000000..4538db9 --- /dev/null +++ b/abs/extra/community/afpfs-ng/PKGBUILD @@ -0,0 +1,66 @@ +# $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 new file mode 100644 index 0000000..f507a48 --- /dev/null +++ b/abs/extra/community/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/flashplugin/PKGBUILD b/abs/extra/community/flashplugin/PKGBUILD index 53ded26..92a7caa 100644 --- a/abs/extra/community/flashplugin/PKGBUILD +++ b/abs/extra/community/flashplugin/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 150281 2012-02-16 09:18:00Z ibiru $ +# $Id$ # Maintainer : Ionut Biru <ibiru@archlinux.org> # Contributor: Andrea Scarpino <andrea@archlinux.org> pkgname=flashplugin _licensefile='PlatformClients_PC_WWEULA_Combined_20100108_1657.pdf' -pkgver=11.1.102.62 +pkgver=11.2.202.228 pkgrel=1 pkgdesc='Adobe Flash Player' url='http://get.adobe.com/flashplayer' @@ -21,14 +21,14 @@ if [ "$CARCH" = "i686" ]; then source=("http://fpdownload.macromedia.com/get/flashplayer/pdc/$pkgver/install_flash_player_11_linux.i386.tar.gz" "http://www.adobe.com/products/eulas/pdfs/${_licensefile}" mms.cfg) - md5sums=('c73d490e552e92016d53247a869ce64b' + md5sums=('174a9e778a11559d65f66290b16e2088' '94ca2aecb409abfe36494d1a7ec7591d' 'f34aae6279b40e0bd2abfb0d9963d7b8') elif [ "$CARCH" = "x86_64" ]; then source=("http://fpdownload.macromedia.com/get/flashplayer/pdc/$pkgver/install_flash_player_11_linux.x86_64.tar.gz" "http://www.adobe.com/products/eulas/pdfs/${_licensefile}" mms.cfg) - md5sums=('76be6fe21f68684c19ccee138a42fff9' + md5sums=('01e4ddb6e87ea8439f4955e83422f82e' '94ca2aecb409abfe36494d1a7ec7591d' 'f34aae6279b40e0bd2abfb0d9963d7b8') fi @@ -51,6 +51,6 @@ package () { install -Dm644 "${_licensefile}" "$pkgdir/usr/share/licenses/$pkgname/LICENSE.pdf" install -Dm644 "$srcdir/mms.cfg" "$pkgdir/etc/adobe/mms.cfg" } -md5sums=('c73d490e552e92016d53247a869ce64b' +md5sums=('174a9e778a11559d65f66290b16e2088' '94ca2aecb409abfe36494d1a7ec7591d' 'f34aae6279b40e0bd2abfb0d9963d7b8') diff --git a/abs/extra/community/libcec/PKGBUILD b/abs/extra/community/libcec/PKGBUILD new file mode 100644 index 0000000..e4b9821 --- /dev/null +++ b/abs/extra/community/libcec/PKGBUILD @@ -0,0 +1,30 @@ +# $Id$ +# Maintainer: BlackIkeEagle <ike DOT devolder AT gmail DOT com> +# Contributor: Philippe Cherel <philippe.cherel@mayenne.org> + +pkgname=libcec +pkgver=1.5.2 +pkgrel=1 +pkgdesc="Pulse-Eight's libcec for the Pulse-Eight USB-CEC adapter" +arch=('i686' 'x86_64') +url="https://github.com/Pulse-Eight/libcec" +license=('GPL') +depends=('udev') +source=("$pkgname-$pkgver.tar.gz::https://github.com/Pulse-Eight/libcec/tarball/$pkgname-$pkgver") +_srcfolder=Pulse-Eight-libcec-00a02d1 +sha256sums=('93990024d01da7c66e2c78ca23919fd83137f6b944a2dc82fb5cc6d58a46742f') +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/libnfs/PKGBUILD b/abs/extra/community/libnfs/PKGBUILD new file mode 100644 index 0000000..687a416 --- /dev/null +++ b/abs/extra/community/libnfs/PKGBUILD @@ -0,0 +1,30 @@ +# $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 new file mode 100644 index 0000000..293e1cc --- /dev/null +++ b/abs/extra/community/libshairport/PKGBUILD @@ -0,0 +1,33 @@ +# $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/community/yajl/PKGBUILD b/abs/extra/community/yajl/PKGBUILD new file mode 100644 index 0000000..8cd9121 --- /dev/null +++ b/abs/extra/community/yajl/PKGBUILD @@ -0,0 +1,33 @@ +# Maintainer: Dave Reisner <d@falconindy.com> +# Contributor: Daniel J Griffiths <ghost1227@archlinux.us> +# Contributor: Thomas Dziedzic < gostrc at gmail > +# Contributor: Andrej Gelenberg <andrej.gelenberg@udo.edu> + +pkgname=yajl +pkgver=2.0.4 +pkgrel=1 +pkgdesc='Yet Another JSON Library.' +arch=('i686' 'x86_64') +url='http://lloyd.github.com/yajl/' +license=('ISC') +makedepends=('cmake') +source=("$pkgname-$pkgver.tar.gz::https://github.com/lloyd/$pkgname/tarball/$pkgver") +md5sums=('ee6208e697c43dcccf798ce80d370379') + +build() { + dirname=$(tar tf "$srcdir/$pkgname-$pkgver.tar.gz" | sed 1q); + cd "$dirname" + + cmake -DCMAKE_INSTALL_PREFIX=/usr . + + make +} + +package() { + dirname=$(tar tf "$srcdir/$pkgname-$pkgver.tar.gz" | sed 1q); + cd "$dirname" + + make DESTDIR="$pkgdir" install + + install -Dm644 COPYING "$pkgdir/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/abs/extra/crystalhd-git/PKGBUILD b/abs/extra/crystalhd-git/PKGBUILD index 538c0ae..a7b3e7f 100644 --- a/abs/extra/crystalhd-git/PKGBUILD +++ b/abs/extra/crystalhd-git/PKGBUILD @@ -2,24 +2,24 @@ # Maintainer: Petteri Tolonen <petteri.tolonen[at]gmail.com> pkgname=crystalhd-git -pkgver=`date +%Y%m%d` +pkgver=20111227 pkgrel=1 -pkgdesc="Broadcom Crystal HD kernel module from git.wilsonet.com" +pkgdesc="Broadcom CrystalHD kernel module" arch=('i686' 'x86_64') -url="http://git.wilsonet.com/crystalhd.git/" +url="http://linuxtv.org/git/jarod/crystalhd.git" license=('GPL2') -depends=() -makedepends=('autoconf' 'kernel26-headers>=2.6.32.9' 'make' 'git') -conflicts=('crystalhd') +depends=('libcrystalhd-git') +makedepends=('autoconf' 'make' 'git') install='crystalhd-git.install' -_gitroot='git://git.wilsonet.com/crystalhd.git' +conflicts=('crystalhd') +_gitroot='git://linuxtv.org/jarod/crystalhd.git' _gitname='crystalhd' build() { cd $startdir/src - msg "Connecting to git.wilsonet.com GIT server...." + msg "Connecting to the GIT server...." if [ -d $startdir/src/$_gitname ] ; then cd $_gitname && git pull origin @@ -33,12 +33,20 @@ build() { autoconf ./configure --prefix=/usr - make KDIR=/lib/modules/2.6.34-LinHES/build || return 1 + sed -i 's/'-Werror'/''/g' Makefile + + if ! grep -q "<linux/delay.h>" $srcdir/crystalhd/driver/linux/crystalhd_flea_ddr.c + then + sed -i '26i #include <linux/delay.h>' $srcdir/crystalhd/driver/linux/crystalhd_flea_ddr.c + fi + + make || return 1 + mkdir -p $pkgdir/etc/udev/rules.d mkdir -p $pkgdir/lib/modules/$(uname -r)/kernel/drivers/video/broadcom cp -f 20-crystalhd.rules $pkgdir/etc/udev/rules.d/ install -d $pkgdir/lib/modules/$(uname -r)/kernel/drivers/video/broadcom install -m 0644 crystalhd.ko $pkgdir/lib/modules/$(uname -r)/kernel/drivers/video/broadcom - } +md5sums=() diff --git a/abs/extra/fontforge/PKGBUILD b/abs/extra/fontforge/PKGBUILD new file mode 100644 index 0000000..ff53b21 --- /dev/null +++ b/abs/extra/fontforge/PKGBUILD @@ -0,0 +1,40 @@ +# $Id$ +# Maintainer: Gaetan Bisson <bisson@archlinux.org> +# Contributor: Eric Belanger <eric@archlinux.org> +# Contributor: William Rea <sillywilly@gmail.com> + +pkgname=fontforge +pkgver=20120119 +pkgrel=1 +pkgdesc='Outline and bitmap font editor' +arch=('i686' 'x86_64') +url='http://fontforge.sourceforge.net/' +license=('BSD') +depends=('libxkbui' 'libxi' 'libxml2' 'pango' 'giflib' 'libtiff' 'python2' 'libspiro') +options=('!libtool' '!makeflags') +source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz") +sha1sums=('2c363af075e77bf35d21ee1939e3d6ab39a9f80c') + +# git clone git://fontforge.git.sourceforge.net/gitroot/fontforge/fontforge; cd fontforge; git archive --prefix=${pkgname}-${pkgver}/ master | xz > ../${pkgname}-${pkgver}.tar.xz + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + sed -i 's/python /python2 /g' Makefile.dynamic.in + ./configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --enable-type3 \ + --enable-devicetables \ + --enable-double \ + --with-regular-link \ + --with-python=python2 \ + --enable-pyextension \ + + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install + install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/abs/extra/huludesktop/PKGBUILD b/abs/extra/huludesktop/PKGBUILD index 58cd1ca..c9ced62 100644 --- a/abs/extra/huludesktop/PKGBUILD +++ b/abs/extra/huludesktop/PKGBUILD @@ -1,6 +1,6 @@ pkgname=huludesktop pkgver=0.2 -pkgrel=3 +pkgrel=4 pkgdesc="Hulu Desktop for Linux" arch=(i686) url="http://www.hulu.com/labs/hulu-desktop-linux" @@ -21,5 +21,5 @@ build() { install -D -m755 huludesktop.sh ${pkgdir}/usr/LH/bin } md5sums=('d9b27d1837ab86526100964e80c3cdd1' - 'fc6048cc2a6ee3b90808e0b757f0fc9b' + '935d923b90abaa4b1838a5e6b23e704e' '8f7dbf19d6168bc3a5b0c1da1c878693') diff --git a/abs/extra/huludesktop/huludesktop b/abs/extra/huludesktop/huludesktop index c3ae870..c3fc9a5 100644 --- a/abs/extra/huludesktop/huludesktop +++ b/abs/extra/huludesktop/huludesktop @@ -6,7 +6,7 @@ pos_x = 201 pos_y = 179 [remote] -lirc_device = /dev/lircd +lirc_device = /var/run/lirc/lircd lirc_remote_identifier = mceusb lirc_release_suffix = _UP lirc_repeat_threshold = 10 diff --git a/abs/extra/libcrystalhd-git/PKGBUILD b/abs/extra/libcrystalhd-git/PKGBUILD index 94c7be8..c0bf7d1 100644 --- a/abs/extra/libcrystalhd-git/PKGBUILD +++ b/abs/extra/libcrystalhd-git/PKGBUILD @@ -10,7 +10,7 @@ depends=('gcc-libs') makedepends=('git' 'make') conflicts=('libcrystalhd') -_gitroot='git://git.wilsonet.com/crystalhd.git' +_gitroot='git://linuxtv.org/jarod/crystalhd.git' _gitname='crystalhd' build() { diff --git a/abs/extra/libimobiledevice/PKGBUILD b/abs/extra/libimobiledevice/PKGBUILD new file mode 100644 index 0000000..81a8003 --- /dev/null +++ b/abs/extra/libimobiledevice/PKGBUILD @@ -0,0 +1,33 @@ +# $Id$ +# Maintainer : Ionut Biru <ibiru@archlinux.org> +# Contributor: Gabriel Martinez < reitaka at gmail dot com > + +pkgname=libimobiledevice +pkgver=1.1.1 +pkgrel=3 +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') +options=('!libtool') +source=(http://libimobiledevice.org/downloads/$pkgname-$pkgver.tar.bz2 + swig-version-check.patch) +md5sums=('cdc13037e822d9ac2e109536701d153a' + '8bb215e36fe0e08a72332c108c7842cc') + +build() { + cd "$pkgname-$pkgver" + + # SWIG version check is wrong (still not fixed upstream) + patch -p1 -i ../swig-version-check.patch + + PYTHON=/usr/bin/python2 ./configure --prefix=/usr + make +} + +package() { + cd "$pkgname-$pkgver" + make DESTDIR="$pkgdir" install +} diff --git a/abs/extra/libimobiledevice/swig-version-check.patch b/abs/extra/libimobiledevice/swig-version-check.patch new file mode 100644 index 0000000..c56b095 --- /dev/null +++ b/abs/extra/libimobiledevice/swig-version-check.patch @@ -0,0 +1,14 @@ +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/libplist/PKGBUILD b/abs/extra/libplist/PKGBUILD new file mode 100644 index 0000000..3e67eb5 --- /dev/null +++ b/abs/extra/libplist/PKGBUILD @@ -0,0 +1,30 @@ +# $Id$ +# Maintainer : Ionut Biru <ibiru@archlinux.org> +# Contributor: Gabriel Martinez < reitaka at gmail dot com > + +pkgname=libplist +pkgver=1.8 +pkgrel=2 +pkgdesc="A library to handle Apple Property List format whereas it's binary or XML" +url="http://libimobiledevice.org/" +arch=('i686' 'x86_64') +license=('GPL2' 'LGPL2.1') +depends=('glib2' 'libxml2' 'python2') +makedepends=('cmake' 'swig') +source=(http://www.libimobiledevice.org/downloads/$pkgname-$pkgver.tar.bz2) +sha256sums=('a418da3880308199b74766deef2a760a9b169b81a868a6a9032f7614e20500ec') + +build() { + mkdir build + cd build + cmake ../$pkgname-$pkgver \ + -DPYTHON_EXECUTABLE=/usr/bin/python2 \ + -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_INSTALL_PREFIX:PATH=/usr + make +} + +package() { + cd build + make DESTDIR="$pkgdir" install +} diff --git a/abs/extra/libspiro/PKGBUILD b/abs/extra/libspiro/PKGBUILD new file mode 100644 index 0000000..4055b66 --- /dev/null +++ b/abs/extra/libspiro/PKGBUILD @@ -0,0 +1,25 @@ +# $Id$ +# Contributor: Rémy Oudompheng <oudomphe@clipper.ens.fr> +# Maintainer: Gaetan Bisson <bisson@archlinux.org> + +pkgname=libspiro +pkgver=20071029 +pkgrel=2 +pkgdesc='Simplifies the drawing of beautiful curves' +url='http://libspiro.sourceforge.net/' +license=('GPL') +options=('!libtool') +arch=('i686' 'x86_64') +source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}_src-${pkgver}.tar.bz2") +sha1sums=('d8b407b835b35289af2914877a4c6000b4fdd382') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install +} diff --git a/abs/extra/rtmpdump/PKGBUILD b/abs/extra/rtmpdump/PKGBUILD index ee3c007..03263a4 100644 --- a/abs/extra/rtmpdump/PKGBUILD +++ b/abs/extra/rtmpdump/PKGBUILD @@ -1,34 +1,27 @@ -# Maintainer: xduugu +# $Id$ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: xduugu # Contributor: Elis Hughes <elishughes@googlemail.com> + pkgname=rtmpdump -pkgver=2.3 -pkgrel=2 -pkgdesc="A tool to download rtmp:// and rtmpe:// streams" +pkgver=2.4 +pkgrel=1 +pkgdesc="A tool to download rtmp streams" arch=('i686' 'x86_64') url="http://rtmpdump.mplayerhq.hu/" -license=('LGPL') +license=('GPL2' 'LGPL2.1') depends=('openssl') -source=( - http://mirrors.kernel.org/gentoo/distfiles/$pkgname-$pkgver.tgz - # Upstream is not accessible from Vodafone/Germany - #http://rtmpdump.mplayerhq.hu/download/$pkgname-$pkgver.tgz -) -md5sums=('eb961f31cd55f0acf5aad1a7b900ef59') -sha256sums=('ef38b7a99d82ce6912063d21063aeaf28185341b3df486e24bffce5354224b2c') - -#if [[ ! -e "$SRCDEST/${source[0]##*/}" ]]; then - #cd "$SRCDEST" - #download_file "$(get_downloadclient "$(get_url "${source[0]}")")" "$(get_url "${source[0]}")" "$(get_filename "${source[0]}")" \ - #|| download_file "$(get_downloadclient "$(get_url "${source[1]}")")" "$(get_url "${source[1]}")" "$(get_filename "${source[1]}")" - #cd "$OLDPWD" -#fi +#source=(http://rtmpdump.mplayerhq.hu/download/${pkgname}-${pkgver}.tgz) +source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz) +sha256sums=('2c3b76d46d56180176ef099b8ad50a1608bef1dac35d8cb0b21ceac31b5c0656') build() { - cd "$srcdir/$pkgname-$pkgver" - sed -i 's/^install_so.0:.*/& install_base/' librtmp/Makefile + cd "${srcdir}/${pkgname}-${pkgver}" + make } package() { - cd "$srcdir/$pkgname-$pkgver" - make prefix=/usr MANDIR="$pkgdir/usr/share/man" DESTDIR="$pkgdir" install + cd "${srcdir}/${pkgname}-${pkgver}" + install -d -m755 "${pkgdir}/usr/lib" + make prefix=/usr mandir=/usr/share/man DESTDIR="${pkgdir}" install } diff --git a/abs/extra/ttf-droid/PKGBUILD b/abs/extra/ttf-droid/PKGBUILD new file mode 100644 index 0000000..2df7e2b --- /dev/null +++ b/abs/extra/ttf-droid/PKGBUILD @@ -0,0 +1,22 @@ +# Maintainer: Jelle van der Waa <jelle@vdwaa.nl> +# Contributor: Urs Wolfer <uwolfer @ fwo.ch> + +pkgname=ttf-droid +pkgver=20110417 +pkgrel=2 +pkgdesc="A font created by Ascender Corporation for use by the Open Handset Alliance platform, Android." +arch=('any') +license=('apache') +url="http://code.google.com/android/" +depends=('fontconfig' 'xorg-fonts-encodings' 'xorg-font-utils') +install=$pkgname.install +source=('ftp://ftp.archlinux.org/other/community/ttf-droid/ttf-droid.tar.xz') +md5sums=('f0dffb54269504a0fdb2c4fe394322ee') + +package() +{ + cd $srcdir/ttf-droid + install -d $pkgdir/usr/share/fonts/TTF/ + install -m644 *.ttf $pkgdir/usr/share/fonts/TTF/ +} + diff --git a/abs/extra/ttf-droid/ttf-droid.install b/abs/extra/ttf-droid/ttf-droid.install new file mode 100644 index 0000000..7dde94b --- /dev/null +++ b/abs/extra/ttf-droid/ttf-droid.install @@ -0,0 +1,15 @@ +post_install() { + echo -n "Updating font cache... " + fc-cache -f > /dev/null + mkfontscale /usr/share/fonts/TTF + mkfontdir /usr/share/fonts/TTF + echo "done." +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} diff --git a/abs/extra/ttf-liberation/PKGBUILD b/abs/extra/ttf-liberation/PKGBUILD new file mode 100644 index 0000000..572ae06 --- /dev/null +++ b/abs/extra/ttf-liberation/PKGBUILD @@ -0,0 +1,31 @@ +# $Id$ +# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de> +# Contributor: Ronald van Haren <ronald.archlinux.org> +# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com> +# Contributor: Andreas Zwinkau +# Contributor: rabyte <rabyte__gmail> +# Contributor: Stefan Husmann < stefan-husmann@t-online.de> + +pkgname=ttf-liberation +pkgver=1.07.1 +pkgrel=2 +pkgdesc='Red Hats Liberation fonts.' +arch=('any') +license=('custom' 'GPL2') +url='https://www.redhat.com/promo/fonts/' +depends=('fontconfig' 'xorg-fonts-encodings' 'xorg-font-utils') +makedepends=('fontforge') +install=ttf.install +source=("https://fedorahosted.org/releases/l/i/liberation-fonts/liberation-fonts-ttf-$pkgver.tar.gz") +md5sums=('0be45d54cc5e1c2e3102e32b8c190346') + +package() { + cd "$srcdir/liberation-fonts-ttf-$pkgver" + + install -d "$pkgdir/usr/share/fonts/TTF/" + install -m644 *.ttf "$pkgdir/usr/share/fonts/TTF/" + + # install license + install -Dm644 "${srcdir}/liberation-fonts-ttf-${pkgver}/License.txt" \ + "${pkgdir}/usr/share/licenses/${pkgname}/License.txt" +} diff --git a/abs/extra/ttf-liberation/ttf.install b/abs/extra/ttf-liberation/ttf.install new file mode 100644 index 0000000..7d26d0c --- /dev/null +++ b/abs/extra/ttf-liberation/ttf.install @@ -0,0 +1,16 @@ +post_install() { + echo -n "Updating font cache... " + fc-cache -f > /dev/null + mkfontscale /usr/share/fonts/TTF + mkfontdir /usr/share/fonts/TTF + echo "done." +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} + diff --git a/abs/extra/upower/PKGBUILD b/abs/extra/upower/PKGBUILD new file mode 100644 index 0000000..370f483 --- /dev/null +++ b/abs/extra/upower/PKGBUILD @@ -0,0 +1,27 @@ +# $Id$ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=upower +pkgver=0.9.15 +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') +options=('!libtool') +source=($url/releases/$pkgname-$pkgver.tar.xz) +sha256sums=('d5941480f32dcee47401b3f650485c71f70e7eb0d92537bf4b62410248a6238c') + +build() { + cd "$srcdir/$pkgname-$pkgver" + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ + --libexecdir=/usr/lib/upower --disable-static + make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + make DESTDIR="$pkgdir" install +} diff --git a/abs/extra/usbmuxd/PKGBUILD b/abs/extra/usbmuxd/PKGBUILD new file mode 100644 index 0000000..758cb66 --- /dev/null +++ b/abs/extra/usbmuxd/PKGBUILD @@ -0,0 +1,35 @@ +# $Id$ +# Maintainer : Ionut Biru <ibiru@archlinux.org> +# Contributor: Gabriel Martinez < reitaka at gmail dot com > + +pkgname=usbmuxd +pkgver=1.0.7 +pkgrel=2 +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') +makedepends=('cmake') +install=usbmuxd.install +source=(http://marcansoft.com/uploads/${pkgname}/${pkgname}-${pkgver}.tar.bz2 + usbmuxd-udevuser.patch + usbmuxd-describe.patch) + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + patch -Np1 -i "${srcdir}/usbmuxd-udevuser.patch" + patch -Np1 -i "${srcdir}/usbmuxd-describe.patch" + mkdir build + cd build + cmake ../ -DCMAKE_INSTALL_PREFIX:PATH=/usr -DLIB_SUFFIX="" + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}/build" + make DESTDIR="${pkgdir}" install +} +md5sums=('6f431541f3177fa06aa6df9ceecb2da0' + '8526f24f4ad16cd6b2a7321c0b59592c' + 'bac157d6e01e1e0d56750f73850b96fb') diff --git a/abs/extra/usbmuxd/__changelog b/abs/extra/usbmuxd/__changelog new file mode 100644 index 0000000..7b30556 --- /dev/null +++ b/abs/extra/usbmuxd/__changelog @@ -0,0 +1 @@ +- added usbmuxd-describe.patch so version number is correctly detected diff --git a/abs/extra/usbmuxd/usbmuxd-describe.patch b/abs/extra/usbmuxd/usbmuxd-describe.patch new file mode 100644 index 0000000..3023235 --- /dev/null +++ b/abs/extra/usbmuxd/usbmuxd-describe.patch @@ -0,0 +1,20 @@ +--- 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 new file mode 100644 index 0000000..51c8f3d --- /dev/null +++ b/abs/extra/usbmuxd/usbmuxd-udevuser.patch @@ -0,0 +1,12 @@ +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.install b/abs/extra/usbmuxd/usbmuxd.install new file mode 100644 index 0000000..1a48596 --- /dev/null +++ b/abs/extra/usbmuxd/usbmuxd.install @@ -0,0 +1,19 @@ +post_install() { + groupadd -g 140 usbmux &>/dev/null + useradd -c 'usbmux user' -u 140 -g usbmux -d / -s /sbin/nologin usbmux &>/dev/null + passwd -l usbmux &>/dev/null +} + +post_upgrade() { + getent group usbmux >/dev/null 2>&1 || groupadd -g 140 usbmux &>/dev/null + getent passwd usbmux >/dev/null 2>&1 || useradd -c 'usbmux user' -u 140 -g usbmux -d / -s /sbin/nologin usbmux &>/dev/null +} + +post_remove() { + if getent passwd usbmux >/dev/null 2>&1; then + userdel usbmux + fi + if getent group usbmux >/dev/null 2>&1; then + groupdel usbmux + fi +} diff --git a/abs/extra/xbmc/PKGBUILD b/abs/extra/xbmc/PKGBUILD index 252e312..49166cc 100644 --- a/abs/extra/xbmc/PKGBUILD +++ b/abs/extra/xbmc/PKGBUILD @@ -1,95 +1,94 @@ -# $Id: PKGBUILD 48068 2011-05-27 21:25:39Z schuay $ +# $Id$ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: Brad Fanella <bradfanella@archlinux.us> # Contributor: [vEX] <niechift.dot.vex.at.gmail.dot.com> # Contributor: Zeqadious <zeqadious.at.gmail.dot.com> -# Contributor: BlackEagle < ike DOT devolder AT herecura DOT be > +# Contributor: BlackIkeEagle < ike DOT devolder AT gmail DOT com > _prefix=/usr pkgname=xbmc -pkgver=10.1 +pkgver=11.0 pkgrel=4 pkgdesc="A software media player and entertainment hub for digital media" arch=('i686' 'x86_64') url="http://xbmc.org" license=('GPL' 'custom') -depends=('bzip2' 'curl' 'enca' 'faac' 'faad2' 'fontconfig' 'fribidi' - 'glew' 'jasper' 'libcdio' 'libgl' 'libmad' 'libmms' - 'libmpeg2' 'libmysqlclient' 'libsamplerate' 'libxinerama' - 'libxrandr' 'libxtst' 'lzo2' 'sdl_image' 'sdl_mixer' - 'smbclient' 'wavpack' 'mesa-demos' 'xorg-utils' 'libmicrohttpd' - 'libssh' 'libva' 'libmodplug' 'rtmpdump' - 'sqlite3') -makedepends=('boost' 'cmake' 'gperf' 'nasm' 'libvdpau' 'unzip' 'zip') -optdepends=('lirc: remote controller support' - 'unrar: access compressed files without unpacking them' - 'udisks: automount external drives' - 'upower: used to trigger suspend functionality' - 'libvdpau: for nvidia hardware acceleration' - 'lcms' - 'tk') -install=("${pkgname}.install") -source=("http://mirrors.xbmc.org/releases/source/xbmc-$pkgver.tar.gz" - 'FEH.sh' - 'snapstream_remote.patch') +depends=('hicolor-icon-theme' 'fribidi' 'lzo2' 'smbclient' 'libtiff' 'libva' 'libpng' 'libcdio' 'yajl' 'libmysqlclient' 'libjpeg' 'libsamplerate' 'glew' 'libssh' 'libmicrohttpd' 'libxrandr' 'sdl_mixer' 'sdl_image' 'python2' 'libass' 'libmpeg2' 'libmad' 'libmodplug' 'jasper' 'rtmpdump' 'unzip' 'mesa-demos' 'xorg-xdpyinfo' 'libbluray' 'libnfs' 'afpfs-ng' 'libshairport' 'avahi' 'bluez' 'linhes-scripts>=7-31') +makedepends=('boost' 'cmake' 'gperf' 'nasm' 'libxinerama' 'zip' 'vdpau-video' 'libcec' 'udisks' 'upower' 'bluez') +optdepends=( + 'libcec: support for Pulse-Eight USB-CEC adapter' + 'vdpau-video: accelerated video playback for nvidia cards' + 'xvba-video: accelerated video playback for amd cards' + 'lirc: remote controller support' + 'udisks: automount external drives' + 'upower: used to trigger suspend functionality' + 'unrar: access compressed files without unpacking them' +) +install="${pkgname}.install" +source=("http://mirrors.xbmc.org/releases/source/xbmc-$pkgver.tar.gz" 'xbmc11.patch' 'xbmc.sh') build() { cd "${srcdir}/xbmc-$pkgver" + patch -p1 < ../xbmc11.patch - # Patch to add Snapstream Firelfy remote - patch -Np1 -i ${srcdir}/snapstream_remote.patch || return 1 + # fix lsb_release dependency + sed -i -e 's:/usr/bin/lsb_release -d:cat /etc/arch-release:' xbmc/utils/SystemInfo.cpp - # remove "--as-needed" from LDFLAGS, since it causes - # undefined symbols at runtime: - # /usr/lib/xbmc/system/players/dvdplayer/avcodec-52-i486-linux.so: - # undefined symbol: NeAACDecOpen - unset LDFLAGS; LDFLAGS="-Wl,--hash-style=gnu" - - # fix linking issue with gcc 4.5, see git 6ea61fce78q - sed -i 's: --soname,: -Wl,--soname,:' \ - xbmc/cores/dvdplayer/Codecs/{,libdvd/}Makefile.in - - msg "Bootstrapping XBMC" + # Bootstrapping XBMC ./bootstrap - msg "Configuring XBMC" - ./configure --prefix=${_prefix} \ + # Configuring XBMC + export PYTHON_VERSION=2 # external python v2 + ./configure --prefix=$_prefix --exec-prefix=$_prefix \ + --enable-debug \ + --enable-optimizations \ + --enable-gl \ + --enable-sdl \ + --enable-vaapi \ --enable-vdpau \ + --enable-xvba \ + --enable-joystick \ + --enable-xrandr \ + --enable-rsxs \ + --enable-projectm \ + --enable-x11 \ + --enable-rtmp \ + --enable-samba \ + --enable-nfs \ + --enable-afpclient \ + --enable-airplay \ + --enable-airtunes \ + --enable-ffmpeg-libvorbis \ + --enable-dvdcss \ --disable-hal \ - --disable-avahi \ + --enable-avahi \ + --enable-webserver \ + --enable-optical-drive \ + --enable-libbluray \ + --enable-texturepacker \ + --enable-udev \ + --enable-libusb \ + --enable-libcec \ --enable-external-libraries \ - --disable-external-liba52 \ - --disable-external-libdts \ --disable-external-ffmpeg \ - --enable-rtmp \ - --disable-external-python \ - --disable-debug - + --disable-crystalhd # Now (finally) build - msg "Running make" make - make -C lib/addons/script.module.pil - make -C lib/addons/script.module.pysqlite } package() { cd "${srcdir}/xbmc-$pkgver" - msg "Running make install" - make prefix="${pkgdir}${_prefix}" install + # Running make install + make DESTDIR="${pkgdir}" install - # Replace FEH.py with FEH.sh (and thus remove external python dependency) - install -D -m 0755 "${srcdir}/FEH.sh" "${pkgdir}${_prefix}/share/xbmc/FEH.sh" - sed -i -e 's/^python \(.*\)FEH.py \(.*\)$/\1FEH.sh \2/' "${pkgdir}${_prefix}/bin/xbmc" + # run feh with python2 + sed -i -e 's/python/python2/g' ${pkgdir}${_prefix}/bin/xbmc # lsb_release fix sed -i -e 's/which lsb_release &> \/dev\/null/\[ -f \/etc\/arch-release ]/g' "${pkgdir}${_prefix}/bin/xbmc" sed -i -e "s/lsb_release -a 2> \/dev\/null | sed -e 's\/\^\/ \/'/cat \/etc\/arch-release/g" "${pkgdir}${_prefix}/bin/xbmc" - # .desktop files - install -D -m 0644 "${srcdir}/xbmc-$pkgver/tools/Linux/xbmc.desktop" "${pkgdir}${_prefix}/share/applications/xbmc.desktop" - install -D -m 0644 "${srcdir}/xbmc-$pkgver/tools/Linux/xbmc-48x48.png" "${pkgdir}${_prefix}/share/pixmaps/xbmc.png" - # Tools install -D -m 0755 "${srcdir}/xbmc-$pkgver/xbmc-xrandr" "${pkgdir}${_prefix}/share/xbmc/xbmc-xrandr" install -D -m 0755 "${srcdir}/xbmc-$pkgver/tools/TexturePacker/TexturePacker" "${pkgdir}${_prefix}/share/xbmc/" @@ -100,13 +99,10 @@ package() { mv "${pkgdir}${_prefix}/share/doc/xbmc/${licensef}" "${pkgdir}${_prefix}/share/licenses/${pkgname}" done - # cleanup some stuff - msg "Cleanup unneeded files" - rm -rf "${pkgdir}/usr/share/xsessions" - rm -f "${pkgdir}/usr/share/xbmc/FEH.py" - rm -f "${pkgdir}/usr/share/icons/hicolor/icon-theme.cache" + mkdir -p ${pkgdir}/usr/LH/bin + install -D -m 0755 ${srcdir}/xbmc.sh ${pkgdir}/usr/LH/bin } # vim:set ts=2 sw=2 et: -md5sums=('391398126cb86a4f6fbd0b7037997d84' - '7127c0336f91ff48e408e2d1078fe8eb' - 'ae41945febf6906761589ddad33c0205') +md5sums=('9e8a26ee25173c7268abea7f1d82d428' + '5aa2e21a1f9fea60a2e5bb345e5aefd0' + 'f30d9a68daedd28482813ee40134f243') diff --git a/abs/extra/xbmc/xbmc.install b/abs/extra/xbmc/xbmc.install index 6c58697..2964449 100644 --- a/abs/extra/xbmc/xbmc.install +++ b/abs/extra/xbmc/xbmc.install @@ -5,7 +5,7 @@ post_install() { echo " <button>" >> /tmp/library.xml.tmp echo " <type>MENU_XBMC</type>" >> /tmp/library.xml.tmp echo " <text>Launch XBMC</text>" >> /tmp/library.xml.tmp - echo " <action>EXEC /usr/bin/xbmc</action>" >> /tmp/library.xml.tmp + echo " <action>EXEC /usrLH//bin/xbmc.sh</action>" >> /tmp/library.xml.tmp echo " </button>" >> /tmp/library.xml.tmp echo "<!--#XBMC-->" >> /tmp/library.xml.tmp echo "" >> /tmp/library.xml.tmp @@ -38,7 +38,7 @@ post_upgrade() { echo " <button>" >> /tmp/library.xml.tmp echo " <type>MENU_XBMC</type>" >> /tmp/library.xml.tmp echo " <text>Launch XBMC</text>" >> /tmp/library.xml.tmp - echo " <action>EXEC /usr/bin/xbmc</action>" >> /tmp/library.xml.tmp + echo " <action>EXEC /usr/LH/bin/xbmc.sh</action>" >> /tmp/library.xml.tmp echo " </button>" >> /tmp/library.xml.tmp echo "<!--#XBMC-->" >> /tmp/library.xml.tmp echo "" >> /tmp/library.xml.tmp diff --git a/abs/extra/xbmc/xbmc.sh b/abs/extra/xbmc/xbmc.sh new file mode 100644 index 0000000..a27f0f1 --- /dev/null +++ b/abs/extra/xbmc/xbmc.sh @@ -0,0 +1,7 @@ +#!/bin/bash +#Stop XScreensaver +stop_xss.sh & +#Launch XBMC +/usr/bin/xbmc --lircdev /var/run/lirc/lircd +#Once XBMC exits, kill stop xss +killall stop_xss.sh diff --git a/abs/extra/xbmc/xbmc11.patch b/abs/extra/xbmc/xbmc11.patch new file mode 100644 index 0000000..fb144d1 --- /dev/null +++ b/abs/extra/xbmc/xbmc11.patch @@ -0,0 +1,15 @@ +diff -ruaN xbmc-11.0.orig//xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp xbmc-11.0/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp +--- xbmc-11.0.orig//xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp 2012-03-21 22:07:50.000000000 +0000 ++++ xbmc-11.0/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp 2012-04-08 21:04:19.000000000 +0000 +@@ -22,9 +22,9 @@ + #if (defined HAVE_CONFIG_H) && (!defined WIN32) + #include "config.h" + #endif +-#ifdef _WIN32 ++//#ifdef _WIN32 + #include "system.h" // just for HAS_LIBRTMP +-#endif ++//#endif + + #ifdef HAS_LIBRTMP + #include "settings/AdvancedSettings.h" |