summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcommunity/aegisub/PKGBUILD43
-rwxr-xr-xcommunity/aegisub/aegisub.install14
-rwxr-xr-xcommunity/aegisub/crash-on-deatach.patch10
-rwxr-xr-xcommunity/aegisub/lua51.patch24
-rw-r--r--community/cinnamon-control-center/PKGBUILD46
-rw-r--r--community/cinnamon-control-center/fix-audio-input-icons.patch15
-rw-r--r--community/cinnamon-control-center/fix-faces-location.patch12
-rw-r--r--community/cinnamon-control-center/sound-nua-rename.patch26
-rw-r--r--community/cinnamon-screensaver/PKGBUILD19
-rw-r--r--community/cinnamon-screensaver/cinnamon-screensaver.desktop11
-rw-r--r--community/cinnamon-screensaver/cinnamon-screensaver.install7
-rw-r--r--community/cinnamon-screensaver/cinnamon2d-screensaver.desktop11
-rw-r--r--community/erlang-sdl/PKGBUILD14
-rw-r--r--community/fceux/PKGBUILD6
-rwxr-xr-xcommunity/ffmpegsource/PKGBUILD15
-rwxr-xr-xcommunity/ffmpegsource/enable-libavresample.patch970
-rw-r--r--community/freeorion/PKGBUILD12
-rw-r--r--community/haskell-regex-base/PKGBUILD4
-rw-r--r--community/i3status/PKGBUILD6
-rw-r--r--community/openshadinglanguage/PKGBUILD9
-rw-r--r--community/percona-server/PKGBUILD6
-rw-r--r--community/pidgin-lwqq/PKGBUILD11
-rw-r--r--community/processing/PKGBUILD52
-rw-r--r--community/rxvt-unicode/01-fix-screen-sel.patch66
-rw-r--r--community/rxvt-unicode/PKGBUILD15
-rw-r--r--community/rxvt-unicode/urxvt-tabbed.desktop3
-rw-r--r--community/rxvt-unicode/urxvt.desktop3
-rw-r--r--community/rxvt-unicode/urxvtc.desktop3
-rw-r--r--community/teamspeak3/PKGBUILD60
-rw-r--r--community/teamspeak3/icon.xpm305
-rw-r--r--community/teamspeak3/teamspeak3.desktop11
-rw-r--r--community/teamspeak3/teamspeak3.launcher6
-rw-r--r--extra/calligra/PKGBUILD6
-rw-r--r--extra/gnutls/PKGBUILD8
-rw-r--r--extra/gnutls/gnutls.install2
-rw-r--r--extra/hylafax/PKGBUILD16
-rw-r--r--extra/hylafax/faxgetty@.service24
-rw-r--r--extra/lftp/PKGBUILD8
-rw-r--r--extra/nss/PKGBUILD8
-rw-r--r--extra/watchdog/PKGBUILD24
-rw-r--r--extra/watchdog/watchdog.cf2
-rw-r--r--extra/watchdog/watchdog.sh44
-rw-r--r--extra/xterm/PKGBUILD6
-rw-r--r--social/ruby-headers/PKGBUILD8
44 files changed, 1780 insertions, 191 deletions
diff --git a/community/aegisub/PKGBUILD b/community/aegisub/PKGBUILD
new file mode 100755
index 000000000..1904ec6c6
--- /dev/null
+++ b/community/aegisub/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 85219 2013-02-27 18:33:34Z alucryd $
+# Maintainer: Maxime Gauduin <alucryd@gmail.com>
+# Contributor: kozec <kozec@kozec.com>
+# Contributor: Limao Luo <luolimao+AUR@gmail.com>
+
+pkgname=aegisub
+pkgver=3.0.2
+pkgrel=5
+pkgdesc="A general-purpose subtitle editor with ASS/SSA support"
+arch=('i686' 'x86_64')
+url="http://www.aegisub.org"
+license=('GPL' 'BSD')
+depends=('desktop-file-utils' 'ffmpegsource' 'fftw' 'hicolor-icon-theme' 'hunspell' 'lua51' 'wxgtk2.9' 'hicolor-icon-theme')
+makedepends=('mesa')
+install=aegisub.install
+source=("http://ftp.aegisub.org/pub/releases/${pkgname}-${pkgver}.tar.xz" 'crash-on-deatach.patch' 'lua51.patch')
+sha256sums=('68ec20cf49f513608cec400bd462ebb762d6057109968fb01d842e10e6e7fb39'
+ '85e2c2a6bf091f5b4ca29a0149df8d8ca6219d98a4095f79809f2e698983bca4'
+ 'ce67b143cc2949fbbd7d72862c54005030339d1c364753335acec271ca9e179d')
+
+build() {
+ cd "${srcdir}"/${pkgname}/${pkgname}
+
+# Patch
+ patch -Np1 -i "${srcdir}"/crash-on-deatach.patch
+ patch -Np1 -i "${srcdir}"/lua51.patch
+
+# Build
+ autoreconf -ivf
+ ./configure --prefix=/usr --without-{portaudio,openal,oss} --with-wxdir=/usr/include/wx-2.9 --with-wx-config=/usr/bin/wx-config-2.9
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}/${pkgname}
+
+# Install
+ make DESTDIR="$pkgdir" install
+
+# License
+ install -dm 755 "${pkgdir}"/usr/share/licenses/aegisub
+ install -m 644 LICENCE "${pkgdir}"/usr/share/licenses/aegisub/LICENSE
+}
diff --git a/community/aegisub/aegisub.install b/community/aegisub/aegisub.install
new file mode 100755
index 000000000..105ce6543
--- /dev/null
+++ b/community/aegisub/aegisub.install
@@ -0,0 +1,14 @@
+post_install() {
+ gtk-update-icon-cache -ftq /usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/community/aegisub/crash-on-deatach.patch b/community/aegisub/crash-on-deatach.patch
new file mode 100755
index 000000000..1a1a3d007
--- /dev/null
+++ b/community/aegisub/crash-on-deatach.patch
@@ -0,0 +1,10 @@
+--- a/src/video_display.cpp
++++ b/src/video_display.cpp
+@@ -309,6 +309,7 @@
+ }
+
+ void VideoDisplay::UpdateSize() {
++ if (zoomValue<=0) zoomValue = 1;
+ if (!con->videoController->IsLoaded() || !IsShownOnScreen()) return;
+
+ videoSize.Set(con->videoController->GetWidth(), con->videoController->GetHeight());
diff --git a/community/aegisub/lua51.patch b/community/aegisub/lua51.patch
new file mode 100755
index 000000000..f93fb02de
--- /dev/null
+++ b/community/aegisub/lua51.patch
@@ -0,0 +1,24 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -371,9 +371,9 @@
+
+ AS_IF([test x$with_lua = xno], [$with_auto4_lua="no"; lua_disabled="(disabled)"], [
+ # First try pkg-config with several names
+- PKG_CHECK_MODULES(LUA, lua >= 5.1, [with_auto4_lua="yes"], [
+- PKG_CHECK_MODULES(LUA, lua5.1 >= 5.1, [with_auto4_lua="yes"], [
+- PKG_CHECK_MODULES(LUA, lua-5.1 >= 5.1, [with_auto4_lua="yes"], [
++ PKG_CHECK_MODULES(LUA, lua5.1 >= 5.1 lua5.1 < 5.2, [with_auto4_lua="yes"], [
++ PKG_CHECK_MODULES(LUA, lua-5.1 >= 5.1 lua-5.1 < 5.2, [with_auto4_lua="yes"], [
++ PKG_CHECK_MODULES(LUA, lua >= 5.1 lua < 5.2, [with_auto4_lua="yes"], [
+ # Still not found so try to autodetect
+ AS_IF([test -z "$LUA_CFLAGS"],
+ [AGI_FIND_HEADER([LUA], [lua.hpp],
+@@ -393,7 +393,7 @@
+ return !res;
+ }])
+ AS_IF([test x$agi_cv_with_lua = xno && test x$with_lua = xyes],
+- [AC_MSG_FAILURE([--with-lua was specified, but lua could not be found. Try setting LUA_CLFAGS and LUA_LIBS manually])])
++ [AC_MSG_FAILURE([--with-lua was specified, but lua 5.1 could not be found. Try setting LUA_CLFAGS and LUA_LIBS manually])])
+ with_auto4_lua=$agi_cv_with_lua
+ ])])])
+ ])
diff --git a/community/cinnamon-control-center/PKGBUILD b/community/cinnamon-control-center/PKGBUILD
index f5b764b2e..1aba7553d 100644
--- a/community/cinnamon-control-center/PKGBUILD
+++ b/community/cinnamon-control-center/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 84767 2013-02-24 13:00:25Z faidoc $
+# $Id: PKGBUILD 85223 2013-02-27 18:49:20Z bgyorgy $
# Maintainer: Alexandre Filgueira <alexfilgueira@cinnarch.com
# Based on gnome-control-center:
# Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
@@ -6,35 +6,47 @@
pkgname=cinnamon-control-center
pkgver=1.7.1
-pkgrel=1
+pkgrel=2
pkgdesc="The Control Center for Cinnamon"
arch=('i686' 'x86_64')
-depends=('accountsservice' 'cups-pk-helper' 'gnome-bluetooth' 'gnome-desktop' 'gnome-menus'
- 'gnome-online-accounts' 'gnome-settings-daemon' 'gsettings-desktop-schemas' 'gtk3'
- 'libgtop' 'libsocialweb' 'network-manager-applet' 'sound-theme-freedesktop' 'upower'
- 'libpwquality' 'libsystemd' 'libgnomekbd' 'cheese' 'cinnamon')
+depends=('cinnamon' 'cheese' 'libgnomekbd' 'libgtop' 'network-manager-applet')
optdepends=('mesa-demos: provides glxinfo for graphics information'
'gnome-color-manager: for color management tasks')
-makedepends=('gnome-doc-utils' 'intltool' 'gnome-common' 'docbook-xsl')
+makedepends=('intltool' 'gnome-common')
url="https://github.com/linuxmint/cinnamon-control-center"
install=cinnamon-control-center.install
license=('GPL')
options=('!libtool' '!emptydirs')
source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/cinnamon-control-center/archive/$pkgver.tar.gz"
- "pulse3.0.patch")
+ "pulse3.0.patch"
+ "sound-nua-rename.patch"
+ "fix-audio-input-icons.patch"
+ "fix-faces-location.patch")
sha256sums=('eab36af1accfce7b4d5eaf07a865d7290add07b875ed5e52072c1ad2e8570c1e'
- 'ddf7c99a1d45a7be54e69e90f194e33f3e56a7f294aa369bfb2e541d8241156e')
+ 'ddf7c99a1d45a7be54e69e90f194e33f3e56a7f294aa369bfb2e541d8241156e'
+ '2f49543e4ccabf5c8ce1cd9e4c37e5b291c23cff494eaa671857b2dcf7af4c5b'
+ '2cefa2764db206c9c6258e3f374988056907dda0c5bbeedbc249fc7c058a0d6b'
+ '7360f3e018765e80a7afc5a469c1d54ec3fdeb7e58c867596ef26773fb8e7a8a')
build() {
cd $pkgname-$pkgver
patch -Np1 -i ../pulse3.0.patch
+ # Upstream patch: Change sound module registered name from sound-nua to 'sound'
+ patch -Np1 -i ../sound-nua-rename.patch
+
+ # Fix icons on Sound preferences dialog
+ patch -Np1 -i ../fix-audio-input-icons.patch
+
+ # Fix faces location on User accounts dialog
+ patch -Np1 -i ../fix-faces-location.patch
+
autoreconf -fi
./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var --disable-static \
- --enable-systemd --with-libsocialweb \
+ --enable-systemd \
--disable-update-mimedb
#https://bugzilla.gnome.org/show_bug.cgi?id=656229
@@ -47,7 +59,19 @@ package() {
make DESTDIR="$pkgdir" install
+ # Remove unused stuff
+ make -C panels/datetime DESTDIR="$pkgdir" uninstall
+ make -C panels/printers DESTDIR="$pkgdir" uninstall
+ make -C panels/sound DESTDIR="$pkgdir" uninstall
+ make -C panels/sound/data DESTDIR="$pkgdir" install
+ make -C shell DESTDIR="$pkgdir" uninstall
+ make -C shell DESTDIR="$pkgdir" install-libLTLIBRARIES
+
+ # Remove broken desktop files
+ rm -R "$pkgdir/usr/share/applications"
+ rm -R "$pkgdir/etc"
+
# Fix a warning
chown 102:0 "$pkgdir/usr/share/polkit-1/rules.d"
chmod 700 "$pkgdir/usr/share/polkit-1/rules.d"
-} \ No newline at end of file
+}
diff --git a/community/cinnamon-control-center/fix-audio-input-icons.patch b/community/cinnamon-control-center/fix-audio-input-icons.patch
new file mode 100644
index 000000000..77c9b3c5b
--- /dev/null
+++ b/community/cinnamon-control-center/fix-audio-input-icons.patch
@@ -0,0 +1,15 @@
+diff -Naur cinnamon-control-center-1.7.1.orig/panels/sound-nua/gvc-mixer-dialog.c cinnamon-control-center-1.7.1/panels/sound-nua/gvc-mixer-dialog.c
+--- cinnamon-control-center-1.7.1.orig/panels/sound-nua/gvc-mixer-dialog.c 2013-02-19 17:37:17.000000000 +0100
++++ cinnamon-control-center-1.7.1/panels/sound-nua/gvc-mixer-dialog.c 2013-02-26 23:12:37.192399508 +0100
+@@ -1929,9 +1929,9 @@
+ gvc_channel_bar_set_name (GVC_CHANNEL_BAR (self->priv->input_bar),
+ _("_Input volume:"));
+ gvc_channel_bar_set_low_icon_name (GVC_CHANNEL_BAR (self->priv->input_bar),
+- "audio-input-microphone-low-symbolic");
++ "cin-audio-input-microphone-low-symbolic");
+ gvc_channel_bar_set_high_icon_name (GVC_CHANNEL_BAR (self->priv->input_bar),
+- "audio-input-microphone-high-symbolic");
++ "cin-audio-input-microphone-high-symbolic");
+ gtk_widget_set_sensitive (self->priv->input_bar, FALSE);
+
+ if (self->priv->size_group != NULL) {
diff --git a/community/cinnamon-control-center/fix-faces-location.patch b/community/cinnamon-control-center/fix-faces-location.patch
new file mode 100644
index 000000000..1af65fa99
--- /dev/null
+++ b/community/cinnamon-control-center/fix-faces-location.patch
@@ -0,0 +1,12 @@
+diff -Naur cinnamon-control-center-1.7.1.orig/panels/user-accounts/um-photo-dialog.c cinnamon-control-center-1.7.1/panels/user-accounts/um-photo-dialog.c
+--- cinnamon-control-center-1.7.1.orig/panels/user-accounts/um-photo-dialog.c 2013-02-19 17:37:17.000000000 +0100
++++ cinnamon-control-center-1.7.1/panels/user-accounts/um-photo-dialog.c 2013-02-27 19:17:18.249329833 +0100
+@@ -406,7 +406,7 @@
+ for (i = 0; dirs[i] != NULL; i++) {
+ char *path;
+
+- path = g_build_filename (dirs[i], "pixmaps", "faces", NULL);
++ path = g_build_filename (dirs[i], "pixmaps", "cinnamon", "faces", NULL);
+ dir = g_dir_open (path, 0, NULL);
+ if (dir == NULL) {
+ g_free (path);
diff --git a/community/cinnamon-control-center/sound-nua-rename.patch b/community/cinnamon-control-center/sound-nua-rename.patch
new file mode 100644
index 000000000..fb25b9f42
--- /dev/null
+++ b/community/cinnamon-control-center/sound-nua-rename.patch
@@ -0,0 +1,26 @@
+diff --git a/panels/sound-nua/cc-sound-panel.c b/panels/sound-nua/cc-sound-panel.c
+index 1c115f0..092f319 100644
+--- a/panels/sound-nua/cc-sound-panel.c
++++ b/panels/sound-nua/cc-sound-panel.c
+@@ -120,7 +120,7 @@ enum {
+ cc_sound_panel_register_type (G_TYPE_MODULE (module));
+ g_io_extension_point_implement (CC_SHELL_PANEL_EXTENSION_POINT,
+ CC_TYPE_SOUND_PANEL,
+- "sound-nua", 0);
++ "sound", 0);
+ }
+
+ /* GIO extension stuff */
+diff --git a/panels/sound/cc-sound-panel.c b/panels/sound/cc-sound-panel.c
+index 2f69c0f..3b78ce2 100644
+--- a/panels/sound/cc-sound-panel.c
++++ b/panels/sound/cc-sound-panel.c
+@@ -127,7 +127,7 @@ enum {
+ cc_sound_panel_register_type (G_TYPE_MODULE (module));
+ g_io_extension_point_implement (CC_SHELL_PANEL_EXTENSION_POINT,
+ CC_TYPE_SOUND_PANEL,
+- "sound", 0);
++ "gnome-sound", 0);
+ }
+
+ /* GIO extension stuff */
diff --git a/community/cinnamon-screensaver/PKGBUILD b/community/cinnamon-screensaver/PKGBUILD
index 7ed447856..d7932cc34 100644
--- a/community/cinnamon-screensaver/PKGBUILD
+++ b/community/cinnamon-screensaver/PKGBUILD
@@ -5,23 +5,25 @@
pkgname=cinnamon-screensaver
pkgver=1.7.1
-pkgrel=2
+pkgrel=3
pkgdesc="Screensaver designed to integrate well with the Cinnamon desktop."
arch=('i686' 'x86_64')
license=('GPL')
url="https://github.com/linuxmint/cinnamon-screensaver"
backup=(etc/pam.d/cinnamon-screensaver)
-depends=('dbus-glib' 'libgnomekbd' 'gnome-desktop' 'gsettings-desktop-schemas' 'systemd')
-makedepends=('pkgconfig' 'intltool' 'libxss' 'gnome-common')
-conflicts=('gnome-screensaver')
+depends=('dbus-glib' 'libgnomekbd' 'gnome-desktop')
+makedepends=('intltool' 'gnome-common')
options=(!emptydirs)
-install=cinnamon-screensaver.install
source=($pkgname-$pkgver.tar.gz::https://github.com/linuxmint/cinnamon-screensaver/archive/$pkgver.tar.gz
+ cinnamon-screensaver.desktop
+ cinnamon2d-screensaver.desktop
cinnamon-screensaver.pam
gnome-autogen.sh
configure.patch)
sha256sums=('055abbc24305dad5efa609b354e01fdc367792ccac5383df4b28090ab0bf64e1'
+ '2f29a72991deb5cc2b44da06f49d1115148fee6a0a22b1abfecee1c1661abcaa'
+ '335df8f2fb270484829d94995622521f0a42a12d6887f7de827db34fc81f583a'
'c19870c4f2d6e91ba0eea2603753a74e0c5c82ff5fa3cacb1198027a38d0a6cb'
'827276b01e658afb8045fb0dcbebb54f679ef47dac482f4399e1839369277ccc'
'fed5f1f94404fab13c5369f4106b0b498cff2bb71351cae4f3d9c27f417f5e6a')
@@ -48,4 +50,11 @@ package() {
cd $pkgname-$pkgver
make DESTDIR="$pkgdir" install
install -Dm644 ../cinnamon-screensaver.pam "$pkgdir/etc/pam.d/cinnamon-screensaver"
+
+ # Remove conflicts with gnome-screensaver
+ rm "$pkgdir"/usr/bin/gnome-screensaver{,-command}
+
+ # Autostart only in Cinnamon
+ install -m644 "$srcdir/cinnamon-screensaver.desktop" "$pkgdir/etc/xdg/autostart/cinnamon-screensaver.desktop"
+ install -m644 "$srcdir/cinnamon2d-screensaver.desktop" "$pkgdir/etc/xdg/autostart/cinnamon2d-screensaver.desktop"
}
diff --git a/community/cinnamon-screensaver/cinnamon-screensaver.desktop b/community/cinnamon-screensaver/cinnamon-screensaver.desktop
new file mode 100644
index 000000000..75c81ca26
--- /dev/null
+++ b/community/cinnamon-screensaver/cinnamon-screensaver.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Name=Cinnamon Screensaver
+Comment=Launch screensaver and locker program
+Icon=preferences-desktop-screensaver
+Exec=cinnamon-screensaver
+OnlyShowIn=GNOME;
+AutostartCondition=GNOME3 if-session cinnamon
+NoDisplay=true
+X-GNOME-Autostart-Phase=Application
+X-GNOME-Autostart-Notify=true
diff --git a/community/cinnamon-screensaver/cinnamon-screensaver.install b/community/cinnamon-screensaver/cinnamon-screensaver.install
deleted file mode 100644
index 904b7895d..000000000
--- a/community/cinnamon-screensaver/cinnamon-screensaver.install
+++ /dev/null
@@ -1,7 +0,0 @@
-pkgname=cinnamon-screensaver
-
-pre_upgrade() {
- if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
- gconfpkg --uninstall ${pkgname}
- fi
-}
diff --git a/community/cinnamon-screensaver/cinnamon2d-screensaver.desktop b/community/cinnamon-screensaver/cinnamon2d-screensaver.desktop
new file mode 100644
index 000000000..d9d50012c
--- /dev/null
+++ b/community/cinnamon-screensaver/cinnamon2d-screensaver.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Name=Cinnamon Screensaver
+Comment=Launch screensaver and locker program
+Icon=preferences-desktop-screensaver
+Exec=cinnamon-screensaver
+OnlyShowIn=GNOME;
+AutostartCondition=GNOME3 if-session cinnamon2d
+NoDisplay=true
+X-GNOME-Autostart-Phase=Application
+X-GNOME-Autostart-Notify=true
diff --git a/community/erlang-sdl/PKGBUILD b/community/erlang-sdl/PKGBUILD
index 7a1fbd882..b154943c6 100644
--- a/community/erlang-sdl/PKGBUILD
+++ b/community/erlang-sdl/PKGBUILD
@@ -1,15 +1,16 @@
-# $Id: PKGBUILD 80318 2012-11-19 22:01:23Z arodseth $
+# $Id: PKGBUILD 85225 2013-02-27 19:58:03Z andrea $
# Maintainer: Alexander Rødseth <rodseth@gmail.com>
# Contributor: kappa <kappacurve@gmail.com>
pkgname=erlang-sdl
pkgver=1.2
-pkgrel=2
+pkgrel=3
arch=('x86_64' 'i686')
pkgdesc='SDL and OpenGL bindings for Erlang (r15b-driver-compat branch)'
url='http://esdl.sourceforge.net/'
license=('custom')
-depends=('erlang' 'sdl' 'glu')
+depends=('erlang' 'sdl' 'glu' 'libgl')
+makedepends=('mesa-libgl')
replaces=('esdl')
source=("$pkgname-$pkgver.tar.gz::https://nodeload.github.com/dgud/esdl/tar.gz/dgud/r15b-driver-compat")
sha256sums=('a14d695229b93401a304b773874e87c02c5b304d4b5b66f35cba75e140672086')
@@ -26,13 +27,6 @@ package() {
cd "$srcdir/$_dirname"
make INSTALLDIR="$pkgdir/usr/lib/erlang/lib/esdl-$pkgver" install
-
- ## An attempt to make wings3d compile with esdl 1.2
- #ln -s /usr/lib/erlang/lib/wx-0.99/include/glu.hrl \
- # "$pkgdir/usr/lib/erlang/lib/esdl-$pkgver/include/glu.hrl"
- #ln -s /usr/lib/erlang/lib/wx-0.99/include/gl.hrl \
- # "$pkgdir/usr/lib/erlang/lib/esdl-$pkgver/include/gl.hrl"
-
install -Dm644 license.terms "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
diff --git a/community/fceux/PKGBUILD b/community/fceux/PKGBUILD
index 3d963df97..c132adb40 100644
--- a/community/fceux/PKGBUILD
+++ b/community/fceux/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 83618 2013-02-03 23:24:07Z arodseth $
+# $Id: PKGBUILD 85226 2013-02-27 19:58:28Z andrea $
# Maintainer: Alexander Rødseth <rodseth@gmail.com>
# Contriutor: Eric Belanger <eric@archlinux.org>
# Contributor: Jo Christian Bergskås <jcberg@gmail.com>
pkgname=fceux
pkgver=2.2.0
-pkgrel=2
+pkgrel=3
url='http://www.fceux.com/'
pkgdesc='Fast and ultra-compatible NES/Famicom emulator'
arch=('x86_64' 'i686')
license=('GPL')
depends=('sdl' 'gtk2' 'gd' 'desktop-file-utils' 'lua51' 'libgl')
-makedepends=('scons' 'mesa' 'glu')
+makedepends=('scons' 'mesa-libgl' 'glu')
optdepends=('xchm: for viewing the manual')
install=$pkgname.install
source=("https://sourceforge.net/projects/fceultra/files/Source%20Code/$pkgver%20src/$pkgname-$pkgver.src.tar.gz")
diff --git a/community/ffmpegsource/PKGBUILD b/community/ffmpegsource/PKGBUILD
index 33e864022..eac86386e 100755
--- a/community/ffmpegsource/PKGBUILD
+++ b/community/ffmpegsource/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 84951 2013-02-26 15:11:09Z alucryd $
+# $Id: PKGBUILD 85215 2013-02-27 18:14:32Z alucryd $
# Maintainer: Maxime Gauduin <alucryd@gmail.com>
pkgname=ffmpegsource
pkgver=743
-pkgrel=1
+pkgrel=2
pkgdesc="A libav/ffmpeg based source library and Avisynth plugin for easy frame accurate access"
arch=('i686' 'x86_64')
url="http://code.google.com/p/ffmpegsource/"
@@ -11,14 +11,17 @@ license=('MIT')
depends=('ffmpeg')
makedepends=('svn')
options=('!libtool')
-source=('autoconf.patch')
-sha256sums=('b09a7e9a08a16bdaf19d43c7ad8d3ec455f6fecec2f4f5ada417345343adda93')
+source=('autoconf.patch' 'enable-libavresample.patch')
+sha256sums=('b09a7e9a08a16bdaf19d43c7ad8d3ec455f6fecec2f4f5ada417345343adda93'
+ '05f03515cc2405cdf8a8ba835f5adc2057f40054a4a1d9e493f0ad512c5de70d')
_svntrunk=http://ffmpegsource.googlecode.com/svn/trunk/
_svnmod=ffmpegsource
build() {
cd "${srcdir}"
+
+# Checkout
msg "Connecting to SVN server...."
if [[ -d ${_svnmod}/.svn ]]; then
@@ -31,11 +34,13 @@ build() {
msg "Starting build..."
rm -rf "${srcdir}"/${_svnmod}-build
- svn export "${srcdir}"/${_svnmod} "${srcdir}"/${_svnmod}-build
+# svn export "${srcdir}"/${_svnmod} "${srcdir}"/${_svnmod}-build
+ cp -R "${srcdir}"/${_svnmod} "${srcdir}"/${_svnmod}-build
cd "${srcdir}"/${_svnmod}-build
# Patch
patch -Np1 -i "${srcdir}"/autoconf.patch
+ patch -Np1 -i "${srcdir}"/enable-libavresample.patch
# Build
./autogen.sh --prefix=/usr --enable-shared --disable-static
diff --git a/community/ffmpegsource/enable-libavresample.patch b/community/ffmpegsource/enable-libavresample.patch
new file mode 100755
index 000000000..56d435782
--- /dev/null
+++ b/community/ffmpegsource/enable-libavresample.patch
@@ -0,0 +1,970 @@
+# enable-libavresample.patch
+#
+# Adds libavresample support. Created by diffing Thomas Goyne's GIT repo
+# with official ffms SVN.
+#
+
+diff -ru ffmpegsource/configure.ac ffms2/configure.ac
+--- ffmpegsource/configure.ac 2013-02-27 16:53:39.230691825 +0100
++++ ffms2/configure.ac 2013-02-27 16:53:31.737713841 +0100
+@@ -181,6 +181,25 @@
+ AC_MSG_RESULT([no])
+ ])
+
++AC_ARG_ENABLE(avresample,
++ AS_HELP_STRING([--enable-avresample],
++ [use libavresample for audio resampling]))
++AS_IF([test x$enable_avresample != xno], [
++ PKG_CHECK_MODULES(AVRESAMPLE, [libavresample >= 1.0.0], [enable_avresample=yes], [
++ AS_IF([test x$enable_avresample = xyes],
++ [AC_MSG_ERROR([--enable-avresample was specified, but avresample 1.0.0+ could not be found.])])
++ enable_avresample=no
++ ])
++])
++
++AS_IF([test x$enable_avresample],
++ [libavresample="libavresample"
++ AC_DEFINE([WITH_AVRESAMPLE], [1], [Use avresample])])
++
++AC_SUBST([AVRESAMPLE_CFLAGS])
++AC_SUBST([AVRESAMPLE_LIBS])
++AC_SUBST([libavresample])
++
+ AC_MSG_CHECKING([whether -Wl,-Bsymbolic is needed])
+ if test "$enable_shared" = yes; then
+ _LDFLAGS="$LDFLAGS"
+diff -ru ffmpegsource/ffms2.pc.in ffms2/ffms2.pc.in
+--- ffmpegsource/ffms2.pc.in 2013-02-27 16:53:38.924039701 +0100
++++ ffms2/ffms2.pc.in 2013-02-27 16:53:31.737713841 +0100
+@@ -7,7 +7,7 @@
+
+ Name: ffms2
+ Description: The Fabulous FM Library 2
+-Requires.private: libavformat libavcodec libswscale libavutil
++Requires.private: libavformat libavcodec libswscale libavutil @libavresample@
+ Version: @FFMS_VERSION@
+ Libs.private: @ZLIB_LDFLAGS@ -lz
+ Libs: -L${libdir} -lffms2
+diff -ru ffmpegsource/include/ffmscompat.h ffms2/include/ffmscompat.h
+--- ffmpegsource/include/ffmscompat.h 2013-02-27 16:53:38.920706525 +0100
++++ ffms2/include/ffmscompat.h 2013-02-27 16:53:31.737713841 +0100
+@@ -71,6 +71,15 @@
+ # define FFMS_CodecID AVCodecID
+ # undef CodecID
+ # endif
++# if VERSION_CHECK(LIBAVCODEC_VERSION_INT, <, 54, 28, 0, 54, 59, 100)
++# define avcodec_free_frame av_free
++# endif
++#endif
++
++#ifdef LIBAVUTIL_VERSION_INT
++# if VERSION_CHECK(LIBAVUTIL_VERSION_INT, <, 51, 27, 0, 51, 46, 100)
++# define av_get_packed_sample_fmt(fmt) (fmt < AV_SAMPLE_FMT_U8P ? fmt : fmt - (AV_SAMPLE_FMT_U8P - AV_SAMPLE_FMT_U8))
++# endif
+ #endif
+
+ #endif // FFMSCOMPAT_H
+diff -ru ffmpegsource/include/ffms.h ffms2/include/ffms.h
+--- ffmpegsource/include/ffms.h 2013-02-27 16:53:38.920706525 +0100
++++ ffms2/include/ffms.h 2013-02-27 16:53:31.737713841 +0100
+@@ -113,6 +113,7 @@
+ FFMS_ERROR_TRACK, // track handling
+ FFMS_ERROR_WAVE_WRITER, // WAVE64 file writer
+ FFMS_ERROR_CANCELLED, // operation aborted
++ FFMS_ERROR_RESAMPLING, // audio resampling (libavresample)
+
+ // Subtypes - what caused the error
+ FFMS_ERROR_UNKNOWN = 20, // unknown error
+@@ -237,6 +238,53 @@
+ FFMS_CR_JPEG = 2 // 2^n-1, or "fullrange"
+ } FFMS_ColorRanges;
+
++typedef enum FFMS_MixingCoefficientType {
++ FFMS_MIXING_COEFFICIENT_Q8 = 0,
++ FFMS_MIXING_COEFFICIENT_Q15 = 1,
++ FFMS_MIXING_COEFFICIENT_FLT = 2
++} FFMS_MixingCoefficientType;
++
++typedef enum FFMS_MatrixEncoding {
++ FFMS_MATRIX_ENCODING_NONE = 0,
++ FFMS_MATRIX_ENCODING_DOBLY = 1,
++ FFMS_MATRIX_ENCODING_PRO_LOGIC_II = 2
++} FFMS_MatrixEncoding;
++
++typedef enum FFMS_ResampleFilterType {
++ FFMS_RESAMPLE_FILTER_CUBIC = 0,
++ FFMS_RESAMPLE_FILTER_SINC = 1,
++ FFMS_RESAMPLE_FILTER_KAISER = 2
++} FFMS_ResampleFilterType;
++
++typedef enum FFMS_AudioDitherMethod {
++ FFMS_RESAMPLE_DITHER_NONE = 0,
++ FFMS_RESAMPLE_DITHER_RECTANGULAR = 1,
++ FFMS_RESAMPLE_DITHER_TRIANGULAR = 2,
++ FFMS_RESAMPLE_DITHER_TRIANGULAR_HIGHPASS = 3,
++ FFMS_RESAMPLE_DITHER_TRIANGULAR_NOISESHAPING = 4
++} FFMS_AudioDitherMethod;
++
++typedef struct FFMS_ResampleOptions {
++ int64_t ChannelLayout;
++ FFMS_SampleFormat SampleFormat;
++ int SampleRate;
++ FFMS_MixingCoefficientType MixingCoefficientType;
++ double CenterMixLevel;
++ double SurroundMixLevel;
++ double LFEMixLevel;
++ int Normalize;
++ int ForceResample;
++ int ResampleFilterSize;
++ int ResamplePhaseShift;
++ int LinearInterpolation;
++ double CutoffFrequencyRatio;
++ FFMS_MatrixEncoding MatrixedStereoEncoding;
++ FFMS_ResampleFilterType FilterType;
++ int KaiserBeta;
++ FFMS_AudioDitherMethod DitherMethod;
++} FFMS_ResampleOptions;
++
++
+ typedef struct FFMS_Frame {
+ uint8_t *Data[4];
+ int Linesize[4];
+@@ -319,6 +367,9 @@
+ FFMS_API(void) FFMS_ResetOutputFormatV(FFMS_VideoSource *V);
+ FFMS_API(int) FFMS_SetInputFormatV(FFMS_VideoSource *V, int ColorSpace, int ColorRange, int Format, FFMS_ErrorInfo *ErrorInfo); /* Introduced in FFMS_VERSION ((2 << 24) | (17 << 16) | (1 << 8) | 0) */
+ FFMS_API(void) FFMS_ResetInputFormatV(FFMS_VideoSource *V);
++FFMS_API(FFMS_ResampleOptions *) FFMS_CreateResampleOptions(FFMS_AudioSource *A); /* Introduced in FFMS_VERSION ((2 << 24) | (15 << 16) | (4 << 8) | 0) */
++FFMS_API(int) FFMS_SetOutputFormatA(FFMS_AudioSource *A, const FFMS_ResampleOptions*options, FFMS_ErrorInfo *ErrorInfo); /* Introduced in FFMS_VERSION ((2 << 24) | (15 << 16) | (4 << 8) | 0) */
++FFMS_API(void) FFMS_DestroyResampleOptions(FFMS_ResampleOptions *options); /* Introduced in FFMS_VERSION ((2 << 24) | (15 << 16) | (4 << 8) | 0) */
+ FFMS_API(void) FFMS_DestroyIndex(FFMS_Index *Index);
+ FFMS_API(int) FFMS_GetSourceType(FFMS_Index *Index);
+ FFMS_API(int) FFMS_GetSourceTypeI(FFMS_Indexer *Indexer);
+diff -ru ffmpegsource/Makefile.am ffms2/Makefile.am
+--- ffmpegsource/Makefile.am 2013-02-27 16:53:39.310688030 +0100
++++ ffms2/Makefile.am 2013-02-27 16:53:31.724381141 +0100
+@@ -9,7 +9,7 @@
+ INCLUDES = -I. -I$(top_srcdir)/include -I$(top_srcdir)/src/config @LIBAV_CFLAGS@ @ZLIB_CPPFLAGS@ -include config.h
+
+ lib_LTLIBRARIES = src/core/libffms2.la
+-src_core_libffms2_la_LIBADD = @LIBAV_LIBS@ @ZLIB_LDFLAGS@ -lz @LTUNDEF@
++src_core_libffms2_la_LIBADD = @LIBAV_LIBS@ @AVRESAMPLE_LIBS@ @ZLIB_LDFLAGS@ -lz @LTUNDEF@
+ src_core_libffms2_la_SOURCES = \
+ src/core/audiosource.h \
+ src/core/audiosource.cpp \
+diff -ru ffmpegsource/src/config/config.h.in ffms2/src/config/config.h.in
+--- ffmpegsource/src/config/config.h.in 2013-02-27 16:53:39.017368608 +0100
++++ ffms2/src/config/config.h.in 2013-02-27 16:53:31.744380192 +0100
+@@ -90,5 +90,8 @@
+ /* Version number of package */
+ #undef VERSION
+
++/* Use avresample */
++#undef WITH_AVRESAMPLE
++
+ /* Define to `unsigned int' if <sys/types.h> does not define. */
+ #undef size_t
+diff -ru ffmpegsource/src/config/libs.cpp ffms2/src/config/libs.cpp
+--- ffmpegsource/src/config/libs.cpp 2013-02-27 16:53:39.017368608 +0100
++++ ffms2/src/config/libs.cpp 2013-02-27 16:53:31.744380192 +0100
+@@ -45,6 +45,9 @@
+ #pragma comment(lib, "libavcodec.a")
+ #pragma comment(lib, "libavformat.a")
+ #pragma comment(lib, "libswscale.a")
++#ifdef WITH_AVRESAMPLE
++#pragma comment(lib, "libavresample.a")
++#endif
+
+ #ifdef WITH_OPENCORE_AMR_NB
+ #ifdef WITH_GCC_LIBAV
+diff -ru ffmpegsource/src/core/audiosource.cpp ffms2/src/core/audiosource.cpp
+--- ffmpegsource/src/core/audiosource.cpp 2013-02-27 16:53:39.137362917 +0100
++++ ffms2/src/core/audiosource.cpp 2013-02-27 16:53:31.744380192 +0100
+@@ -23,17 +23,45 @@
+ #include <algorithm>
+ #include <cassert>
+
++namespace {
++
++ int64_t ChannelLayout;
++ FFMS_SampleFormat SampleFormat;
++ int SampleRate;
++#define MAPPER(m, n) OptionMapper<FFMS_ResampleOptions>(n, &FFMS_ResampleOptions::m)
++OptionMapper<FFMS_ResampleOptions> resample_options[] = {
++ MAPPER(ChannelLayout, "out_channel_layout"),
++ MAPPER(SampleFormat, "out_sample_fmt"),
++ MAPPER(SampleRate, "out_sample_rate"),
++ MAPPER(MixingCoefficientType, "mix_coeff_type"),
++ MAPPER(CenterMixLevel, "center_mix_level"),
++ MAPPER(SurroundMixLevel, "surround_mix_level"),
++ MAPPER(LFEMixLevel, "lfe_mix_level"),
++ MAPPER(Normalize, "normalize_mix_level"),
++ MAPPER(ForceResample, "force_resampling"),
++ MAPPER(ResampleFilterSize, "filter_size"),
++ MAPPER(ResamplePhaseShift, "phase_shift"),
++ MAPPER(LinearInterpolation, "linear_interp"),
++ MAPPER(CutoffFrequencyRatio, "cutoff"),
++ MAPPER(MatrixedStereoEncoding, "matrix_encoding"),
++ MAPPER(FilterType, "filter_type"),
++ MAPPER(KaiserBeta, "kaiser_beta"),
++ MAPPER(DitherMethod, "dither_method")
++};
++#undef MAPPER
++
++}
++
+ FFMS_AudioSource::FFMS_AudioSource(const char *SourceFile, FFMS_Index &Index, int Track)
+ : Delay(0)
+ , MaxCacheBlocks(50)
+ , BytesPerSample(0)
+-, Decoded(0)
++, NeedsResample(false)
+ , CurrentSample(-1)
+ , PacketNumber(0)
+ , CurrentFrame(NULL)
+ , TrackNumber(Track)
+ , SeekOffset(0)
+-, DecodingBuffer(AVCODEC_MAX_AUDIO_FRAME_SIZE * 10)
+ , Index(Index)
+ {
+ if (Track < 0 || Track >= static_cast<int>(Index.size()))
+@@ -57,44 +85,14 @@
+ Index.AddRef();
+ }
+
+-
+ #define EXCESSIVE_CACHE_SIZE 400
+
+ void FFMS_AudioSource::Init(const FFMS_Index &Index, int DelayMode) {
+- // The first packet after a seek is often decoded incorrectly, which
+- // makes it impossible to ever correctly seek back to the beginning, so
+- // store the first block now
+-
+- // In addition, anything with the same PTS as the first packet can't be
+- // distinguished from the first packet and so can't be seeked to, so
+- // store those as well
+-
+- // Some of LAVF's splitters don't like to seek to the beginning of the
+- // file (ts and?), so cache a few blocks even if PTSes are unique
+- // Packet 7 is the last packet I've had be unseekable to, so cache up to
+- // 10 for a bit of an extra buffer
+- CacheIterator end = Cache.end();
+- while (PacketNumber < Frames.size() &&
+- ((Frames[0].PTS != ffms_av_nopts_value && Frames[PacketNumber].PTS == Frames[0].PTS) ||
+- Cache.size() < 10)) {
+-
+- // Vorbis in particular seems to like having 60+ packets at the start of the file with a PTS of 0,
+- // so we might need to expand the search range to account for that.
+- if (Cache.size() >= MaxCacheBlocks - 1) {
+- if (MaxCacheBlocks >= EXCESSIVE_CACHE_SIZE)
+- throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_ALLOCATION_FAILED, "Exceeded the search range for an initial valid audio PTS");
+- MaxCacheBlocks *= 2;
+- }
+-
++ // Decode the first packet to ensure all properties are initialized
++ // Don't cache it since it might be in the wrong format
++ // Instead, leave it in DecodeFrame and it'll get cached later
++ while (DecodeFrame->nb_samples == 0)
+ DecodeNextBlock();
+- if (Decoded)
+- CacheBlock(end, CurrentSample, Decoded, &DecodingBuffer[0]);
+- }
+- // Store the iterator to the last element of the cache which is used for
+- // correctness rather than speed, so that when looking for one to delete
+- // we know how much to skip
+- CacheNoDelete = Cache.end();
+- --CacheNoDelete;
+
+ // Read properties of the audio which may not be available until the first
+ // frame has been decoded
+@@ -104,6 +102,11 @@
+ throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_CODEC,
+ "Codec returned zero size audio");
+
++ if (av_sample_fmt_is_planar(CodecContext->sample_fmt)) {
++ std::auto_ptr<FFMS_ResampleOptions> opt(CreateResampleOptions());
++ SetOutputFormat(opt.get());
++ }
++
+ if (DelayMode < FFMS_DELAY_NO_SHIFT)
+ throw FFMS_Exception(FFMS_ERROR_INDEX, FFMS_ERROR_INVALID_ARGUMENT,
+ "Bad audio delay compensation mode");
+@@ -146,8 +149,133 @@
+ AP.NumSamples += Delay;
+ }
+
+-void FFMS_AudioSource::CacheBlock(CacheIterator &pos, int64_t Start, size_t Samples, uint8_t *SrcData) {
+- Cache.insert(pos, AudioBlock(Start, Samples, SrcData, Samples * BytesPerSample));
++void FFMS_AudioSource::CacheBeginning() {
++ // Nothing to do if the cache is already populated
++ if (!Cache.empty()) return;
++
++ // The first frame is already decoded, so add it to the cache
++ CacheBlock(Cache.end());
++
++ // The first packet after a seek is often decoded incorrectly, which
++ // makes it impossible to ever correctly seek back to the beginning, so
++ // store the first block now
++
++ // In addition, anything with the same PTS as the first packet can't be
++ // distinguished from the first packet and so can't be seeked to, so
++ // store those as well
++
++ // Some of LAVF's splitters don't like to seek to the beginning of the
++ // file (ts and?), so cache a few blocks even if PTSes are unique
++ // Packet 7 is the last packet I've had be unseekable to, so cache up to
++ // 10 for a bit of an extra buffer
++ CacheIterator end = Cache.end();
++ while (PacketNumber < Frames.size() &&
++ ((Frames[0].PTS != ffms_av_nopts_value && Frames[PacketNumber].PTS == Frames[0].PTS) ||
++ Cache.size() < 10)) {
++
++ // Vorbis in particular seems to like having 60+ packets at the start
++ // of the file with a PTS of 0, so we might need to expand the search
++ // range to account for that.
++ // Expanding slightly before it's strictly needed to ensure there's a
++ // bit of space for an actual cache
++ if (Cache.size() >= MaxCacheBlocks - 5) {
++ if (MaxCacheBlocks >= EXCESSIVE_CACHE_SIZE)
++ throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_ALLOCATION_FAILED,
++ "Exceeded the search range for an initial valid audio PTS");
++ MaxCacheBlocks *= 2;
++ }
++
++ DecodeNextBlock(&end);
++ }
++ // Store the iterator to the last element of the cache which is used for
++ // correctness rather than speed, so that when looking for one to delete
++ // we know how much to skip
++ CacheNoDelete = Cache.end();
++ --CacheNoDelete;
++}
++
++void FFMS_AudioSource::SetOutputFormat(const FFMS_ResampleOptions *opt) {
++ if (!Cache.empty())
++ throw FFMS_Exception(FFMS_ERROR_RESAMPLING, FFMS_ERROR_USER,
++ "Cannot change the output format after audio decoding has begun");
++
++ BytesPerSample = av_get_bytes_per_sample(static_cast<AVSampleFormat>(opt->SampleFormat)) * av_get_channel_layout_nb_channels(opt->ChannelLayout);
++
++ NeedsResample =
++ opt->SampleFormat != (int)CodecContext->sample_fmt ||
++ opt->SampleRate != AP.SampleRate ||
++ opt->ChannelLayout != AP.ChannelLayout ||
++ opt->ForceResample;
++ if (!NeedsResample) return;
++
++ if (opt->SampleRate != AP.SampleRate)
++ throw FFMS_Exception(FFMS_ERROR_RESAMPLING, FFMS_ERROR_UNSUPPORTED,
++ "Sample rate changes are currently unsupported.");
++
++#ifdef WITH_AVRESAMPLE
++ if (opt->SampleRate != AP.SampleRate)
++ throw FFMS_Exception(FFMS_ERROR_RESAMPLING, FFMS_ERROR_UNSUPPORTED,
++ "Changing the audio sample rate is currently not supported");
++
++ std::auto_ptr<FFMS_ResampleOptions> oldOptions(ReadOptions(ResampleContext, resample_options));
++ SetOptions(opt, ResampleContext, resample_options);
++ av_opt_set_int(ResampleContext, "in_sample_rate", AP.SampleRate, 0);
++ av_opt_set_int(ResampleContext, "in_sample_fmt", CodecContext->sample_fmt, 0);
++ av_opt_set_int(ResampleContext, "in_channel_layout", AP.ChannelLayout, 0);
++
++ if (avresample_open(ResampleContext)) {
++ SetOptions(oldOptions.get(), ResampleContext, resample_options);
++ avresample_open(ResampleContext);
++ throw FFMS_Exception(FFMS_ERROR_RESAMPLING, FFMS_ERROR_UNKNOWN,
++ "Could not open avresample context");
++ }
++#else
++ if (opt->SampleFormat != AP.SampleFormat || opt->SampleRate != AP.SampleRate || opt->ChannelLayout != AP.ChannelLayout)
++ throw FFMS_Exception(FFMS_ERROR_RESAMPLING, FFMS_ERROR_UNSUPPORTED,
++ "FFMS was not built with resampling enabled. The only supported conversion is interleaving planar audio.");
++#endif
++}
++
++FFMS_ResampleOptions *FFMS_AudioSource::CreateResampleOptions() const {
++#ifdef WITH_AVRESAMPLE
++ FFMS_ResampleOptions *ret = ReadOptions(ResampleContext, resample_options);
++#else
++ FFMS_ResampleOptions *ret = new FFMS_ResampleOptions;
++ memset(ret, 0, sizeof(FFMS_ResampleOptions));
++#endif
++ ret->SampleRate = AP.SampleRate;
++ ret->SampleFormat = static_cast<FFMS_SampleFormat>(AP.SampleFormat);
++ ret->ChannelLayout = AP.ChannelLayout;
++ return ret;
++}
++
++void FFMS_AudioSource::ResampleAndCache(CacheIterator pos) {
++ AudioBlock& block = *Cache.insert(pos, AudioBlock(CurrentSample, DecodeFrame->nb_samples));
++ block.Data.reserve(DecodeFrame->nb_samples * BytesPerSample);
++
++#ifdef WITH_AVRESAMPLE
++ block.Data.resize(block.Data.capacity());
++
++ uint8_t *OutPlanes[1] = { static_cast<uint8_t *>(&block.Data[0]) };
++ avresample_convert(ResampleContext,
++ OutPlanes, block.Data.size(), DecodeFrame->nb_samples,
++ DecodeFrame->extended_data, DecodeFrame->nb_samples * av_get_bytes_per_sample(CodecContext->sample_fmt), DecodeFrame->nb_samples);
++#else
++ int width = av_get_bytes_per_sample(CodecContext->sample_fmt);
++ uint8_t **Data = DecodeFrame->extended_data;
++
++ for (int s = 0; s < DecodeFrame->nb_samples; ++s) {
++ for (int c = 0; c < CodecContext->channels; ++c)
++ block.Data.insert(block.Data.end(), &Data[c][s * width], &Data[c][(s + 1) * width]);
++ }
++#endif
++}
++
++void FFMS_AudioSource::CacheBlock(CacheIterator pos) {
++ if (NeedsResample)
++ ResampleAndCache(pos);
++ else
++ Cache.insert(pos, AudioBlock(CurrentSample, DecodeFrame->nb_samples, DecodeFrame->extended_data[0], DecodeFrame->nb_samples * BytesPerSample));
+
+ if (Cache.size() >= MaxCacheBlocks) {
+ // Kill the oldest one
+@@ -162,45 +290,45 @@
+ }
+ }
+
+-void FFMS_AudioSource::DecodeNextBlock() {
+- if (BytesPerSample == 0) BytesPerSample = av_get_bytes_per_sample(CodecContext->sample_fmt) * CodecContext->channels;
+-
++void FFMS_AudioSource::DecodeNextBlock(CacheIterator *pos) {
+ CurrentFrame = &Frames[PacketNumber];
+
+ AVPacket Packet;
+ if (!ReadPacket(&Packet))
+- throw FFMS_Exception(FFMS_ERROR_PARSER, FFMS_ERROR_UNKNOWN, "ReadPacket unexpectedly failed to read a packet");
++ throw FFMS_Exception(FFMS_ERROR_PARSER, FFMS_ERROR_UNKNOWN,
++ "ReadPacket unexpectedly failed to read a packet");
+
+ // ReadPacket may have changed the packet number
+ CurrentFrame = &Frames[PacketNumber];
+ CurrentSample = CurrentFrame->SampleStart;
+- ++PacketNumber;
+
+- uint8_t *Buf = &DecodingBuffer[0];
++ bool GotSamples = false;
+ uint8_t *Data = Packet.data;
+ while (Packet.size > 0) {
+- int TempOutputBufSize = AVCODEC_MAX_AUDIO_FRAME_SIZE * 10 - (Buf - &DecodingBuffer[0]);
+- int Ret = avcodec_decode_audio3(CodecContext, (int16_t *)Buf, &TempOutputBufSize, &Packet);
++ DecodeFrame.reset();
++ int GotFrame = 0;
++ int Ret = avcodec_decode_audio4(CodecContext, DecodeFrame, &GotFrame, &Packet);
+
+ // Should only ever happen if the user chose to ignore decoding errors
+ // during indexing, so continue to just ignore decoding errors
+ if (Ret < 0) break;
+
+- if (Ret > 0) {
++ if (Ret > 0 && GotFrame) {
+ Packet.size -= Ret;
+ Packet.data += Ret;
+- Buf += TempOutputBufSize;
++ if (DecodeFrame->nb_samples > 0) {
++ GotSamples = true;
++ if (pos)
++ CacheBlock(*pos);
++ }
+ }
+ }
+ Packet.data = Data;
+ FreePacket(&Packet);
+
+- Decoded = (Buf - &DecodingBuffer[0]) / BytesPerSample;
+- if (Decoded == 0) {
+- // zero sample packets aren't included in the index so we didn't
+- // actually move to the next packet
+- --PacketNumber;
+- }
++ // Zero sample packets aren't included in the index
++ if (GotSamples)
++ ++PacketNumber;
+ }
+
+ static bool SampleStartComp(const TFrameInfo &a, const TFrameInfo &b) {
+@@ -216,6 +344,8 @@
+ throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_INVALID_ARGUMENT,
+ "Out of bounds audio samples requested");
+
++ CacheBeginning();
++
+ uint8_t *Dst = static_cast<uint8_t*>(Buf);
+
+ // Apply audio delay (if any) and fill any samples before the start time with zero
+@@ -253,10 +383,12 @@
+ }
+ // Decode another block
+ else {
++ CacheIterator cachePos = it; --cachePos;
++
+ if (Start < CurrentSample && SeekOffset == -1)
+ throw FFMS_Exception(FFMS_ERROR_SEEKING, FFMS_ERROR_CODEC, "Audio stream is not seekable");
+
+- if (SeekOffset >= 0 && (Start < CurrentSample || Start > CurrentSample + Decoded * 5)) {
++ if (SeekOffset >= 0 && (Start < CurrentSample || Start > CurrentSample + DecodeFrame->nb_samples * 5)) {
+ TFrameInfo f;
+ f.SampleStart = Start;
+ int NewPacketNumber = std::distance(Frames.begin(), std::lower_bound(Frames.begin(), Frames.end(), f, SampleStartComp));
+@@ -266,32 +398,22 @@
+ // Only seek forward if it'll actually result in moving forward
+ if (Start < CurrentSample || static_cast<size_t>(NewPacketNumber) > PacketNumber) {
+ PacketNumber = NewPacketNumber;
+- Decoded = 0;
+ CurrentSample = -1;
++ DecodeFrame.reset();
+ avcodec_flush_buffers(CodecContext);
+ Seek();
+ }
+ }
+
+- // Decode everything between the last keyframe and the block we want
++ // Decode until we hit the block we want
+ if (PacketNumber >= Frames.size())
+ throw FFMS_Exception(FFMS_ERROR_SEEKING, FFMS_ERROR_CODEC, "Seeking is severely broken");
+- while (CurrentSample + Decoded <= Start && PacketNumber < Frames.size())
+- DecodeNextBlock();
++ while (CurrentSample + DecodeFrame->nb_samples <= Start && PacketNumber < Frames.size())
++ DecodeNextBlock(&it);
+ if (CurrentSample > Start)
+ throw FFMS_Exception(FFMS_ERROR_SEEKING, FFMS_ERROR_CODEC, "Seeking is severely broken");
+
+- CacheBlock(it, CurrentSample, Decoded, &DecodingBuffer[0]);
+-
+- size_t FirstSample = static_cast<size_t>(Start - CurrentSample);
+- size_t Samples = static_cast<size_t>(Decoded - FirstSample);
+- size_t Bytes = FFMIN(Samples, static_cast<size_t>(Count)) * BytesPerSample;
+-
+- memcpy(Dst, &DecodingBuffer[FirstSample * BytesPerSample], Bytes);
+-
+- Start += Samples;
+- Count -= Samples;
+- Dst += Bytes;
++ it = cachePos;
+ }
+ }
+ }
+diff -ru ffmpegsource/src/core/audiosource.h ffms2/src/core/audiosource.h
+--- ffmpegsource/src/core/audiosource.h 2013-02-27 16:53:39.130696566 +0100
++++ ffms2/src/core/audiosource.h 2013-02-27 16:53:31.744380192 +0100
+@@ -46,7 +46,6 @@
+ #endif
+
+ struct FFMS_AudioSource {
+-private:
+ struct AudioBlock {
+ int64_t Age;
+ int64_t Start;
+@@ -54,9 +53,17 @@
+ std::vector<uint8_t> Data;
+
+ AudioBlock(int64_t Start, int64_t Samples, uint8_t *SrcData, size_t SrcBytes)
+- : Start(Start)
+- , Samples(Samples)
+- , Data(SrcData, SrcData + SrcBytes)
++ : Start(Start)
++ , Samples(Samples)
++ , Data(SrcData, SrcData + SrcBytes)
++ {
++ static int64_t Now = 0;
++ Age = Now++;
++ }
++
++ AudioBlock(int64_t Start, int64_t Samples)
++ : Start(Start)
++ , Samples(Samples)
+ {
+ static int64_t Now = 0;
+ Age = Now++;
+@@ -74,11 +81,18 @@
+ CacheIterator CacheNoDelete;
+ // bytes per sample * number of channels
+ size_t BytesPerSample;
+- // Number of samples stored in the decoding buffer
+- size_t Decoded;
+
+- // Insert a block into the cache
+- void CacheBlock(CacheIterator &pos, int64_t Start, size_t Samples, uint8_t *SrcData);
++ bool NeedsResample;
++ FFResampleContext ResampleContext;
++
++ // Insert the current audio frame into the cache
++ void CacheBlock(CacheIterator pos);
++
++ // Interleave the current audio frame and insert it into the cache
++ void ResampleAndCache(CacheIterator pos);
++
++ // Cache the unseekable beginning of the file once the output format is set
++ void CacheBeginning();
+
+ // Called after seeking
+ virtual void Seek() { };
+@@ -99,13 +113,13 @@
+ int SeekOffset;
+
+ // Buffer which audio is decoded into
+- AlignedBuffer<uint8_t> DecodingBuffer;
++ ScopedFrame DecodeFrame;
+ FFMS_Index &Index;
+ FFMS_Track Frames;
+ FFCodecContext CodecContext;
+ FFMS_AudioProperties AP;
+
+- void DecodeNextBlock();
++ void DecodeNextBlock(CacheIterator *cachePos = 0);
+ // Initialization which has to be done after the codec is opened
+ void Init(const FFMS_Index &Index, int DelayMode);
+
+@@ -116,6 +130,9 @@
+ FFMS_Track *GetTrack() { return &Frames; }
+ const FFMS_AudioProperties& GetAudioProperties() const { return AP; }
+ void GetAudio(void *Buf, int64_t Start, int64_t Count);
++
++ FFMS_ResampleOptions *CreateResampleOptions() const;
++ void SetOutputFormat(const FFMS_ResampleOptions *opt);
+ };
+
+ class FFLAVFAudio : public FFMS_AudioSource {
+diff -ru ffmpegsource/src/core/ffms.cpp ffms2/src/core/ffms.cpp
+--- ffmpegsource/src/core/ffms.cpp 2013-02-27 16:53:39.137362917 +0100
++++ ffms2/src/core/ffms.cpp 2013-02-27 16:53:31.744380192 +0100
+@@ -256,6 +256,24 @@
+ V->ResetInputFormat();
+ }
+
++FFMS_API(FFMS_ResampleOptions *) FFMS_CreateResampleOptions(FFMS_AudioSource *A) {
++ return A->CreateResampleOptions();
++}
++
++FFMS_API(void) FFMS_DestroyResampleOptions(FFMS_ResampleOptions *options) {
++ delete options;
++}
++
++FFMS_API(int) FFMS_SetOutputFormatA(FFMS_AudioSource *A, const FFMS_ResampleOptions *options, FFMS_ErrorInfo *ErrorInfo) {
++ ClearErrorInfo(ErrorInfo);
++ try {
++ A->SetOutputFormat(options);
++ } catch (FFMS_Exception &e) {
++ return e.CopyOut(ErrorInfo);
++ }
++ return FFMS_ERROR_SUCCESS;
++}
++
+ FFMS_API(void) FFMS_DestroyIndex(FFMS_Index *Index) {
+ assert(Index != NULL);
+ if (Index == NULL)
+diff -ru ffmpegsource/src/core/indexing.cpp ffms2/src/core/indexing.cpp
+--- ffmpegsource/src/core/indexing.cpp 2013-02-27 16:53:39.134029741 +0100
++++ ffms2/src/core/indexing.cpp 2013-02-27 16:53:31.744380192 +0100
+@@ -693,7 +693,6 @@
+ , ANC(0)
+ , ANCPrivate(0)
+ , SourceFile(Filename)
+-, DecodingBuffer(AVCODEC_MAX_AUDIO_FRAME_SIZE * 10)
+ {
+ FFMS_Index::CalculateFileSignature(Filename, &Filesize, Digest);
+ }
+@@ -702,9 +701,9 @@
+
+ }
+
+-void FFMS_Indexer::WriteAudio(SharedAudioContext &AudioContext, FFMS_Index *Index, int Track, int DBSize) {
++void FFMS_Indexer::WriteAudio(SharedAudioContext &AudioContext, FFMS_Index *Index, int Track) {
+ // Delay writer creation until after an audio frame has been decoded. This ensures that all parameters are known when writing the headers.
+- if (DBSize <= 0) return;
++ if (DecodeFrame->nb_samples) return;
+
+ if (!AudioContext.W64Writer) {
+ FFMS_AudioProperties AP;
+@@ -715,6 +714,8 @@
+ return;
+ }
+
++ int Format = av_get_packed_sample_fmt(AudioContext.CodecContext->sample_fmt);
++
+ std::vector<char> WName(FNSize);
+ (*ANC)(SourceFile.c_str(), Track, &AP, &WName[0], FNSize, ANCPrivate);
+ std::string WN(&WName[0]);
+@@ -724,14 +725,14 @@
+ av_get_bytes_per_sample(AudioContext.CodecContext->sample_fmt),
+ AudioContext.CodecContext->channels,
+ AudioContext.CodecContext->sample_rate,
+- (AudioContext.CodecContext->sample_fmt == AV_SAMPLE_FMT_FLT) || (AudioContext.CodecContext->sample_fmt == AV_SAMPLE_FMT_DBL));
++ (Format == AV_SAMPLE_FMT_FLT) || (Format == AV_SAMPLE_FMT_DBL));
+ } catch (...) {
+ throw FFMS_Exception(FFMS_ERROR_WAVE_WRITER, FFMS_ERROR_FILE_WRITE,
+ "Failed to write wave data");
+ }
+ }
+
+- AudioContext.W64Writer->WriteData(&DecodingBuffer[0], DBSize);
++ AudioContext.W64Writer->WriteData(*DecodeFrame);
+ }
+
+ int64_t FFMS_Indexer::IndexAudioPacket(int Track, AVPacket *Packet, SharedAudioContext &Context, FFMS_Index &TrackIndices) {
+@@ -739,8 +740,10 @@
+ int64_t StartSample = Context.CurrentSample;
+ int Read = 0;
+ while (Packet->size > 0) {
+- int dbsize = AVCODEC_MAX_AUDIO_FRAME_SIZE*10;
+- int Ret = avcodec_decode_audio3(CodecContext, (int16_t *)&DecodingBuffer[0], &dbsize, Packet);
++ DecodeFrame.reset();
++
++ int GotFrame = 0;
++ int Ret = avcodec_decode_audio4(CodecContext, DecodeFrame, &GotFrame, Packet);
+ if (Ret < 0) {
+ if (ErrorHandling == FFMS_IEH_ABORT) {
+ throw FFMS_Exception(FFMS_ERROR_CODEC, FFMS_ERROR_DECODING, "Audio decoding error");
+@@ -756,13 +759,14 @@
+ Packet->data += Ret;
+ Read += Ret;
+
+- CheckAudioProperties(Track, CodecContext);
++ if (GotFrame) {
++ CheckAudioProperties(Track, CodecContext);
+
+- if (dbsize > 0)
+- Context.CurrentSample += dbsize / (av_get_bytes_per_sample(CodecContext->sample_fmt) * CodecContext->channels);
++ Context.CurrentSample += DecodeFrame->nb_samples;
+
+- if (DumpMask & (1 << Track))
+- WriteAudio(Context, &TrackIndices, Track, dbsize);
++ if (DumpMask & (1 << Track))
++ WriteAudio(Context, &TrackIndices, Track);
++ }
+ }
+ Packet->size += Read;
+ Packet->data -= Read;
+diff -ru ffmpegsource/src/core/indexing.h ffms2/src/core/indexing.h
+--- ffmpegsource/src/core/indexing.h 2013-02-27 16:53:39.127363391 +0100
++++ ffms2/src/core/indexing.h 2013-02-27 16:53:31.744380192 +0100
+@@ -155,7 +155,6 @@
+ };
+
+ struct FFMS_Indexer {
+-private:
+ std::map<int, FFMS_AudioProperties> LastAudioProperties;
+ protected:
+ int IndexMask;
+@@ -166,12 +165,12 @@
+ TAudioNameCallback ANC;
+ void *ANCPrivate;
+ std::string SourceFile;
+- AlignedBuffer<uint8_t> DecodingBuffer;
++ ScopedFrame DecodeFrame;
+
+ int64_t Filesize;
+ uint8_t Digest[20];
+
+- void WriteAudio(SharedAudioContext &AudioContext, FFMS_Index *Index, int Track, int DBSize);
++ void WriteAudio(SharedAudioContext &AudioContext, FFMS_Index *Index, int Track);
+ void CheckAudioProperties(int Track, AVCodecContext *Context);
+ int64_t IndexAudioPacket(int Track, AVPacket *Packet, SharedAudioContext &Context, FFMS_Index &TrackIndices);
+ void ParseVideoPacket(SharedVideoContext &VideoContext, AVPacket &pkt, int *RepeatPict, int *FrameType, bool *Invisible);
+diff -ru ffmpegsource/src/core/utils.cpp ffms2/src/core/utils.cpp
+--- ffmpegsource/src/core/utils.cpp 2013-02-27 16:53:39.134029741 +0100
++++ ffms2/src/core/utils.cpp 2013-02-27 16:53:31.744380192 +0100
+@@ -214,10 +214,32 @@
+ pkt.size = 0;
+ }
+
++extern "C" {
++#if VERSION_CHECK(LIBAVUTIL_VERSION_INT, >=, 52, 2, 0, 52, 6, 100)
++#include <libavutil/channel_layout.h>
++#elif VERSION_CHECK(LIBAVUTIL_VERSION_INT, >=, 51, 26, 0, 51, 45, 100)
++#include <libavutil/audioconvert.h>
++#else
++static int64_t av_get_default_channel_layout(int nb_channels) {
++ switch(nb_channels) {
++ case 1: return AV_CH_LAYOUT_MONO;
++ case 2: return AV_CH_LAYOUT_STEREO;
++ case 3: return AV_CH_LAYOUT_SURROUND;
++ case 4: return AV_CH_LAYOUT_QUAD;
++ case 5: return AV_CH_LAYOUT_5POINT0;
++ case 6: return AV_CH_LAYOUT_5POINT1;
++ case 7: return AV_CH_LAYOUT_6POINT1;
++ case 8: return AV_CH_LAYOUT_7POINT1;
++ default: return 0;
++ }
++}
++#endif
++}
++
+ void FillAP(FFMS_AudioProperties &AP, AVCodecContext *CTX, FFMS_Track &Frames) {
+- AP.SampleFormat = static_cast<FFMS_SampleFormat>(CTX->sample_fmt);
++ AP.SampleFormat = static_cast<FFMS_SampleFormat>(av_get_packed_sample_fmt(CTX->sample_fmt));
+ AP.BitsPerSample = av_get_bytes_per_sample(CTX->sample_fmt) * 8;
+- AP.Channels = CTX->channels;;
++ AP.Channels = CTX->channels;
+ AP.ChannelLayout = CTX->channel_layout;
+ AP.SampleRate = CTX->sample_rate;
+ if (!Frames.empty()) {
+@@ -225,6 +247,9 @@
+ AP.FirstTime = ((Frames.front().PTS * Frames.TB.Num) / (double)Frames.TB.Den) / 1000;
+ AP.LastTime = ((Frames.back().PTS * Frames.TB.Num) / (double)Frames.TB.Den) / 1000;
+ }
++
++ if (AP.ChannelLayout == 0)
++ AP.ChannelLayout = av_get_default_channel_layout(AP.Channels);
+ }
+
+ #ifdef HAALISOURCE
+diff -ru ffmpegsource/src/core/utils.h ffms2/src/core/utils.h
+--- ffmpegsource/src/core/utils.h 2013-02-27 16:53:39.127363391 +0100
++++ ffms2/src/core/utils.h 2013-02-27 16:53:31.744380192 +0100
+@@ -31,9 +31,13 @@
+ extern "C" {
+ #include "stdiostream.h"
+ #include <libavutil/mem.h>
++#include <libavutil/opt.h>
+ #include <libavformat/avformat.h>
+ #include <libavcodec/avcodec.h>
+ #include <libswscale/swscale.h>
++#ifdef WITH_AVRESAMPLE
++#include <libavresample/avresample.h>
++#endif
+ }
+
+ // must be included after ffmpeg headers
+@@ -133,6 +137,34 @@
+ }
+ };
+
++template<typename T, T *(*Alloc)(), void (*Del)(T **)>
++class unknown_size {
++ T *ptr;
++
++ unknown_size(unknown_size const&);
++ unknown_size& operator=(unknown_size const&);
++public:
++ operator T*() const { return ptr; }
++ operator void*() const { return ptr; }
++ T *operator->() const { return ptr; }
++
++ unknown_size() : ptr(Alloc()) { }
++ ~unknown_size() { Del(&ptr); }
++};
++
++class ScopedFrame : public unknown_size<AVFrame, avcodec_alloc_frame, avcodec_free_frame> {
++public:
++ void reset() {
++ avcodec_get_frame_defaults(*this);
++ }
++};
++
++#ifdef WITH_AVRESAMPLE
++typedef unknown_size<AVAudioResampleContext, avresample_alloc_context, avresample_free> FFResampleContext;
++#else
++typedef struct {} FFResampleContext;
++#endif
++
+ inline void DeleteHaaliCodecContext(AVCodecContext *CodecContext) {
+ av_freep(&CodecContext->extradata);
+ av_freep(&CodecContext);
+@@ -228,4 +240,68 @@
+
+ void FlushBuffers(AVCodecContext *CodecContext);
+
++namespace optdetail {
++ template<typename T>
++ T get_av_opt(void *v, const char *name) {
++ return static_cast<T>(av_get_int(v, name, 0));
++ }
++
++ template<>
++ inline double get_av_opt<double>(void *v, const char *name) {
++ return av_get_double(v, name, 0);
++ }
++
++ template<typename T>
++ void set_av_opt(void *v, const char *name, T value) {
++ av_opt_set_int(v, name, value, 0);
++ }
++
++ template<>
++ inline void set_av_opt<double>(void *v, const char *name, double value) {
++ av_opt_set_double(v, name, value, 0);
++ }
++}
++
++template<typename FFMS_Struct>
++class OptionMapper {
++ struct OptionMapperBase {
++ virtual void ToOpt(const FFMS_Struct *src, void *dst) const=0;
++ virtual void FromOpt(FFMS_Struct *dst, void *src) const=0;
++ };
++
++ template<typename T>
++ class OptionMapperImpl : public OptionMapperBase {
++ T (FFMS_Struct::*ptr);
++ const char *name;
++
++ public:
++ OptionMapperImpl(T (FFMS_Struct::*ptr), const char *name) : ptr(ptr), name(name) { }
++ void ToOpt(const FFMS_Struct *src, void *dst) const { optdetail::set_av_opt(dst, name, src->*ptr); }
++ void FromOpt(FFMS_Struct *dst, void *src) const { dst->*ptr = optdetail::get_av_opt<T>(src, name); }
++ };
++
++ OptionMapperBase *impl;
++
++public:
++ template<typename T>
++ OptionMapper(const char *opt_name, T (FFMS_Struct::*member)) : impl(new OptionMapperImpl<T>(member, opt_name)) { }
++
++ void ToOpt(const FFMS_Struct *src, void *dst) const { impl->ToOpt(src, dst); }
++ void FromOpt(FFMS_Struct *dst, void *src) const { impl->FromOpt(dst, src); }
++};
++
++template<typename T, int N>
++T *ReadOptions(void *opt, OptionMapper<T> (&options)[N]) {
++ T *ret = new T;
++ for (int i = 0; i < N; ++i)
++ options[i].FromOpt(ret, opt);
++ return ret;
++}
++
++template<typename T, int N>
++void SetOptions(const T* src, void *opt, OptionMapper<T> (&options)[N]) {
++ for (int i = 0; i < N; ++i)
++ options[i].ToOpt(src, opt);
++}
++
+ #endif
+diff -ru ffmpegsource/src/core/wave64writer.cpp ffms2/src/core/wave64writer.cpp
+--- ffmpegsource/src/core/wave64writer.cpp 2013-02-27 16:53:39.134029741 +0100
++++ ffms2/src/core/wave64writer.cpp 2013-02-27 16:53:31.744380192 +0100
+@@ -106,7 +106,16 @@
+ WavFile.seekp(CPos, std::ios::beg);
+ }
+
+-void Wave64Writer::WriteData(void *Data, std::streamsize Length) {
+- WavFile.write(reinterpret_cast<char *>(Data), Length);
++void Wave64Writer::WriteData(AVFrame const& Frame) {
++ uint64_t Length = Frame.nb_samples * BytesPerSample * Channels;
++ if (Channels > 1 && av_sample_fmt_is_planar(static_cast<AVSampleFormat>(Frame.format))) {
++ for (int32_t sample = 0; sample < Frame.nb_samples; ++sample) {
++ for (int32_t channel = 0; channel < Channels; ++channel)
++ WavFile.write(reinterpret_cast<char *>(&Frame.extended_data[channel][sample * BytesPerSample]), BytesPerSample);
++ }
++ }
++ else {
++ WavFile.write(reinterpret_cast<char *>(Frame.extended_data[0]), Length);
++ }
+ BytesWritten += Length;
+ }
+diff -ru /tmp/ffmpegsource/src/ffmpegsource/src/core/wave64writer.h ffms2/src/core/wave64writer.h
+--- /tmp/ffmpegsource/src/ffmpegsource/src/core/wave64writer.h 2013-02-27 16:53:39.127363391 +0100
++++ ffms2/src/core/wave64writer.h 2013-02-27 16:53:31.744380192 +0100
+@@ -28,8 +28,8 @@
+ class Wave64Writer {
+ public:
+ Wave64Writer(const char *Filename, uint16_t BitsPerSample, uint16_t Channels, uint32_t SamplesPerSec, bool IsFloat);
+ ~Wave64Writer();
+- void WriteData(void *Data, std::streamsize Length);
++ void WriteData(AVFrame const& Frame);
+ private:
+ ffms_fstream WavFile;
+ int32_t BytesPerSample;
diff --git a/community/freeorion/PKGBUILD b/community/freeorion/PKGBUILD
index 726cd7ec1..d26d979a5 100644
--- a/community/freeorion/PKGBUILD
+++ b/community/freeorion/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 84326 2013-02-16 16:16:27Z arodseth $
+# $Id: PKGBUILD 85227 2013-02-27 19:59:02Z andrea $
# Maintainer: Alexander Rødseth <rodseth@gmail.com>
# Contributor: Elmo Todurov <todurov@gmail.com>
# Contributor: guini <sidtrun@googlemail.com>
@@ -7,8 +7,8 @@
# Contributor: fana-m <geminin@gmx.net>
pkgname=freeorion
-pkgver=0.4.1
-pkgrel=7
+pkgver=0.4.2
+pkgrel=1
pkgdesc='Turn-based galactic conquest game inspired by Master of Orion'
arch=('x86_64' 'i686')
url='http://www.freeorion.org/'
@@ -19,8 +19,8 @@ then
else
depends=('nvidia-cg-toolkit')
fi
-depends=('bullet>=2.81' 'freealut' 'libvorbis' 'python2' 'gigi' 'desktop-file-utils')
-makedepends=('boost>=1.49.0' 'ogre' 'sdl' 'gigi>=0.8.0-12' 'graphviz' 'clang'
+depends=('bullet>=2.81' 'freealut' 'libvorbis' 'python2' 'gigi' 'desktop-file-utils' 'libgl')
+makedepends=('boost>=1.49.0' 'ogre' 'sdl' 'gigi>=0.8.0-12' 'graphviz' 'mesa-libgl'
'desktop-file-utils' 'setconf' 'cmake' 'gendesk' 'subversion'
'libogg')
options=('!strip' '!emptydirs')
@@ -33,7 +33,7 @@ sha256sums=('111532e460aec847ff455ee67dd64f46e2fa5ceba39a0349d25a84b69c646eaf'
'3dbe8df9c3a4a0d6451f42727ebf9bcb21fed41a08d1181d1cf77ef4ab5ee81a')
_svnrepo='https://freeorion.svn.sourceforge.net/svnroot/freeorion/trunk/FreeOrion/'
_pyversion=2.7
-_revision=5671 #5379
+_revision=5771
build() {
cd "$srcdir"
diff --git a/community/haskell-regex-base/PKGBUILD b/community/haskell-regex-base/PKGBUILD
index ca0e07d8e..92ace4b31 100644
--- a/community/haskell-regex-base/PKGBUILD
+++ b/community/haskell-regex-base/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 84007 2013-02-08 04:15:39Z td123 $
+# $Id: PKGBUILD 85230 2013-02-27 20:01:23Z andrea $
# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
# Contributor: Alexander Rødseth <rodseth@gmail.com>
@@ -6,7 +6,7 @@
_hkgname=regex-base
pkgname=haskell-regex-base
pkgver=0.93.2
-pkgrel=9
+pkgrel=12
pkgdesc='Interface API for regex-posix,pcre,parsec,tdfa,dfa'
url='http://hackage.haskell.org/cgi-bin/hackage-scripts/package/regex-base'
license=('custom:BSD3')
diff --git a/community/i3status/PKGBUILD b/community/i3status/PKGBUILD
index e845b85b7..dfd36db63 100644
--- a/community/i3status/PKGBUILD
+++ b/community/i3status/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 77036 2012-10-03 18:05:35Z ttopper $
+# $Id: PKGBUILD 85172 2013-02-27 14:41:02Z ttoepper $
# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
pkgname=i3status
-pkgver=2.6
+pkgver=2.7
pkgrel=1
pkgdesc="Generates status bar to use with dzen2 or xmobar"
arch=('i686' 'x86_64')
@@ -15,7 +15,7 @@ backup=('etc/i3status.conf')
install=i3status.install
options=('docs')
source=("http://i3.zekjur.net/i3status/$pkgname-$pkgver.tar.bz2")
-md5sums=('98f649429d7845682846de36fb38f780')
+md5sums=('f0a39e84aebb65496af3dcec9d8cfeb8')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/community/openshadinglanguage/PKGBUILD b/community/openshadinglanguage/PKGBUILD
index 2fcc49be5..853c15ac9 100644
--- a/community/openshadinglanguage/PKGBUILD
+++ b/community/openshadinglanguage/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
pkgname=openshadinglanguage
pkgver=1.3.0
-pkgrel=1
+pkgrel=2
pkgdesc="Advanced shading language for production GI renderers"
arch=(i686 x86_64)
url="http://code.google.com/p/openshadinglanguage/"
@@ -17,7 +17,12 @@ build() {
[[ -d build ]] && rm -r build
mkdir build && cd build
- cmake -DCMAKE_INSTALL_PREFIX=/usr ..
+ # TODO: Remove LLVM_STATIC with llvm 3.3 when we'll have shared libs
+ # Check blender for crash with llvm pipe (run LIBGL_ALWAYS_SOFTWARE=1 blender)
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLLVM_STATIC=ON \
+ ..
make
}
diff --git a/community/percona-server/PKGBUILD b/community/percona-server/PKGBUILD
index c0f1544c8..41a6c66e6 100644
--- a/community/percona-server/PKGBUILD
+++ b/community/percona-server/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 82764 2013-01-24 08:41:17Z mtorromeo $
+# $Id: PKGBUILD 85072 2013-02-27 09:22:49Z mtorromeo $
# Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
pkgname=percona-server
-pkgver=5.5.29_rel29.4
+pkgver=5.5.29_rel30.0
pkgrel=1
pkgdesc="A backwards-compatible drop-in replacement for MySQL that provides improved performance, diagnostics and instrumentation"
arch=('i686' 'x86_64')
@@ -102,7 +102,7 @@ package() {
install -dm700 "${pkgdir}"/var/lib/mysql
}
-sha256sums=('b29dfa3634450e405c697e145dc63cf939c3c803bdeccecc01289188b40819a9'
+sha256sums=('9cbcb2ad2b66a352a154f2b89c779d79cceea4f6f5ff9ef62f8ae1512c0550a7'
'e875fac56f69634b4f1720aec3b952fc63903414e9345af630e5fd74b5373eb4'
'dd5dc155de468d4ab26971109861ae19b53574f28785bac5ff7b717fb65c0760'
'4894d39605950d86841ad982e619daa6c8d5d60ca30928d7dbb582e8cb3ade32'
diff --git a/community/pidgin-lwqq/PKGBUILD b/community/pidgin-lwqq/PKGBUILD
index aaad6a8fb..80b9e0551 100644
--- a/community/pidgin-lwqq/PKGBUILD
+++ b/community/pidgin-lwqq/PKGBUILD
@@ -1,16 +1,17 @@
-# $Id: PKGBUILD 82530 2013-01-20 07:27:44Z fyan $
+# $Id: PKGBUILD 85068 2013-02-27 02:51:41Z fyan $
# Maintainer: Felix Yan <felixonmars@gmail.com>
pkgname=pidgin-lwqq
-pkgver=0.1b
-_pkgver=0.1-b
+pkgver=0.1c
+_pkgver=0.1-c
pkgrel=1
pkgdesc="A pidgin plugin based on lwqq, a excellent safe useful library for webqq protocol"
arch=('i686' 'x86_64')
url="https://github.com/xiehuc/pidgin-lwqq"
license=('GPL3')
depends=('libpurple' 'curl' 'libev' 'hicolor-icon-theme' 'gtk-update-icon-cache')
-optdepends=('telepathy-haze: Empathy plugin support')
+optdepends=('pidgin: Multi-protocol instant messaging client'
+ 'telepathy-haze: Empathy plugin support')
makedepends=('git' 'cmake')
install=$pkgname.install
source=("https://github.com/xiehuc/$pkgname/archive/${_pkgver}.tar.gz")
@@ -32,4 +33,4 @@ package()
cd "$srcdir/$pkgname-${_pkgver}/build"
make DESTDIR="${pkgdir}" install
}
-md5sums=('c7dc9de7d951f99e878f3036f79f7d6f')
+md5sums=('7ea1ed24870213c07c536d49fd59e292')
diff --git a/community/processing/PKGBUILD b/community/processing/PKGBUILD
index 940517a8a..e4a8509ca 100644
--- a/community/processing/PKGBUILD
+++ b/community/processing/PKGBUILD
@@ -1,44 +1,46 @@
-# $Id: PKGBUILD 82915 2013-01-25 17:38:23Z arodseth $
+# $Id: PKGBUILD 85228 2013-02-27 19:59:51Z andrea $
# Maintainer: Alexander Rødseth <rodseth@gmail.com>
pkgname=processing
-pkgver=2.0b7
-pkgrel=3
-pkgdesc='Programming language and environment for creating images, animations and interactions'
+pkgver=2.0b8
+pkgrel=1
arch=('x86_64' 'i686')
+pkgdesc='Programming language and environment for creating images, animations and interactions'
url='http://www.processing.org/'
license=('GPL' 'LGPL')
depends=('libgl' 'sh' 'libxxf86vm')
makedepends=('gendesk')
options=(!strip)
-_bits=64
-sha256sums=('844b4280b242176107f6c40fef47fa420695111cdb2b80294570297f63b1186f')
-if [[ "$CARCH" != "x86_64" ]]; then
- _bits=32
- sha256sums=('55db8370672f9e2658443a7fe577e23f06ca1ab2435719c865a059a0e65cdc83')
+if [ "$CARCH" == "x86_64" ]; then
+ source=("http://$pkgname.googlecode.com/files/$pkgname-$pkgver-linux64.tgz"
+ "$pkgname.png::http://wiki.$pkgname.org/skins/${pkgname}skin/${pkgname}_wiki_logo.png")
+ sha256sums=('5eab47cd67f3160a71ff694b45e74f8a17f0b0ca31cd3ae545104fb70babb58e'
+ '019ae700333409acbc628779747ab8f153f6647de25e4de3a9bd4a42d0d8056a')
+else
+ source=("http://$pkgname.googlecode.com/files/$pkgname-$pkgver-linux32.tgz"
+ "$pkgname.png::http://wiki.$pkgname.org/skins/${pkgname}skin/${pkgname}_wiki_logo.png")
+ sha256sums=('ba113199c5ca3c0d9a274088a62eacd6c3872dea9151e34ed1f312d78bad6f17'
+ '019ae700333409acbc628779747ab8f153f6647de25e4de3a9bd4a42d0d8056a')
fi
-source=("http://$pkgname.googlecode.com/files/$pkgname-$pkgver-linux$_bits.tgz")
-
-source+=("$pkgname.png::http://wiki.$pkgname.org/skins/${pkgname}skin/${pkgname}_wiki_logo.png")
-sha256sums+=('019ae700333409acbc628779747ab8f153f6647de25e4de3a9bd4a42d0d8056a')
build() {
- cd "$srcdir"
- gendesk
+ cd "$srcdir"
+
+ gendesk
}
package() {
- cd "$srcdir/$pkgname-$pkgver"
-
- install -d "$pkgdir/usr/share/$pkgname/" "$pkgdir/usr/bin/"
- cp -r ./* "$pkgdir/usr/share/$pkgname/"
- ln -s "/usr/share/$pkgname/$pkgname" "$pkgdir/usr/bin/$pkgname"
- ln -s "/usr/share/$pkgname/$pkgname-java" "$pkgdir/usr/bin/$pkgname-java"
- install -Dm644 "$srcdir/$pkgname.png" \
- "$pkgdir/usr/share/pixmaps/$pkgname.png"
- install -Dm644 "$srcdir/$pkgname.desktop" \
- "$pkgdir/usr/share/applications/$pkgname.desktop"
+ cd "$srcdir/$pkgname-$pkgver"
+
+ install -d "$pkgdir/usr/share/$pkgname/" "$pkgdir/usr/bin/"
+ cp -r * "$pkgdir/usr/share/$pkgname/"
+ ln -s "/usr/share/$pkgname/$pkgname" "$pkgdir/usr/bin/$pkgname"
+ ln -s "/usr/share/$pkgname/$pkgname-java" "$pkgdir/usr/bin/$pkgname-java"
+ install -Dm644 "$srcdir/$pkgname.png" \
+ "$pkgdir/usr/share/pixmaps/$pkgname.png"
+ install -Dm644 "$srcdir/$pkgname.desktop" \
+ "$pkgdir/usr/share/applications/$pkgname.desktop"
}
# vim:set ts=2 sw=2 et:
diff --git a/community/rxvt-unicode/01-fix-screen-sel.patch b/community/rxvt-unicode/01-fix-screen-sel.patch
new file mode 100644
index 000000000..bee7dc262
--- /dev/null
+++ b/community/rxvt-unicode/01-fix-screen-sel.patch
@@ -0,0 +1,66 @@
+--- a/src/rxvt.h 2012-11-30 07:52:10.000000000 +0100
++++ b/src/rxvt.h 2013-01-19 18:14:07.477653413 +0100
+@@ -1488,6 +1488,7 @@
+ void scr_blank_screen_mem (line_t &l, rend_t efs) const NOTHROW;
+ void scr_kill_char (line_t &l, int col) const NOTHROW;
+ int scr_scroll_text (int row1, int row2, int count) NOTHROW;
++ void copy_line (line_t &dst, line_t &src);
+ void scr_reset ();
+ void scr_release () NOTHROW;
+ void scr_clear (bool really = false) NOTHROW;
+--- a/src/screen.C 2012-11-30 08:13:38.000000000 +0100
++++ b/src/screen.C 2013-01-19 18:17:13.431014964 +0100
+@@ -190,6 +190,16 @@
+ row_buf = swap_buf + nrow;
+ }
+
++void
++rxvt_term::copy_line (line_t &dst, line_t &src)
++{
++ scr_blank_screen_mem (dst, DEFAULT_RSTYLE);
++ dst.l = min (src.l, ncol);
++ memcpy (dst.t, src.t, sizeof (text_t) * dst.l);
++ memcpy (dst.r, src.r, sizeof (rend_t) * dst.l);
++ dst.f = src.f;
++}
++
+ void ecb_cold
+ rxvt_term::scr_reset ()
+ {
+@@ -232,8 +242,6 @@
+ line_t *prev_swap_buf = swap_buf;
+ line_t *prev_row_buf = row_buf;
+
+- int common_col = min (prev_ncol, ncol);
+-
+ scr_alloc ();
+
+ if (!prev_row_buf)
+@@ -277,13 +285,8 @@
+
+ for (int row = min (nrow, prev_nrow); row--; )
+ {
+- scr_blank_screen_mem (drawn_buf [row], DEFAULT_RSTYLE);
+- scr_blank_screen_mem (swap_buf [row], DEFAULT_RSTYLE);
+-
+- memcpy (drawn_buf [row].t, prev_drawn_buf [row].t, sizeof (text_t) * common_col);
+- memcpy (drawn_buf [row].r, prev_drawn_buf [row].r, sizeof (rend_t) * common_col);
+- memcpy (swap_buf [row].t, prev_swap_buf [row].t, sizeof (text_t) * common_col);
+- memcpy (swap_buf [row].r, prev_swap_buf [row].r, sizeof (rend_t) * common_col);
++ copy_line (drawn_buf [row], prev_drawn_buf [row]);
++ copy_line (swap_buf [row], prev_swap_buf [row]);
+ }
+
+ int p = MOD (term_start + prev_nrow, prev_total_rows); // previous row
+@@ -388,10 +391,7 @@
+ line_t &src = prev_row_buf [MOD (term_start + row, prev_total_rows)];
+ line_t &dst = row_buf [row];
+
+- scr_blank_screen_mem (dst, DEFAULT_RSTYLE);
+-
+- memcpy (dst.t, src.t, sizeof (text_t) * common_col);
+- memcpy (dst.r, src.r, sizeof (rend_t) * common_col);
++ copy_line (dst, src);
+ }
+
+ for (int row = prev_nrow; row < nrow; row++)
diff --git a/community/rxvt-unicode/PKGBUILD b/community/rxvt-unicode/PKGBUILD
index 9f6dfad3b..7eb95367e 100644
--- a/community/rxvt-unicode/PKGBUILD
+++ b/community/rxvt-unicode/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 81737 2012-12-28 00:16:43Z seblu $
+# $Id: PKGBUILD 85229 2013-02-27 20:00:33Z andrea $
# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
# Contributor: Angel Velasquez <angvp@archlinux.org>
# Contributor: tobias <tobias@archlinux.org>
@@ -6,7 +6,7 @@
pkgname=rxvt-unicode
pkgver=9.16
-pkgrel=1
+pkgrel=2
pkgdesc='An unicode enabled rxvt-clone terminal emulator (urxvt)'
arch=('i686' 'x86_64')
url='http://software.schmorp.de/pkg/rxvt-unicode.html'
@@ -18,14 +18,17 @@ source=(
'urxvt.desktop'
'urxvtc.desktop'
'urxvt-tabbed.desktop'
+ '01-fix-screen-sel.patch'
)
md5sums=('2e2942e8367624affebc0568e3671b66'
- '88d8786d74b819450adf722180db09fd'
- 'bebf5b6b399b74b557fcedbdb47cc387'
- '2604896bb107fbb5511bfd6f46d65894')
+ 'c2b828d37d06cbf4c32937a2959f2fc2'
+ '10e80aebaef042fb63d2585440dc3637'
+ '830abe6f31fb926a1bcd2650731be15e'
+ '266e027bd4a998073f17d548d288d414')
build() {
cd $pkgname-$pkgver
+ patch -p1 -i "$srcdir/01-fix-screen-sel.patch"
./configure \
--prefix=/usr \
--with-terminfo=/usr/share/terminfo \
@@ -73,4 +76,4 @@ package() {
done
}
-# vim:set ts=2 sw=2 ft=sh et:
+# vim:set ts=2 sw=2 et:
diff --git a/community/rxvt-unicode/urxvt-tabbed.desktop b/community/rxvt-unicode/urxvt-tabbed.desktop
index f3efdc9b9..bd48c0a72 100644
--- a/community/rxvt-unicode/urxvt-tabbed.desktop
+++ b/community/rxvt-unicode/urxvt-tabbed.desktop
@@ -1,10 +1,9 @@
[Desktop Entry]
Version=1.0
-Encoding=UTF-8
Name=urxvt (tabbed)
Comment=An unicode capable and tabbed rxvt clone
Exec=urxvt-tabbed
Icon=terminal
Terminal=false
Type=Application
-Categories=Application;System;TerminalEmulator;
+Categories=System;TerminalEmulator;
diff --git a/community/rxvt-unicode/urxvt.desktop b/community/rxvt-unicode/urxvt.desktop
index 0a9baf7df..d90c182e2 100644
--- a/community/rxvt-unicode/urxvt.desktop
+++ b/community/rxvt-unicode/urxvt.desktop
@@ -1,10 +1,9 @@
[Desktop Entry]
Version=1.0
-Encoding=UTF-8
Name=urxvt
Comment=An unicode capable rxvt clone
Exec=urxvt
Icon=terminal
Terminal=false
Type=Application
-Categories=Application;System;TerminalEmulator;
+Categories=System;TerminalEmulator;
diff --git a/community/rxvt-unicode/urxvtc.desktop b/community/rxvt-unicode/urxvtc.desktop
index e39a418f6..67751095b 100644
--- a/community/rxvt-unicode/urxvtc.desktop
+++ b/community/rxvt-unicode/urxvtc.desktop
@@ -1,10 +1,9 @@
[Desktop Entry]
Version=1.0
-Encoding=UTF-8
Name=urxvt (client)
Comment=An unicode capable rxvt clone client for urxvtd
Exec=urxvtc
Icon=terminal
Terminal=false
Type=Application
-Categories=Application;System;TerminalEmulator;
+Categories=System;TerminalEmulator;
diff --git a/community/teamspeak3/PKGBUILD b/community/teamspeak3/PKGBUILD
new file mode 100644
index 000000000..f68136ffa
--- /dev/null
+++ b/community/teamspeak3/PKGBUILD
@@ -0,0 +1,60 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Slash <demodevil5[at]yahoo[dot]com>
+# Contributor: J.W. Birdsong <jwbirdsongATmailDOTcom>
+
+pkgname=teamspeak3
+pkgver=3.0.9.2
+pkgrel=2
+pkgdesc="TeamSpeak is software for quality voice communication via the Internet"
+url="http://www.teamspeak.com/"
+license=('custom')
+depends=('qt' 'libpulse')
+arch=('i686' 'x86_64')
+source=("http://teamspeak.gameserver.gamed.de/ts3/releases/${pkgver}/TeamSpeak3-Client-linux_x86-${pkgver}.run"
+ 'teamspeak3.desktop' 'icon.xpm' 'teamspeak3.launcher')
+md5sums=('b9ca1362f6f79644357c5558ee5ddfd2'
+ 'be58a8798c5d1b7e95a89f6a6482db3e'
+ '19f103384e4c1a0aafc8fed44de0c87b'
+ '170fcbb1b468ce4f3dba7ee3fb2a1c6d')
+_TSARCH='x86'
+
+if [ "$CARCH" == "x86_64" ]; then
+ source[0]="http://teamspeak.gameserver.gamed.de/ts3/releases/${pkgver}/TeamSpeak3-Client-linux_amd64-${pkgver}.run"
+ md5sums[0]='a15002b92e3cd4585dc9ce07818bf446'
+ _TSARCH='amd64'
+fi
+
+build() {
+ cd ${srcdir}
+
+ # Create Destination Directories
+ install -d ${pkgdir}/{usr/bin/,opt/}
+
+ # Make Installer Executable
+ chmod +x TeamSpeak3-Client-linux_${_TSARCH}-${pkgver}.run
+
+ # Run Installer
+ ./TeamSpeak3-Client-linux_${_TSARCH}-${pkgver}.run --noexec --target teamspeak3
+
+ # Move Program Data to Package Directory
+ mv ${srcdir}/teamspeak3/ ${pkgdir}/opt/
+
+ # Remove Bundled Qt Libraries and Symlink system libraries to TS3 Directory
+ rm ${pkgdir}/opt/teamspeak3/libQt*
+ ln -s /usr/lib/libQtCore.so.4 ${pkgdir}/opt/teamspeak3/libQtCore.so.4
+ ln -s /usr/lib/libQtGui.so.4 ${pkgdir}/opt/teamspeak3/libQtGui.so.4
+ ln -s /usr/lib/libQtNetwork.so.4 ${pkgdir}/opt/teamspeak3/libQtNetwork.so.4
+
+ # Install Desktop File
+ install -D -m644 $srcdir/teamspeak3.desktop ${pkgdir}/usr/share/applications/teamspeak3.desktop
+
+ # Install Icon File
+ install -D -m644 $srcdir/icon.xpm ${pkgdir}/usr/share/pixmaps/teamspeak3.xpm
+
+ # Install Custom License
+ install -D -m644 ${pkgdir}/opt/teamspeak3/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ # Install Client Launcher
+ install -D -m755 $srcdir/teamspeak3.launcher ${pkgdir}/usr/bin/teamspeak3
+}
+# vim:set ts=2 sw=2 et:
diff --git a/community/teamspeak3/icon.xpm b/community/teamspeak3/icon.xpm
new file mode 100644
index 000000000..fe47b3bb9
--- /dev/null
+++ b/community/teamspeak3/icon.xpm
@@ -0,0 +1,305 @@
+/* XPM */
+static char *dummy[]={
+"48 48 254 2",
+"Qt c None",
+"ar c #026d04",
+"aq c #069309",
+"aF c #0c9928",
+"ae c #0f6f16",
+"ad c #107a03",
+"aW c #138d08",
+"a7 c #148d1e",
+"bg c #165f30",
+"bh c #17602f",
+"a6 c #1b633e",
+"a3 c #1b6a32",
+"#0 c #1b8418",
+"bi c #1e4c3b",
+"aK c #1fb404",
+"aE c #1fd04d",
+"aJ c #228739",
+"aD c #25d939",
+"aG c #276253",
+"ax c #27a737",
+"aO c #27f965",
+"bf c #28534e",
+"ay c #28da23",
+"as c #296255",
+"aN c #29fa5d",
+"ap c #2bb41e",
+"bW c #2c3546",
+"aR c #2d9d45",
+"br c #303b50",
+"aS c #305a5c",
+"bk c #323e54",
+"aX c #32d03c",
+"b5 c #333d50",
+"aj c #33bb49",
+"aC c #33e131",
+"bR c #343d50",
+"bb c #344056",
+"#1 c #35845e",
+"#4 c #36435b",
+"ba c #365360",
+"aB c #36ee37",
+"aM c #36f958",
+"aT c #38455d",
+"aA c #39f83c",
+"bL c #3a4355",
+"be c #3a4760",
+"af c #3a5e69",
+"aL c #3ae333",
+"bn c #3b4250",
+".R c #3b485e",
+".z c #3b4862",
+"#n c #3b4b64",
+"bj c #3b5166",
+"bs c #3c4452",
+"#a c #3c4a64",
+"ac c #3ca72c",
+".E c #3d4962",
+"aH c #3d4c66",
+"#t c #3e4d68",
+"#C c #404e6a",
+".t c #414e65",
+"b4 c #434e62",
+".1 c #43516c",
+"#Z c #43a735",
+"bC c #444d5e",
+".v c #455166",
+".y c #455573",
+"#i c #475a75",
+"#P c #47ae4e",
+"am c #47fc4a",
+"bt c #485162",
+"#z c #485772",
+"#Q c #489571",
+"az c #49f243",
+"aP c #49fa88",
+"#b c #4a5975",
+".0 c #4c5669",
+".2 c #4d5c79",
+"bm c #4e5868",
+"#8 c #4eae72",
+"ao c #4ed03d",
+"bS c #505762",
+".x c #505e79",
+".o c #515b6e",
+"#2 c #515d74",
+".V c #53627b",
+"#I c #537680",
+"an c #53ec4b",
+".n c #565e6e",
+".F c #566580",
+"bK c #576276",
+"#T c #577983",
+".S c #586681",
+"ak c #58ee66",
+".u c #596171",
+".U c #5a6882",
+"bX c #5b616b",
+"#E c #5b657a",
+"aw c #5d687c",
+"by c #5d6b85",
+"a8 c #5dcf79",
+"bV c #5e6a80",
+"#K c #5e8b89",
+"#o c #5f6d86",
+"bT c #60697c",
+"#H c #609c89",
+"bD c #616e88",
+"b# c #61c07a",
+".f c #636b7b",
+"bY c #636d7f",
+".e c #646d7c",
+"#G c #64ac8e",
+".w c #657187",
+".s c #65728b",
+"#U c #66e377",
+"aZ c #66feaa",
+"b6 c #696e77",
+".H c #69758e",
+"a0 c #69feac",
+"bJ c #6a717c",
+".d c #6a7282",
+"b3 c #6a7488",
+"#F c #6a9992",
+"#O c #6ad465",
+"aY c #6cfda3",
+".p c #6d778b",
+".I c #6d7a91",
+"bZ c #6f788b",
+"aQ c #6fed9c",
+"aa c #6ffa7a",
+".D c #707783",
+"aU c #727b8c",
+"ab c #72db67",
+"#7 c #737d92",
+"al c #73fd80",
+"b7 c #747a84",
+"ag c #767c85",
+"#L c #76ea8d",
+".g c #77808f",
+"b2 c #778194",
+".3 c #778298",
+"bH c #787d85",
+".m c #7a808b",
+".c c #7a828f",
+"bQ c #7b7f88",
+"#3 c #7b8392",
+"b0 c #7b8396",
+"aV c #7b8494",
+"#A c #7b869a",
+"bF c #7c7e86",
+"bp c #7c818a",
+"#9 c #7cec81",
+"## c #7d8390",
+".4 c #7d889c",
+"#d c #7d8aa4",
+"bz c #7e8491",
+"a# c #7efe93",
+"#c c #7f899b",
+"bP c #80858e",
+"bO c #808b9f",
+"a2 c #80d598",
+"#S c #818895",
+"b1 c #828c9e",
+"#p c #828da1",
+"ai c #838b9a",
+"b. c #83e6a5",
+"bB c #848991",
+"at c #858e9e",
+"#r c #858ea1",
+"#w c #8592ac",
+"bN c #86898d",
+".G c #8690a3",
+"#Y c #86e982",
+"a9 c #86eaa9",
+"#k c #8795b0",
+"bq c #888c93",
+"a1 c #88fdbb",
+"bE c #898b90",
+".b c #898f9a",
+".h c #8991a0",
+"#x c #8a99b5",
+"#N c #8af397",
+"#M c #8af99b",
+"bG c #8b8f96",
+"#h c #8c96a8",
+"#e c #8e9dba",
+"bU c #8f96a6",
+".T c #8f98a9",
+"bo c #90949d",
+".5 c #909fbc",
+"#s c #9197a2",
+"#u c #939bac",
+".q c #939db1",
+"#f c #93a2bd",
+"#J c #959aa4",
+"bd c #97a5c0",
+"bw c #99a6c1",
+".l c #9a9fa8",
+".6 c #9ba9c3",
+"bx c #9ca2ac",
+".i c #9ca4b3",
+".W c #a0a6b3",
+"#l c #a0adc5",
+"#R c #a3abb8",
+".a c #a4a9b3",
+"#X c #a4feb9",
+"#g c #a5b1c8",
+"#j c #a8aeba",
+".k c #a8afbd",
+"bI c #aaacaf",
+"bM c #aaaeb7",
+".7 c #aab5cb",
+".K c #abb1bc",
+"av c #aeb4c0",
+"#q c #aeb9cb",
+"bv c #afb1b5",
+"bc c #b0b5bd",
+"aI c #b0b6c2",
+"bA c #b1b3b6",
+".J c #b1b8c4",
+"a. c #b2fec6",
+".j c #b3b8c3",
+"bl c #b3bdd0",
+"bu c #b4bac6",
+"#v c #b5bcc7",
+"ah c #b6bac3",
+"#y c #b7c1d3",
+"a5 c #b9bfcb",
+"#V c #b9fcc4",
+".8 c #bbc4d5",
+"#B c #bcc1cc",
+".r c #c2c7d1",
+".X c #c3c9d5",
+".L c #c3cbd9",
+".# c #c4c7cd",
+"#W c #c4ffd7",
+"a4 c #c6c8cd",
+"au c #c8cdd5",
+".9 c #c8cfdd",
+"#6 c #cacdd3",
+".Y c #cad1de",
+".Z c #ccd3e0",
+".A c #d0d3d9",
+".M c #d0d6e2",
+".N c #d3d9e4",
+"#D c #d6d8de",
+".O c #d9dde5",
+"#. c #dadfe8",
+".P c #dde1ea",
+"#5 c #dfe2e7",
+".B c #e2e6ec",
+"#m c #e5e8ef",
+".Q c #e6eaf0",
+".C c #ebeef2",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQt.#.a.b.c.d.e.f.d.g.h.i.jQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQt.k.lQtQtQtQtQtQtQtQtQtQtQtQt.m.n.o.p.q.rQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQt.q.s.tQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.u.v.w.qQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.q.x.y.zQtQtQtQtQt.A.B.C.CQtQtQtQtQtQtQtQtQtQt.D.E.F.GQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.H.y.y.zQtQt.I.JQtQt.K.L.M.M.N.O.P.QQtQtQtQtQtQtQt.D.R.S.TQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.U.y.y.zQtQt.x.V.GQtQt.W.X.Y.Z.Z.Z.Z.M.O.BQtQtQtQtQtQt.0.1.sQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.V.y.y.zQtQt.x.y.2.3QtQt.4.5.6.7.8.9.Y.Z.Z.M#.QtQtQtQtQt###a.F.WQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.W.2.y.y.zQtQt.V.y.y#b#cQtQt#d#e.5#e#f#g.8.Y.Y.Z.M#.QtQtQtQtQt.E.x#hQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.4#i.y.y.zQtQt.V.y.y.y#b#jQt.a#k#e#e#e#e#e#l.L.Y.Y.Z.N#mQtQtQtQt#n.2.4QtQtQtQtQtQtQt",
+"QtQtQtQtQtQt#o.y.y.y.zQtQt.V.y.y.y.y.xQtQt#p#e#e#e#e#e#e.5#q.Y.Y.Z.M.PQtQtQtQt#a.2#rQtQtQtQtQtQt",
+"QtQtQtQtQtQt.F.y.y.y.zQtQt.V.y.y.y.y.y#rQtQt#k#e#e#e#e#e#e.5#g.Y.Y.Z.Z.OQtQtQt#s#t.2#uQtQtQtQtQt",
+"QtQtQtQtQt#v.x.y.y.y.zQtQt.V.y.y.y.y.y.yQtQt#w#e#e#e#e#e#e#e#e.7.Y.Y.Y.Z.OQtQtQt.d.1.2QtQtQtQtQt",
+"QtQtQtQtQt.q#b.y.y.y.zQtQt.V.y.y.y.y.y.y.TQt.J#x#e#e#e#e#e#e#e.5#y.Y.Y.Y.9QtQtQtQt.v.y.VQtQtQtQt",
+"QtQtQtQtQt.4#z.y.y.y#aQtQt#z.y.y.y.y.y.y#bQtQt#w#e#e#e#e#e#e#e#e#f.9.Y.Y.Y.XQtQtQtQt#t.y#AQtQtQt",
+"QtQtQt#B#A.x.y.y.y.y.y.TQtQt.v.1.y.y.y.y#CQtQt.q#e#e#e#e#e#e#e#e#e.7.Y.Y.Y.L#DQtQtQt#E.y.yQtQtQt",
+"QtQt.J#o.F#F#G#H#I.y.y.x#pQtQt.t.y.y.y.y.1#JQt#q#e#e#e#e#e#e#e#e#e#f.Y.Y.Y.Y#BQtQtQtQt.1.y#AQtQt",
+"QtQt.s#K#L#M#N#O#P#Q#i.y#b#RQtQt#a.y.y.y.1#SQt.O.7.5#e#e#e#e#e#e#e#e#y.Y.Y.Y.rQtQtQtQt.y.y.1QtQt",
+"Qt#h#T#U#V#W#X#Y#Z#0#1.y.y#2QtQt#3.1.y.y#4QtQt#5.Z.8#f#e#e#e#e#e#e#e.7.Y.Y.Y.L#6QtQtQt#7.y.1QtQt",
+"Qt#o#8#9a.a#aaabacadaeaf.y#CQtQtQt.1.y.1agQtQt.N.Z.Y.L#f#e#e#e#e#e#e#l.Y.Y.Y.9ahQtQtQt.W.y.1aiQt",
+"Qt.Vajakalamanaoapaqaras.y#CQtQtQtat.1.1.gQt#5au.Y.Y.Y.8.5#e#e#e#e#e#l.Y.Y.Y.YavQtQtQtQt#z.yawQt",
+"Qt#iaxayazaAaBaCaDaEaFaG.yaHQtQtQtQt#C.y#zQtQt.K.L.Y.Y.Y#g#e#e#e#e#e#g.Y.Y.Y.YaIQtQtQtQt#b.y.1Qt",
+"Qt#zaJaKaLaMaNaOaPaQaRaS.yaTQtQtQtQt.V.y.yaUQtQtav.Y.Y.Y.8.5#e#e#e#e#q.Y.Y.Y.YaIQtQtQtQt.2.y.EQt",
+"QtaVasaWaXaYaZa0a1a2a3.y.1.uQtQtQtQtat.y.y#bQtQta4a5.Y.Y.Y#f#e#e#e.5.L.Y.Y.Y.Y#jQtQtQtQt.x.y.EQt",
+"QtQt.ta6a7a8a9b.b#a3ba.ybbQtQtQtQtQtQt.y.y.y.VQtQtbc.X.Y.Ybd#e#e#e.6.Y.Y.Y.Y.Y.aQtQtQtQt.V.ybeQt",
+"QtQtQt.Rbfbga3bhbibj.1bkQtQtQtQtQtQtQt#b.y.y#z#AQtQtav.Y.Y#f#e#e#ebl.Y.Y.Y.Y.L.aQtQtQtQt.V.y.EQt",
+"QtQtQtQtbm#4#n#t#abkbnQtQtQtQtQtQtQtQt#b.y.y.y#zQtQt.#.X.9.5#e#e.6.Y.Y.Y.Y.Y#vQtQtQtQtQt.V.y.0Qt",
+"QtQtQtQtQtQtbobpbqQtQtQtQtQtQtQtQtQtQt.x.y#CbrbsQtQtQt.9bl#e#e#f.L.Y.Y.Y.Y.9#JQtQtQtQt#v.2.1.dQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.V.1btQtQtQtQt#m.Ybd#e#f.X.Y.Y.Y.Y.YbubvQtQtQtQt#u#b#C#JQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.x.1#SQtQt.B#..M#g#ebw.L.Y.Y.Y.Y.Y.XboQtQtQtQtQt.I.ybeQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtav.2.y#2QtQta5.Y.7.5#g.9.Y.Y.Y.Y.Y.9#JQtQtQtQtQtQt.U.ybtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#h#b#CbmQtQt.X#lbw.8.Y.Y.Y.Y.Y.Y.9.WQtQtQtQtQtQt.G#baHboQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.H.y#aQtQtQtbl#y.Y.Y.Y.Y.Y.Y.Y.9bxbvQtQtQtQtQtQtby.y#4QtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.S.y#CbzQtQt.Z.Y.Y.Y.Y.Y.Y.Y.L#sbAQtQtQtQtQtQt#p#b#a.bQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#h#b.yaTQtQt.Q.M.Y.Y.Y.Y.Y.Ya5bBQtQtQtQtQtQtQt#v.S.1bCQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbD.y.yaHQtQt.M.Z.Y.Y.Y.Y.L.lbEQtQtQtQtQtQtQtQt.H.ybbQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.G#b.y.y#CQtQt.Y.Y.Y.Y.L.abFQtQtQtQtQtQtQtQtQt#A#baTbGQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.K.F.y.y.yaHQtQt.M.9#B.lbHbIQtQtQtQtQtQtQtQtQt.G.2bebJQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQt.jbK#C#C#t#4bLQtQtbMbHbNQtQtQtQtQtQtQtQtQtQtQtbO.2bebJQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbPagbQQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.r#7#zbbagQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#RbD#CbRQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#B.3#bbbbSQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#BbO.V#4bsQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.Oav#A#2bbbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQt.ebTbU#vQtQtQtQtQtQtQtQtQtQtQtQtau.k#rbV.EbWbXQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtag.n.nbYbZb0at#rb1#cb2b3bKb4b5bsb6QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbBbHb7b7bpbGQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"};
diff --git a/community/teamspeak3/teamspeak3.desktop b/community/teamspeak3/teamspeak3.desktop
new file mode 100644
index 000000000..d3f9fac3f
--- /dev/null
+++ b/community/teamspeak3/teamspeak3.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=TeamSpeak 3
+GenericName=TeamSpeak
+Comment=TeamSpeak is software for quality voice communication via the Internet
+Exec=/usr/bin/teamspeak3
+Icon=/usr/share/pixmaps/teamspeak3.xpm
+StartupNotify=true
+Terminal=false
+Type=Application
+Categories=Network;Application
diff --git a/community/teamspeak3/teamspeak3.launcher b/community/teamspeak3/teamspeak3.launcher
new file mode 100644
index 000000000..6fcd46bb7
--- /dev/null
+++ b/community/teamspeak3/teamspeak3.launcher
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+cd "/opt/teamspeak3"
+./ts3client_runscript.sh $@
+exit $?
+
diff --git a/extra/calligra/PKGBUILD b/extra/calligra/PKGBUILD
index 2f1412f2c..7ee20c4bf 100644
--- a/extra/calligra/PKGBUILD
+++ b/extra/calligra/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 178338 2013-02-20 11:50:07Z andrea $
+# $Id: PKGBUILD 178833 2013-02-27 14:34:41Z andrea $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
@@ -18,14 +18,14 @@ pkgname=('calligra-filters'
'calligra-braindump'
'calligra-flow')
pkgver=2.6.1
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
url='http://www.calligra-suite.org/'
license=('FDL1.2' 'GPL2' 'LGPL')
makedepends=('cmake' 'automoc4' 'boost ' 'kdepimlibs' 'eigen2' 'kdeedu-marble'
'lcms2' 'libmysqlclient' 'freetds' 'xbase' 'libwpg' 'opencolorio'
'libwps' 'gsl' 'glew' 'fftw' 'opengtl' 'poppler-qt' 'libkdcraw'
- 'openjpeg' 'kdegraphics-okular' 'pstoedit' 'mesa')
+ 'openjpeg' 'kdegraphics-okular' 'pstoedit' 'mesa' 'vc')
groups=('calligra')
source=("http://download.kde.org/stable/${pkgbase}-${pkgver}/${pkgbase}-${pkgver}.tar.bz2")
md5sums=('8ba98f3ccb3c5097eb059d86b51f6139')
diff --git a/extra/gnutls/PKGBUILD b/extra/gnutls/PKGBUILD
index 9703e1d54..c3a4e00a2 100644
--- a/extra/gnutls/PKGBUILD
+++ b/extra/gnutls/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 177918 2013-02-10 18:54:41Z andyrtr $
+# $Id: PKGBUILD 178865 2013-02-27 20:55:22Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgname=gnutls
-pkgver=3.1.8
+pkgver=3.1.9
pkgrel=1
pkgdesc="A library which provides a secure layer over a reliable transport layer"
arch=('i686' 'x86_64')
@@ -14,8 +14,8 @@ options=('!libtool' '!zipman')
depends=('gcc-libs>=4.7.1-5' 'libtasn1>=3.0' 'readline' 'zlib' 'nettle>=2.4' 'p11-kit>=0.12')
makedepends=('valgrind' 'strace' 'datefudge')
source=(ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/${pkgname}-${pkgver}.tar.xz{,.sig})
-md5sums=('ffac9e22aba66057d5155ad0e3b62485'
- 'f3f0f2b81fa62bbe878a181d87a9cabd')
+md5sums=('0674032fe6de0d90d08eed81fcac2e1d'
+ '503f49f55459ef4229fa4f35841fde2f')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/extra/gnutls/gnutls.install b/extra/gnutls/gnutls.install
index 691f3c69d..48052cc02 100644
--- a/extra/gnutls/gnutls.install
+++ b/extra/gnutls/gnutls.install
@@ -1,5 +1,5 @@
infodir=usr/share/info
-filelist=(gnutls.info-1.gz gnutls.info-2.gz gnutls.info-3.gz gnutls.info-4.gz gnutls.info.gz gnutls-guile.info.gz)
+filelist=(gnutls.info-1.gz gnutls.info-2.gz gnutls.info-3.gz gnutls.info-4.gz gnutls.info-5.gz gnutls.info.gz gnutls-guile.info.gz)
post_install() {
[ -x usr/bin/install-info ] || return 0
diff --git a/extra/hylafax/PKGBUILD b/extra/hylafax/PKGBUILD
index 4a952f56c..43e9a1b9f 100644
--- a/extra/hylafax/PKGBUILD
+++ b/extra/hylafax/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 166869 2012-09-20 09:33:33Z tpowa $
+# $Id: PKGBUILD 178774 2013-02-27 13:50:36Z tpowa $
# Maintainer: Paul Mattal <paul@archlinux.org>
pkgname=hylafax
pkgver=6.0.6
-pkgrel=1
+pkgrel=2
pkgdesc="Fax Server"
arch=('i686' 'x86_64')
install='hylafax.install'
@@ -18,7 +18,8 @@ source=(ftp://ftp.hylafax.org/source/${pkgname}-${pkgver}.tar.gz
hylafax.cron.daily
config.local
faxq.service
- hfaxd.service)
+ hfaxd.service
+ faxgetty@.service)
build () {
cd "$srcdir/${pkgname}-${pkgver}"
@@ -42,7 +43,7 @@ package () {
# add systemd files
install -D -m644 $srcdir/hfaxd.service $pkgdir/usr/lib/systemd/system/hfaxd.service
install -D -m644 $srcdir/faxq.service $pkgdir/usr/lib/systemd/system/faxq.service
-
+ install -D -m644 $srcdir/faxgetty@.service $pkgdir/usr/lib/systemd/system/faxgetty@.service
install -D -m644 COPYRIGHT "$pkgdir"/usr/share/licenses/$pkgname/COPYRIGHT
}
md5sums=('d063d45049c8fcbabefe09d662313067'
@@ -51,3 +52,10 @@ md5sums=('d063d45049c8fcbabefe09d662313067'
'60f2a7e62c256ead4e9238cb31b35b90'
'832c8e8098e2dfa56040c975b554590c'
'38a00db6d9d765d130b2d8d3a98e5c24')
+md5sums=('d063d45049c8fcbabefe09d662313067'
+ '6602288a405324d8c8e3c5eac2bf19fd'
+ '52beffe7dc296b4f9ce9fd0387f7804e'
+ '60f2a7e62c256ead4e9238cb31b35b90'
+ '832c8e8098e2dfa56040c975b554590c'
+ '38a00db6d9d765d130b2d8d3a98e5c24'
+ 'fe10ea597e786fe8c09e4104fbdf16de')
diff --git a/extra/hylafax/faxgetty@.service b/extra/hylafax/faxgetty@.service
new file mode 100644
index 000000000..476715c19
--- /dev/null
+++ b/extra/hylafax/faxgetty@.service
@@ -0,0 +1,24 @@
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=faxgetty on %I
+Documentation=man:faxgetty(8)
+After=faxq.service hfaxd.service
+
+[Service]
+ExecStart=/usr/lib/fax/faxgetty %I
+Type=simple
+Restart=always
+RestartSec=0
+KillMode=process
+
+KillSignal=SIGTERM
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/extra/lftp/PKGBUILD b/extra/lftp/PKGBUILD
index 873ad157f..b66b9963a 100644
--- a/extra/lftp/PKGBUILD
+++ b/extra/lftp/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 177982 2013-02-12 19:24:37Z andyrtr $
+# $Id: PKGBUILD 178842 2013-02-27 16:20:48Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Aaron Griffin <aaron@archlinux.org>
pkgname=lftp
-pkgver=4.4.3
-pkgrel=2
+pkgver=4.4.4
+pkgrel=1
pkgdesc="Sophisticated command line based FTP client"
arch=('i686' 'x86_64')
license=('GPL3')
@@ -13,7 +13,7 @@ optdepends=('perl: needed for convert-netscape-cookies and verify-file')
url="http://lftp.yar.ru/"
backup=('etc/lftp.conf')
source=(http://ftp.yars.free.net/pub/source/lftp/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('b877c1f82b2d4dc503f40dcce4978ff4')
+md5sums=('f1fa7aec113219952d18e4dd87d531ca')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
diff --git a/extra/nss/PKGBUILD b/extra/nss/PKGBUILD
index d4540f420..88a5e11ea 100644
--- a/extra/nss/PKGBUILD
+++ b/extra/nss/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 178767 2013-02-26 20:04:18Z ioni $
+# $Id: PKGBUILD 178844 2013-02-27 16:21:24Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=nss
pkgver=3.14.3
-pkgrel=1
+pkgrel=2
pkgdesc="Mozilla Network Security Services"
arch=(i686 x86_64)
url="http://www.mozilla.org/projects/security/pki/nss/"
@@ -76,8 +76,8 @@ package() {
-e "s,%prefix%,/usr,g" \
-e "s,%exec_prefix%,/usr/bin,g" \
-e "s,%includedir%,/usr/include/nss,g" \
- -e "s,%NSPR_VERSION%,${_pkgver},g" \
- -e "s,%NSS_VERSION%,${_pkgver},g" > \
+ -e "s,%NSPR_VERSION%,${_nsprver},g" \
+ -e "s,%NSS_VERSION%,${pkgver},g" > \
"${pkgdir}/usr/lib/pkgconfig/nss.pc"
ln -sf nss.pc "${pkgdir}/usr/lib/pkgconfig/mozilla-nss.pc"
chmod 644 ${pkgdir}/usr/lib/pkgconfig/*.pc
diff --git a/extra/watchdog/PKGBUILD b/extra/watchdog/PKGBUILD
index f1c3d4986..df19144f9 100644
--- a/extra/watchdog/PKGBUILD
+++ b/extra/watchdog/PKGBUILD
@@ -1,25 +1,19 @@
-# $Id: PKGBUILD 165803 2012-08-30 17:35:28Z thomas $
+# $Id: PKGBUILD 178840 2013-02-27 15:05:46Z thomas $
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=watchdog
-pkgver=5.12
-pkgrel=2
+pkgver=5.13
+pkgrel=1
pkgdesc="Watchdog daemon"
arch=(i686 x86_64)
url="http://sourceforge.net/projects/watchdog"
license=('GPL')
depends=('glibc')
-backup=(etc/watchdog.conf
- etc/conf.d/watchdog
- etc/conf.d/wd_keepalive)
+backup=(etc/watchdog.conf)
source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz
- watchdog.sh
- watchdog.cf
watchdog-5.12-fix-oom-in-wd_keepalive.patch
watchdog.systemd)
-md5sums=('cea28bea70e54f3625062bc808aef9af'
- 'f57d33967eb9404dd52e3c4e73795a20'
- '01c1e2e13f515131180b4ebe9b8b7cc3'
+md5sums=('153455f008f1cf8f65f6ad9586a21ff1'
'c90c2686975b5254f82b3de683f1f442'
'a835ae5cbdbb21c19a468dedb5d734e4')
@@ -41,13 +35,5 @@ build() {
package() {
cd "${srcdir}"/${pkgname}-${pkgver}
make install DESTDIR="${pkgdir}"
- for fil in watchdog wd_keepalive ; do
- install -D -m755 "${srcdir}"/watchdog.sh "${pkgdir}"/etc/rc.d/${fil}
- install -D -m644 "${srcdir}"/watchdog.cf "${pkgdir}"/etc/conf.d/${fil}
- done
install -D -m644 "${srcdir}"/watchdog.systemd "${pkgdir}"/usr/lib/systemd/system/watchdog.service
-
- sed -i 's/watchdog/wd_keepalive/g' "${pkgdir}"/etc/rc.d/wd_keepalive
- sed -i 's/watchdog/wd_keepalive/g' "${pkgdir}"/etc/conf.d/wd_keepalive
- sed -i 's/Watchdog/Simple Watchdog/' "${pkgdir}"/etc/rc.d/wd_keepalive
}
diff --git a/extra/watchdog/watchdog.cf b/extra/watchdog/watchdog.cf
deleted file mode 100644
index a33e1ea91..000000000
--- a/extra/watchdog/watchdog.cf
+++ /dev/null
@@ -1,2 +0,0 @@
-# watchdog configuration
-WATCHDOG_OPTIONS=""
diff --git a/extra/watchdog/watchdog.sh b/extra/watchdog/watchdog.sh
deleted file mode 100644
index 54f78454f..000000000
--- a/extra/watchdog/watchdog.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-PID="$( cat /run/watchdog.pid 2>/dev/null )"
-[ -r /etc/conf.d/watchdog ] && source /etc/conf.d/watchdog
-
-case "$1" in
- start)
- stat_busy "Starting Watchdog Daemon"
-
- [ -z "$PID" ] && /usr/sbin/watchdog ${WATCHDOG_OPTIONS}
-
- if [ $? -gt 0 ]; then
- stat_fail
- else
- add_daemon watchdog
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping Watchdog Daemon"
-
- [ -n "$PID" ] && kill $PID &> /dev/null
-
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon watchdog
- stat_done
- fi
-
- rm -f /run/watchdog.pid
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
-exit 0
diff --git a/extra/xterm/PKGBUILD b/extra/xterm/PKGBUILD
index e1befcbb9..aac5cd08e 100644
--- a/extra/xterm/PKGBUILD
+++ b/extra/xterm/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 178168 2013-02-17 17:21:11Z andyrtr $
+# $Id: PKGBUILD 178846 2013-02-27 16:25:21Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
pkgname=xterm
-pkgver=290
+pkgver=291
pkgrel=1
pkgdesc="X Terminal Emulator"
arch=('i686' 'x86_64')
@@ -12,7 +12,7 @@ license=('custom')
depends=('libxft' 'libxaw' 'ncurses' 'xorg-luit' 'xbitmaps' 'libutempter')
source=(ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver}.tgz
LICENSE)
-md5sums=('92ce4a161dc4a16daa987e5a6511da61'
+md5sums=('9925cd564c84746442e640f0e32f0493'
'10ecc3f8ee91e3189863a172f68282d2')
build() {
diff --git a/social/ruby-headers/PKGBUILD b/social/ruby-headers/PKGBUILD
index f621772e9..d68e97781 100644
--- a/social/ruby-headers/PKGBUILD
+++ b/social/ruby-headers/PKGBUILD
@@ -3,8 +3,8 @@
pkgname=ruby-headers
_pkgname=ruby
-pkgver=1.9.3_p194
-_pkgver=1.9.3-p194
+pkgver=1.9.3_p392
+_pkgver=1.9.3-p392
pkgrel=1
pkgdesc="A package of all Ruby headers needed by some gems like ruby-debug."
arch=('any')
@@ -14,7 +14,7 @@ depends=("ruby=$pkgver")
source=("http://ftp.ruby-lang.org/pub/ruby/1.9/$_pkgname-$_pkgver.tar.bz2")
build() {
- /bin/true
+ :
}
package() {
@@ -28,4 +28,4 @@ package() {
install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-md5sums=('2278eff4cfed3cbc0653bc73085caa34')
+md5sums=('a810d64e2255179d2f334eb61fb8519c')