From 67db2b44c41df08fd86215d7e613dcf7102115ac Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Sat, 6 Jan 2024 04:14:31 +0100 Subject: [PATCH] update to 2.4.5 [release 2.4.5-1mamba;Sun Feb 27 2022] --- libffado-api-doc-only.patch | 26 - libffado-desktop.patch | 17 - libffado-dont-use-bundled-libs.patch | 1148 -------------------------- libffado-no-shebang.patch | 83 -- libffado.spec | 29 +- 5 files changed, 11 insertions(+), 1292 deletions(-) delete mode 100644 libffado-api-doc-only.patch delete mode 100644 libffado-desktop.patch delete mode 100644 libffado-dont-use-bundled-libs.patch delete mode 100644 libffado-no-shebang.patch diff --git a/libffado-api-doc-only.patch b/libffado-api-doc-only.patch deleted file mode 100644 index 0c2564a..0000000 --- a/libffado-api-doc-only.patch +++ /dev/null @@ -1,26 +0,0 @@ -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 deleted file mode 100644 index 058dc52..0000000 --- a/libffado-desktop.patch +++ /dev/null @@ -1,17 +0,0 @@ -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 deleted file mode 100644 index 9d79ca4..0000000 --- a/libffado-dont-use-bundled-libs.patch +++ /dev/null @@ -1,1148 +0,0 @@ -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-no-shebang.patch b/libffado-no-shebang.patch deleted file mode 100644 index 257afbe..0000000 --- a/libffado-no-shebang.patch +++ /dev/null @@ -1,83 +0,0 @@ -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 index dffbc05..94526d2 100644 --- a/libffado.spec +++ b/libffado.spec @@ -1,26 +1,14 @@ Name: libffado -Version: 2.4.4 -Release: 3mamba +Version: 2.4.5 +Release: 1mamba Summary: Free Firewire Audio Drivers Library Group: System/Libraries Vendor: openmamba Distribution: openmamba Packager: Silvan Calarco -URL: https://www.ffado.org/ +URL: http://ffado.org/ Source0: http://www.ffado.org/files/libffado-%{version}.tgz -## svn export -r 1864 http://subversion.ffado.org/ffado/trunk/libffado libffado -## tar czf libffado-2.0.1-src-svn.tar.gz libffado -#Source0: libffado-%{version}-src-svn.tar.gz Source1: README.ffado -# http://subversion.ffado.org/ticket/293 -Patch0: libffado-api-doc-only.patch -# http://subversion.ffado.org/ticket/291 -Patch1: libffado-desktop.patch -# http://subversion.ffado.org/ticket/292 -Patch2: libffado-no-shebang.patch -# http://subversion.ffado.org/ticket/290 -Patch3: libffado-dont-use-bundled-libs.patch -# http://subversion.ffado.org/ticket/290 Patch4: libffado-libconfig145.patch Patch5: libffado-python26.patch Patch6: libffado-2.0.1-gcc-4.7.patch @@ -34,6 +22,7 @@ BuildRequires: libgcc BuildRequires: libglib-devel BuildRequires: libglibmm24-devel BuildRequires: libiec61883-devel +BuildRequires: libpython3-devel BuildRequires: libraw1394-devel BuildRequires: libsigc++2-devel BuildRequires: libstdc++6-devel @@ -45,6 +34,7 @@ BuildRequires: graphviz BuildRequires: libalsa-devel BuildRequires: scons BuildRequires: subversion +Requires: ffado = %{?epoch:%epoch:}%{version}-%{release} %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. @@ -95,6 +85,7 @@ scons %{?_smp_mflags} \ PREFIX=%{_prefix} \ LIBDIR=%{_libdir} \ MANDIR=%{_mandir} \ + UDEVDIR=%{_udevrulesdir} \ ENABLE_SETBUFFERSIZE_API_VER=True \ ENABLE_OPTIMIZATIONS=True \ CUSTOM_ENV=True \ @@ -130,6 +121,7 @@ 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 || : @@ -148,8 +140,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/libffado/static_info.txt %{_libdir}/libffado.so %{_libdir}/pkgconfig/libffado.pc -#%doc doc/reference/html/* -%doc ChangeLog README +%doc ChangeLog README README.ffado %files -n ffado %defattr(-,root,root) @@ -176,9 +167,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %dir %{python3_sitelib}/ffado/widgets %{python3_sitelib}/ffado/widgets/*.py* %{_mandir}/man1/ffado-*.1* -%doc README.ffado %changelog +* Sun Feb 27 2022 Silvan Calarco 2.4.5-1mamba +- update to 2.4.5 + * Fri Mar 26 2021 Silvan Calarco 2.4.4-3mamba - rebuilt against legact libxml++3