diff --git a/.cvsignore b/.cvsignore index e69de29..140e0e5 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +libffado-2.0.1-svn1864.tar.bz2 diff --git a/README.ffado b/README.ffado new file mode 100644 index 0000000..109f54d --- /dev/null +++ b/README.ffado @@ -0,0 +1,8 @@ +ffado-bridgeco-downloader -- Firmware downloader application for BridgeCo devices +ffado-diag -- FFADO diagnostic utility +ffado-dbus-server -- Expose the mixer features of connected FFADO devices through DBus +ffado-fireworks-downloader -- Firmware downloader application for ECHO Fireworks devices +ffado-mixer -- Qt based FFADO device mixer + +FFADO is work in progress, hence there are no useful manpages. +Please refer to http://www.ffado.org/ for more information. diff --git a/import.log b/import.log new file mode 100644 index 0000000..d9f2996 --- /dev/null +++ b/import.log @@ -0,0 +1 @@ +libffado-2_0_1-3_20100706_svn1864_fc13:HEAD:libffado-2.0.1-3.20100706.svn1864.fc13.src.rpm:1279487332 diff --git a/libffado-api-doc-only.patch b/libffado-api-doc-only.patch new file mode 100644 index 0000000..0c2564a --- /dev/null +++ b/libffado-api-doc-only.patch @@ -0,0 +1,26 @@ +diff -rupN libffado.old/doc/reference.doxygen.in libffado/doc/reference.doxygen.in +--- libffado.old/doc/reference.doxygen.in 2009-12-18 13:52:13.000000000 -0500 ++++ libffado/doc/reference.doxygen.in 2010-06-05 21:00:54.000000000 -0400 +@@ -568,9 +568,7 @@ WARN_LOGFILE = + # directories like "/usr/src/myproject". Separate the files or directories + # with spaces. + +-INPUT = $top_srcdir/src \ +- $top_srcdir/doc \ +- $top_srcdir/libffado ++INPUT = $top_srcdir/libffado + + # This tag can be used to specify the character encoding of the source files + # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +diff -rupN libffado.old/SConstruct libffado/SConstruct +--- libffado.old/SConstruct 2010-05-10 15:34:07.000000000 -0400 ++++ libffado/SConstruct 2010-06-05 21:29:43.000000000 -0400 +@@ -583,7 +583,7 @@ if not env.GetOption('clean'): + Default( 'support' ) + if env['BUILD_TESTS']: + Default( 'tests' ) +- ++ Default( 'doc' ) + # + # Deal with the DESTDIR vs. xdg-tools conflict (which is basicely that the + # xdg-tools can't deal with DESTDIR, so the packagers have to deal with this diff --git a/libffado-desktop.patch b/libffado-desktop.patch new file mode 100644 index 0000000..058dc52 --- /dev/null +++ b/libffado-desktop.patch @@ -0,0 +1,17 @@ +diff -rupN libffado.old/support/xdg/ffado.org-ffadomixer.desktop libffado/support/xdg/ffado.org-ffadomixer.desktop +--- libffado.old/support/xdg/ffado.org-ffadomixer.desktop 2008-11-16 18:30:46.000000000 -0500 ++++ libffado/support/xdg/ffado.org-ffadomixer.desktop 2010-07-14 15:42:28.000000000 -0400 +@@ -1,9 +1,8 @@ + [Desktop Entry] +-Comment= ++Name=FFADO Mixer ++Comment=Audio mixer for Firewire devices + Exec=ffado-mixer +-GenericName= ++GenericName=Firewire audio mixer + Icon=ffado +-Name=ffado-mixer +-Path= + Type=Application +-Categories=Mixer;Audio;AudioVideo;HardwareSettings;Qt ++Categories=Mixer;Audio;AudioVideo;HardwareSettings;Qt; diff --git a/libffado-dont-use-bundled-libs.patch b/libffado-dont-use-bundled-libs.patch new file mode 100644 index 0000000..9d79ca4 --- /dev/null +++ b/libffado-dont-use-bundled-libs.patch @@ -0,0 +1,1148 @@ +diff -rupN libffado.old/admin/dbus.py libffado/admin/dbus.py +--- libffado.old/admin/dbus.py 2008-01-20 05:29:17.000000000 -0500 ++++ libffado/admin/dbus.py 2010-07-13 23:47:14.000000000 -0400 +@@ -27,15 +27,15 @@ + # + + def dbusxx_xml2cpp_emitter(target, source, env): +- env.Depends(target, "#/external/dbus/dbusxx-xml2cpp" ) ++ #env.Depends(target, "#/external/dbus/dbusxx-xml2cpp" ) + return (target, source) + + def dbusxx_xml2cpp_adaptor_action( target, source, env ): +- env.Execute( "./external/dbus/dbusxx-xml2cpp %s --adaptor=%s" % ( source[0], target[0] ) ) ++ env.Execute( "dbusxx-xml2cpp %s --adaptor=%s" % ( source[0], target[0] ) ) + return 0 + + def dbusxx_xml2cpp_proxy_action( target, source, env ): +- env.Execute( "./external/dbus/dbusxx-xml2cpp %s --proxy=%s" % ( source[0], target[0] ) ) ++ env.Execute( "dbusxx-xml2cpp %s --proxy=%s" % ( source[0], target[0] ) ) + return 0 + + def generate( env, **kw ): +diff -rupN libffado.old/README libffado/README +--- libffado.old/README 2009-08-16 08:37:38.000000000 -0400 ++++ libffado/README 2010-07-13 23:47:14.000000000 -0400 +@@ -97,7 +97,8 @@ These libraries here should be at least + libraw1394 (>= 1.3.0), http://www.linux1394.org + libiec61883 (>= 1.1.0), http://www.linux1394.org + dbus-1 (>= 1.0), http://dbus.freedesktop.org +- ++dbus-c++ (>= 0), http://sourceforge.net/apps/mediawiki/dbus-cplusplus/ ++libconfig (>= 0), http://www.hyperrealm.com/libconfig/ + Currently only the jackd audio server is supported. + + jackd (>= 0.109.12), http://jackaudio.org +diff -rupN libffado.old/SConstruct libffado/SConstruct +--- libffado.old/SConstruct 2010-06-13 10:34:09.000000000 -0400 ++++ libffado/SConstruct 2010-07-13 23:48:12.000000000 -0400 +@@ -198,13 +198,15 @@ if not env.GetOption('clean'): + # The following checks are for headers and libs and packages we need. + # + allpresent = 1; +- # for DBUS C++ bindings and cache-serialization. +- allpresent &= conf.CheckHeader( "expat.h" ) +- allpresent &= conf.CheckLib( 'expat', 'XML_ExpatVersion', '#include ' ) ++ # for cache-serialization. ++ if env['SERIALIZE_USE_EXPAT']: ++ allpresent &= conf.CheckHeader( "expat.h" ) ++ allpresent &= conf.CheckLib( 'expat', 'XML_ExpatVersion', '#include ' ) + + pkgs = { + 'libraw1394' : '1.3.0', + 'libiec61883' : '1.1.0', ++ 'libconfig++' : '0' + } + + if env['REQUIRE_LIBAVC']: +@@ -287,25 +289,43 @@ Therefor the qt4 mixer will not get inst + pkgs = { + 'alsa': '0', + 'dbus-1': '1.0', ++ 'dbus-c++-1' : '0', + } + for pkg in pkgs: + name2 = pkg.replace("+","").replace(".","").replace("-","").upper() + env['%s_FLAGS' % name2] = conf.GetPKGFlags( pkg, pkgs[pkg] ) + +-# +-# Get the directory where dbus stores the service-files +-# +-if env['DBUS1_FLAGS']: ++dbus_checkfail = False ++ ++if not env['DBUS1_FLAGS']: ++ dbus_checkfail = True ++ print """ ++The dbus headers were not found.""" ++ ++if not env['DBUSC1_FLAGS']: ++ dbus_checkfail = True ++ print """ ++The dbus-c++ headers were not found.""" ++ ++if not conf.CheckForApp( 'which dbusxx-xml2cpp' ): ++ dbus_checkfail = True ++ print """ ++The program dbusxx-xml2cpp could not be found.""" ++ ++if dbus_checkfail: ++ env['DBUS1_FLAGS'] = "" ++ env['DBUSC1_FLAGS'] = "" ++ print """The dbus-server for ffado will therefore not be built. ++""" ++else: ++ # Get the directory where dbus stores the service-files + env['dbus_service_dir'] = conf.GetPKGVariable( 'dbus-1', 'session_bus_services_dir' ).strip() + # this is required to indicate that the DBUS version we use has support + # for platform dependent threading init functions + # this is true for DBUS >= 0.96 or so. Since we require >= 1.0 it is + # always true + env.MergeFlags( "-DDBUS_HAS_THREADS_INIT_DEFAULT" ) +-else: +- print """ +-The dbus-headers where not found. The dbus-server for ffado will therefor not be built. +-""" ++ + + config_guess = conf.ConfigGuess() + +@@ -550,7 +570,7 @@ env.Install( env['libdir'] + '/pkgconfig + + env.Install( env['sharedir'], 'configuration' ) + +-subdirs=['external','src','libffado','support','doc'] ++subdirs=['src','libffado','support','doc'] + if env['BUILD_TESTS']: + subdirs.append('tests') + +diff -rupN libffado.old/src/libutil/Configuration.h libffado/src/libutil/Configuration.h +--- libffado.old/src/libutil/Configuration.h 2009-04-25 13:14:57.000000000 -0400 ++++ libffado/src/libutil/Configuration.h 2010-07-13 23:47:14.000000000 -0400 +@@ -25,7 +25,7 @@ + #define _FFADO_UTIL_CONFIGURATION_ + + #include "debugmodule/debugmodule.h" +-#include "external/libconfig/libconfigpp.h" ++#include "libconfig.h++" + + #include + +diff -rupN libffado.old/src/SConscript libffado/src/SConscript +--- libffado.old/src/SConscript 2010-01-04 11:09:43.000000000 -0500 ++++ libffado/src/SConscript 2010-07-13 23:47:14.000000000 -0400 +@@ -272,6 +272,7 @@ if not env.GetOption( "clean" ): + libenv.MergeFlags( "-lrt -lpthread" ) + libenv.MergeFlags( env['LIBRAW1394_FLAGS'] ) + libenv.MergeFlags( env['LIBIEC61883_FLAGS'] ) ++ libenv.MergeFlags( env['LIBCONFIG_FLAGS'] ) + if not env['SERIALIZE_USE_EXPAT']: + libenv.MergeFlags( env['LIBXML26_FLAGS'] ) + else: +@@ -279,11 +280,6 @@ if not env.GetOption( "clean" ): + if env['REQUIRE_LIBAVC']: + libenv.MergeFlags( env['LIBAVC1394_FLAGS'] ) + +-# add the libconfig +-libenv.MergeFlags( "-I#/external/libconfig" ) +-libenv.MergeFlags( "-L"+env['build_base']+"external/libconfig" ) +-libenv.MergeFlags( "-lconfigpp" ) +- + libname_versioned = "libffado.so.%s" % libenv['VERSION'] + libname_versioned_short = "libffado.so.%s" % libenv['VERSION'].split('.')[0] + +diff -rupN libffado.old/support/dbus/controlclient.h libffado/support/dbus/controlclient.h +--- libffado.old/support/dbus/controlclient.h 2008-04-26 13:30:41.000000000 -0400 ++++ libffado/support/dbus/controlclient.h 2010-07-13 23:47:14.000000000 -0400 +@@ -34,7 +34,7 @@ namespace DBusControl { + + // simple fader element + class ContinuousClient +-: public org::ffado::Control::Element::Continuous, ++: public org::ffado::Control::Element::Continuous_proxy, + public DBus::IntrospectableProxy, + public DBus::ObjectProxy + { +diff -rupN libffado.old/support/dbus/controlserver.cpp libffado/support/dbus/controlserver.cpp +--- libffado.old/support/dbus/controlserver.cpp 2010-01-04 16:10:45.000000000 -0500 ++++ libffado/support/dbus/controlserver.cpp 2010-07-13 23:47:14.000000000 -0400 +@@ -52,19 +52,19 @@ Element::Element( DBus::Connection& conn + setVerboseLevel(m_Slave.getVerboseLevel()); + } + +-void Element::setVerboseLevel( const DBus::Int32 &i) ++void Element::setVerboseLevel( const int32_t &i) + { + setDebugLevel(i); + m_Slave.setVerboseLevel(i); + if(m_UpdateLock) m_UpdateLock->setVerboseLevel(i); + } + +-DBus::Int32 Element::getVerboseLevel() ++int32_t Element::getVerboseLevel() + { + return getDebugLevel(); + } + +-DBus::Bool ++bool + Element::canChangeValue() + { + return m_Slave.canChangeValue(); +@@ -110,28 +110,28 @@ Element::getLock() + } + } + +-DBus::UInt64 ++uint64_t + Element::getId( ) + { + return m_Slave.getId(); + } + +-DBus::String ++std::string + Element::getName( ) + { +- return DBus::String(m_Slave.getName()); ++ return std::string(m_Slave.getName()); + } + +-DBus::String ++std::string + Element::getLabel( ) + { +- return DBus::String(m_Slave.getLabel()); ++ return std::string(m_Slave.getLabel()); + } + +-DBus::String ++std::string + Element::getDescription( ) + { +- return DBus::String(m_Slave.getDescription()); ++ return std::string(m_Slave.getDescription()); + } + + // --- Container +@@ -183,7 +183,7 @@ Container::~Container() { + } + + void +-Container::setVerboseLevel( const DBus::Int32 & i) ++Container::setVerboseLevel( const int32_t & i) + { + Element::setVerboseLevel(i); + for ( ElementVectorIterator it = m_Children.begin(); +@@ -194,13 +194,13 @@ Container::setVerboseLevel( const DBus:: + } + } + +-DBus::Int32 ++int32_t + Container::getNbElements( ) { + return m_Slave.countElements(); + } + +-DBus::String +-Container::getElementName( const DBus::Int32& i ) { ++std::string ++Container::getElementName( const int32_t& i ) { + int nbElements=m_Slave.countElements(); + if (i %lf\n", idx, val ); + return val; + } + +-DBus::Double ++double + Continuous::getMinimum() + { + double val = m_Slave.getMinimum(); +@@ -511,7 +511,7 @@ Continuous::getMinimum() + return val; + } + +-DBus::Double ++double + Continuous::getMaximum() + { + double val = m_Slave.getMaximum(); +@@ -529,8 +529,8 @@ Discrete::Discrete( DBus::Connection& co + path().c_str() ); + } + +-DBus::Int32 +-Discrete::setValue( const DBus::Int32& value ) ++int32_t ++Discrete::setValue( const int32_t& value ) + { + m_Slave.setValue(value); + +@@ -541,7 +541,7 @@ Discrete::setValue( const DBus::Int32& v + return value; + } + +-DBus::Int32 ++int32_t + Discrete::getValue() + { + int32_t val = m_Slave.getValue(); +@@ -549,8 +549,8 @@ Discrete::getValue() + return val; + } + +-DBus::Int32 +-Discrete::setValueIdx( const DBus::Int32& idx, const DBus::Int32& value ) ++int32_t ++Discrete::setValueIdx( const int32_t& idx, const int32_t& value ) + { + m_Slave.setValue(idx, value); + +@@ -561,8 +561,8 @@ Discrete::setValueIdx( const DBus::Int32 + return value; + } + +-DBus::Int32 +-Discrete::getValueIdx( const DBus::Int32& idx ) ++int32_t ++Discrete::getValueIdx( const int32_t& idx ) + { + int32_t val = m_Slave.getValue(idx); + debugOutput( DEBUG_LEVEL_VERBOSE, "getValue(%d) => %d\n", idx, val ); +@@ -579,8 +579,8 @@ Text::Text( DBus::Connection& connection + path().c_str() ); + } + +-DBus::String +-Text::setValue( const DBus::String& value ) ++std::string ++Text::setValue( const std::string& value ) + { + m_Slave.setValue(value); + +@@ -591,7 +591,7 @@ Text::setValue( const DBus::String& valu + return value; + } + +-DBus::String ++std::string + Text::getValue() + { + std::string val = m_Slave.getValue(); +@@ -609,8 +609,8 @@ Register::Register( DBus::Connection& co + path().c_str() ); + } + +-DBus::UInt64 +-Register::setValue( const DBus::UInt64& addr, const DBus::UInt64& value ) ++uint64_t ++Register::setValue( const uint64_t& addr, const uint64_t& value ) + { + m_Slave.setValue(addr, value); + +@@ -621,10 +621,10 @@ Register::setValue( const DBus::UInt64& + return value; + } + +-DBus::UInt64 +-Register::getValue( const DBus::UInt64& addr ) ++uint64_t ++Register::getValue( const uint64_t& addr ) + { +- DBus::UInt64 val = m_Slave.getValue(addr); ++ uint64_t val = m_Slave.getValue(addr); + debugOutput( DEBUG_LEVEL_VERBOSE, "getValue(%lld) => %lld\n", addr, val ); + return val; + } +@@ -639,14 +639,14 @@ Enum::Enum( DBus::Connection& connection + path().c_str() ); + } + +-DBus::Int32 +-Enum::select( const DBus::Int32& idx ) ++int32_t ++Enum::select( const int32_t& idx ) + { + debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "select(%d)\n", idx ); + return m_Slave.select(idx); + } + +-DBus::Int32 ++int32_t + Enum::selected() + { + int retval = m_Slave.selected(); +@@ -654,7 +654,7 @@ Enum::selected() + return retval; + } + +-DBus::Int32 ++int32_t + Enum::count() + { + int retval = m_Slave.count(); +@@ -662,8 +662,8 @@ Enum::count() + return retval; + } + +-DBus::String +-Enum::getEnumLabel( const DBus::Int32 & idx ) ++std::string ++Enum::getEnumLabel( const int32_t & idx ) + { + std::string retval = m_Slave.getEnumLabel(idx); + debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "getEnumLabel(%d) => %s\n", idx, retval.c_str() ); +@@ -679,14 +679,14 @@ AttributeEnum::AttributeEnum( DBus::Conn + path().c_str() ); + } + +-DBus::Int32 +-AttributeEnum::select( const DBus::Int32& idx ) ++int32_t ++AttributeEnum::select( const int32_t& idx ) + { + debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "select(%d)\n", idx ); + return m_Slave.select(idx); + } + +-DBus::Int32 ++int32_t + AttributeEnum::selected() + { + int retval = m_Slave.selected(); +@@ -694,7 +694,7 @@ AttributeEnum::selected() + return retval; + } + +-DBus::Int32 ++int32_t + AttributeEnum::count() + { + int retval = m_Slave.count(); +@@ -702,7 +702,7 @@ AttributeEnum::count() + return retval; + } + +-DBus::Int32 ++int32_t + AttributeEnum::attributeCount() + { + int retval = m_Slave.attributeCount(); +@@ -710,24 +710,24 @@ AttributeEnum::attributeCount() + return retval; + } + +-DBus::String +-AttributeEnum::getEnumLabel( const DBus::Int32 & idx ) ++std::string ++AttributeEnum::getEnumLabel( const int32_t & idx ) + { + std::string retval = m_Slave.getEnumLabel(idx); + debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "getEnumLabel(%d) => %s\n", idx, retval.c_str() ); + return retval; + } + +-DBus::String +-AttributeEnum::getAttributeValue( const DBus::Int32 & idx ) ++std::string ++AttributeEnum::getAttributeValue( const int32_t & idx ) + { + std::string retval = m_Slave.getAttributeValue(idx); + debugOutput( DEBUG_LEVEL_VERBOSE, "getAttributeValue(%d) => %s\n", idx, retval.c_str() ); + return retval; + } + +-DBus::String +-AttributeEnum::getAttributeName( const DBus::Int32 & idx ) ++std::string ++AttributeEnum::getAttributeName( const int32_t & idx ) + { + std::string retval = m_Slave.getAttributeName(idx); + debugOutput( DEBUG_LEVEL_VERBOSE, "getAttributeName(%d) => %s\n", idx, retval.c_str() ); +@@ -744,37 +744,37 @@ ConfigRomX::ConfigRomX( DBus::Connection + path().c_str() ); + } + +-DBus::String ++std::string + ConfigRomX::getGUID( ) + { + return m_Slave.getGuidString(); + } + +-DBus::String ++std::string + ConfigRomX::getVendorName( ) + { + return m_Slave.getVendorName(); + } + +-DBus::String ++std::string + ConfigRomX::getModelName( ) + { + return m_Slave.getModelName(); + } + +-DBus::Int32 ++int32_t + ConfigRomX::getVendorId( ) + { + return m_Slave.getNodeVendorId(); + } + +-DBus::Int32 ++int32_t + ConfigRomX::getModelId( ) + { + return m_Slave.getModelId(); + } + +-DBus::Int32 ++int32_t + ConfigRomX::getUnitVersion( ) + { + return m_Slave.getUnitVersion(); +@@ -790,70 +790,70 @@ MatrixMixer::MatrixMixer( DBus::Connecti + path().c_str() ); + } + +-DBus::Int32 ++int32_t + MatrixMixer::getRowCount( ) { + return m_Slave.getRowCount(); + } + +-DBus::Int32 ++int32_t + MatrixMixer::getColCount( ) { + return m_Slave.getColCount(); + } + +-DBus::Int32 +-MatrixMixer::canWrite( const DBus::Int32& row, const DBus::Int32& col) { ++int32_t ++MatrixMixer::canWrite( const int32_t& row, const int32_t& col) { + return m_Slave.canWrite(row,col); + } + +-DBus::Double +-MatrixMixer::setValue( const DBus::Int32& row, const DBus::Int32& col, const DBus::Double& val ) { ++double ++MatrixMixer::setValue( const int32_t& row, const int32_t& col, const double& val ) { + return m_Slave.setValue(row,col,val); + } + +-DBus::Double +-MatrixMixer::getValue( const DBus::Int32& row, const DBus::Int32& col) { ++double ++MatrixMixer::getValue( const int32_t& row, const int32_t& col) { + return m_Slave.getValue(row,col); + } + +-DBus::Bool ++bool + MatrixMixer::hasNames() { + return m_Slave.hasNames(); + } +-DBus::String +-MatrixMixer::getRowName( const DBus::Int32& row) { ++std::string ++MatrixMixer::getRowName( const int32_t& row) { + return m_Slave.getRowName(row); + } +-DBus::String +-MatrixMixer::getColName( const DBus::Int32& col) { ++std::string ++MatrixMixer::getColName( const int32_t& col) { + return m_Slave.getColName(col); + } +-DBus::Bool +-MatrixMixer::setRowName( const DBus::Int32& row, const DBus::String& name) { ++bool ++MatrixMixer::setRowName( const int32_t& row, const std::string& name) { + return m_Slave.setRowName(row, name); + } +-DBus::Bool +-MatrixMixer::setColName( const DBus::Int32& col, const DBus::String& name) { ++bool ++MatrixMixer::setColName( const int32_t& col, const std::string& name) { + return m_Slave.setColName(col, name); + } + +-DBus::Bool ++bool + MatrixMixer::canConnect() { + return m_Slave.canConnect(); + } +-std::vector +-MatrixMixer::availableConnectionsForRow( const DBus::Int32& row) { ++std::vector ++MatrixMixer::availableConnectionsForRow( const int32_t& row) { + return m_Slave.availableConnectionsForRow(row); + } +-std::vector +-MatrixMixer::availableConnectionsForCol( const DBus::Int32& col) { ++std::vector ++MatrixMixer::availableConnectionsForCol( const int32_t& col) { + return m_Slave.availableConnectionsForCol(col); + } +-DBus::Bool +-MatrixMixer::connectRowTo( const DBus::Int32& row, const DBus::String& target) { ++bool ++MatrixMixer::connectRowTo( const int32_t& row, const std::string& target) { + return m_Slave.connectRowTo(row, target); + } +-DBus::Bool +-MatrixMixer::connectColTo( const DBus::Int32& col, const DBus::String& target) { ++bool ++MatrixMixer::connectColTo( const int32_t& col, const std::string& target) { + return m_Slave.connectColTo(col, target); + } + +@@ -867,84 +867,84 @@ CrossbarRouter::CrossbarRouter( DBus::Co + path().c_str() ); + } + +-/*DBus::Int32 +-CrossbarRouter::getSourceIndex(const DBus::String &name) ++/*int32_t ++CrossbarRouter::getSourceIndex(const std::string &name) + { + return m_Slave.getSourceIndex(name); + } + +-DBus::Int32 +-CrossbarRouter::getDestinationIndex(const DBus::String &name) ++int32_t ++CrossbarRouter::getDestinationIndex(const std::string &name) + { + return m_Slave.getDestinationIndex(name); + }*/ + +-std::vector< DBus::String > ++std::vector< std::string > + CrossbarRouter::getSourceNames() + { + return m_Slave.getSourceNames(); + } + +-std::vector< DBus::String > ++std::vector< std::string > + CrossbarRouter::getDestinationNames() + { + return m_Slave.getDestinationNames(); + } + +-std::vector< DBus::String > +-CrossbarRouter::getDestinationsForSource(const DBus::String &idx) ++std::vector< std::string > ++CrossbarRouter::getDestinationsForSource(const std::string &idx) + { + return m_Slave.getDestinationsForSource(idx); + } + +-DBus::String +-CrossbarRouter::getSourceForDestination(const DBus::String &idx) ++std::string ++CrossbarRouter::getSourceForDestination(const std::string &idx) + { + return m_Slave.getSourceForDestination(idx); + } + +-DBus::Bool +-CrossbarRouter::canConnect(const DBus::String &source, const DBus::String &dest) ++bool ++CrossbarRouter::canConnect(const std::string &source, const std::string &dest) + { + return m_Slave.canConnect(source, dest); + } + +-DBus::Bool +-CrossbarRouter::setConnectionState(const DBus::String &source, const DBus::String &dest, const DBus::Bool &enable) ++bool ++CrossbarRouter::setConnectionState(const std::string &source, const std::string &dest, const bool &enable) + { + return m_Slave.setConnectionState(source, dest, enable); + } + +-DBus::Bool +-CrossbarRouter::getConnectionState(const DBus::String &source, const DBus::String &dest) ++bool ++CrossbarRouter::getConnectionState(const std::string &source, const std::string &dest) + { + return m_Slave.getConnectionState(source, dest); + } + +-DBus::Bool ++bool + CrossbarRouter::clearAllConnections() + { + return m_Slave.clearAllConnections(); + } + +-DBus::Bool ++bool + CrossbarRouter::hasPeakMetering() + { + return m_Slave.hasPeakMetering(); + } + +-DBus::Double +-CrossbarRouter::getPeakValue(const DBus::String &dest) ++double ++CrossbarRouter::getPeakValue(const std::string &dest) + { + return m_Slave.getPeakValue(dest); + } +-std::vector< DBus::Struct > ++std::vector< DBus::Struct > + CrossbarRouter::getPeakValues() + { + std::map peakvalues = m_Slave.getPeakValues(); +- std::vector< DBus::Struct > ret; ++ std::vector< DBus::Struct > ret; + for (std::map::iterator it=peakvalues.begin(); it!=peakvalues.end(); ++it) { +- DBus::Struct tmp; ++ DBus::Struct tmp; + tmp._1 = it->first; + tmp._2 = it->second; + ret.push_back(tmp); +@@ -971,14 +971,14 @@ Boolean::Boolean( DBus::Connection& conn + path().c_str() ); + } + +-DBus::Bool +-Boolean::select( const DBus::Bool& value ) ++bool ++Boolean::select( const bool& value ) + { + debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "select(%d)\n", value ); + return m_Slave.select(value); + } + +-DBus::Bool ++bool + Boolean::selected() + { + bool retval = m_Slave.selected(); +@@ -986,8 +986,8 @@ Boolean::selected() + return retval; + } + +-DBus::String +-Boolean::getBooleanLabel( const DBus::Bool& value ) ++std::string ++Boolean::getBooleanLabel( const bool& value ) + { + std::string retval = m_Slave.getBooleanLabel(value); + debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "getBooleanLabel(%d) => %s\n", value, retval.c_str() ); +diff -rupN libffado.old/support/dbus/controlserver.h libffado/support/dbus/controlserver.h +--- libffado.old/support/dbus/controlserver.h 2010-01-02 18:07:26.000000000 -0500 ++++ libffado/support/dbus/controlserver.h 2010-07-13 23:47:14.000000000 -0400 +@@ -98,7 +98,7 @@ private: + }; + + class Element +-: public org::ffado::Control::Element::Element ++: public org::ffado::Control::Element::Element_adaptor + , public DBus::IntrospectableAdaptor + , public DBus::ObjectAdaptor + { +@@ -109,15 +109,15 @@ public: + std::string p, Element *, + Control::Element &slave ); + +- DBus::UInt64 getId( ); +- DBus::String getName( ); +- DBus::String getLabel( ); +- DBus::String getDescription( ); ++ uint64_t getId( ); ++ std::string getName( ); ++ std::string getLabel( ); ++ std::string getDescription( ); + +- DBus::Bool canChangeValue( ); ++ bool canChangeValue( ); + +- void setVerboseLevel( const DBus::Int32 &); +- DBus::Int32 getVerboseLevel(); ++ void setVerboseLevel( const int32_t &); ++ int32_t getVerboseLevel(); + + protected: + void Lock(); +@@ -137,7 +137,7 @@ typedef std::vector::iterator + typedef std::vector::const_iterator ConstElementVectorIterator; + + class Container +-: public org::ffado::Control::Element::Container ++: public org::ffado::Control::Element::Container_adaptor + , public DBusControl::Element + { + public: +@@ -146,13 +146,13 @@ public: + Control::Container &slave ); + virtual ~Container(); + +- DBus::Int32 getNbElements( ); +- DBus::String getElementName( const DBus::Int32& ); ++ int32_t getNbElements( ); ++ std::string getElementName( const int32_t& ); + + void updated(int new_nb_elements); + void destroyed(); + +- void setVerboseLevel( const DBus::Int32 &); ++ void setVerboseLevel( const int32_t &); + private: + Element *createHandler(Element *, Control::Element& e); + void updateTree(); +@@ -165,7 +165,7 @@ private: + }; + + class Continuous +-: public org::ffado::Control::Element::Continuous ++: public org::ffado::Control::Element::Continuous_adaptor + , public Element + { + public: +@@ -173,20 +173,20 @@ public: + std::string p, Element *, + Control::Continuous &slave ); + +- DBus::Double setValue( const DBus::Double & value ); +- DBus::Double getValue( ); +- DBus::Double getMinimum( ); +- DBus::Double getMaximum( ); +- DBus::Double setValueIdx( const DBus::Int32 & idx, +- const DBus::Double & value ); +- DBus::Double getValueIdx( const DBus::Int32 & idx ); ++ double setValue( const double & value ); ++ double getValue( ); ++ double getMinimum( ); ++ double getMaximum( ); ++ double setValueIdx( const int32_t & idx, ++ const double & value ); ++ double getValueIdx( const int32_t & idx ); + + private: + Control::Continuous &m_Slave; + }; + + class Discrete +-: public org::ffado::Control::Element::Discrete ++: public org::ffado::Control::Element::Discrete_adaptor + , public Element + { + public: +@@ -194,18 +194,18 @@ public: + std::string p, Element *, + Control::Discrete &slave ); + +- DBus::Int32 setValue( const DBus::Int32 & value ); +- DBus::Int32 getValue( ); +- DBus::Int32 setValueIdx( const DBus::Int32 & idx, +- const DBus::Int32 & value ); +- DBus::Int32 getValueIdx( const DBus::Int32 & idx ); ++ int32_t setValue( const int32_t & value ); ++ int32_t getValue( ); ++ int32_t setValueIdx( const int32_t & idx, ++ const int32_t & value ); ++ int32_t getValueIdx( const int32_t & idx ); + + private: + Control::Discrete &m_Slave; + }; + + class Text +-: public org::ffado::Control::Element::Text ++: public org::ffado::Control::Element::Text_adaptor + , public Element + { + public: +@@ -213,15 +213,15 @@ public: + std::string p, Element *, + Control::Text &slave ); + +- DBus::String setValue( const DBus::String & value ); +- DBus::String getValue( ); ++ std::string setValue( const std::string & value ); ++ std::string getValue( ); + + private: + Control::Text &m_Slave; + }; + + class Register +-: public org::ffado::Control::Element::Register ++: public org::ffado::Control::Element::Register_adaptor + , public Element + { + public: +@@ -229,15 +229,15 @@ public: + std::string p, Element *, + Control::Register &slave ); + +- DBus::UInt64 setValue( const DBus::UInt64 & addr, const DBus::UInt64 & value ); +- DBus::UInt64 getValue( const DBus::UInt64 & addr ); ++ uint64_t setValue( const uint64_t & addr, const uint64_t & value ); ++ uint64_t getValue( const uint64_t & addr ); + + private: + Control::Register &m_Slave; + }; + + class Enum +-: public org::ffado::Control::Element::Enum ++: public org::ffado::Control::Element::Enum_adaptor + , public Element + { + public: +@@ -245,17 +245,17 @@ public: + std::string p, Element *, + Control::Enum &slave ); + +- DBus::Int32 select( const DBus::Int32 & idx ); +- DBus::Int32 selected( ); +- DBus::Int32 count( ); +- DBus::String getEnumLabel( const DBus::Int32 & idx ); ++ int32_t select( const int32_t & idx ); ++ int32_t selected( ); ++ int32_t count( ); ++ std::string getEnumLabel( const int32_t & idx ); + + private: + Control::Enum &m_Slave; + }; + + class AttributeEnum +-: public org::ffado::Control::Element::AttributeEnum ++: public org::ffado::Control::Element::AttributeEnum_adaptor + , public Element + { + public: +@@ -263,13 +263,13 @@ public: + std::string p, Element *, + Control::AttributeEnum &slave ); + +- DBus::Int32 select( const DBus::Int32 & idx ); +- DBus::Int32 selected( ); +- DBus::Int32 count( ); +- DBus::Int32 attributeCount(); +- DBus::String getEnumLabel( const DBus::Int32 & idx ); +- DBus::String getAttributeValue( const DBus::Int32 & idx ); +- DBus::String getAttributeName( const DBus::Int32 & idx ); ++ int32_t select( const int32_t & idx ); ++ int32_t selected( ); ++ int32_t count( ); ++ int32_t attributeCount(); ++ std::string getEnumLabel( const int32_t & idx ); ++ std::string getAttributeValue( const int32_t & idx ); ++ std::string getAttributeName( const int32_t & idx ); + + private: + Control::AttributeEnum &m_Slave; +@@ -278,7 +278,7 @@ private: + // FIXME: to change this to a normal ConfigRom class name we have to + // put the 1394 config rom class into a separate namespace. + class ConfigRomX +-: public org::ffado::Control::Element::ConfigRomX ++: public org::ffado::Control::Element::ConfigRomX_adaptor + , public Element + { + public: +@@ -286,19 +286,19 @@ public: + std::string p, Element *, + ConfigRom &slave ); + +- DBus::String getGUID( ); +- DBus::String getVendorName( ); +- DBus::String getModelName( ); +- DBus::Int32 getVendorId( ); +- DBus::Int32 getModelId( ); +- DBus::Int32 getUnitVersion( ); ++ std::string getGUID( ); ++ std::string getVendorName( ); ++ std::string getModelName( ); ++ int32_t getVendorId( ); ++ int32_t getModelId( ); ++ int32_t getUnitVersion( ); + + private: + ConfigRom &m_Slave; + }; + + class MatrixMixer +-: public org::ffado::Control::Element::MatrixMixer ++: public org::ffado::Control::Element::MatrixMixer_adaptor + , public Element + { + public: +@@ -306,31 +306,31 @@ public: + std::string p, Element *, + Control::MatrixMixer &slave ); + +- DBus::Int32 getRowCount( ); +- DBus::Int32 getColCount( ); ++ int32_t getRowCount( ); ++ int32_t getColCount( ); + +- DBus::Int32 canWrite( const DBus::Int32&, const DBus::Int32& ); +- DBus::Double setValue( const DBus::Int32&, const DBus::Int32&, const DBus::Double& ); +- DBus::Double getValue( const DBus::Int32&, const DBus::Int32& ); +- +- DBus::Bool hasNames(); +- DBus::String getRowName( const DBus::Int32& ); +- DBus::String getColName( const DBus::Int32& ); +- DBus::Bool setRowName( const DBus::Int32&, const DBus::String& ); +- DBus::Bool setColName( const DBus::Int32&, const DBus::String& ); +- +- DBus::Bool canConnect(); +- std::vector availableConnectionsForRow( const DBus::Int32& ); +- std::vector availableConnectionsForCol( const DBus::Int32& ); +- DBus::Bool connectRowTo( const DBus::Int32&, const DBus::String& ); +- DBus::Bool connectColTo( const DBus::Int32&, const DBus::String& ); ++ int32_t canWrite( const int32_t&, const int32_t& ); ++ double setValue( const int32_t&, const int32_t&, const double& ); ++ double getValue( const int32_t&, const int32_t& ); ++ ++ bool hasNames(); ++ std::string getRowName( const int32_t& ); ++ std::string getColName( const int32_t& ); ++ bool setRowName( const int32_t&, const std::string& ); ++ bool setColName( const int32_t&, const std::string& ); ++ ++ bool canConnect(); ++ std::vector availableConnectionsForRow( const int32_t& ); ++ std::vector availableConnectionsForCol( const int32_t& ); ++ bool connectRowTo( const int32_t&, const std::string& ); ++ bool connectColTo( const int32_t&, const std::string& ); + + private: + Control::MatrixMixer &m_Slave; + }; + + class CrossbarRouter +-: public org::ffado::Control::Element::CrossbarRouter ++: public org::ffado::Control::Element::CrossbarRouter_adaptor + , public Element + { + public: +@@ -338,28 +338,28 @@ public: + std::string p, Element *, + Control::CrossbarRouter &slave ); + +- std::vector< DBus::String > getSourceNames(); +- std::vector< DBus::String > getDestinationNames(); ++ std::vector< std::string > getSourceNames(); ++ std::vector< std::string > getDestinationNames(); + +- std::vector< DBus::String > getDestinationsForSource(const DBus::String &); +- DBus::String getSourceForDestination(const DBus::String &); ++ std::vector< std::string > getDestinationsForSource(const std::string &); ++ std::string getSourceForDestination(const std::string &); + +- DBus::Bool canConnect(const DBus::String &source, const DBus::String &dest); +- DBus::Bool setConnectionState(const DBus::String &source, const DBus::String &dest, const DBus::Bool &enable); +- DBus::Bool getConnectionState(const DBus::String &source, const DBus::String &dest); ++ bool canConnect(const std::string &source, const std::string &dest); ++ bool setConnectionState(const std::string &source, const std::string &dest, const bool &enable); ++ bool getConnectionState(const std::string &source, const std::string &dest); + +- DBus::Bool clearAllConnections(); ++ bool clearAllConnections(); + +- DBus::Bool hasPeakMetering(); +- DBus::Double getPeakValue(const DBus::String &dest); +- std::vector< DBus::Struct > getPeakValues(); ++ bool hasPeakMetering(); ++ double getPeakValue(const std::string &dest); ++ std::vector< DBus::Struct > getPeakValues(); + + private: + Control::CrossbarRouter &m_Slave; + }; + + class Boolean +-: public org::ffado::Control::Element::Boolean ++: public org::ffado::Control::Element::Boolean_adaptor + , public Element + { + public: +@@ -367,9 +367,9 @@ public: + std::string p, Element *, + Control::Boolean &slave ); + +- DBus::Bool select( const DBus::Bool& value ); +- DBus::Bool selected(); +- DBus::String getBooleanLabel( const DBus::Bool& value ); ++ bool select( const bool& value ); ++ bool selected(); ++ std::string getBooleanLabel( const bool& value ); + + private: + Control::Boolean &m_Slave; +diff -rupN libffado.old/support/dbus/SConscript libffado/support/dbus/SConscript +--- libffado.old/support/dbus/SConscript 2009-12-19 11:12:53.000000000 -0500 ++++ libffado/support/dbus/SConscript 2010-07-13 23:47:14.000000000 -0400 +@@ -32,12 +32,13 @@ env = env.Clone() + # For the debugging apps + # + +-env.AppendUnique( CPPPATH=["#/", "#/src", "#/external/dbus/include"] ) +-env.PrependUnique( LIBPATH=[env['build_base']+"src", env['build_base']+"external/dbus"] ) +-env.PrependUnique( LIBS=["ffado", "dbus-c++"] ) ++env.AppendUnique( CPPPATH=["#/", "#/src"] ) ++env.PrependUnique( LIBPATH=[env['build_base']+"src"] ) ++env.PrependUnique( LIBS=["ffado"] ) + + if not env.GetOption( "clean" ): + env.MergeFlags( env["DBUS1_FLAGS"] ) ++ env.MergeFlags( env["DBUSC1_FLAGS"] ) + env.MergeFlags( env['LIBRAW1394_FLAGS'] ) + if not env['SERIALIZE_USE_EXPAT']: + env.MergeFlags( env['LIBXML26_FLAGS'] ) diff --git a/libffado-libconfig145.patch b/libffado-libconfig145.patch new file mode 100644 index 0000000..a05e300 --- /dev/null +++ b/libffado-libconfig145.patch @@ -0,0 +1,12 @@ +--- libffado.old/src/libutil/Configuration.cpp 2010-06-19 14:31:27.000000000 -0400 ++++ libffado/src/libutil/Configuration.cpp 2010-07-14 01:37:57.000000000 -0400 +@@ -333,7 +333,8 @@ Configuration::getValueForDeviceSetting( + libconfig::Setting *s = getDeviceSetting( vendor_id, model_id ); + if(s) { + try { +- return s->lookupValue(setting, ref); ++ long long int refverylong = ref; ++ return s->lookupValue(setting, refverylong); + } catch (...) { + debugOutput(DEBUG_LEVEL_VERBOSE, "Setting %s not found\n", setting.c_str()); + return false; diff --git a/libffado-no-shebang.patch b/libffado-no-shebang.patch new file mode 100644 index 0000000..257afbe --- /dev/null +++ b/libffado-no-shebang.patch @@ -0,0 +1,83 @@ +diff -rupN libffado.old/support/mixer-qt4/ffado/configuration.py libffado/support/mixer-qt4/ffado/configuration.py +--- libffado.old/support/mixer-qt4/ffado/configuration.py 2009-11-09 15:34:33.000000000 -0500 ++++ libffado/support/mixer-qt4/ffado/configuration.py 2010-06-05 21:45:12.000000000 -0400 +@@ -1,4 +1,3 @@ +-#!/usr/bin/python + # + # Copyright (C) 2008-2009 by Arnold Krille + # +diff -rupN libffado.old/support/mixer-qt4/ffado/dbus_util.py libffado/support/mixer-qt4/ffado/dbus_util.py +--- libffado.old/support/mixer-qt4/ffado/dbus_util.py 2009-08-30 15:05:51.000000000 -0400 ++++ libffado/support/mixer-qt4/ffado/dbus_util.py 2010-06-05 21:44:01.000000000 -0400 +@@ -1,4 +1,3 @@ +-#!/usr/bin/python + # + # Copyright (C) 2005-2008 by Pieter Palmers + # 2007-2008 by Arnold Krille +diff -rupN libffado.old/support/mixer-qt4/ffado/logginghandler.py libffado/support/mixer-qt4/ffado/logginghandler.py +--- libffado.old/support/mixer-qt4/ffado/logginghandler.py 2009-09-01 14:30:51.000000000 -0400 ++++ libffado/support/mixer-qt4/ffado/logginghandler.py 2010-06-05 21:44:41.000000000 -0400 +@@ -1,4 +1,3 @@ +-#!/usr/bin/python + # + # Copyright (C) 2008 by Arnold Krille + # +diff -rupN libffado.old/support/mixer-qt4/ffado/mixer/nodevice.py libffado/support/mixer-qt4/ffado/mixer/nodevice.py +--- libffado.old/support/mixer-qt4/ffado/mixer/nodevice.py 2009-10-17 14:14:32.000000000 -0400 ++++ libffado/support/mixer-qt4/ffado/mixer/nodevice.py 2010-06-05 21:44:18.000000000 -0400 +@@ -1,4 +1,3 @@ +-#!/usr/bin/python + # + # Copyright (C) 2005-2008 by Pieter Palmers + # 2007-2008 by Arnold Krille +diff -rupN libffado.old/support/mixer-qt4/ffado/panelmanager.py libffado/support/mixer-qt4/ffado/panelmanager.py +--- libffado.old/support/mixer-qt4/ffado/panelmanager.py 2010-02-17 17:08:15.000000000 -0500 ++++ libffado/support/mixer-qt4/ffado/panelmanager.py 2010-06-05 21:43:49.000000000 -0400 +@@ -1,4 +1,3 @@ +-#!/usr/bin/python + # + # Copyright (C) 2005-2008 by Pieter Palmers + # 2007-2008 by Arnold Krille +diff -rupN libffado.old/support/mixer-qt4/ffado/registration.py libffado/support/mixer-qt4/ffado/registration.py +--- libffado.old/support/mixer-qt4/ffado/registration.py 2009-08-30 15:05:51.000000000 -0400 ++++ libffado/support/mixer-qt4/ffado/registration.py 2010-06-05 21:45:31.000000000 -0400 +@@ -1,4 +1,3 @@ +-#!/usr/bin/python + # + # Copyright (C) 2008-2009 by Pieter Palmers + # 2009 by Arnold Krille +diff -rupN libffado.old/support/mixer-qt4/ffado/widgets/matrixmixer.py libffado/support/mixer-qt4/ffado/widgets/matrixmixer.py +--- libffado.old/support/mixer-qt4/ffado/widgets/matrixmixer.py 2009-12-01 17:49:23.000000000 -0500 ++++ libffado/support/mixer-qt4/ffado/widgets/matrixmixer.py 2010-06-05 21:43:31.000000000 -0400 +@@ -1,4 +1,3 @@ +-#!/usr/bin/env python + # coding=utf8 + # + # Copyright (C) 2009 by Arnold Krille +diff -rupN libffado.old/support/tools/ffado_diag_helpers.py libffado/support/tools/ffado_diag_helpers.py +--- libffado.old/support/tools/ffado_diag_helpers.py 2009-10-12 16:32:00.000000000 -0400 ++++ libffado/support/tools/ffado_diag_helpers.py 2010-06-05 21:42:49.000000000 -0400 +@@ -1,6 +1,3 @@ +-#!/usr/bin/python +-# +- + # + # Copyright (C) 2008 Pieter Palmers + # +diff -rupN libffado.old/support/tools/helpstrings.py libffado/support/tools/helpstrings.py +--- libffado.old/support/tools/helpstrings.py 2008-04-18 11:36:39.000000000 -0400 ++++ libffado/support/tools/helpstrings.py 2010-06-05 21:43:04.000000000 -0400 +@@ -1,6 +1,3 @@ +-#!/usr/bin/python +-# +- + # + # Copyright (C) 2008 Pieter Palmers + # +@@ -57,4 +54,4 @@ the user/group permissions. + + def show(self, sid): + print self.get(sid) +- +\ No newline at end of file ++ diff --git a/libffado.spec b/libffado.spec new file mode 100644 index 0000000..9277ca4 --- /dev/null +++ b/libffado.spec @@ -0,0 +1,197 @@ +%if ! (0%{?fedora} > 12 || 0%{?rhel} > 5) +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%endif + +Summary: Free firewire audio driver library +Name: libffado +Version: 2.0.1 +Release: 3.20100706.svn1864%{?dist} +# src/libutil/float_cast.h is LGPLv2+. +# The rest is (GPLv2 or GPLv3) +License: LGPLv2+ and (GPLv2 or GPLv3) +Group: System Environment/Libraries +URL: http://www.ffado.org/ +# The trunk is tarballed as follows: +# svn export -r 1864 http://subversion.ffado.org/ffado/trunk/libffado libffado +# tar jcf libffado-2.0.1-svn1864.tar.bz2 libffado +Source0: %{name}-%{version}-svn1864.tar.bz2 +# Additional README file until we have proper manpages +Source1: README.ffado +# We want the documentation for the library API only, not for the entire source: +# http://subversion.ffado.org/ticket/293 +Patch0: libffado-api-doc-only.patch +# Make the .desktop file nicer +# http://subversion.ffado.org/ticket/291 +Patch1: libffado-desktop.patch +# Clean the redundant shebangs +# http://subversion.ffado.org/ticket/292 +Patch2: libffado-no-shebang.patch +# Use system libraries +# Submitted to upstream devel ML on 2010-07-12. +# Working together with the Debian packager Adrian Knoth. Cool guy. +# http://subversion.ffado.org/ticket/290 +Patch3: libffado-dont-use-bundled-libs.patch +# Make libffado compile against libconfig-1.4.5 +# http://subversion.ffado.org/ticket/290 +Patch4: libffado-libconfig145.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: alsa-lib-devel +BuildRequires: dbus-c++-devel +BuildRequires: dbus-devel +BuildRequires: dbus-python-devel +BuildRequires: desktop-file-utils +BuildRequires: doxygen +BuildRequires: glibmm24-devel +BuildRequires: graphviz +BuildRequires: libconfig-devel +BuildRequires: libiec61883-devel +BuildRequires: libraw1394-devel +BuildRequires: libxml++-devel +BuildRequires: pkgconfig +BuildRequires: PyQt4-devel +BuildRequires: python2-devel +BuildRequires: scons +BuildRequires: subversion + +%description +The FFADO project aims to provide a generic, open-source solution for the +support of FireWire based audio devices for the Linux platform. It is the +successor of the FreeBoB project. + +%package devel +Summary: Free firewire audio driver library development headers +Group: Development/Libraries +License: GPLv2 or GPLv3 +Requires: %{name} = %{version}-%{release} +Requires: pkgconfig + +%description devel +Development files needed to build applications against libffado. + +%package -n ffado +Summary: Free firewire audio driver library applications and utilities +Group: Applications/Multimedia +# support/tools/* is GPLv3 +# Some files in support/mixer-qt4/ffado are GPLv3+ +# The rest is GPLv2 or GPLv3 +License: GPLv3 and GPLv3+ and (GPLv2 or GPLv3) +Requires: %{name} = %{version}-%{release} +Requires: dbus +Requires: dbus-python +Requires: PyQt4 + +%description -n ffado +Applications and utilities for use with libffado. + + +%prep +%setup -q -n %{name} +%patch0 -p1 -b .api.doc.only +%patch1 -p1 -b .desktop.nicer +%patch2 -p1 +%patch3 -p1 -b .systemlib +%patch4 -p1 -b .libconfig145 + +cp -a %{SOURCE1} . + +%build +scons %{?_smp_mflags} \ + COMPILE_FLAGS="%{optflags} -ffast-math" \ + PREFIX=%{_prefix} \ + LIBDIR=%{_libdir} \ + BUILD_TESTS=0 + +%install +rm -rf %{buildroot} +scons DESTDIR=%{buildroot} install + +# We need to install the xdg stuff manually +mkdir -p %{buildroot}%{_datadir}/applications +desktop-file-install --dir %{buildroot}%{_datadir}/applications \ + support/xdg/ffado.org-ffadomixer.desktop +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/64x64/apps +ln -s ../../../../libffado/icons/hi64-apps-ffado.png \ + %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/ffado.png + +%clean +rm -rf %{buildroot} + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%post -n ffado +touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + +%postun -n ffado +if [ $1 -eq 0 ] ; then + touch --no-create %{_datadir}/icons/hicolor &>/dev/null + gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +fi + +%posttrans -n ffado +gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + + +%files +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog LICENSE.* README +%{_libdir}/libffado.so.* +%dir %{_datadir}/libffado/ +%{_datadir}/libffado/configuration + +%files devel +%defattr(-,root,root,-) +%doc doc/reference/html/ +%{_includedir}/libffado/ +%{_libdir}/pkgconfig/libffado.pc +%{_libdir}/libffado.so + +%files -n ffado +%defattr(-,root,root,-) +%doc README.ffado +%{_bindir}/* +%{_datadir}/libffado/*.xml +%{_datadir}/libffado/python/ +%{_datadir}/libffado/icons/ +%{_datadir}/dbus-1/services/org.ffado.Control.service +%{_datadir}/applications/ffado.org-ffadomixer.desktop +%{_datadir}/icons/hicolor/64x64/apps/ffado.png +%{python_sitelib}/ffado/ + +%changelog +* Wed Jul 14 2010 Orcan Ogetbil - 2.0.1-3.20100706.svn1864 +- Remove ENABLE_ALL +- Improve the libffado-dont-use-bundled-libs.patch +- Drop BR: expat-devel libavc1394-devel +- Move configuration file to the library package +- Minor enhancement in the .desktop file +- Add links to upstream tickets for patches +- Add -ffast-math to the compiler flags +- Add patch to compile against libconfig-1.4.5 + +* Tue Jul 13 2010 Orcan Ogetbil - 2.0.1-2.20100706.svn1864 +- Add ENABLE_ALL flag to support more devices +- Don't bundle tests +- Include some preliminary documentation for the tools until the manpages arrive +- Patch out bundled libraries. Also fixes some rpmlints +- Improve the instructions how to create the tarball + +* Wed Jul 07 2010 Orcan Ogetbil - 2.0.1-1.20100706.svn1864 +- Update to trunk, post 2.0.1. + +* Sat Jun 05 2010 Orcan Ogetbil - 2.0.0-1.20100605.svn1845 +- Update to trunk, post 2.0.0. + +* Mon May 18 2009 Jarod Wilson - 2.0-0.4.rc2 +- Update to 2.0.0-rc2 + +* Thu Nov 06 2008 Jarod Wilson - 2.0-0.3.beta7 +- Update to beta7 +- Put arch-dependent helper/test binaries in libexecdir instead of datadir + +* Sun Aug 10 2008 Jarod Wilson - 2.0-0.2.beta6 +- Review clean-ups (#456353) + +* Tue Jul 22 2008 Jarod Wilson - 2.0-0.1.beta6 +- Initial Fedora build of libffado diff --git a/sources b/sources index e69de29..896c5c9 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +6263a5e84a17afc2df16291bbd14961d libffado-2.0.1-svn1864.tar.bz2