From e68f87191d2765c3686883b4763ba811e6826ec8 Mon Sep 17 00:00:00 2001 From: James Meyer Date: Tue, 7 Aug 2012 14:55:12 -0500 Subject: libffado 2.0.1 --- abs/extra/libffado/60-ffado.rules | 27 +++++++++++ abs/extra/libffado/PKGBUILD | 35 +++++++++----- abs/extra/libffado/fix-segfault-on-close.patch | 64 ++++++++++++++++++++++++++ abs/extra/libffado/libffado-gcc47.patch | 55 ++++++++++++++++++++++ 4 files changed, 170 insertions(+), 11 deletions(-) create mode 100644 abs/extra/libffado/60-ffado.rules create mode 100644 abs/extra/libffado/fix-segfault-on-close.patch create mode 100644 abs/extra/libffado/libffado-gcc47.patch diff --git a/abs/extra/libffado/60-ffado.rules b/abs/extra/libffado/60-ffado.rules new file mode 100644 index 0000000..6ab8ef8 --- /dev/null +++ b/abs/extra/libffado/60-ffado.rules @@ -0,0 +1,27 @@ +SUBSYSTEM!="firewire", GOTO="ffado_end" + +ATTR{vendor}=="0x000166", GROUP="audio", ENV{ID_FFADO}="1" # TC GROUP A/S +ATTR{vendor}=="0x0001f2", GROUP="audio", ENV{ID_FFADO}="1" # Mark of the Unicorn, Inc. +ATTR{vendor}=="0x0003db", GROUP="audio", ENV{ID_FFADO}="1" # Apogee Electronics Corp. +ATTR{vendor}=="0x000595", GROUP="audio", ENV{ID_FFADO}="1" # Alesis Corporation +ATTR{vendor}=="0x0007f5", GROUP="audio", ENV{ID_FFADO}="1" # Bridgeco Co AG +ATTR{vendor}=="0x000a92", GROUP="audio", ENV{ID_FFADO}="1" # Presonus Corporation +ATTR{vendor}=="0x000aac", GROUP="audio", ENV{ID_FFADO}="1" # TerraTec Electronic GmbH +ATTR{vendor}=="0x000d6c", GROUP="audio", ENV{ID_FFADO}="1" # M-Audio +ATTR{vendor}=="0x000f1b", GROUP="audio", ENV{ID_FFADO}="1" # Ego Systems Inc. +ATTR{vendor}=="0x000ff2", GROUP="audio", ENV{ID_FFADO}="1" # Loud Technologies Inc. +ATTR{vendor}=="0x001260", GROUP="audio", ENV{ID_FFADO}="1" # Stanton Magnetics,inc. +ATTR{vendor}=="0x00130e", GROUP="audio", ENV{ID_FFADO}="1" # Focusrite Audio Engineering Limited +ATTR{vendor}=="0x001486", GROUP="audio", ENV{ID_FFADO}="1" # Echo Digital Audio Corporation +ATTR{vendor}=="0x001564", GROUP="audio", ENV{ID_FFADO}="1" # BEHRINGER Spezielle Studiotechnik GmbH +ATTR{vendor}=="0x001c2d", GROUP="audio", ENV{ID_FFADO}="1" # FlexRadio Systems +ATTR{vendor}=="0x001c6a", GROUP="audio", ENV{ID_FFADO}="1" # Weiss Engineering Ltd. +ATTR{vendor}=="0x0040ab", GROUP="audio", ENV{ID_FFADO}="1" # ROLAND DG CORPORATION + +# The devices below abuse another Vendor's ID, and therefore we need more advanced rules for those. + +ATTR{vendor}=="0x00000a", ATTR{model}=="0x030000", ATTR{units}=="*0x00a02d:0x010001*", GROUP="audio", ENV{ID_FFADO}="1" # CME, Matrix K FW +ATTR{vendor}=="0x00000f", ATTR{model}=="0x01006?", ATTR{units}=="*0x00a02d:0x010001*", GROUP="audio", ENV{ID_FFADO}="1" # Mackie, Onyx Firewire +ATTR{vendor}=="0x000a35", ATTR{units}=="0x000a35:0x00000[12]", GROUP="audio", ENV{ID_FFADO}="1" # RME + +LABEL="ffado_end" diff --git a/abs/extra/libffado/PKGBUILD b/abs/extra/libffado/PKGBUILD index 4111264..772ebec 100644 --- a/abs/extra/libffado/PKGBUILD +++ b/abs/extra/libffado/PKGBUILD @@ -1,26 +1,34 @@ -# $Id: PKGBUILD 96817 2010-10-24 22:17:33Z schiv $ -# Maintainer: Ray Rashif +# $Id: PKGBUILD 157813 2012-04-30 03:19:10Z heftig $ +# Maintainer: Ray Rashif # Contributor: galiyosha@gmail.com # Contributor: Jon Kristian Nilsen pkgname=libffado pkgver=2.0.1 -pkgrel=2 +pkgrel=7 pkgdesc="Driver for FireWire audio devices" arch=('i686' 'x86_64') url="http://www.ffado.org/" license=('GPL') depends=('libiec61883' 'libavc1394' 'libsigc++' - 'libxml++' 'alsa-lib' 'dbus') -makedepends=('scons' 'pyqt') -optdepends=('pyqt: mixer applet') + 'libxml++' 'alsa-lib' 'dbus') +makedepends=('scons' 'python2-pyqt') +optdepends=('python2: ffado-diag' + 'python2-pyqt: mixer applet') provides=('ffado') -source=(http://www.ffado.org/files/$pkgname-$pkgver.tar.gz) -md5sums=('786f31facd417e6207e429f50af0e15e') +source=("http://www.ffado.org/files/$pkgname-$pkgver.tar.gz" + "libffado-gcc47.patch" "fix-segfault-on-close.patch" '60-ffado.rules') +md5sums=('786f31facd417e6207e429f50af0e15e' + '287bb3f506e31626c4b8f91f0e1d9407' + 'ac9763cb2dc2f3eb4e1894e30645c6f1' + 'f03a3e950801c4405b8934084651bca8') build() { cd "$srcdir/$pkgname-$pkgver" + patch -p1 -i "$srcdir"/libffado-gcc47.patch + patch -p3 -i "$srcdir"/fix-segfault-on-close.patch + # hack to use CFLAGS without optimising sed -i 's/-O2//g' SConstruct @@ -35,13 +43,18 @@ build() { sed -i 's:python support/tools:python2 support/tools:' \ support/tools/SConscript - scons PREFIX=/usr #ENABLE_OPTIMIZATIONS=True + scons PREFIX=/usr } package() { cd "$srcdir/$pkgname-$pkgver" - scons DESTDIR="$pkgdir/" WILL_DEAL_WITH_XDG_MYSELF="True" install + scons DESTDIR="$pkgdir" WILL_DEAL_WITH_XDG_MYSELF="True" install + + # add audio device rules + # see https://bugs.archlinux.org/task/26342 + install -Dm644 "$srcdir/60-ffado.rules" \ + "$pkgdir/usr/lib/udev/rules.d/60-ffado.rules" # python2 fix for i in $(grep '^#!.*bin.*python' -R "$pkgdir" | sed 's/:.*//'); do @@ -53,7 +66,7 @@ package() { "$pkgdir/usr/share/applications/ffadomixer.desktop" install -Dm644 support/xdg/hi64-apps-ffado.png \ - "$pkgdir/usr/share/pixmaps/$pkgname.png" + "$pkgdir/usr/share/pixmaps/$pkgname.png" } # vim:set ts=2 sw=2 et: diff --git a/abs/extra/libffado/fix-segfault-on-close.patch b/abs/extra/libffado/fix-segfault-on-close.patch new file mode 100644 index 0000000..c81b97e --- /dev/null +++ b/abs/extra/libffado/fix-segfault-on-close.patch @@ -0,0 +1,64 @@ +Index: /trunk/libffado/src/debugmodule/debugmodule.h +=================================================================== +--- /trunk/libffado/src/debugmodule/debugmodule.h (revision 1763) ++++ /trunk/libffado/src/debugmodule/debugmodule.h (revision 1999) +@@ -283,6 +283,10 @@ + void hexDumpQuadlets( quadlet_t *data_start, unsigned int length ); + ++class DebugModuleManager; ++ + class DebugModule { + public: ++ friend class DebugModuleManager; ++ + enum { + eDL_Message = DEBUG_LEVEL_MESSAGE, +@@ -333,4 +337,5 @@ + std::string m_name; + debug_level_t m_level; ++ DebugModuleManager* m_manager; + }; + +Index: /trunk/libffado/src/debugmodule/debugmodule.cpp +=================================================================== +--- /trunk/libffado/src/debugmodule/debugmodule.cpp (revision 1763) ++++ /trunk/libffado/src/debugmodule/debugmodule.cpp (revision 1999) +@@ -84,5 +84,6 @@ + // << endl; + // } +- if ( !DebugModuleManager::instance()->unregisterModule( *this ) ) { ++ ++ if (m_manager && !m_manager->unregisterModule( *this ) ) { + cerr << "Could not unregister DebugModule at DebugModuleManager" + << endl; +@@ -263,12 +264,9 @@ + DebugModuleManager::~DebugModuleManager() + { +- // cleanin up leftover modules +- for ( DebugModuleVectorIterator it = m_debugModules.begin(); +- it != m_debugModules.end(); +- ++it ) ++ // cleaning up leftover modules ++ while (!m_debugModules.empty()) + { +- fprintf(stderr,"Cleaning up leftover debug module: %s\n",(*it)->getName().c_str()); +- m_debugModules.erase( it ); +- delete *it; ++ DebugModule *mod = m_debugModules.back(); ++ unregisterModule(*mod); + } + +@@ -455,4 +453,6 @@ + } else { + m_debugModules.push_back( &debugModule ); ++ if (debugModule.m_manager == NULL) ++ debugModule.m_manager = this; + } + return true; +@@ -469,4 +469,6 @@ + if ( *it == &debugModule ) { + m_debugModules.erase( it ); ++ if (debugModule.m_manager == this) ++ debugModule.m_manager = NULL; + return true; + } diff --git a/abs/extra/libffado/libffado-gcc47.patch b/abs/extra/libffado/libffado-gcc47.patch new file mode 100644 index 0000000..f296956 --- /dev/null +++ b/abs/extra/libffado/libffado-gcc47.patch @@ -0,0 +1,55 @@ +diff -Naur libffado-2.0.1-old/src/bebob/bebob_dl_mgr.cpp libffado-2.0.1/src/bebob/bebob_dl_mgr.cpp +--- libffado-2.0.1-old/src/bebob/bebob_dl_mgr.cpp 2009-05-17 23:42:38.000000000 +1000 ++++ libffado-2.0.1/src/bebob/bebob_dl_mgr.cpp 2012-04-29 15:26:29.011454798 +1000 +@@ -35,6 +35,7 @@ + + #include + #include ++#include + + namespace BeBoB { + enum { +diff -Naur libffado-2.0.1-old/src/ffadodevice.cpp libffado-2.0.1/src/ffadodevice.cpp +--- libffado-2.0.1-old/src/ffadodevice.cpp 2008-11-23 21:25:32.000000000 +1000 ++++ libffado-2.0.1/src/ffadodevice.cpp 2012-04-29 15:26:54.883998052 +1000 +@@ -34,6 +34,7 @@ + + #include + #include ++#include + + #include + +diff -Naur libffado-2.0.1-old/src/fireworks/fireworks_device.cpp libffado-2.0.1/src/fireworks/fireworks_device.cpp +--- libffado-2.0.1-old/src/fireworks/fireworks_device.cpp 2009-11-23 00:40:08.000000000 +1000 ++++ libffado-2.0.1/src/fireworks/fireworks_device.cpp 2012-04-29 15:27:24.123105334 +1000 +@@ -44,6 +44,7 @@ + #define FIREWORKS_MIN_FIRMWARE_VERSION 0x04080000 + + #include ++#include + using namespace std; + + // FireWorks is the platform used and developed by ECHO AUDIO +diff -Naur libffado-2.0.1-old/src/libieee1394/IsoHandlerManager.cpp libffado-2.0.1/src/libieee1394/IsoHandlerManager.cpp +--- libffado-2.0.1-old/src/libieee1394/IsoHandlerManager.cpp 2010-04-18 05:15:54.000000000 +1000 ++++ libffado-2.0.1/src/libieee1394/IsoHandlerManager.cpp 2012-04-29 15:27:44.515816147 +1000 +@@ -34,6 +34,7 @@ + #include "libutil/Configuration.h" + + #include ++#include + #include + + IMPL_DEBUG_MODULE( IsoHandlerManager, IsoHandlerManager, DEBUG_LEVEL_NORMAL ); +diff -Naur libffado-2.0.1-old/support/dbus/test-dbus.cpp libffado-2.0.1/support/dbus/test-dbus.cpp +--- libffado-2.0.1-old/support/dbus/test-dbus.cpp 2008-04-27 03:30:41.000000000 +1000 ++++ libffado-2.0.1/support/dbus/test-dbus.cpp 2012-04-29 15:28:31.531047923 +1000 +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + + #include "controlclient.h" -- cgit v0.12