summaryrefslogtreecommitdiffstats
path: root/abs/extra-testing
diff options
context:
space:
mode:
authorJames Meyer <james.meyer@operamail.com>2008-11-08 17:08:28 (GMT)
committerJames Meyer <james.meyer@operamail.com>2008-11-08 17:08:28 (GMT)
commitc38715641e214272ad7dc6d495edd29940366e7f (patch)
tree9dcd507543e67458d98fa7462f62026041524047 /abs/extra-testing
parent3d91b06198a56b6579cb0bd77de65f5908571b87 (diff)
downloadlinhes_pkgbuild-c38715641e214272ad7dc6d495edd29940366e7f.zip
linhes_pkgbuild-c38715641e214272ad7dc6d495edd29940366e7f.tar.gz
linhes_pkgbuild-c38715641e214272ad7dc6d495edd29940366e7f.tar.bz2
packages that will be needed in the future.
This is the initial merge of packages from MythVantage that are not MythVantage specific.
Diffstat (limited to 'abs/extra-testing')
-rw-r--r--abs/extra-testing/atomicparsley/PKGBUILD16
-rwxr-xr-xabs/extra-testing/cddb-py/PKGBUILD20
-rw-r--r--abs/extra-testing/evrouter/PKGBUILD18
-rw-r--r--abs/extra-testing/glib/PKGBUILD32
-rw-r--r--abs/extra-testing/glib/aclocal-fixes.patch11
-rw-r--r--abs/extra-testing/glib/gcc340.patch15
-rwxr-xr-xabs/extra-testing/gpac/PKGBUILD50
-rwxr-xr-xabs/extra-testing/gpac/gpac-0.4.2-ffmpeg-errno.patch20
-rw-r--r--abs/extra-testing/gtk/PKGBUILD32
-rw-r--r--abs/extra-testing/gtk/aclocal-fixes.patch11
-rwxr-xr-xabs/extra-testing/hdhgrab/PKGBUILD19
-rw-r--r--abs/extra-testing/libdv/PKGBUILD23
-rw-r--r--abs/extra-testing/libdv/libdv-0.104-amd64reloc.patch262
-rw-r--r--abs/extra-testing/mjpegtools/PKGBUILD27
-rw-r--r--abs/extra-testing/mjpegtools/mjpegtools-1.8.0-gcc41.patch12
-rw-r--r--abs/extra-testing/mjpegtools/mjpegtools-1.8.0-libc.patch142
-rwxr-xr-xabs/extra-testing/myth2ipod/PKGBUILD20
-rwxr-xr-xabs/extra-testing/myth2ipod/iPod.pm184
-rwxr-xr-xabs/extra-testing/myth2ipod/myth2ipod-userjob.sh6
-rwxr-xr-xabs/extra-testing/myth2ipod/myth2ipod.install41
-rwxr-xr-xabs/extra-testing/myth2ipod/myth2ipod.patch35
-rwxr-xr-xabs/extra-testing/myth2ipod/myth2ipod.txt310
-rwxr-xr-xabs/extra-testing/myth2ipod/myth2ipod.txt.modified310
-rw-r--r--abs/extra-testing/nasm/PKGBUILD19
-rw-r--r--abs/extra-testing/nspr/PKGBUILD53
-rw-r--r--abs/extra-testing/nspr/nspr.pc.in10
-rwxr-xr-xabs/extra-testing/nvram-wake/PKGBUILD16
-rwxr-xr-xabs/extra-testing/phpmyadmin/PKGBUILD18
-rwxr-xr-xabs/extra-testing/pymedia/PKGBUILD19
-rw-r--r--abs/extra-testing/pyopenssl/PKGBUILD15
-rw-r--r--abs/extra-testing/spidermonkey/PKGBUILD29
-rw-r--r--abs/extra-testing/spidermonkey/spidermonkey-1.7-threadsafe.patch16
-rw-r--r--abs/extra-testing/tightvnc/PKGBUILD35
-rw-r--r--abs/extra-testing/tightvnc/tightvnc-fontpath-xcolors.patch21
-rw-r--r--abs/extra-testing/transcode/PKGBUILD65
-rw-r--r--abs/extra-testing/transcode/imagemagick.patch41
-rw-r--r--abs/extra-testing/transcode/transcode.install23
-rwxr-xr-xabs/extra-testing/wol/PKGBUILD19
-rwxr-xr-xabs/extra-testing/wol/wakeonlan.sh10
-rw-r--r--abs/extra-testing/zip/ChangeLog5
-rw-r--r--abs/extra-testing/zip/PKGBUILD23
41 files changed, 2053 insertions, 0 deletions
diff --git a/abs/extra-testing/atomicparsley/PKGBUILD b/abs/extra-testing/atomicparsley/PKGBUILD
new file mode 100644
index 0000000..a8d41ab
--- /dev/null
+++ b/abs/extra-testing/atomicparsley/PKGBUILD
@@ -0,0 +1,16 @@
+# Contributor: Baptiste Daroussin <baptiste.daroussin@gmail.com>
+pkgname=atomicparsley
+pkgver=0.9.0
+pkgrel=2
+pkgdesc="command line program for reading, parsing and setting iTunes-style metadata in MPEG4 files"
+arch=(i686 x86_64)
+url="http://atomicparsley.sourceforge.net/"
+license=('GPL')
+source=(http://downloads.sourceforge.net/$pkgname/AtomicParsley-source-$pkgver.zip)
+md5sums=('681e6ecec2921c98e07a9262bdcd6cf2')
+
+build() {
+ cd $startdir/src/AtomicParsley-source-$pkgver
+ ./build
+ install -D -m 755 AtomicParsley $startdir/pkg/usr/bin/AtomicParsley
+}
diff --git a/abs/extra-testing/cddb-py/PKGBUILD b/abs/extra-testing/cddb-py/PKGBUILD
new file mode 100755
index 0000000..6852446
--- /dev/null
+++ b/abs/extra-testing/cddb-py/PKGBUILD
@@ -0,0 +1,20 @@
+pkgname=cddb-py
+pkgver=1.4
+pkgrel=1
+pkgdesc="CDDB-Server access from Python. Differs from pycddb"
+url="http://cddb-py.sourceforge.net"
+license=""
+depends=(python)
+makedepends=()
+conflicts=()
+replaces=()
+backup=()
+install=
+arch='i686'
+source=("http://easynews.dl.sourceforge.net/sourceforge/cddb-py/CDDB-$pkgver.tar.gz")
+md5sums=('254698082bafe3030d07d88fb7e13fe2')
+
+build() {
+ cd $startdir/src/CDDB-$pkgver
+ python setup.py install --root=$startdir/pkg/
+ }
diff --git a/abs/extra-testing/evrouter/PKGBUILD b/abs/extra-testing/evrouter/PKGBUILD
new file mode 100644
index 0000000..e4fb59d
--- /dev/null
+++ b/abs/extra-testing/evrouter/PKGBUILD
@@ -0,0 +1,18 @@
+# Contributor: Jonathan Liu <net147@hotmail.com>
+pkgname=evrouter
+pkgver=0.3.3
+pkgrel=2
+pkgdesc="An Input Event Router for Linux"
+arch=(i686)
+url="http://www.bedroomlan.org/~alexios/coding_evrouter.html"
+license=('GPL2')
+depends=('libxt' 'libxtst' 'xorg-server')
+source=(http://www.bedroomlan.org/~alexios/files/SOFTWARE/evrouter/${pkgname}_${pkgver}.tar.gz)
+md5sums=('a20073e04679eb11a5c2da9ab59e75fd')
+
+build() {
+ cd "$startdir/src/$pkgname"
+ ./configure --prefix=/usr --without-xmms
+ make || return 1
+ make DESTDIR="$startdir/pkg" install
+}
diff --git a/abs/extra-testing/glib/PKGBUILD b/abs/extra-testing/glib/PKGBUILD
new file mode 100644
index 0000000..0f76a1e
--- /dev/null
+++ b/abs/extra-testing/glib/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=glib
+pkgver=1.2.10
+pkgrel=7
+pkgdesc="Common C routines used by Gtk+ and other libs"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('LGPL')
+depends=('glibc')
+options=('!libtool')
+source=(ftp://ftp.gtk.org/pub/gtk/v1.2/$pkgname-$pkgver.tar.gz \
+ gcc340.patch \
+ aclocal-fixes.patch)
+md5sums=('6fe30dad87c77b91b632def29dd69ef9' '877b3330e822a4be69a0f8a8c268cfd7'\
+ 'e52c4b88427b9785bb8049dbdc9ff6fb')
+sha1sums=('e5a9361c594608d152d5d9650154c2e3260b87fa'\
+ 'a2cc224a66aeffdcac16ebd9e8af18143cf54918'\
+ 'ae4438cf56c0c9264ee36f6973fb445f9a820be0')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ patch -Np1 -i ../gcc340.patch || return 1
+ patch -Np0 -i ../aclocal-fixes.patch || return 1
+
+ #Arch64 fixes --build/host
+ ./configure --prefix=/usr #--host=i686-pc-linux-gnu
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/abs/extra-testing/glib/aclocal-fixes.patch b/abs/extra-testing/glib/aclocal-fixes.patch
new file mode 100644
index 0000000..b064074
--- /dev/null
+++ b/abs/extra-testing/glib/aclocal-fixes.patch
@@ -0,0 +1,11 @@
+--- glib.m4.orig 2006-03-05 13:13:24.000000000 +0000
++++ glib.m4 2006-03-05 13:13:35.000000000 +0000
+@@ -5,7 +5,7 @@
+ dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or
+ dnl gthread is specified in MODULES, pass to glib-config
+ dnl
+-AC_DEFUN(AM_PATH_GLIB,
++AC_DEFUN([AM_PATH_GLIB],
+ [dnl
+ dnl Get the cflags and libraries from the glib-config script
+ dnl
diff --git a/abs/extra-testing/glib/gcc340.patch b/abs/extra-testing/glib/gcc340.patch
new file mode 100644
index 0000000..941111a
--- /dev/null
+++ b/abs/extra-testing/glib/gcc340.patch
@@ -0,0 +1,15 @@
+diff -Naur glib-1.2.10.orig/glib.h glib-1.2.10/glib.h
+--- glib-1.2.10.orig/glib.h 2001-02-27 04:44:38.000000000 +0100
++++ glib-1.2.10/glib.h 2004-05-27 15:50:32.436527848 +0200
+@@ -271,8 +271,10 @@
+
+ /* Wrap the gcc __PRETTY_FUNCTION__ and __FUNCTION__ variables with
+ * macros, so we can refer to them as strings unconditionally.
++ *
++ * Unfortunately these are _not_ treated as strings anymore in GCC3.4.
+ */
+-#ifdef __GNUC__
++#if defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ < 4)
+ #define G_GNUC_FUNCTION __FUNCTION__
+ #define G_GNUC_PRETTY_FUNCTION __PRETTY_FUNCTION__
+ #else /* !__GNUC__ */
diff --git a/abs/extra-testing/gpac/PKGBUILD b/abs/extra-testing/gpac/PKGBUILD
new file mode 100755
index 0000000..a89db81
--- /dev/null
+++ b/abs/extra-testing/gpac/PKGBUILD
@@ -0,0 +1,50 @@
+pkgname=gpac
+pkgver=0.4.2
+pkgrel=3
+arch=("i686")
+pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
+url="http://gpac.sourceforge.net"
+options=(strip !docs !libtool !emptydirs)
+depends=('freetype2' 'spidermonkey' 'libjpeg' 'libpng' 'libmad' 'xvidcore' 'ffmpeg' 'libogg' 'faad2' 'libxml2' 'sdl' 'libvorbis' 'libtheora')
+source=(http://easynews.dl.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz
+http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/${pkgname}-${pkgver}-patches.tar.bz2
+gpac-0.4.2-ffmpeg-errno.patch)
+md5sums=('834910b42ef007410fcc49a5acd4656b' '7c40146553ab621154e52a8c43344083')
+
+build() {
+ cd $pkgname
+ patch -p1 -i $startdir/src/$pkgname-$pkgver-DESTDIR.patch
+ patch -p0 -i $startdir/src/$pkgname-$pkgver-configure-ogg.patch
+ patch -p1 -i $startdir/src/$pkgname-$pkgver-nostrip.patch
+ patch -p1 -i $startdir/src/$pkgname-$pkgver-soname.patch
+ patch -p1 -i $startdir/src/$pkgname-$pkgver-static-defs.patch
+ patch -p1 -i $startdir/src/$pkgname-$pkgver-ffmpeg-snapshots-compat.patch
+ patch -p1 -i $startdir/src/$pkgname-$pkgver-ffmpeg-errno.patch
+ sed -i 's/ldconfig / /' Makefile
+ sed -i 's/-Wall//' Makefile
+ patch -p1 -i $startdir/src/$pkgname-$pkgver-pic.patch
+ chmod +x configure
+ sed -i -e 's/has_wx=yes/has_wx=no/' configure
+ sed -i -e 's/osmozilla//g' applications/Makefile
+ ./configure --prefix=/usr \
+ --use-ogg=system \
+ --use-vorbis=system \
+ --use-theora=system \
+ --use-ffmpeg=system \
+ --use-xvid=system \
+ --use-ft=system \
+ --use-png=system \
+ --use-js=system \
+ --use-mad=system \
+ --use-jpeg=system \
+ --disable-wx
+ make OPTCFLAGS="${CFLAGS}" || return 1
+ make DESTDIR="${startdir}/pkg" install
+ make DESTDIR="${startdir}/pkg" install-lib
+ ln -sf MP4Box ${startdir}/pkg/usr/bin/mp4box
+ ln -sf MP4Client ${startdir}/pkg/usr/bin/mp4client
+ install -d ${startdir}/pkg/usr/man/man1
+ cp doc/man/mp4box.1 ${startdir}/pkg/usr/man/man1
+ cp doc/man/mp4client.1 ${startdir}/pkg/usr/man/man1
+ cp doc/man/gpac.1 ${startdir}/pkg/usr/man/man1
+}
diff --git a/abs/extra-testing/gpac/gpac-0.4.2-ffmpeg-errno.patch b/abs/extra-testing/gpac/gpac-0.4.2-ffmpeg-errno.patch
new file mode 100755
index 0000000..ec59cec
--- /dev/null
+++ b/abs/extra-testing/gpac/gpac-0.4.2-ffmpeg-errno.patch
@@ -0,0 +1,20 @@
+Index: gpac/modules/ffmpeg_in/ffmpeg_demux.c
+===================================================================
+--- gpac.orig/modules/ffmpeg_in/ffmpeg_demux.c
++++ gpac/modules/ffmpeg_in/ffmpeg_demux.c
+@@ -23,6 +23,7 @@
+ */
+
+ #include "ffmpeg_in.h"
++#include <errno.h>
+
+ /*default buffer is 200 ms per channel*/
+ #define FFD_DATA_BUFFER 800
+@@ -285,7 +286,6 @@ static GF_ESD *FFD_GetESDescriptor(FFDem
+ case CODEC_ID_MP3:
+ esd->decoderConfig->objectTypeIndication = 0x69;
+ break;
+- case CODEC_ID_MPEG4AAC:
+ case CODEC_ID_AAC:
+ if (!dec->extradata_size) goto opaque_audio;
+ esd->decoderConfig->objectTypeIndication = 0x40;
diff --git a/abs/extra-testing/gtk/PKGBUILD b/abs/extra-testing/gtk/PKGBUILD
new file mode 100644
index 0000000..40e235c
--- /dev/null
+++ b/abs/extra-testing/gtk/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=gtk
+pkgver=1.2.10
+pkgrel=8
+pkgdesc="The GTK+ toolkit"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('LGPL')
+depends=('libxi' 'glib')
+options=('!libtool')
+source=(ftp://ftp.gtk.org/pub/gtk/v1.2/gtk+-$pkgver.tar.gz \
+ aclocal-fixes.patch)
+md5sums=('4d5cb2fc7fb7830e4af9747a36bfce20' 'c59d4906602d99a7468f7334b6fc3b4e')
+sha1sums=('a5adcb909257da01ae4d4761e1d41081d06e4d7c' 'b034e33efb85d27f3f3fb082c404e3b6ea79259f')
+
+build() {
+ cd $startdir/src/gtk+-$pkgver
+ if [ "$CARCH" == "x86_64" ]; then
+ rm config.guess config.sub
+ ln -s /usr/share/libtool/config.guess config.guess
+ ln -s /usr/share/libtool/config.sub config.sub
+ fi
+ patch -Np0 -i ${startdir}/src/aclocal-fixes.patch || return 1
+ ./configure --prefix=/usr --sysconfdir=/etc --with-xinput=xfree
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+ cd $startdir/pkg/usr/include
+ ln -s gtk-1.2/gtk gtk
+}
diff --git a/abs/extra-testing/gtk/aclocal-fixes.patch b/abs/extra-testing/gtk/aclocal-fixes.patch
new file mode 100644
index 0000000..dd2ffbd
--- /dev/null
+++ b/abs/extra-testing/gtk/aclocal-fixes.patch
@@ -0,0 +1,11 @@
+--- gtk.m4.orig 2006-03-05 13:18:09.000000000 +0000
++++ gtk.m4 2006-03-05 13:18:20.000000000 +0000
+@@ -4,7 +4,7 @@
+ dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+ dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
+ dnl
+-AC_DEFUN(AM_PATH_GTK,
++AC_DEFUN([AM_PATH_GTK],
+ [dnl
+ dnl Get the cflags and libraries from the gtk-config script
+ dnl
diff --git a/abs/extra-testing/hdhgrab/PKGBUILD b/abs/extra-testing/hdhgrab/PKGBUILD
new file mode 100755
index 0000000..be4fc7f
--- /dev/null
+++ b/abs/extra-testing/hdhgrab/PKGBUILD
@@ -0,0 +1,19 @@
+pkgname=hdhgrab
+pkgver=1
+pkgrel=1
+arch=("i686")
+pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
+url="myth2ipod.com"
+depends=('hdhomerun' )
+source=(http://ops.nocc.us/hdh/hdhgrab.tar.gz)
+
+
+build() {
+ cd $startdir/src
+
+ install -D -m 755 hdhscan $startdir/pkg/usr/bin/hdhscan
+ install -D -m 755 hdhgrab $startdir/pkg/usr/bin/hdhgrab
+ install -D -m755 README $startdir/pkg/usr/share/README.hdhgrab
+
+
+}
diff --git a/abs/extra-testing/libdv/PKGBUILD b/abs/extra-testing/libdv/PKGBUILD
new file mode 100644
index 0000000..c535c2c
--- /dev/null
+++ b/abs/extra-testing/libdv/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 4510 2008-07-07 21:13:34Z ronald $
+# Maintainer: Jason Chu <jason@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libdv
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="The Quasar DV codec (libdv) is a software codec for DV video"
+arch=('i686' 'x86_64')
+depends=('popt')
+makedepends=('pkgconfig' 'gtk')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('f895162161cfa4bb4a94c070a7caa6c7')
+url="http://libdv.sourceforge.net/"
+license=('GPL')
+options=(!libtool)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/abs/extra-testing/libdv/libdv-0.104-amd64reloc.patch b/abs/extra-testing/libdv/libdv-0.104-amd64reloc.patch
new file mode 100644
index 0000000..f3cbdbd
--- /dev/null
+++ b/abs/extra-testing/libdv/libdv-0.104-amd64reloc.patch
@@ -0,0 +1,262 @@
+diff -aur libdv-0.104/libdv/encode_x86_64.S libdv-0.104-patched/libdv/encode_x86_64.S
+--- libdv-0.104/libdv/encode_x86_64.S 2004-11-17 03:36:30.000000000 +0000
++++ libdv-0.104-patched/libdv/encode_x86_64.S 2004-12-10 07:53:12.000000000 +0000
+@@ -47,7 +47,8 @@
+
+ mov $63, %rcx # loop counter
+
+- mov vlc_encode_lookup(%rip), %r11
++ mov vlc_encode_lookup@GOTPCREL(%rip), %r11
++ mov (%r11),%r11
+
+ pxor %mm0, %mm0
+ pxor %mm2, %mm2
+@@ -129,7 +130,8 @@
+ add $2, %rdi /* skip the DC coefficient */
+ mov $63, %rcx
+
+- mov vlc_num_bits_lookup(%rip), %r11
++ mov vlc_num_bits_lookup@GOTPCREL(%rip), %r11
++ mov (%r11),%r11
+
+ vlc_num_bits_block_x86_loop:
+ movw (%rdi), %ax /* get the next coeffiecient */
+diff -aur libdv-0.104/libdv/idct_block_mmx_x86_64.S libdv-0.104-patched/libdv/idct_block_mmx_x86_64.S
+--- libdv-0.104/libdv/idct_block_mmx_x86_64.S 2004-10-20 04:49:24.000000000 +0100
++++ libdv-0.104-patched/libdv/idct_block_mmx_x86_64.S 2004-12-10 07:38:23.000000000 +0000
+@@ -22,7 +22,7 @@
+ /* void _dv_idct_88(dv_coeff_t *block) */
+ /* argument block=rdi */
+
+- lea preSC(%rip), %r11
++ mov preSC@GOTPCREL(%rip), %r11
+
+ /*
+ * column 0: even part
+diff -aur libdv-0.104/libdv/quant_x86_64.S libdv-0.104-patched/libdv/quant_x86_64.S
+--- libdv-0.104/libdv/quant_x86_64.S 2004-11-17 03:36:30.000000000 +0000
++++ libdv-0.104-patched/libdv/quant_x86_64.S 2004-12-10 07:36:42.000000000 +0000
+@@ -73,10 +73,10 @@
+ /* pq = dv_quant_shifts[qno + dv_quant_offset[class]]; */
+ mov %rsi,%rax /* qno */
+ mov %rdx,%r12 /* class */
+- lea dv_quant_offset(%rip),%rcx
++ mov dv_quant_offset@GOTPCREL(%rip),%rcx
+ movzbq (%rcx,%r12,1),%rcx /* dv_quant_offset[class] */
+ add %rcx,%rax /* qno + */
+- lea dv_quant_shifts(%rip),%r11
++ mov dv_quant_shifts@GOTPCREL(%rip),%r11
+ lea (%r11,%rax,4),%r11 /* r11 is pq = dv_quant_shifts[...] */
+
+ /* extra = (class == 3); */
+@@ -217,10 +217,10 @@
+ mov %rsi,%rax /* qno */
+ mov %rdx,%r12 /* class */
+
+- lea dv_quant_offset(%rip),%rcx
++ mov dv_quant_offset@GOTPCREL(%rip),%rcx
+ movzbq (%rcx,%r12,1),%rcx
+ add %rcx,%rax
+- lea dv_quant_shifts(%rip),%r11
++ mov dv_quant_shifts@GOTPCREL(%rip),%r11
+ lea (%r11,%rax,4),%r11 /* r11 is pq */
+
+ /* extra = (class == 3); */
+diff -aur libdv-0.104/libdv/vlc_x86_64.S libdv-0.104-patched/libdv/vlc_x86_64.S
+--- libdv-0.104/libdv/vlc_x86_64.S 2004-10-20 04:49:24.000000000 +0100
++++ libdv-0.104-patched/libdv/vlc_x86_64.S 2004-12-12 05:43:49.000000000 +0000
+@@ -16,28 +16,28 @@
+ /* klass = dv_vlc_classes[maxbits][(bits & (dv_vlc_class_index_mask[maxbits])) >> */
+ /* (dv_vlc_class_index_rshift[maxbits])]; */
+ /* xor %rbp,%rbp */
+- lea dv_vlc_class_index_mask(%rip),%r11 /* use %rip for PIC code */
++ mov dv_vlc_class_index_mask@GOTPCREL(%rip),%r11 /* use %rip for PIC code */
+ mov (%r11,%rbx,4),%ebp /* int32 */ /* dv_vlc_class_index_mask[maxbits] */
+ and %eax,%ebp /* bits & */
+- lea dv_vlc_class_index_rshift(%rip),%rcx
++ mov dv_vlc_class_index_rshift@GOTPCREL(%rip),%rcx
+ mov (%rcx,%rbx,4),%ecx /* int32 */ /* dv_vlc_class_index_rshift[maxbits] */
+ sar %cl,%ebp /* >> */
+- lea dv_vlc_classes(%rip),%rcx
++ mov dv_vlc_classes@GOTPCREL(%rip),%rcx
+ mov (%rcx,%rbx,8),%rcx /* ptr */ /* dv_vlc_classes[maxbits], a pointer */
+ movsbq (%rcx,%rbp,1),%rbp /* int8 */ /* klass = */
+
+ /* *result = dv_vlc_lookups[klass][(bits & (dv_vlc_index_mask[klass])) >> */
+ /* (dv_vlc_index_rshift[klass])]; */
+ /* xor %rbx,%rbx */
+- lea dv_vlc_index_mask(%rip),%r11
++ mov dv_vlc_index_mask@GOTPCREL(%rip),%r11
+ mov (%r11,%rbp,4),%ebx /* int32 */ /* (dv_vlc_index_mask[klass]) */
+ /* xor %rcx,%rcx */
+- lea dv_vlc_index_rshift(%rip),%r11
++ mov dv_vlc_index_rshift@GOTPCREL(%rip),%r11
+ mov (%r11,%rbp,4),%ecx /* int32 */ /* dv_vlc_index_rshift[klass] */
+ and %eax,%ebx /* bits & */
+ sar %cl,%ebx /* >> */
+
+- lea dv_vlc_lookups(%rip),%r11
++ mov dv_vlc_lookups@GOTPCREL(%rip),%r11
+ mov (%r11,%rbp,8),%rbp /* ptr */ /* dv_vlc_lookups[klass] */
+ mov (%rbp,%rbx,4),%ebp /* int32 */ /* *result = */
+
+@@ -57,7 +57,7 @@
+ mov %ebp,%ecx
+ sar $8,%ecx
+ and $0xff,%ecx /* result->len */
+- lea sign_mask(%rip),%rbx
++ mov sign_mask@GOTPCREL(%rip),%rbx
+ mov (%rbx,%rcx,4),%ebx /* int32 */
+ and %ebx,%eax
+ neg %eax
+@@ -109,17 +109,17 @@
+ mov %rax,%rbp
+ and $0xfe00,%ebp
+ sar $9,%ebp
+- lea dv_vlc_class_lookup5(%rip),%r11
++ mov dv_vlc_class_lookup5@GOTPCREL(%rip),%r11
+ movsbq (%r11,%rbp),%rbp /* int8 klass */
+
+- lea dv_vlc_index_mask(%rip),%rbx
++ mov dv_vlc_index_mask@GOTPCREL(%rip),%rbx
+ mov (%rbx,%rbp,4),%ebx /* int32 */
+- lea dv_vlc_index_rshift(%rip),%rcx
++ mov dv_vlc_index_rshift@GOTPCREL(%rip),%rcx
+ mov (%rcx,%rbp,4),%ecx /* int32 */
+ and %eax,%ebx
+ sar %cl,%ebx /* %rbx is klass */
+
+- lea dv_vlc_lookups(%rip),%r11
++ mov dv_vlc_lookups@GOTPCREL(%rip),%r11
+ mov (%r11,%rbp,8),%rbp /* ptr */
+ mov (%rbp,%rbx,4),%ebp /* int32 */
+
+@@ -138,7 +138,7 @@
+ mov %ebp,%ecx
+ sar $8,%ecx
+ and $0xff,%ecx
+- lea sign_mask(%rip),%r11
++ mov sign_mask@GOTPCREL(%rip),%r11
+ mov (%r11,%rcx,4),%ecx /* int32 */
+ and %ecx,%eax
+ neg %eax
+@@ -253,7 +253,7 @@
+
+ /* Attempt to use the shortcut first. If it hits, then
+ this vlc term has been decoded. */
+- lea dv_vlc_class1_shortcut(%rip),%r10
++ mov dv_vlc_class1_shortcut@GOTPCREL(%rip),%r10
+ mov (%r10,%rcx,4),%r11d /* record32 dv_vlc_tab_t */
+ test $0x80,%r11d
+
+@@ -267,17 +267,17 @@
+
+ /* %rax is bits */
+
+- lea dv_vlc_class_lookup5(%rip),%r10
++ mov dv_vlc_class_lookup5@GOTPCREL(%rip),%r10
+ movsbq (%r10,%rcx,1),%rcx /* int8 */
+
+ /* xor %r12,%r12 */
+- lea dv_vlc_index_mask(%rip),%r10
++ mov dv_vlc_index_mask@GOTPCREL(%rip),%r10
+ mov (%r10,%rcx,4),%r12d /* int32 */
+
+- lea dv_vlc_lookups(%rip),%r10
++ mov dv_vlc_lookups@GOTPCREL(%rip),%r10
+ mov (%r10,%rcx,8),%r11 /* ptr->record32 */
+
+- lea dv_vlc_index_rshift(%rip),%r10
++ mov dv_vlc_index_rshift@GOTPCREL(%rip),%r10
+ mov (%r10,%rcx,4),%ecx /* int32 */
+
+ and %eax,%r12d
+@@ -303,7 +303,7 @@
+ mov %r11d,%ecx
+ sar $8,%ecx
+ and $0xff,%ecx
+- lea sign_mask(%rip),%r10
++ mov sign_mask@GOTPCREL(%rip),%r10
+ mov (%r10,%rcx,4),%ecx /* int32 */
+ and %ecx,%eax
+ neg %eax
+@@ -388,7 +388,8 @@
+ mov %r11,%rsi /* bits */
+ mov %rax,%rdi /* bits_left */
+ lea vlc(%rip),%rdx /* *vlc */
+- call dv_decode_vlc
++ mov dv_decode_vlc@GOTPCREL(%rip),%r11
++ call *%r11
+ pop %rdx
+ pop %rsi
+ pop %rdi
+@@ -473,7 +474,7 @@
+ movl %r11d,dv_macroblock_t_eob_count(%r13) /* int32 */
+
+ /* mb->i = (seg->i + dv_super_map_vertical[m]) % (seg->isPAL?12:10); */
+- lea dv_super_map_vertical(%rip),%r11
++ mov dv_super_map_vertical@GOTPCREL(%rip),%r11
+ movl (%r11,%rax,4),%r11d /* int32 */
+ /* xor %rcx,%rcx */
+ movl dv_videosegment_t_i(%r12),%ecx /* int32 */
+@@ -493,7 +494,7 @@
+ movl %r11d,dv_macroblock_t_i(%r13) /* int32 */
+
+ /* mb->j = dv_super_map_horizontal[m]; */
+- lea dv_super_map_horizontal(%rip),%r11
++ mov dv_super_map_horizontal@GOTPCREL(%rip),%r11
+ movl (%r11,%rax,4),%r11d /* int32 */
+ movl %r11d,dv_macroblock_t_j(%r13) /* int32 */
+
+@@ -546,7 +547,8 @@
+
+ /* bl->reorder = &dv_reorder[bl->dct_mode][1]; */
+ shl $6,%rax /* *64 */
+- lea (dv_reorder+1)(%rip),%rcx
++ mov dv_reorder@GOTPCREL(%rip),%rcx
++ add $1,%rcx
+ add %rcx,%rax
+ mov %rax,dv_block_t_reorder(%r15) /* ptr */
+
+@@ -557,13 +559,13 @@
+ /* bl->offset= mb_start + dv_parse_bit_start[b]; */
+ /* xor %rcx,%rcx */
+ movl mb_start(%rip),%ecx /* int32 */
+- lea dv_parse_bit_start(%rip),%rax
++ mov dv_parse_bit_start@GOTPCREL(%rip),%rax
+ mov (%rax,%r12,4),%eax /* int32 */
+ add %rcx,%rax
+ movl %eax,dv_block_t_offset(%r15) /* int32 */
+
+ /* bl->end= mb_start + dv_parse_bit_end[b]; */
+- lea dv_parse_bit_end(%rip),%rax
++ mov dv_parse_bit_end@GOTPCREL(%rip),%rax
+ mov (%rax,%r12,4),%eax /* int32 */
+ add %ecx,%eax
+ mov %eax,dv_block_t_end(%r15) /* int32 */
+@@ -603,7 +605,8 @@
+ mov dv_videosegment_t_bs(%rdi),%rdi /* passed in rdi was seg, now passing seg->bs */
+ mov %r13,%rsi /* mb */
+ mov %r15,%rdx /* bl */
+- call dv_parse_ac_coeffs_pass0
++ mov dv_parse_ac_coeffs_pass0@GOTPCREL(%rip),%r11
++ call *%r11
+ pop %rdi
+ pop %rsi
+ pop %rdx
+@@ -635,10 +638,12 @@
+ mov %rsi,%rax /* quality */
+ and $DV_QUALITY_AC_MASK,%rax
+ cmp $DV_QUALITY_AC_2,%rax
++
++ jne done
++ mov dv_parse_ac_coeffs@GOTPCREL(%rip),%r11
++ jmp *%r11
+
+- jz dv_parse_ac_coeffs
+-
+- mov $0,%rax
++done: mov $0,%rax
+
+ ret
+
diff --git a/abs/extra-testing/mjpegtools/PKGBUILD b/abs/extra-testing/mjpegtools/PKGBUILD
new file mode 100644
index 0000000..663e839
--- /dev/null
+++ b/abs/extra-testing/mjpegtools/PKGBUILD
@@ -0,0 +1,27 @@
+pkgname=mjpegtools
+pkgver=1.8.0
+pkgrel=1
+pkgdesc="The mjpeg programs are a set of tools that can do recording of videos and playback, simple cut-and-paste editing and the MPEG compression of audio and video under Linux. "
+arch=(i686 x86_64)
+license=('GPL')
+url="http://mjpeg.sourceforge.net/"
+depends=('libjpeg' 'libpng' 'sdl' 'gcc' 'libdv')
+makedepends=('gtk2')
+options=('!makeflags' '!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/mjpeg/${pkgname}-${pkgver}.tar.gz
+ mjpegtools-1.8.0-gcc41.patch mjpegtools-1.8.0-libc.patch)
+#md5sums=('6fd98362310480bdaf7171e9659f165f' '803eccd889c60a442ee23ba65951fadc')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+# patch -Np1 -i ${startdir}/src/mjpegtools-1.8.0-gcc41.patch || return 1
+ patch -Np1 -i ${startdir}/src/mjpegtools-1.8.0-libc.patch || return 1
+ ./configure --prefix=/usr
+ find -name Makefile -exec sed -i -e 's:-march=k8 -mtune=k8::' -e 's:-march=pentium3 -mtune=pentium3::' {} \;
+
+ make || return 1
+ make DESTDIR=${startdir}/pkg install
+
+ install -m644 mpeg2enc/mpeg2syntaxcodes.h \
+ ${startdir}/pkg/usr/include/mjpegtools/mpeg2enc/
+}
diff --git a/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-gcc41.patch b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-gcc41.patch
new file mode 100644
index 0000000..77d556f
--- /dev/null
+++ b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-gcc41.patch
@@ -0,0 +1,12 @@
+diff -ur mjpegtools-1.8.0-orig/y4mdenoise/Region2D.hh mjpegtools-1.8.0/y4mdenoise/Region2D.hh
+--- mjpegtools-1.8.0-orig/y4mdenoise/Region2D.hh 2005-12-19 12:36:54.000000000 +0300
++++ mjpegtools-1.8.0/y4mdenoise/Region2D.hh 2005-12-19 12:44:36.000000000 +0300
+@@ -16,7 +16,7 @@
+
+ #include "Status_t.h"
+ #include <iostream>
+-
++#include <cassert>
+
+
+ // The 2-dimensional region class. Parameterized by the numeric type
diff --git a/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-libc.patch b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-libc.patch
new file mode 100644
index 0000000..6ea14e0
--- /dev/null
+++ b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-libc.patch
@@ -0,0 +1,142 @@
+diff -ur mjpegtools-1.8.0.old/mpeg2enc/encodertypes.h mjpegtools-1.8.0/mpeg2enc/encodertypes.h
+--- mjpegtools-1.8.0.old/mpeg2enc/encodertypes.h 2008-10-28 13:17:34.000000000 -0500
++++ mjpegtools-1.8.0/mpeg2enc/encodertypes.h 2008-10-28 13:34:41.000000000 -0500
+@@ -23,7 +23,9 @@
+ * 02111-1307, USA.
+ *
+ */
+-
++
++#include <cstdlib>
++
+ #include "config.h"
+
+
+diff -ur mjpegtools-1.8.0.old/mpeg2enc/macroblock.cc mjpegtools-1.8.0/mpeg2enc/macroblock.cc
+--- mjpegtools-1.8.0.old/mpeg2enc/macroblock.cc 2008-10-28 13:17:34.000000000 -0500
++++ mjpegtools-1.8.0/mpeg2enc/macroblock.cc 2008-10-28 13:32:54.000000000 -0500
+@@ -19,6 +19,9 @@
+ *
+ */
+
++
++#include <limits>
++
+ #include <stdio.h>
+
+ #include "macroblock.hh"
+@@ -49,7 +52,7 @@
+ {
+ vector<MotionEst>::iterator i;
+ vector<MotionEst>::iterator min_me;
+- int best_score = INT_MAX;
++ int best_score = std::numeric_limits<int>::max();
+ int cur_score;
+
+ //
+diff -ur mjpegtools-1.8.0.old/mpeg2enc/motionest.cc mjpegtools-1.8.0/mpeg2enc/motionest.cc
+--- mjpegtools-1.8.0.old/mpeg2enc/motionest.cc 2008-10-28 13:17:34.000000000 -0500
++++ mjpegtools-1.8.0/mpeg2enc/motionest.cc 2008-10-28 13:38:03.000000000 -0500
+@@ -45,6 +45,8 @@
+ *
+ */
+
++#include <limits>
++
+ #include <config.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -1643,7 +1645,7 @@
+ a basis for setting thresholds for rejecting really dud 4*4
+ and 2*2 sub-sampled matches.
+ */
+- best.weight = psad_00(reffld+i0+j0*lx,ssblk->mb,lx,h,INT_MAX);
++ best.weight = psad_00(reffld+i0+j0*lx,ssblk->mb,lx,h,std::numeric_limits<int>::max());
+ best.x = 0;
+ best.y = 0;
+
+@@ -1714,7 +1716,7 @@
+ /* Final polish: half-pel search of best 1*1 against
+ reconstructed image.
+ */
+- res->sad = INT_MAX;
++ res->sad = std::numeric_limits<int>::max();
+ x = (i0+best.x)<<1;
+ y = (j0+best.y)<<1;
+
+diff -ur mjpegtools-1.8.0.old/mpeg2enc/picturereader.cc mjpegtools-1.8.0/mpeg2enc/picturereader.cc
+--- mjpegtools-1.8.0.old/mpeg2enc/picturereader.cc 2008-10-28 13:17:34.000000000 -0500
++++ mjpegtools-1.8.0/mpeg2enc/picturereader.cc 2008-10-28 13:36:50.000000000 -0500
+@@ -20,6 +20,8 @@
+ */
+
+
++#include <limits>
++
+ #include "picturereader.hh"
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -37,7 +39,7 @@
+ frames_read = 0;
+ last_frame = -1;
+ lum_mean = 0;
+- istrm_nframes = INT_MAX;
++ istrm_nframes = std::numeric_limits<int>::max();
+ }
+
+
+diff -ur mjpegtools-1.8.0.old/mplex/inputstrm.cpp mjpegtools-1.8.0/mplex/inputstrm.cpp
+--- mjpegtools-1.8.0.old/mplex/inputstrm.cpp 2008-10-28 13:17:34.000000000 -0500
++++ mjpegtools-1.8.0/mplex/inputstrm.cpp 2008-10-28 13:56:15.000000000 -0500
+@@ -21,6 +21,8 @@
+ */
+
+
++#include <limits>
++
+ #include <config.h>
+ #include <assert.h>
+
+@@ -72,7 +74,7 @@
+ au(0),
+ muxinto( into ),
+ kind(_kind),
+- buffer_min(INT_MAX),
++ buffer_min(std::numeric_limits<int>::max()),
+ buffer_max(1)
+ {
+ }
+diff -ur mjpegtools-1.8.0.old/mplex/main.cpp mjpegtools-1.8.0/mplex/main.cpp
+--- mjpegtools-1.8.0.old/mplex/main.cpp 2008-10-28 13:17:34.000000000 -0500
++++ mjpegtools-1.8.0/mplex/main.cpp 2008-10-28 14:06:49.000000000 -0500
+@@ -26,6 +26,7 @@
+ *************************************************************************/
+
+ #include <config.h>
++#include <cstring>
+ #include <stdio.h>
+ #ifdef HAVE_GETOPT_H
+ #include <getopt.h>
+diff -ur mjpegtools-1.8.0.old/mplex/multiplexor.cpp mjpegtools-1.8.0/mplex/multiplexor.cpp
+--- mjpegtools-1.8.0.old/mplex/multiplexor.cpp 2008-10-28 13:17:34.000000000 -0500
++++ mjpegtools-1.8.0/mplex/multiplexor.cpp 2008-10-28 13:59:51.000000000 -0500
+@@ -19,6 +19,7 @@
+ */
+
+ #define STREAM_LOGGING
++#include <cstring>
+ #include <config.h>
+ #include <math.h>
+ #include <stdlib.h>
+diff -ur mjpegtools-1.8.0.old/mplex/padstrm.cpp mjpegtools-1.8.0/mplex/padstrm.cpp
+--- mjpegtools-1.8.0.old/mplex/padstrm.cpp 2008-10-28 13:17:34.000000000 -0500
++++ mjpegtools-1.8.0/mplex/padstrm.cpp 2008-10-28 14:03:24.000000000 -0500
+@@ -20,6 +20,8 @@
+ */
+
+
++#include <cstring>
++
+ #ifdef HAVE_CONFIG_H
+ #include "config.h"
+ #endif
diff --git a/abs/extra-testing/myth2ipod/PKGBUILD b/abs/extra-testing/myth2ipod/PKGBUILD
new file mode 100755
index 0000000..ea55613
--- /dev/null
+++ b/abs/extra-testing/myth2ipod/PKGBUILD
@@ -0,0 +1,20 @@
+pkgname=myth2ipod
+pkgver=0.2
+pkgrel=15
+arch=("i686")
+pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
+url="myth2ipod.com"
+depends=('gpac' 'nuvexport' )
+install="myth2ipod.install"
+source=( http://myth2ipod.com/myth2ipod.txt http://myth2ipod.com/iPod.pm myth2ipod.patch myth2ipod-userjob.sh)
+
+
+build() {
+ cd $startdir/src
+ patch -p0 < myth2ipod.patch
+ install -D -m 755 myth2ipod.txt $startdir/pkg/usr/bin/myth2ipod
+ install -D -m 755 myth2ipod-userjob.sh /$startdir/pkg/usr/bin/myth2ipod-userjob.sh
+ install -D -m755 iPod.pm $startdir/pkg/usr/local/share/nuvexport/export/ffmpeg/iPod.pm
+
+
+}
diff --git a/abs/extra-testing/myth2ipod/iPod.pm b/abs/extra-testing/myth2ipod/iPod.pm
new file mode 100755
index 0000000..24eae99
--- /dev/null
+++ b/abs/extra-testing/myth2ipod/iPod.pm
@@ -0,0 +1,184 @@
+#
+# $Date: 2006-01-18 00:15:31 -0800 (Wed, 18 Jan 2006) $
+# $Revision: 226 $
+# $Author: xris $
+#
+# export::ffmpeg::iPod
+#
+
+package export::ffmpeg::iPod;
+ use base 'export::ffmpeg';
+
+# Load the myth and nuv utilities, and make sure we're connected to the database
+ use nuv_export::shared_utils;
+ use nuv_export::cli;
+ use nuv_export::ui;
+ use mythtv::db;
+ use mythtv::recordings;
+
+# Load the following extra parameters from the commandline
+ add_arg('quantisation|q=i', 'Quantisation');
+ add_arg('a_bitrate|a=i', 'Audio bitrate');
+ add_arg('v_bitrate|v=i', 'Video bitrate');
+ add_arg('multipass!', 'Enably two-pass encoding.');
+
+ sub new {
+ my $class = shift;
+ my $self = {
+ 'cli' => qr/\bipod\b/i,
+ 'name' => 'Export to iPod',
+ 'enabled' => 1,
+ 'errors' => [],
+ 'defaults' => {},
+ };
+ bless($self, $class);
+
+ # Initialize the default parameters
+ $self->load_defaults();
+
+ # Verify any commandline or config file options
+ die "Audio bitrate must be > 0\n" unless (!defined $self->val('a_bitrate') || $self->{'a_bitrate'} > 0);
+ die "Video bitrate must be > 0\n" unless (!defined $self->val('v_bitrate') || $self->{'v_bitrate'} > 0);
+
+ # VBR, multipass, etc.
+ if ($self->val('multipass')) {
+ $self->{'vbr'} = 0;
+ }
+ elsif ($self->val('quantisation')) {
+ die "Quantisation must be a number between 1 and 31 (lower means better quality).\n" if ($self->{'quantisation'} < 1 || $self->{'quantisation'} > 31);
+ $self->{'vbr'} = 1;
+ }
+
+ # Initialize and check for ffmpeg
+ $self->init_ffmpeg();
+
+ # Can we even encode ipod?
+ # if (!$self->can_encode('mov')) {
+ # push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to mov file formats.";
+ # }
+ if (!$self->can_encode('xvid')) {
+ push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to xvid video.";
+ }
+ if (!$self->can_encode('aac')) {
+ push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to aac audio.";
+ }
+ # Any errors? disable this function
+ $self->{'enabled'} = 0 if ($self->{'errors'} && @{$self->{'errors'}} > 0);
+ # Return
+ return $self;
+ }
+
+# Load default settings
+ sub load_defaults {
+ my $self = shift;
+ # Load the parent module's settings
+ $self->SUPER::load_defaults();
+ # Default bitrates
+ $self->{'defaults'}{'v_bitrate'} = 384;
+ $self->{'defaults'}{'a_bitrate'} = 64;
+ }
+
+# Gather settings from the user
+ sub gather_settings {
+ my $self = shift;
+ # Load the parent module's settings
+ $self->SUPER::gather_settings();
+ # Audio Bitrate
+ $self->{'a_bitrate'} = query_text('Audio bitrate?',
+ 'int',
+ $self->val('a_bitrate'));
+ # VBR options
+ if (!$is_cli) {
+ $self->{'vbr'} = query_text('Variable bitrate video?',
+ 'yesno',
+ $self->val('vbr'));
+ if ($self->{'vbr'}) {
+ $self->{'multipass'} = query_text('Multi-pass (slower, but better quality)?',
+ 'yesno',
+ $self->val('multipass'));
+ if (!$self->{'multipass'}) {
+ while (1) {
+ my $quantisation = query_text('VBR quality/quantisation (1-31)?',
+ 'float',
+ $self->val('quantisation'));
+ if ($quantisation < 1) {
+ print "Too low; please choose a number between 1 and 31.\n";
+ }
+ elsif ($quantisation > 31) {
+ print "Too high; please choose a number between 1 and 31\n";
+ }
+ else {
+ $self->{'quantisation'} = $quantisation;
+ last;
+ }
+ }
+ }
+ } else {
+ $self->{'multipass'} = 0;
+ }
+ # Ask the user what video bitrate he/she wants
+ $self->{'v_bitrate'} = query_text('Video bitrate?',
+ 'int',
+ $self->val('v_bitrate'));
+ }
+ }
+
+ sub export {
+ my $self = shift;
+ my $episode = shift;
+ # Force to 4:3 aspect ratio
+ $self->{'out_aspect'} = 1.3333;
+ $self->{'aspect_stretched'} = 1;
+ # PAL or NTSC?
+ my $standard = ($episode->{'finfo'}{'fps'} =~ /^2(?:5|4\.9)/) ? 'PAL' : 'NTSC';
+ $self->{'width'} = 320;
+ $self->{'height'} = ($standard eq 'PAL') ? '288' : '240';
+ $self->{'out_fps'} = ($standard eq 'PAL') ? 25 : 29.97;
+ # Embed the title
+ my $safe_title = shell_escape($episode->{'show_name'}.' - '.$episode->{'title'});
+ # Dual pass?
+ if ($self->{'multipass'}) {
+ # Build the common ffmpeg string
+ my $ffmpeg_xtra = ' -b ' . $self->{'v_bitrate'}
+ .' -bufsize 65535'
+ .' -vcodec xvid -acodec aac '
+ .' -ab ' . $self->{'a_bitrate'}
+ ." -f mp4 -title $safe_title";
+ # Add the temporary file to the list
+ push @tmpfiles, "/tmp/xvid.$$.log";
+ # Back up the path and use /dev/null for the first pass
+ my $path_bak = $self->{'path'};
+ $self->{'path'} = '/dev/null';
+ # Build the ffmpeg string
+ print "First pass...\n";
+ $self->{'ffmpeg_xtra'} = " -pass 1 -passlogfile '/tmp/divx.$$.log'"
+ .$ffmpeg_xtra;
+ $self->SUPER::export($episode, '');
+ # Restore the path
+ $self->{'path'} = $path_bak;
+ # Second Pass
+ print "Final pass...\n";
+ $self->{'ffmpeg_xtra'} = " -pass 2 -passlogfile '/tmp/divx.$$.log'"
+ .$ffmpeg_xtra;
+ }
+ # Single Pass
+ else {
+ $self->{'ffmpeg_xtra'} = ' -b ' . $self->{'v_bitrate'}
+ .(($self->{'vbr'})
+ ? ' -qmin '.$self->{'quantisation'}
+ .' -qmax 31 -minrate 32'
+ .' -maxrate '.(2*$self->{'v_bitrate'})
+ .' -bt 32'
+ : '')
+ .' -vcodec xvid -acodec aac '
+ .' -ab ' . $self->{'a_bitrate'}
+ ." -f mp4 -title $safe_title";
+ }
+ # Execute the (final pass) encode
+ $self->SUPER::export($episode, '.mp4');
+ }
+
+1; #return true
+
+# vim:ts=4:sw=4:ai:et:si:sts=4
+
diff --git a/abs/extra-testing/myth2ipod/myth2ipod-userjob.sh b/abs/extra-testing/myth2ipod/myth2ipod-userjob.sh
new file mode 100755
index 0000000..9ed65b2
--- /dev/null
+++ b/abs/extra-testing/myth2ipod/myth2ipod-userjob.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+. /etc/profile
+#su mythtv -c "TERM=vt100 /usr/bin/myth2ipod "$1" "$2" >/tmp/logfile"
+su mythtv -c "TERM=vt100 /usr/bin/myth2ipod "$1" "$2" "
+#or to also use commercial flagging cutlist
+#su mythtv -c "TERM=vt100 /usr/bin/myth2ipod -cut "$1" "$2" >/tmp/logfile"
diff --git a/abs/extra-testing/myth2ipod/myth2ipod.install b/abs/extra-testing/myth2ipod/myth2ipod.install
new file mode 100755
index 0000000..a1c1ce7
--- /dev/null
+++ b/abs/extra-testing/myth2ipod/myth2ipod.install
@@ -0,0 +1,41 @@
+
+pre_install() {
+ echo ""
+}
+
+pre_upgrade() {
+ pre_install
+}
+
+pre_remove() {
+ pre_install
+}
+
+post_install() {
+ . /etc/systemconfig
+ mkdir /data/media/ipodfeed
+ chown mythtv:users /data/media/ipodfeed
+ ln -s /data/media/ipodfeed /data/srv/httpd/htdocs/ipodfeed
+ cp /usr/bin/myth2ipod /tmp
+ sed -e "s/REPLACEME/$hostname/g" /tmp/myth2ipod > /usr/bin/myth2ipod
+
+
+}
+
+post_upgrade() {
+
+
+ mkdir /data/media/ipodfeed
+ chown mythtv:users /data/media/ipodfeed
+ ln -s /data/media/ipodfeed /data/srv/httpd/htdocs/ipodfeed
+ /usr/bin/myth2ipod -rebuild
+}
+
+post_remove() {
+ post_install
+}
+
+op=$1
+shift
+
+$op $* \ No newline at end of file
diff --git a/abs/extra-testing/myth2ipod/myth2ipod.patch b/abs/extra-testing/myth2ipod/myth2ipod.patch
new file mode 100755
index 0000000..95785ab
--- /dev/null
+++ b/abs/extra-testing/myth2ipod/myth2ipod.patch
@@ -0,0 +1,35 @@
+--- myth2ipod.txt 2007-06-01 10:00:02.000000000 -0500
++++ myth2ipod.txt.modified 2007-06-01 11:24:26.000000000 -0500
+@@ -12,10 +12,10 @@
+
+ # User variables
+ my $portable = "ipod";
+- my $feedfile = "/myth/ipodfeed/feed.php";
+- my $feedpath = "/myth/ipodfeed/";
+- my $wwwloc = "/var/www/";
+- my $feedurl = "http://hostname/ipodfeed/";
++ my $feedfile = "/data/media/ipodfeed/feed.php";
++ my $feedpath = "/data/media/ipodfeed/";
++ my $wwwloc = "/data/srv/httpd/htdocs/";
++ my $feedurl = "http://REPLACEME/ipodfeed/";
+ my $nuvoptions ="--mode=iPod --nice=19 --cutlist --nodenoise --nodeinterlace --nomultipass";
+
+ # Some variables
+@@ -136,7 +136,7 @@
+ # Create cutlist from commercial flagging if -cut was passed to the script
+ if ($cut == 1){
+ printf("Generating cutlist\n");
+- $cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist";
++ $cmd = "/usr/local/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist";
+ print $cmd."\n";
+ if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; }
+ }
+@@ -147,7 +147,7 @@
+ if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; }
+
+ # Now clean up the output so iPods with firmware 1.1 and above can use it
+- $cmd = "/usr/local/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4";
++ $cmd = "/usr/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4";
+ print $cmd."\n";
+ if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; }
+ return 0;
diff --git a/abs/extra-testing/myth2ipod/myth2ipod.txt b/abs/extra-testing/myth2ipod/myth2ipod.txt
new file mode 100755
index 0000000..d3d0dab
--- /dev/null
+++ b/abs/extra-testing/myth2ipod/myth2ipod.txt
@@ -0,0 +1,310 @@
+#!/usr/bin/perl -w
+# VERSION: 1.0b2 - myth2ipod
+# Get the latest version, and change log at myth2ipod.com
+# Author: Chris aka Wififun - email: wififun@myth2ipod.com
+# Contributions and testing by Paul Egli
+# modified to use nuvexport by starv at juniks dot org
+
+# Includes
+ use DBI;
+ use Getopt::Long;
+ use File::Path;
+
+# User variables
+ my $portable = "ipod";
+ my $feedfile = "/myth/ipodfeed/feed.php";
+ my $feedpath = "/myth/ipodfeed/";
+ my $wwwloc = "/var/www/";
+ my $feedurl = "http://hostname/ipodfeed/";
+ my $nuvoptions ="--mode=iPod --nice=19 --cutlist --nodenoise --nodeinterlace --nomultipass";
+
+# Some variables
+ our ($dest, $format, $usage);
+ our ($db_host, $db_user, $db_name, $db_pass, $video_dir);
+ our ($hostname, $db_handle, $sql, $statement, $row_ref);
+ our ($chanid, $start, $nuvfile, @nuvarray);
+ my $rebuild = '0';
+ my $encode = '0';
+ my $debug = '0';
+ my $setup = '0';
+ my $cut = '0';
+ my( $rightnow ) = `date`;
+
+GetOptions ("rebuild" => \$rebuild,
+ "encode" => \$encode,
+ "debug" => \$debug,
+ "setup" => \$setup,
+ "cut" => \$cut);
+
+if ($setup == 1){
+ system("clear");
+ print "Setup will do everything needed to run this script.\n";
+ print "This has only been tested on KnoppMyth R5A22.\n";
+ print "make sure you have edited the variables for your conguration.\n";
+ my $cksetup = &promptUser("\nAre you sure you want to procceed?","n");
+ if ($cksetup =~ "y") {
+ DoSetup();
+ exit;
+ }
+ print "Setup exited. Nothing done.\n";
+ exit;
+}
+elsif ($rebuild == 1){
+ GenerateRSSFeed();
+ print "Rebuilding of RSS feed is complete.\n";
+ exit;
+}
+else {
+ Encode4Portable();
+ print "$title is ready for your $portable\n";
+
+ # Check to see if the feed file exists; if not, create it.
+ if (! -e $feedfile) {
+ print "No feed file found. I will make one for you.\n";
+ GenerateRSSFeed();
+ print "All done.\n";
+ }
+}
+
+sub Encode4Portable{
+ if ($#ARGV != 1) {
+ print "Encoding requires options.\nusage: myth2ipod <options> DIRECTORY FILE\n";
+ exit;
+ }
+
+ # Get the show information
+ $directory = $ARGV[0];
+ $file = $ARGV[1];
+ @file = split(/_/, $file);
+ $chanid = $file[0];
+ $start = substr $file[1],0,14;
+ if($debug == 1){ print "$chanid\n$start\n"};
+ if (! -e $directory."/".$file){
+ print "Opps, the file ".$directory.$file." does not exist.\n";
+ exit;
+ }
+
+ # Connect to the database
+ PrepSQLRead();
+ $db_handle = DBI->connect("dbi:mysql:database=$db_name:host=$db_host", $db_user, $db_pass)
+ or die "Cannot connect to database: $!\n\n";
+ $sql = "SELECT title, subtitle, description, category, starttime FROM recorded WHERE chanid = $chanid AND DATE_FORMAT(starttime,'%Y%m%d%H%i%s') = $start";
+
+ $statement = $db_handle->prepare($sql)
+ or die "Couldn't prepare query '$sql': $DBI::errstr\n";
+
+ $statement->execute()
+ or die "Couldn't execute query '$sql': $DBI::errstr\n";
+ $row_ref = $statement->fetchrow_hashref();
+ if($debug == 1){ print "$row_ref->{starttime}\n"};
+ $title = $row_ref->{title};
+ $subtitle = $row_ref->{subtitle};
+ $recorddate = $row_ref->{starttime};
+ $description = $row_ref->{description};
+ $category = $row_ref->{category};
+ $filename = $title."-".$subtitle."-".substr $start, 0, 8;
+ $filename =~ s/ /_/g;
+ $filename =~ s/&/+/g;
+ $filename =~ s/\047//g;
+ $filename =~ s/[^+0-9a-zA-Z_-]+/_/g;
+ $filename =~ s/_$//g;
+
+ printf("Starting nuvexport...\n");
+ EncodeIt();
+ printf("Nuvexport completed, starting xml generation...\n");
+ CreateItemXML();
+ printf("XML file created for \"$filename\" : Yipeee\n");
+ printf("Cleaning up temporary files\n");
+ $cmd = "rm -f $feedpath$chanid\_$start.temp.mp4";
+ print $cmd."\n";
+ if(system($cmd)) { print "Removing nuvexport temp file failed\n"; }
+
+ # remove the cutlist incase we added it.
+ if ($cut == 1){
+ printf("Generating cutlist\n");
+ $cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --clearcutlist";
+ print $cmd."\n";
+ if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; }
+ }
+ return 0;
+}
+
+#
+# Encode for Portable
+#
+sub EncodeIt {
+ # Create cutlist from commercial flagging if -cut was passed to the script
+ if ($cut == 1){
+ printf("Generating cutlist\n");
+ $cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist";
+ print $cmd."\n";
+ if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; }
+ }
+
+ # Use nuvexport to do the work
+ $cmd = "/usr/local/bin/nuvexport --chanid=$chanid --start=$start $nuvoptions --filename=$chanid\_$start.temp --path=$feedpath";
+ print $cmd."\n";
+ if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; }
+
+ # Now clean up the output so iPods with firmware 1.1 and above can use it
+ $cmd = "/usr/local/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4";
+ print $cmd."\n";
+ if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; }
+ return 0;
+}
+
+#
+# Create XML with <ITEM> tag for this video file
+#
+sub CreateItemXML {
+ open(ITEM, ">$feedpath$chanid\_$start.$portable.xml");
+ print ITEM "<item>\n";
+ print ITEM "<title>".&encodeForXML($title." - ".$subtitle)."</title>\n";
+ print ITEM "<itunes:author>MythTV</itunes:author>\n";
+ print ITEM "<author>MythTV</author>\n";
+ print ITEM "<itunes:category text=\"TV Shows\"></itunes:category>\n";
+ print ITEM "<comments>".&encodeForXML($file)."</comments>\n";
+ print ITEM "<description>".&encodeForXML($description)."</description>\n";
+ print ITEM "<pubDate>".$recorddate."</pubDate>\n";
+ print ITEM "<enclosure url=\"".&encodeForXML("$feedurl$chanid\_$start.$portable.mp4")."\" type=\"video/quicktime\" />\n";
+ print ITEM "<itunes:duration></itunes:duration>\n";
+ print ITEM "<itunes:keywords>".&encodeForXML($title." - ".$subtitle." - ".$category)."</itunes:keywords>\n";
+ print ITEM "<category>".&encodeForXML($category)."</category>\n";
+ print ITEM "</item>\n";
+ print "\"$filename\" has been added to the feed.\n";
+ close(ITEM);
+ return 0;
+}
+
+#
+# Generate the RSS feed by combining the ITEM XML Files
+#
+sub GenerateRSSFeed {
+
+ open(RSS, ">$feedfile");
+ print RSS "<?php\n";
+ print RSS "header(\"Content-Type: text/xml\");\n";
+ print RSS "echo \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\"; ?>\n";
+ print RSS "<rss xmlns:itunes=\"http://www.itunes.com/DTDs/Podcast-1.0.dtd\" version=\"2.0\">\n";
+ print RSS "<channel>\n";
+ print RSS "<title>MythTV - <? if (\$_GET['title'] == \"\") { \$title = \"*\"; echo \"Recorded Programs\"; }\n";
+ print RSS "else { \$title = \$_GET['title']; echo str_replace(\"_\",\" \",\$_GET['title']); } ?> </title>\n";
+ print RSS "<itunes:author>MythTV - myth2ipod</itunes:author>\n";
+ print RSS "<link>".&encodeForXML($feedurl)."</link>\n";
+ print RSS "<itunes:subtitle>Transcoded recording for your iPod Video.</itunes:subtitle>\n";
+ print RSS "<itunes:summary>Myth TV Recorded Programs for the iPod v.1</itunes:summary>\n";
+ print RSS "<description>Myth TV Recorded Programs for the iPod v.1</description>\n";
+ print RSS "<itunes:owner>\n";
+ print RSS "<itunes:name>MythTV</itunes:name>\n";
+ print RSS "<itunes:email>mythtv\@localhost</itunes:email>\n";
+ print RSS "</itunes:owner>\n";
+ print RSS "<itunes:explicit>No</itunes:explicit>\n";
+ print RSS "<language>en-us</language>\n";
+ print RSS "<copyright>Copyright 2005.</copyright>\n";
+ print RSS "<webMaster>mythtv\@localhost</webMaster>\n";
+ print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\" />\n";
+ print RSS "<itunes:category text=\"TV Shows\"></itunes:category>\n";
+ print RSS "<category>TV Shows</category>\n";
+ print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\"/>";
+ print RSS "<image>";
+ print RSS "<url>http://myth2ipod.com/mythipod_200.jpg</url>\n";
+ print RSS "<title>MythTV 2 iPod</title>\n";
+ print RSS "<link>".&encodeForXML($feedurl)."</link>\n";
+ print RSS "<width>200</width>\n";
+ print RSS "<height>200</height>\n";
+ print RSS "</image>\n";
+ print RSS "<? foreach (glob(\$title\.\"*\.$portable\.xml\") as \$file) {include \$file;} ?>\n";
+ print RSS "</channel>\n";
+ print RSS "</rss>\n";
+ close(RSS);
+ if($debug == 1){ print "I created a feed file, was I supposed to?\n"};
+
+ return 0;
+}
+
+# substitute for XML entities
+sub encodeForXML {
+ local $result;
+ $result = $_[0];
+ $result =~ s/&/&amp;/g;
+ $result =~ s/</&lt;/g;
+ $result =~ s/>/&gt;/g;
+ $result;
+}
+
+
+#
+# This code taken from one of the mythlink.sh scripts to get MySQL information
+#
+sub PrepSQLRead{
+# Get the hostname of this machine
+ $hostname = `hostname`;
+ chomp($hostname);
+
+# Read the mysql.txt file in use by MythTV.
+# could be in a couple places, so try the usual suspects
+ my $found = 0;
+ my @mysql = ('/usr/local/share/mythtv/mysql.txt',
+ '/usr/share/mythtv/mysql.txt',
+ '/etc/mythtv/mysql.txt',
+ '/usr/local/etc/mythtv/mysql.txt',
+ "$ENV{HOME}/.mythtv/mysql.txt",
+ 'mysql.txt'
+ );
+ foreach my $file (@mysql) {
+ next unless (-e $file);
+ $found = 1;
+ open(CONF, $file) or die "Unable to open $file: $!\n\n";
+ while (my $line = <CONF>) {
+ # Cleanup
+ next if ($line =~ /^\s*#/);
+ $line =~ s/^str //;
+ chomp($line);
+ # Split off the var=val pairs
+ my ($var, $val) = split(/\=/, $line, 2);
+ next unless ($var && $var =~ /\w/);
+ if ($var eq 'DBHostName') {
+ $db_host = $val;
+ }
+ elsif ($var eq 'DBUserName') {
+ $db_user = $val;
+ }
+ elsif ($var eq 'DBName') {
+ $db_name = $val;
+ }
+ elsif ($var eq 'DBPassword') {
+ $db_pass = $val;
+ }
+ # Hostname override
+ elsif ($var eq 'LocalHostName') {
+ $hostname = $val;
+ }
+ }
+ close CONF;
+ }
+ die "Unable to locate mysql.txt: $!\n\n" unless ($found && $db_host);
+ return 0;
+}
+
+sub promptUser {
+ local($promptString,$defaultValue) = @_;
+ if ($defaultValue) {
+ print $promptString, "[", $defaultValue, "]: ";
+ } else {
+ print $promptString, ": ";
+ }
+
+ $| = 1; # force a flush after our print
+ $_ = <STDIN>; # get the input from STDIN (presumably the keyboard)
+ chomp;
+ if ("$defaultValue") {
+ return $_ ? $_ : $defaultValue; # return $_ if it has a value
+ } else {
+ return $_;
+ }
+}
+
+sub DoSetup {
+ print "\nNot ready yet. How do you send the cd command from perl?\n";
+ return 0;
+}
diff --git a/abs/extra-testing/myth2ipod/myth2ipod.txt.modified b/abs/extra-testing/myth2ipod/myth2ipod.txt.modified
new file mode 100755
index 0000000..ab41a2f
--- /dev/null
+++ b/abs/extra-testing/myth2ipod/myth2ipod.txt.modified
@@ -0,0 +1,310 @@
+#!/usr/bin/perl -w
+# VERSION: 1.0b2 - myth2ipod
+# Get the latest version, and change log at myth2ipod.com
+# Author: Chris aka Wififun - email: wififun@myth2ipod.com
+# Contributions and testing by Paul Egli
+# modified to use nuvexport by starv at juniks dot org
+
+# Includes
+ use DBI;
+ use Getopt::Long;
+ use File::Path;
+
+# User variables
+ my $portable = "ipod";
+ my $feedfile = "/data/media/feed.php";
+ my $feedpath = "/data/media/";
+ my $wwwloc = "/data/srv/httpd/htdocs/";
+ my $feedurl = "http://REPLACEME/ipodfeed/";
+ my $nuvoptions ="--mode=iPod --nice=19 --cutlist --nodenoise --nodeinterlace --nomultipass";
+
+# Some variables
+ our ($dest, $format, $usage);
+ our ($db_host, $db_user, $db_name, $db_pass, $video_dir);
+ our ($hostname, $db_handle, $sql, $statement, $row_ref);
+ our ($chanid, $start, $nuvfile, @nuvarray);
+ my $rebuild = '0';
+ my $encode = '0';
+ my $debug = '0';
+ my $setup = '0';
+ my $cut = '0';
+ my( $rightnow ) = `date`;
+
+GetOptions ("rebuild" => \$rebuild,
+ "encode" => \$encode,
+ "debug" => \$debug,
+ "setup" => \$setup,
+ "cut" => \$cut);
+
+if ($setup == 1){
+ system("clear");
+ print "Setup will do everything needed to run this script.\n";
+ print "This has only been tested on KnoppMyth R5A22.\n";
+ print "make sure you have edited the variables for your conguration.\n";
+ my $cksetup = &promptUser("\nAre you sure you want to procceed?","n");
+ if ($cksetup =~ "y") {
+ DoSetup();
+ exit;
+ }
+ print "Setup exited. Nothing done.\n";
+ exit;
+}
+elsif ($rebuild == 1){
+ GenerateRSSFeed();
+ print "Rebuilding of RSS feed is complete.\n";
+ exit;
+}
+else {
+ Encode4Portable();
+ print "$title is ready for your $portable\n";
+
+ # Check to see if the feed file exists; if not, create it.
+ if (! -e $feedfile) {
+ print "No feed file found. I will make one for you.\n";
+ GenerateRSSFeed();
+ print "All done.\n";
+ }
+}
+
+sub Encode4Portable{
+ if ($#ARGV != 1) {
+ print "Encoding requires options.\nusage: myth2ipod <options> DIRECTORY FILE\n";
+ exit;
+ }
+
+ # Get the show information
+ $directory = $ARGV[0];
+ $file = $ARGV[1];
+ @file = split(/_/, $file);
+ $chanid = $file[0];
+ $start = substr $file[1],0,14;
+ if($debug == 1){ print "$chanid\n$start\n"};
+ if (! -e $directory."/".$file){
+ print "Opps, the file ".$directory.$file." does not exist.\n";
+ exit;
+ }
+
+ # Connect to the database
+ PrepSQLRead();
+ $db_handle = DBI->connect("dbi:mysql:database=$db_name:host=$db_host", $db_user, $db_pass)
+ or die "Cannot connect to database: $!\n\n";
+ $sql = "SELECT title, subtitle, description, category, starttime FROM recorded WHERE chanid = $chanid AND DATE_FORMAT(starttime,'%Y%m%d%H%i%s') = $start";
+
+ $statement = $db_handle->prepare($sql)
+ or die "Couldn't prepare query '$sql': $DBI::errstr\n";
+
+ $statement->execute()
+ or die "Couldn't execute query '$sql': $DBI::errstr\n";
+ $row_ref = $statement->fetchrow_hashref();
+ if($debug == 1){ print "$row_ref->{starttime}\n"};
+ $title = $row_ref->{title};
+ $subtitle = $row_ref->{subtitle};
+ $recorddate = $row_ref->{starttime};
+ $description = $row_ref->{description};
+ $category = $row_ref->{category};
+ $filename = $title."-".$subtitle."-".substr $start, 0, 8;
+ $filename =~ s/ /_/g;
+ $filename =~ s/&/+/g;
+ $filename =~ s/\047//g;
+ $filename =~ s/[^+0-9a-zA-Z_-]+/_/g;
+ $filename =~ s/_$//g;
+
+ printf("Starting nuvexport...\n");
+ EncodeIt();
+ printf("Nuvexport completed, starting xml generation...\n");
+ CreateItemXML();
+ printf("XML file created for \"$filename\" : Yipeee\n");
+ printf("Cleaning up temporary files\n");
+ $cmd = "rm -f $feedpath$chanid\_$start.temp.mp4";
+ print $cmd."\n";
+ if(system($cmd)) { print "Removing nuvexport temp file failed\n"; }
+
+ # remove the cutlist incase we added it.
+ if ($cut == 1){
+ printf("Generating cutlist\n");
+ $cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --clearcutlist";
+ print $cmd."\n";
+ if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; }
+ }
+ return 0;
+}
+
+#
+# Encode for Portable
+#
+sub EncodeIt {
+ # Create cutlist from commercial flagging if -cut was passed to the script
+ if ($cut == 1){
+ printf("Generating cutlist\n");
+ $cmd = "/usr/local/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist";
+ print $cmd."\n";
+ if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; }
+ }
+
+ # Use nuvexport to do the work
+ $cmd = "/usr/local/bin/nuvexport --chanid=$chanid --start=$start $nuvoptions --filename=$chanid\_$start.temp --path=$feedpath";
+ print $cmd."\n";
+ if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; }
+
+ # Now clean up the output so iPods with firmware 1.1 and above can use it
+ $cmd = "/usr/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4";
+ print $cmd."\n";
+ if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; }
+ return 0;
+}
+
+#
+# Create XML with <ITEM> tag for this video file
+#
+sub CreateItemXML {
+ open(ITEM, ">$feedpath$chanid\_$start.$portable.xml");
+ print ITEM "<item>\n";
+ print ITEM "<title>".&encodeForXML($title." - ".$subtitle)."</title>\n";
+ print ITEM "<itunes:author>MythTV</itunes:author>\n";
+ print ITEM "<author>MythTV</author>\n";
+ print ITEM "<itunes:category text=\"TV Shows\"></itunes:category>\n";
+ print ITEM "<comments>".&encodeForXML($file)."</comments>\n";
+ print ITEM "<description>".&encodeForXML($description)."</description>\n";
+ print ITEM "<pubDate>".$recorddate."</pubDate>\n";
+ print ITEM "<enclosure url=\"".&encodeForXML("$feedurl$chanid\_$start.$portable.mp4")."\" type=\"video/quicktime\" />\n";
+ print ITEM "<itunes:duration></itunes:duration>\n";
+ print ITEM "<itunes:keywords>".&encodeForXML($title." - ".$subtitle." - ".$category)."</itunes:keywords>\n";
+ print ITEM "<category>".&encodeForXML($category)."</category>\n";
+ print ITEM "</item>\n";
+ print "\"$filename\" has been added to the feed.\n";
+ close(ITEM);
+ return 0;
+}
+
+#
+# Generate the RSS feed by combining the ITEM XML Files
+#
+sub GenerateRSSFeed {
+
+ open(RSS, ">$feedfile");
+ print RSS "<?php\n";
+ print RSS "header(\"Content-Type: text/xml\");\n";
+ print RSS "echo \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\"; ?>\n";
+ print RSS "<rss xmlns:itunes=\"http://www.itunes.com/DTDs/Podcast-1.0.dtd\" version=\"2.0\">\n";
+ print RSS "<channel>\n";
+ print RSS "<title>MythTV - <? if (\$_GET['title'] == \"\") { \$title = \"*\"; echo \"Recorded Programs\"; }\n";
+ print RSS "else { \$title = \$_GET['title']; echo str_replace(\"_\",\" \",\$_GET['title']); } ?> </title>\n";
+ print RSS "<itunes:author>MythTV - myth2ipod</itunes:author>\n";
+ print RSS "<link>".&encodeForXML($feedurl)."</link>\n";
+ print RSS "<itunes:subtitle>Transcoded recording for your iPod Video.</itunes:subtitle>\n";
+ print RSS "<itunes:summary>Myth TV Recorded Programs for the iPod v.1</itunes:summary>\n";
+ print RSS "<description>Myth TV Recorded Programs for the iPod v.1</description>\n";
+ print RSS "<itunes:owner>\n";
+ print RSS "<itunes:name>MythTV</itunes:name>\n";
+ print RSS "<itunes:email>mythtv\@localhost</itunes:email>\n";
+ print RSS "</itunes:owner>\n";
+ print RSS "<itunes:explicit>No</itunes:explicit>\n";
+ print RSS "<language>en-us</language>\n";
+ print RSS "<copyright>Copyright 2005.</copyright>\n";
+ print RSS "<webMaster>mythtv\@localhost</webMaster>\n";
+ print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\" />\n";
+ print RSS "<itunes:category text=\"TV Shows\"></itunes:category>\n";
+ print RSS "<category>TV Shows</category>\n";
+ print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\"/>";
+ print RSS "<image>";
+ print RSS "<url>http://myth2ipod.com/mythipod_200.jpg</url>\n";
+ print RSS "<title>MythTV 2 iPod</title>\n";
+ print RSS "<link>".&encodeForXML($feedurl)."</link>\n";
+ print RSS "<width>200</width>\n";
+ print RSS "<height>200</height>\n";
+ print RSS "</image>\n";
+ print RSS "<? foreach (glob(\$title\.\"*\.$portable\.xml\") as \$file) {include \$file;} ?>\n";
+ print RSS "</channel>\n";
+ print RSS "</rss>\n";
+ close(RSS);
+ if($debug == 1){ print "I created a feed file, was I supposed to?\n"};
+
+ return 0;
+}
+
+# substitute for XML entities
+sub encodeForXML {
+ local $result;
+ $result = $_[0];
+ $result =~ s/&/&amp;/g;
+ $result =~ s/</&lt;/g;
+ $result =~ s/>/&gt;/g;
+ $result;
+}
+
+
+#
+# This code taken from one of the mythlink.sh scripts to get MySQL information
+#
+sub PrepSQLRead{
+# Get the hostname of this machine
+ $hostname = `hostname`;
+ chomp($hostname);
+
+# Read the mysql.txt file in use by MythTV.
+# could be in a couple places, so try the usual suspects
+ my $found = 0;
+ my @mysql = ('/usr/local/share/mythtv/mysql.txt',
+ '/usr/share/mythtv/mysql.txt',
+ '/etc/mythtv/mysql.txt',
+ '/usr/local/etc/mythtv/mysql.txt',
+ "$ENV{HOME}/.mythtv/mysql.txt",
+ 'mysql.txt'
+ );
+ foreach my $file (@mysql) {
+ next unless (-e $file);
+ $found = 1;
+ open(CONF, $file) or die "Unable to open $file: $!\n\n";
+ while (my $line = <CONF>) {
+ # Cleanup
+ next if ($line =~ /^\s*#/);
+ $line =~ s/^str //;
+ chomp($line);
+ # Split off the var=val pairs
+ my ($var, $val) = split(/\=/, $line, 2);
+ next unless ($var && $var =~ /\w/);
+ if ($var eq 'DBHostName') {
+ $db_host = $val;
+ }
+ elsif ($var eq 'DBUserName') {
+ $db_user = $val;
+ }
+ elsif ($var eq 'DBName') {
+ $db_name = $val;
+ }
+ elsif ($var eq 'DBPassword') {
+ $db_pass = $val;
+ }
+ # Hostname override
+ elsif ($var eq 'LocalHostName') {
+ $hostname = $val;
+ }
+ }
+ close CONF;
+ }
+ die "Unable to locate mysql.txt: $!\n\n" unless ($found && $db_host);
+ return 0;
+}
+
+sub promptUser {
+ local($promptString,$defaultValue) = @_;
+ if ($defaultValue) {
+ print $promptString, "[", $defaultValue, "]: ";
+ } else {
+ print $promptString, ": ";
+ }
+
+ $| = 1; # force a flush after our print
+ $_ = <STDIN>; # get the input from STDIN (presumably the keyboard)
+ chomp;
+ if ("$defaultValue") {
+ return $_ ? $_ : $defaultValue; # return $_ if it has a value
+ } else {
+ return $_;
+ }
+}
+
+sub DoSetup {
+ print "\nNot ready yet. How do you send the cd command from perl?\n";
+ return 0;
+}
diff --git a/abs/extra-testing/nasm/PKGBUILD b/abs/extra-testing/nasm/PKGBUILD
new file mode 100644
index 0000000..fbac564
--- /dev/null
+++ b/abs/extra-testing/nasm/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD,v 1.11 2005/03/01 07:53:53 dorphell Exp $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=nasm
+pkgver=0.98.39
+pkgrel=1
+pkgdesc="80x86 assembler designed for portability and modularity"
+depends=('glibc')
+arch=i686
+source=(http://easynews.dl.sourceforge.net/sourceforge/nasm/nasm-$pkgver.tar.bz2)
+md5sums=('2032ad44c7359f7a9a166a40a633e772')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ mkdir -p $startdir/pkg/usr/{bin,man/man1}
+ make prefix=$startdir/pkg/usr install
+}
diff --git a/abs/extra-testing/nspr/PKGBUILD b/abs/extra-testing/nspr/PKGBUILD
new file mode 100644
index 0000000..e968390
--- /dev/null
+++ b/abs/extra-testing/nspr/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 2577 2008-06-08 12:29:04Z jgc $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+pkgname=nspr
+pkgver=4.7.1
+pkgrel=1
+pkgdesc="Netscape Portable Runtime"
+arch=(i686 x86_64)
+url="http://www.mozilla.org/projects/nspr/"
+license=('MPL' 'GPL')
+depends=('glibc')
+makedepends=('zip')
+options=(!emptydirs)
+source=(ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${pkgver}/src/${pkgname}-${pkgver}.tar.gz
+ nspr.pc.in)
+md5sums=('7c6e75a0867ce2b9ec62e399a908b5ac'
+ 'bce1611f3117b53fc904cab549c09967')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ [ "$CARCH" = "x86_64" ] && confflags="--enable-64bit"
+ unset CFLAGS
+ unset CXXFLAGS
+ ./mozilla/nsprpub/configure \
+ --prefix=/usr \
+ --libdir=/usr/lib \
+ --includedir=/usr/include/nspr \
+ --enable-optimize \
+ --disable-debug ${confflags} || return 1
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+
+ NSPR_LIBS=`./config/nspr-config --libs`
+ NSPR_CFLAGS=`./config/nspr-config --cflags`
+ NSPR_VERSION=`./config/nspr-config --version`
+ install -m755 -d ${startdir}/pkg/usr/lib/pkgconfig || return 1
+ sed ${startdir}/src/nspr.pc.in -e "s,%libdir%,/usr/lib," \
+ -e "s,%prefix%,/usr," \
+ -e "s,%exec_prefix%,/usr/bin," \
+ -e "s,%includedir%,/usr/include/nspr," \
+ -e "s,%NSPR_VERSION%,${NSPR_VERSION}," \
+ -e "s,%FULL_NSPR_LIBS%,${NSPR_LIBS}," \
+ -e "s,%FULL_NSPR_CFLAGS%,${NSPR_CFLAGS}," > ${startdir}/pkg/usr/lib/pkgconfig/nspr.pc || return 1
+ chmod 644 ${startdir}/pkg/usr/lib/pkgconfig/nspr.pc || return 1
+ ln -sf nspr.pc ${startdir}/pkg/usr/lib/pkgconfig/mozilla-nspr.pc || return 1
+
+ chmod 644 ${startdir}/pkg/usr/lib/*.a || return 1
+
+ rm -rf ${startdir}/pkg/usr/bin/compile-et.pl \
+ ${startdir}/pkg/usr/bin/prerr.properties \
+ ${startdir}/pkg/usr/share/aclocal/nspr.m4 \
+ ${startdir}/pkg/usr/include/nspr/md
+}
diff --git a/abs/extra-testing/nspr/nspr.pc.in b/abs/extra-testing/nspr/nspr.pc.in
new file mode 100644
index 0000000..1d8f4a0
--- /dev/null
+++ b/abs/extra-testing/nspr/nspr.pc.in
@@ -0,0 +1,10 @@
+prefix=%prefix%
+exec_prefix=%exec_prefix%
+libdir=%libdir%
+includedir=%includedir%
+
+Name: NSPR
+Description: The Netscape Portable Runtime
+Version: %NSPR_VERSION%
+Libs: %FULL_NSPR_LIBS%
+Cflags: %FULL_NSPR_CFLAGS%
diff --git a/abs/extra-testing/nvram-wake/PKGBUILD b/abs/extra-testing/nvram-wake/PKGBUILD
new file mode 100755
index 0000000..f4d3d38
--- /dev/null
+++ b/abs/extra-testing/nvram-wake/PKGBUILD
@@ -0,0 +1,16 @@
+pkgname=nvram-wakeup
+pkgver=0.97
+pkgrel=1
+pkgdesc="set the wakeup time of the localpc"
+license="GPL"
+arch=(i686)
+url="http://ahh.sourceforge.net/wol/"
+source=(http://easynews.dl.sourceforge.net/sourceforge/nvram-wakeup/nvram-wakeup-0.97.tar.bz2 )
+
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ make || return 1
+ make prefix=$startdir/pkg/usr install
+}
+
diff --git a/abs/extra-testing/phpmyadmin/PKGBUILD b/abs/extra-testing/phpmyadmin/PKGBUILD
new file mode 100755
index 0000000..41999db
--- /dev/null
+++ b/abs/extra-testing/phpmyadmin/PKGBUILD
@@ -0,0 +1,18 @@
+pkgname=phpmyadmin
+_dlversion=2.9.1.1
+pkgver=$(echo ${_dlversion} | sed 's/-//')
+pkgrel=35
+pkgdesc="A PHP and hence web-based tool to administrate MySQL over the WWW"
+arch=(i686 x86_64)
+url="http://www.phpmyadmin.net"
+depends=('php' 'mysql')
+backup=(data/srv/httpd/htdocs/phpMyAdmin/config.inc.php)
+source=(http://easynews.dl.sourceforge.net/sourceforge/${pkgname}/phpMyAdmin-${_dlversion}-all-languages.tar.bz2)
+
+build() {
+ _instdir=${startdir}/pkg/data/srv/httpd/htdocs/phpMyAdmin
+ mkdir -p ${_instdir}
+ cd ${_instdir}
+ cp -ra ${startdir}/src/phpMyAdmin-${_dlversion}-all-languages/* .
+
+}
diff --git a/abs/extra-testing/pymedia/PKGBUILD b/abs/extra-testing/pymedia/PKGBUILD
new file mode 100755
index 0000000..a23d441
--- /dev/null
+++ b/abs/extra-testing/pymedia/PKGBUILD
@@ -0,0 +1,19 @@
+pkgname=python-pymedia
+pkgver=1.3.5.0
+pkgrel=1
+pkgdesc="A Python library for accessing and manipulating media files"
+url="http://www.pymedia.org"
+license=""
+depends=('libvorbis' 'faad2' 'lame')
+makedepends=('python>=2.3')
+replaces=('pymedia')
+provides=('pymedia')
+arch=i686
+source=(http://easynews.dl.sourceforge.net/sourceforge/pymedia/pymedia-$pkgver.tar.gz)
+md5sums=('3b9efcd105707c6696579e3ca8852d0e')
+
+build() {
+ cd $startdir/src/pymedia-$pkgver
+ sed -i -e "s:/usr/local/include/lame:/usr/include/lame:g" setup.py
+ yes "" | python setup.py install --root=$startdir/pkg --prefix=/usr
+ }
diff --git a/abs/extra-testing/pyopenssl/PKGBUILD b/abs/extra-testing/pyopenssl/PKGBUILD
new file mode 100644
index 0000000..467baae
--- /dev/null
+++ b/abs/extra-testing/pyopenssl/PKGBUILD
@@ -0,0 +1,15 @@
+pkgname=pyopenssl
+pkgver=0.6
+pkgrel=3
+pkgdesc="pyOpenSSL is a Python interface to the OpenSSL library"
+arch=('i686' 'x86_64')
+url="http://pyopenssl.sourceforge.net"
+license="GPL"
+depends=('python' 'openssl')
+source=(http://easynews.dl.sourceforge.net/sourceforge/pyopenssl/pyOpenSSL-${pkgver}.tar.gz)
+
+build() {
+ cd $startdir/src/pyOpenSSL-${pkgver}
+ python setup.py build
+ python setup.py install --prefix=$startdir/pkg/usr
+ }
diff --git a/abs/extra-testing/spidermonkey/PKGBUILD b/abs/extra-testing/spidermonkey/PKGBUILD
new file mode 100644
index 0000000..5e43c96
--- /dev/null
+++ b/abs/extra-testing/spidermonkey/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 2200 2008-05-29 03:50:56Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=spidermonkey
+pkgver=1.7.0
+pkgrel=1
+pkgdesc="Mozilla's C implementation of JavaScript."
+arch=("i686" "x86_64")
+url="http://www.mozilla.org/js/spidermonkey/"
+license=('MPL' 'GPL' 'LGPL')
+depends=('nspr')
+options=('!makeflags' 'force')
+source=("http://ftp.mozilla.org/pub/mozilla.org/js/js-$pkgver.tar.gz" \
+ "spidermonkey-1.7-threadsafe.patch")
+md5sums=('5571134c3863686b623ebe4e6b1f6fe6' 'b2ef9be017b6aa1857354b5223975a4f')
+
+build()
+{
+ cd $startdir/src/js/src
+ # fix for the lib location
+ [ "$CARCH" = "x86_64" ] && (sed -i -e "s:lib64:lib:g" config.mk || return 1)
+ # patch Makefile for threadsafe support with native nspr
+ patch -p2 -i $startdir/src/spidermonkey-1.7-threadsafe.patch || return 1
+ # build - threadsafe
+ make -f Makefile.ref BUILD_OPT=1 JS_THREADSAFE=1 DIST=$startdir/pkg/usr all export || return 1
+ # install
+ mkdir -p $startdir/pkg/usr/include/js
+ mv $startdir/pkg/usr/include/*.h $startdir/pkg/usr/include/js/
+}
diff --git a/abs/extra-testing/spidermonkey/spidermonkey-1.7-threadsafe.patch b/abs/extra-testing/spidermonkey/spidermonkey-1.7-threadsafe.patch
new file mode 100644
index 0000000..da6c78d
--- /dev/null
+++ b/abs/extra-testing/spidermonkey/spidermonkey-1.7-threadsafe.patch
@@ -0,0 +1,16 @@
+--- js/src/Makefile.ref.orig 2008-05-28 19:51:32.000000000 -0400
++++ js/src/Makefile.ref 2008-05-28 19:52:17.000000000 -0400
+@@ -63,11 +63,11 @@
+
+ ifdef JS_THREADSAFE
+ DEFINES += -DJS_THREADSAFE
+-INCLUDES += -I$(DIST)/include/nspr
++INCLUDES += -I/usr/include/nspr
+ ifdef USE_MSVC
+ OTHER_LIBS += $(DIST)/lib/libnspr$(NSPR_LIBSUFFIX).lib
+ else
+-OTHER_LIBS += -L$(DIST)/lib -lnspr$(NSPR_LIBSUFFIX)
++OTHER_LIBS += -L/usr/$(LIBDIR)/nspr -lnspr${NSPR_LIBSUFFIX}
+ endif
+ endif
+
diff --git a/abs/extra-testing/tightvnc/PKGBUILD b/abs/extra-testing/tightvnc/PKGBUILD
new file mode 100644
index 0000000..29c20c9
--- /dev/null
+++ b/abs/extra-testing/tightvnc/PKGBUILD
@@ -0,0 +1,35 @@
+
+pkgname=tightvnc
+pkgver=1.3.9
+pkgrel=300
+pkgdesc="VNC Unix server && viewer"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.tightvnc.com"
+depends=('libjpeg' 'zlib' 'libxaw')
+makedepends=('imake')
+conflicts=('vnc')
+source=(http://easynews.dl.sf.net/sourceforge/vnc-tight/$pkgname-${pkgver}_unixsrc.tar.bz2 tightvnc-fontpath-xcolors.patch)
+
+
+build() {
+ export MAKEFLAGS="-j1"
+ cd $startdir/src/vnc_unixsrc || return 1
+ patch -Np1 -i ../tightvnc-fontpath-xcolors.patch || return 1
+
+ xmkmf || return 1
+ make World || return 1
+ cd Xvnc || return 1
+ ./configure || return 1
+ sed 's|PROTO_DEFINES =|PROTO_DEFINES = -D_XOPEN_SOURCE=500L|' \
+ -i programs/Xserver/os/Makefile lib/font/fc/Makefile || return 1
+ make || return 1
+ cd .. || return 1
+ mkdir -p $startdir/pkg/usr/bin $startdir/pkg/usr/man/man1 || return 1
+ ./vncinstall $startdir/pkg/usr/bin $startdir/pkg/usr/man || return 1
+
+ # install java classes
+ mkdir -p $startdir/pkg/usr/share/vnc/classes || return 1
+ install -D -m644 $startdir/src/vnc_unixsrc/classes/* \
+ $startdir/pkg/usr/share/vnc/classes || return 1
+}
diff --git a/abs/extra-testing/tightvnc/tightvnc-fontpath-xcolors.patch b/abs/extra-testing/tightvnc/tightvnc-fontpath-xcolors.patch
new file mode 100644
index 0000000..9e44835
--- /dev/null
+++ b/abs/extra-testing/tightvnc/tightvnc-fontpath-xcolors.patch
@@ -0,0 +1,21 @@
+diff -urN vnc_unixsrc/vncserver vnc_unixsrc.fixed/vncserver
+--- vnc_unixsrc/vncserver 2007-04-26 06:57:06.000000000 -0400
++++ vnc_unixsrc.fixed/vncserver 2007-06-17 19:08:02.000000000 -0400
+@@ -38,14 +38,14 @@
+ $desktopName = "X";
+ $vncClasses = "/usr/local/vnc/classes";
+ $vncUserDir = "$ENV{HOME}/.vnc";
+-$fontPath = "unix/:7100";
++#$fontPath = "unix/:7100";
+ $authType = "-rfbauth $vncUserDir/passwd";
+
+ # Here is another example of setting the font path:
+-# $fontPath = "/usr/lib/X11/fonts/misc/,/usr/lib/X11/fonts/75dpi/";
++$fontPath = "/usr/share/fonts/misc/,/usr/share/fonts/75dpi/,/usr/share/fonts/100dpi/,/usr/share/fonts/Type1/";
+
+ # X colors database path is optional, uncomment and edit to use:
+-# $colorPath = "/usr/lib/X11/rgb";
++$colorPath = "/usr/share/X11/rgb";
+
+ # You might wish to make your vnc directory under /tmp, to make sure
+ # passwords are always kept on the local filesystem. To do that, just
diff --git a/abs/extra-testing/transcode/PKGBUILD b/abs/extra-testing/transcode/PKGBUILD
new file mode 100644
index 0000000..3c33d2d
--- /dev/null
+++ b/abs/extra-testing/transcode/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 15655 2008-10-16 19:04:55Z tobias $
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+# Maintainer: roberto <roberto@archlinux.org>
+
+pkgname=transcode
+_sripver=0.3-4
+pkgver=1.0.6
+pkgrel=1
+pkgdesc="Transcode is a video/DVD ripper and encoder for the terminal/console."
+arch=(i686 x86_64)
+license=('GPL2')
+depends=('imagemagick>=6.2.6' 'lzo2' 'libdv' 'libdvdread' 'ffmpeg' 'mjpegtools' \
+ 'xvidcore' 'libmpeg2' 'libtheora' 'libxaw' 'x264>=20080625' 'libxml2' \
+ 'libxv')
+makedepends=('nasm')
+install=transcode.install
+url="http://transcoding.org"
+options=(!libtool !makeflags)
+source=(http://fromani.exit1.org/${pkgname}-${pkgver}.tar.bz2 \
+ http://dl.sourceforge.net/sourceforge/subtitleripper/subtitleripper-${_sripver}.tgz)
+md5sums=('7c3a341b0e4540e34ef50c66b0ab751d' 'c0bd49a88f667c68c4430ad25bbed510')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ sed -i 's|ffmpeg/avcodec.h|libavcodec/avcodec.h|' import/{import_ffmpeg.c,decode_lavc.c} || return 1
+ sed -i 's|ffmpeg/avcodec.h|libavcodec/avcodec.h|' export/{aud_aux.c,export_ffmpeg.c,ffmpeg_cfg.h} || return 1
+ sed -i 's|ffmpeg/avcodec.h|libavcodec/avcodec.h|' filter/filter_resample.c || return 1
+ # building from here
+ ./configure --prefix=/usr \
+ --enable-sse=no --enable-sse2=no --enable-altivec=no --enable-mmx \
+ --enable-avifile=no --enable-lame --enable-ogg --enable-vorbis --enable-theora \
+ --enable-libdv --enable-a52-default-decoder --enable-libxml2 --enable-v4l \
+ --enable-imagemagick --enable-libjpeg --enable-lzo --enable-mjpegtools \
+ --enable-sdl --enable-freetype2 --enable-a52 --enable-libpostproc \
+ --with-libxml2-prefix=/usr \
+ --with-mjpegtools-prefix=/usr \
+ --with-imagemagick-prefix=/usr \
+ --with-libdv-includes=/usr \
+ --with-libpostproc-includes=/usr/include/libpostproc \
+ --with-ogg-prefix=/usr \
+ --with-lame-libs=/usr \
+ --with-lzo-libs=/usr/lib \
+ --with-libavcodec-prefix=/usr \
+ --with-libavcodec-includes=/usr/include \
+ --with-libavcodec-libs=/usr/lib
+
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+ ##############################################################################
+ # this imports the latest subtitleripper sources and replaces the internal
+ rm -rf $startdir/src/$pkgname-$pkgver/contrib/subrip
+ tar xzf ../subtitleripper-$_sripver.tgz -C $startdir/src/$pkgname-$pkgver/contrib
+ mv $startdir/src/$pkgname-$pkgver/contrib/subtitleripper \
+ $startdir/src/$pkgname-$pkgver/contrib/subrip
+ # removes dependency on libppm, make it dependend on netpbm just failed, argh...
+ sed -i 's|^\(.*lppm.*\)$|#\1|' contrib/subrip/Makefile
+ sed -i 's|^\(.*D_HAVE_LIB_PPM.*\)$|#\1|' contrib/subrip/Makefile
+ cd contrib/subrip
+ make
+ install -m 755 pgm2txt $startdir/pkg/usr/bin/
+ install -m 755 srttool $startdir/pkg/usr/bin/
+ install -m 755 subtitle2pgm $startdir/pkg/usr/bin/
+ install -m 755 subtitle2vobsub $startdir/pkg/usr/bin/
+ install -m 755 vobsub2pgm $startdir/pkg/usr/bin/
+}
diff --git a/abs/extra-testing/transcode/imagemagick.patch b/abs/extra-testing/transcode/imagemagick.patch
new file mode 100644
index 0000000..ed8ce23
--- /dev/null
+++ b/abs/extra-testing/transcode/imagemagick.patch
@@ -0,0 +1,41 @@
+--- transcode-1.0.1.orig/filter/filter_compare.c
++++ transcode-1.0.1/filter/filter_compare.c
+@@ -180,6 +180,7 @@
+ if (!(compare[instance]->results = fopen(results_name, "w")))
+ {
+ perror("could not open file for writing");
++ return (-1);
+ }
+
+ InitializeMagick("");
+--- transcode-1.0.1.orig/filter/filter_logo.c 2005-10-21 22:18:49.000000000 +0200
++++ transcode-1.0.1/filter/filter_logo.c 2005-10-21 22:19:52.000000000 +0200
+@@ -183,17 +183,18 @@
+
+ if (optstr_get (options, "help", "") >= 0)
+ help_optstr();
+- }
+
+- if (verbose > 1) {
+- printf (" Logo renderer Settings:\n");
+- printf (" file = %s\n", mfd->file);
+- printf (" posdef = %d\n", mfd->pos);
+- printf (" pos = %dx%d\n", mfd->posx, mfd->posy);
+- printf (" range = %u-%u\n", mfd->start, mfd->end);
+- printf (" flip = %d\n", mfd->flip);
+- printf (" ignoredelay = %d\n", mfd->ignoredelay);
+- printf (" rgbswap = %d\n", mfd->rgbswap);
++ if (verbose > 1) {
++ printf (" Logo renderer Settings:\n");
++ printf (" file = %s\n", mfd->file);
++ printf (" posdef = %d\n", mfd->pos);
++ printf (" pos = %dx%d\n", mfd->posx, mfd->posy);
++ printf (" range = %u-%u\n", mfd->start, mfd->end);
++ printf (" flip = %d\n", mfd->flip);
++ printf (" ignoredelay = %d\n", mfd->ignoredelay);
++ printf (" rgbswap = %d\n", mfd->rgbswap);
++ }
++ return (-1);
+ }
+
+ InitializeMagick("");
diff --git a/abs/extra-testing/transcode/transcode.install b/abs/extra-testing/transcode/transcode.install
new file mode 100644
index 0000000..75c533b
--- /dev/null
+++ b/abs/extra-testing/transcode/transcode.install
@@ -0,0 +1,23 @@
+# arg 1: the new package version
+post_install() {
+echo ">>"
+echo ">> Transcode currently does not work with divx4linux. Please"
+echo ">> use xvid(core) instead."
+echo ">>"
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ /bin/true
+}
+
+# arg 1: the old package version
+pre_remove() {
+ /bin/true
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/abs/extra-testing/wol/PKGBUILD b/abs/extra-testing/wol/PKGBUILD
new file mode 100755
index 0000000..1981453
--- /dev/null
+++ b/abs/extra-testing/wol/PKGBUILD
@@ -0,0 +1,19 @@
+# Contributor: Markus Volkmann <mcfock@counterstrike.de>
+pkgname=wol
+pkgver=0.7.1
+pkgrel=2
+pkgdesc="wol implements Wake On LAN functionality in a small program. It wakes up hardware that is Magic Packet compliant."
+license="GPL"
+url="http://ahh.sourceforge.net/wol/"
+arch=('i686')
+source=(http://easynews.dl.sourceforge.net/sourceforge/ahh/wol-$pkgver.tar.gz wakeonlan.sh)
+md5sums=('c2fa9d7e771134ac8c89d56b8197d4ca')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=$startdir/pkg/usr install
+ install -m755 $startdir/src/wakeonlan.sh $startdir/pkg/usr/bin/wakeonlan.sh
+}
+
diff --git a/abs/extra-testing/wol/wakeonlan.sh b/abs/extra-testing/wol/wakeonlan.sh
new file mode 100755
index 0000000..f87dd34
--- /dev/null
+++ b/abs/extra-testing/wol/wakeonlan.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+DIR="/data/srv/hobbit/var/hostdata/$1"
+FILE=`ls -t --group-directories-first $DIR|tail -n 1`
+for mac in `grep HW "$DIR/$FILE" |awk '{ print $5 } '`
+do
+ /usr/bin/wol -v $mac
+done
+
+
+
diff --git a/abs/extra-testing/zip/ChangeLog b/abs/extra-testing/zip/ChangeLog
new file mode 100644
index 0000000..29ec4d1
--- /dev/null
+++ b/abs/extra-testing/zip/ChangeLog
@@ -0,0 +1,5 @@
+
+2008-07-27 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updating for i686: 3.0
+
diff --git a/abs/extra-testing/zip/PKGBUILD b/abs/extra-testing/zip/PKGBUILD
new file mode 100644
index 0000000..54eae73
--- /dev/null
+++ b/abs/extra-testing/zip/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 6705 2008-07-27 14:04:19Z douglas $
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=zip
+pkgver=3.0
+pkgrel=1
+pkgdesc="Creates PKZIP-compatible .zip files"
+arch=(i686 x86_64)
+url="http://www.info-zip.org/pub/infozip/Zip.html"
+depends=('glibc')
+makedepends=('unzip')
+source=(ftp://ftp.info-zip.org/pub/infozip/src/zip30.zip
+ ftp://ftp.info-zip.org/pub/infozip/src/zcrypt.zip)
+
+md5sums=('e88492c8abd68fa9cfba72bc08757dba'
+ '0c969ba1661183b041a142945ed2710e')
+
+build() {
+ cd $startdir/src/${pkgname}30
+ echo "A"| unzip ../zcrypt.zip
+ make -f unix/Makefile LOCAL_ZIP="$CFLAGS" prefix=/usr generic_gcc || return 1
+ make -f unix/Makefile INSTALL=`which install` prefix=$startdir/pkg/usr install
+}