Update to 2.4.0

Drop upstreamed patches
epel8
Orcan Ogetbil 7 years ago
parent 17a374b93e
commit b28eb72a46

@ -1,12 +0,0 @@
diff -rupN libffado-2.3.0.org/SConstruct libffado-2.3.0/SConstruct
--- libffado-2.3.0.org/SConstruct 2016-08-08 06:31:03.000000000 -0400
+++ libffado-2.3.0/SConstruct 2017-08-10 21:56:15.358412952 -0400
@@ -558,7 +558,7 @@ def cpuinfo_kv():
for line in f:
line = line.strip()
if line:
- k,v = line.split(':')
+ k,v = line.split(':', 1)
yield (k.strip(), v.strip())
f.close()

@ -1,593 +0,0 @@
diff -rupN libffado-2.3.0.org/admin/doxygen.py libffado-2.3.0/admin/doxygen.py
--- libffado-2.3.0.org/admin/doxygen.py 2008-01-20 05:29:17.000000000 -0500
+++ libffado-2.3.0/admin/doxygen.py 2017-11-05 17:37:03.698855773 -0500
@@ -43,6 +43,7 @@ import os
import os.path
import glob
from fnmatch import fnmatch
+from functools import reduce
def DoxyfileParse(file_contents):
"""
@@ -52,7 +53,7 @@ def DoxyfileParse(file_contents):
data = {}
import shlex
- lex = shlex.shlex(instream = file_contents, posix = True)
+ lex = shlex.shlex(instream = file_contents.decode(), posix = True)
lex.wordchars += "*+./-:"
lex.whitespace = lex.whitespace.replace("\n", "")
lex.escape = ""
@@ -98,9 +99,11 @@ def DoxyfileParse(file_contents):
append_data( data, key, new_data, '\\' )
# compress lists of len 1 into single strings
+ to_pop = []
for (k, v) in data.items():
if len(v) == 0:
- data.pop(k)
+ #data.pop(k) # Can't modify dict while looping
+ to_pop.append(k)
# items in the following list will be kept as lists and not converted to strings
if k in ["INPUT", "FILE_PATTERNS", "EXCLUDE_PATTERNS"]:
@@ -109,6 +112,9 @@ def DoxyfileParse(file_contents):
if len(v) == 1:
data[k] = v[0]
+ for k in to_pop:
+ data.pop(k)
+
return data
def DoxySourceScan(node, env, path):
@@ -228,4 +234,4 @@ def exists(env):
"""
Make sure doxygen exists.
"""
- return env.Detect("doxygen")
\ No newline at end of file
+ return env.Detect("doxygen")
diff -rupN libffado-2.3.0.org/SConstruct libffado-2.3.0/SConstruct
--- libffado-2.3.0.org/SConstruct 2017-08-10 21:56:15.358412952 -0400
+++ libffado-2.3.0/SConstruct 2017-11-05 17:50:04.675089737 -0500
@@ -92,8 +92,8 @@ env = Environment( tools=['default','sca
custom_flags = False
-if env.has_key('COMPILE_FLAGS') and len(env['COMPILE_FLAGS']) > 0:
- print "The COMPILE_FLAGS option is deprecated. Use CFLAGS and CXXFLAGS with CUSTOM_ENV=True instead"
+if 'COMPILE_FLAGS' in env and len(env['COMPILE_FLAGS']) > 0:
+ print("The COMPILE_FLAGS option is deprecated. Use CFLAGS and CXXFLAGS with CUSTOM_ENV=True instead")
custom_flags = True
env.MergeFlags(env['COMPILE_FLAGS'])
@@ -101,21 +101,21 @@ if env['CUSTOM_ENV']:
custom_flags = True
# Honour the user choice of compiler (if any).
- if os.environ.has_key('CC') and len(os.environ['CC']) > 0:
+ if 'CC' in os.environ and len(os.environ['CC']) > 0:
env['CC'] = os.environ['CC']
- if os.environ.has_key('CXX') and len(os.environ['CXX']) > 0:
+ if 'CXX' in os.environ and len(os.environ['CXX']) > 0:
env['CXX'] = os.environ['CXX']
# Honour the user supplied flags (if any), but notify the user that this is not supported.
- if os.environ.has_key('CFLAGS') and len(os.environ['CFLAGS']) > 0:
+ if 'CFLAGS' in os.environ and len(os.environ['CFLAGS']) > 0:
env.Append(CFLAGS = str(os.environ['CFLAGS'].replace('\"', '')))
- if os.environ.has_key('CXXFLAGS') and len(os.environ['CXXFLAGS']) > 0:
+ if 'CXXFLAGS' in os.environ and len(os.environ['CXXFLAGS']) > 0:
env.Append(CXXFLAGS = str(os.environ['CXXFLAGS'].replace('\"', '')))
- if os.environ.has_key('LDFLAGS') and len(os.environ['LDFLAGS']) > 0:
+ if 'LDFLAGS' in os.environ and len(os.environ['LDFLAGS']) > 0:
env.Append(LINKFLAGS = str(os.environ['LDFLAGS'].replace('\"', '')))
if custom_flags:
- print '''
+ print('''
* Usage of additional flags is not supported by the ffado-devs.
* Use at own risk!
*
@@ -125,7 +125,7 @@ if custom_flags:
* CFLAGS = %s
* CXXFLAGS = %s
* LDFLAGS = %s
-''' % (env['CC'], env['CXX'], env['CFLAGS'], env['CXXFLAGS'], env['LINKFLAGS'])
+''' % (env['CC'], env['CXX'], env['CFLAGS'], env['CXXFLAGS'], env['LINKFLAGS']))
Help( """
For building ffado you can set different options as listed below. You have to
@@ -169,6 +169,7 @@ def CheckForPyModule( context, module ):
return ret[0]
def CompilerCheck( context ):
+ return True # FIXME: The following TryRun fails on Python3
context.Message( "Checking for a working C-compiler " )
ret = context.TryRun( """
#include <stdio.h>
@@ -225,13 +226,13 @@ def VersionInt(vers):
return (int(maj) << 24) | (int(min) << 8) | int(patch)
def CheckJackdVer():
- print 'Checking jackd version...',
- ret = Popen("which jackd >/dev/null 2>&1 && jackd --version | tail -n 1 | cut -d ' ' -f 3", shell=True, stdout=PIPE).stdout.read()[:-1]
+ print('Checking jackd version...', end=' ')
+ ret = Popen("which jackd >/dev/null 2>&1 && jackd --version | tail -n 1 | cut -d ' ' -f 3", shell=True, stdout=PIPE).stdout.read()[:-1].decode()
if (ret == ""):
- print "not installed"
+ print("not installed")
return -1
else:
- print ret
+ print(ret)
return VersionInt(ret)
if env['SERIALIZE_USE_EXPAT']:
@@ -249,12 +250,12 @@ if not env.GetOption('clean'):
# Check for working gcc and g++ compilers and their environment.
#
if not conf.CompilerCheck():
- print "\nIt seems as if your system isn't even able to compile any C-/C++-programs. Probably you don't have gcc and g++ installed. Compiling a package from source without a working compiler is very hard to do, please install the needed packages.\nHint: on *ubuntu you need both gcc- and g++-packages installed, easiest solution is to install build-essential which depends on gcc and g++."
+ print("\nIt seems as if your system isn't even able to compile any C-/C++-programs. Probably you don't have gcc and g++ installed. Compiling a package from source without a working compiler is very hard to do, please install the needed packages.\nHint: on *ubuntu you need both gcc- and g++-packages installed, easiest solution is to install build-essential which depends on gcc and g++.")
Exit( 1 )
# Check for pkg-config before using pkg-config to check for other dependencies.
if not conf.CheckForPKGConfig():
- print "\nThe program 'pkg-config' could not be found.\nEither you have to install the corresponding package first or make sure that PATH points to the right directions."
+ print("\nThe program 'pkg-config' could not be found.\nEither you have to install the corresponding package first or make sure that PATH points to the right directions.")
Exit( 1 )
#
@@ -298,41 +299,41 @@ if not env.GetOption('clean'):
if env['ENABLE_SETBUFFERSIZE_API_VER'] == 'auto':
if not(have_jack):
- print """
+ print("""
No Jack Audio Connection Kit (JACK) installed: assuming a FFADO
setbuffersize-compatible version will be used.
-"""
+""")
elif not(good_jack1 or good_jack2):
FFADO_API_VERSION="8"
- print """
+ print("""
Installed Jack Audio Connection Kit (JACK) jack does not support FFADO
setbuffersize API: will report earlier API version at runtime. Consider
upgrading to jack1 >=0.122.0 or jack2 >=1.9.9 at some point, and then
recompile ffado to gain access to this added feature.
-"""
+""")
else:
- print "Installed Jack Audio Connection Kit (JACK) supports FFADO setbuffersize API"
+ print("Installed Jack Audio Connection Kit (JACK) supports FFADO setbuffersize API")
elif env['ENABLE_SETBUFFERSIZE_API_VER'] == 'true':
if (have_jack and not(good_jack1) and not(good_jack2)):
- print """
+ print("""
SetBufferSize API version is enabled but no suitable version of Jack Audio
Connection Kit (JACK) has been found. The resulting FFADO would cause your
jackd to abort with "incompatible FFADO version". Please upgrade to
jack1 >=0.122.0 or jack2 >=1.9.9, or set ENABLE_SETBUFFERSIZE_API_VER to "auto"
or "false".
-"""
+""")
# Although it's not strictly an error, in almost every case that
# this occurs the user will want to know about it and fix the
# problem, so we exit so they're guaranteed of seeing the above
# message.
Exit( 1 )
else:
- print "Will report SetBufferSize API version at runtime"
+ print("Will report SetBufferSize API version at runtime")
elif env['ENABLE_SETBUFFERSIZE_API_VER'] == 'force':
- print "Will report SetBufferSize API version at runtime"
+ print("Will report SetBufferSize API version at runtime")
else:
FFADO_API_VERSION="8"
- print "Will not report SetBufferSize API version at runtime"
+ print("Will not report SetBufferSize API version at runtime")
for pkg in pkgs:
name2 = pkg.replace("+","").replace(".","").replace("-","").upper()
@@ -342,14 +343,14 @@ or "false".
allpresent &= 0
if not allpresent:
- print """
+ print("""
(At least) One of the dependencies is missing. I can't go on without it, please
install the needed packages for each of the lines saying "no".
(Remember to also install the *-devel packages!)
And remember to remove the cache with "rm -Rf .sconsign.dblite cache" so the
results above get rechecked.
-"""
+""")
Exit( 1 )
# libxml++-2.6 requires a c++11 compiler as of version 2.39.1. The
@@ -365,16 +366,18 @@ results above get rechecked.
# might not be the best way of testing for these but it's the only
# way which seems to work properly. CheckFunc() fails due to
# argument count problems.
- if env.has_key( 'CFLAGS' ):
+ if 'CFLAGS' in env:
oldcf = env['CFLAGS']
else:
oldcf = ""
env.Append(CFLAGS = '-std=c99')
- if conf.CheckLibWithHeader( "m", "math.h", "c", "lrint(3.2);" ):
+ # FIXME: the following check fails on Python3
+ if 1:#conf.CheckLibWithHeader( "m", "math.h", "c", "lrint(3.2);" ):
HAVE_LRINT = 1
else:
HAVE_LRINT = 0
- if conf.CheckLibWithHeader( "m", "math.h", "c", "lrintf(3.2);" ):
+ # FIXME: the following check fails on Python3
+ if 1:#conf.CheckLibWithHeader( "m", "math.h", "c", "lrintf(3.2);" ):
HAVE_LRINTF = 1
else:
HAVE_LRINTF = 0
@@ -388,20 +391,21 @@ results above get rechecked.
# PyQT checks
if env['BUILD_MIXER'] != 'false':
- if conf.CheckForApp( 'which pyuic4' ) and conf.CheckForPyModule( 'dbus' ) and conf.CheckForPyModule( 'PyQt4' ) and conf.CheckForPyModule( 'dbus.mainloop.qt' ):
+ # FIXME: the following dbus check fails on Python3
+ if 1:#conf.CheckForApp( 'which pyuic4' ) and conf.CheckForPyModule( 'dbus' ) and conf.CheckForPyModule( 'PyQt4' ) and conf.CheckForPyModule( 'dbus.mainloop.qt' ):
env['BUILD_MIXER'] = 'true'
elif not env.GetOption('clean'):
if env['BUILD_MIXER'] == 'auto':
env['BUILD_MIXER'] = 'false'
- print """
+ print("""
The prerequisites ('pyuic4' and the python-modules 'dbus' and 'PyQt4', the
packages could be named like dbus-python and PyQt) to build the mixer were not
-found. Therefore the qt4 mixer will not be installed."""
+found. Therefore the qt4 mixer will not be installed.""")
else: # env['BUILD_MIXER'] == 'true'
- print """
+ print("""
The prerequisites ('pyuic4' and the python-modules 'dbus' and 'PyQt4', the
packages could be named like dbus-python and PyQt) to build the mixer were not
-found, but BUILD_MIXER was requested."""
+found, but BUILD_MIXER was requested.""")
Exit( 1 )
env['XDG_TOOLS'] = False
@@ -409,10 +413,10 @@ if env['BUILD_MIXER'] == 'true':
if conf.CheckForApp( 'xdg-desktop-menu --help' ) and conf.CheckForApp( 'xdg-icon-resource --help' ):
env['XDG_TOOLS'] = True
else:
- print """
+ print("""
I couldn't find the 'xdg-desktop-menu' and 'xdg-icon-resource' programs. These
are needed to add the fancy entry for the mixer to your menu, but you can still
-start it by executing "ffado-mixer"."""
+start it by executing "ffado-mixer".""")
#
# Optional pkg-config
@@ -427,13 +431,13 @@ for pkg in pkgs:
env['%s_FLAGS' % name2] = conf.GetPKGFlags( pkg, pkgs[pkg] )
if not env['DBUS1_FLAGS'] or not env['DBUSC1_FLAGS'] or not conf.CheckForApp('which dbusxx-xml2cpp'):
- env['DBUS1_FLAGS'] = ""
- env['DBUSC1_FLAGS'] = ""
- print """
+ env['DBUS1_FLAGS'] = b""
+ env['DBUSC1_FLAGS'] = b""
+ print("""
One of the dbus-headers, the dbus-c++-headers and/or the application
'dbusxx-xml2cpp' where not found. 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()
@@ -441,21 +445,21 @@ else:
# 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['DBUS1_FLAGS'] += " -DDBUS_HAS_THREADS_INIT_DEFAULT"
+ env['DBUS1_FLAGS'] += b" -DDBUS_HAS_THREADS_INIT_DEFAULT"
# The controlserver-glue.h file generated by dbusxx-xml2cpp generates
# a large number of instances where call.reader()'s return value is
# stored (in ri) but not used. This generates a compiler warning which
# we can do nothing about. Therefore when compiling dbus-related
# code, suppress the "set but not used" warning.
- env['DBUS1_FLAGS'] += " -Wno-unused-but-set-variable"
+ env['DBUS1_FLAGS'] += b" -Wno-unused-but-set-variable"
config_guess = conf.ConfigGuess()
env = conf.Finish()
if env['DEBUG']:
- print "Doing a debug build"
+ print("Doing a debug build")
env.MergeFlags( "-Wall -g -DDEBUG" )
env['DEBUG_MESSAGES'] = True
elif not custom_flags:
@@ -466,7 +470,7 @@ if env['DEBUG_MESSAGES']:
env.MergeFlags( "-DDEBUG_MESSAGES" )
if env['PROFILE']:
- print "Doing a PROFILE build"
+ print("Doing a PROFILE build")
env.MergeFlags( "-Wall -g" )
if env['PEDANTIC']:
@@ -487,7 +491,7 @@ if env['ENABLE_ALL']:
env['BUILD_STATIC_LIB'] = False
if env['BUILD_STATIC_TOOLS']:
- print "Building static versions of the tools..."
+ print("Building static versions of the tools...")
env['BUILD_STATIC_LIB'] = True
env['build_base']="#/"
@@ -698,14 +702,14 @@ def is_userspace_32bit(cpuinfo):
# /bin/mount: file format elf64-x86-64
# or like this:
# /bin/mount: file format elf32-powerpc
- for line in x.split('\n'):
- line = line.strip()
+ for line in x.split(b'\n'):
+ line = line.strip().decode()
if line.startswith(real_exe):
x, fmt = line.rsplit(None, 1)
answer = 'elf32' in fmt
break
else:
- print '!!! Not found %s' % exe
+ print('!!! Not found %s' % exe)
return answer
@@ -780,7 +784,7 @@ if env['DIST_TARGET'] == 'auto':
env['DIST_TARGET'] = 'powerpc'
else:
env['DIST_TARGET'] = config[config_cpu]
- print "Detected DIST_TARGET = " + env['DIST_TARGET']
+ print("Detected DIST_TARGET = " + env['DIST_TARGET'])
#=== Begin Revised CXXFLAGS =========================================
# comment on DIST_TARGET up top implies it can be used for cross-compiling
@@ -799,37 +803,38 @@ if '-msse2' in opt_flags:
if env['DETECT_USERSPACE_ENV']:
m32 = is_userspace_32bit(cpuinfo)
- print 'User space is %s' % (m32 and '32-bit' or '64-bit')
+ print('User space is %s' % (m32 and '32-bit' or '64-bit'))
if cpuinfo.is_powerpc:
if m32:
- print "Doing a 32-bit PowerPC build for %s CPU" % cpuinfo.ppc_type
+ print("Doing a 32-bit PowerPC build for %s CPU" % cpuinfo.ppc_type)
machineflags = { 'CXXFLAGS' : ['-m32'] }
else:
- print "Doing a 64-bit PowerPC build for %s CPU" % cpuinfo.ppc_type
+ print("Doing a 64-bit PowerPC build for %s CPU" % cpuinfo.ppc_type)
machineflags = { 'CXXFLAGS' : ['-m64'] }
env.MergeFlags( machineflags )
elif cpuinfo.is_x86:
if m32:
- print "Doing a 32-bit %s build for %s" % (cpuinfo.machine, cpuinfo.model_name)
+ print("Doing a 32-bit %s build for %s" % (cpuinfo.machine, cpuinfo.model_name))
machineflags = { 'CXXFLAGS' : ['-m32'] }
else:
- print "Doing a 64-bit %s build for %s" % (cpuinfo.machine, cpuinfo.model_name)
+ print("Doing a 64-bit %s build for %s" % (cpuinfo.machine, cpuinfo.model_name))
machineflags = { 'CXXFLAGS' : ['-m64'] }
needs_fPIC = True
env.MergeFlags( machineflags )
#=== End Revised CXXFLAGS =========================================
-if needs_fPIC or ( env.has_key('COMPILE_FLAGS') and '-fPIC' in env['COMPILE_FLAGS'] ):
+if needs_fPIC or ( 'COMPILE_FLAGS' in env and '-fPIC' in env['COMPILE_FLAGS'] ):
env.MergeFlags( "-fPIC" )
# end of processor-specific section
if env['ENABLE_OPTIMIZATIONS']:
opt_flags.extend (["-fomit-frame-pointer","-ffast-math","-funroll-loops"])
env.MergeFlags( opt_flags )
- print "Doing an optimized build..."
+ print("Doing an optimized build...")
env['REVISION'] = os.popen('svnversion .').read()[:-1]
+
# This may be as simple as '89' or as complex as '4123:4184M'.
# We'll just use the last bit.
env['REVISION'] = env['REVISION'].split(':')[-1]
@@ -875,8 +880,8 @@ env.Depends( "config.h", "SConstruct" )
env.Depends( "config.h", 'cache/options.cache' )
# update version.h whenever the version or SVN revision changes
-env.Depends( "version.h", env.Value(env['REVISION']))
-env.Depends( "version.h", env.Value(env['VERSION']))
+#env.Depends( "version.h", env.Value(env['REVISION'])) # FIXME
+#env.Depends( "version.h", env.Value(env['VERSION'])) # FIXME
env.Depends( "libffado.pc", "SConstruct" )
pkgconfig = env.ScanReplace( "libffado.pc.in" )
@@ -907,7 +912,7 @@ if not env.GetOption('clean'):
#
if len(env.destdir) > 0:
if not len( ARGUMENTS.get( "WILL_DEAL_WITH_XDG_MYSELF", "" ) ) > 0:
- print """
+ print("""
WARNING!
You are using the (packagers) option DESTDIR to install this package to a
different place than the real prefix. As the xdg-tools can't cope with
@@ -915,7 +920,7 @@ that, the .desktop-files are not install
deal with them your own.
(And you have to look into the SConstruct to learn how to disable this
message.)
-"""
+""")
else:
def CleanAction( action ):
diff -rupN libffado-2.3.0.org/src/SConscript libffado-2.3.0/src/SConscript
--- libffado-2.3.0.org/src/SConscript 2015-05-05 08:36:47.000000000 -0400
+++ libffado-2.3.0/src/SConscript 2017-11-05 14:57:05.923090933 -0500
@@ -284,16 +284,16 @@ if env['ENABLE_GENERICAVC']:
if not env.GetOption( "clean" ):
libenv.MergeFlags( "-lrt -lpthread" )
- libenv.MergeFlags( env['LIBRAW1394_FLAGS'] )
- libenv.MergeFlags( env['LIBIEC61883_FLAGS'] )
- libenv.MergeFlags( env['LIBCONFIG_FLAGS'] )
+ libenv.MergeFlags( env['LIBRAW1394_FLAGS'].decode() )
+ libenv.MergeFlags( env['LIBIEC61883_FLAGS'].decode() )
+ libenv.MergeFlags( env['LIBCONFIG_FLAGS'].decode() )
if not env['SERIALIZE_USE_EXPAT']:
- libenv.MergeFlags( env['LIBXML26_FLAGS'] )
+ libenv.MergeFlags( env['LIBXML26_FLAGS'].decode() )
else:
libenv.PrependUnique( LIBS=["expat"] )
libenv.MergeFlags( "-DSERIALIZE_USE_EXPAT" )
if env['REQUIRE_LIBAVC']:
- libenv.MergeFlags( env['LIBAVC1394_FLAGS'] )
+ libenv.MergeFlags( env['LIBAVC1394_FLAGS'].decode() )
libname_versioned = "libffado.so.%s" % libenv['VERSION']
libname_versioned_short = "libffado.so.%s" % libenv['VERSION'].split('.')[0]
diff -rupN libffado-2.3.0.org/support/alsa/SConscript libffado-2.3.0/support/alsa/SConscript
--- libffado-2.3.0.org/support/alsa/SConscript 2009-11-02 16:48:55.000000000 -0500
+++ libffado-2.3.0/support/alsa/SConscript 2017-11-05 14:59:30.427577301 -0500
@@ -37,6 +37,6 @@ env.PrependUnique( LIBS=["ffado"] )
sources = ["alsa_plugin.cpp"]
if env.has_key("ALSA_FLAGS") and env['ALSA_FLAGS']:
- env.MergeFlags( env["ALSA_FLAGS"] )
+ env.MergeFlags( env["ALSA_FLAGS"].decode() )
env.MergeFlags( "-DPIC" )
alsaplugin = env.SharedLibrary( "asound_module_pcm_ffado", sources )
diff -rupN libffado-2.3.0.org/support/dbus/SConscript libffado-2.3.0/support/dbus/SConscript
--- libffado-2.3.0.org/support/dbus/SConscript 2012-06-12 21:39:07.000000000 -0400
+++ libffado-2.3.0/support/dbus/SConscript 2017-11-05 16:34:43.019156579 -0500
@@ -37,11 +37,11 @@ env.PrependUnique( LIBPATH=[env['build_b
env.PrependUnique( LIBS=["ffado", "pthread"] )
if not env.GetOption( "clean" ):
- env.MergeFlags( env["DBUS1_FLAGS"] )
- env.MergeFlags( env["DBUSC1_FLAGS"] )
- env.MergeFlags( env['LIBRAW1394_FLAGS'] )
+ env.MergeFlags( env["DBUS1_FLAGS"].decode() )
+ env.MergeFlags( env["DBUSC1_FLAGS"].decode() )
+ env.MergeFlags( env['LIBRAW1394_FLAGS'].decode() )
if not env['SERIALIZE_USE_EXPAT']:
- env.MergeFlags( env['LIBXML26_FLAGS'] )
+ env.MergeFlags( env['LIBXML26_FLAGS'].decode() )
else:
env.PrependUnique( LIBS=["expat"] )
@@ -79,16 +79,16 @@ for manpage in manpages:
servicefile = env.ScanReplace('org.ffado.Control.service.in')
if env['dbus_service_dir'] and ( env.destdir or os.access( env['dbus_service_dir'], os.W_OK ) ):
- print "Will install the service-file"
- targetdir = env.destdir + env['dbus_service_dir']
- env.Alias( "install", env.Install( env.destdir + env['dbus_service_dir'], servicefile ) )
+ print ("Will install the service-file")
+ targetdir = env.destdir + env['dbus_service_dir'].decode()
+ env.Alias( "install", env.Install( env.destdir + env['dbus_service_dir'].decode(), servicefile ) )
else:
if not env['dbus_service_dir']:
- print 'Can\'t install the system-wide dbus service file as the concerned variable is not defined.'
+ print ('Can\'t install the system-wide dbus service file as the concerned variable is not defined.')
else:
if not os.access( env['dbus_service_dir'], os.W_OK ):
- print 'Insufficient rights to install the system-wide dbus service file.'
- print 'Please run the "scons install" command with higher authority.'
+ print ('Insufficient rights to install the system-wide dbus service file.')
+ print ('Please run the "scons install" command with higher authority.')
# static versions
if static_env['BUILD_STATIC_TOOLS']:
diff -rupN libffado-2.3.0.org/support/firmware/SConscript libffado-2.3.0/support/firmware/SConscript
--- libffado-2.3.0.org/support/firmware/SConscript 2012-03-27 10:06:15.000000000 -0400
+++ libffado-2.3.0/support/firmware/SConscript 2017-11-05 14:58:12.187855399 -0500
@@ -30,10 +30,10 @@ env.AppendUnique( CPPPATH=["#/", "#/src"
if not env.GetOption( "clean" ):
env.MergeFlags( "-lrt -lpthread" )
- env.MergeFlags( env['LIBRAW1394_FLAGS'] )
- env.MergeFlags( env['LIBIEC61883_FLAGS'] )
+ env.MergeFlags( env['LIBRAW1394_FLAGS'].decode() )
+ env.MergeFlags( env['LIBIEC61883_FLAGS'].decode() )
if not env['SERIALIZE_USE_EXPAT']:
- env.MergeFlags( env['LIBXML26_FLAGS'] )
+ env.MergeFlags( env['LIBXML26_FLAGS'].decode() )
else:
env.PrependUnique( LIBS=["expat"] )
diff -rupN libffado-2.3.0.org/support/mixer-qt4/SConscript libffado-2.3.0/support/mixer-qt4/SConscript
--- libffado-2.3.0.org/support/mixer-qt4/SConscript 2015-04-12 07:18:15.000000000 -0400
+++ libffado-2.3.0/support/mixer-qt4/SConscript 2017-11-05 15:32:50.862308199 -0500
@@ -38,7 +38,7 @@ if env['BUILD_MIXER'] == 'true':
arg.append( os.path.join( dirname, name ) )
pythonfiles = [ 'ffado/config.py' ]
- os.path.walk( "ffado", findfiles, pythonfiles )
+ os.walk( "ffado", findfiles, pythonfiles )
e.ScanReplace( "ffado/config.py.in" )
e.Depends( "ffado/config.py", "#/SConstruct" )
diff -rupN libffado-2.3.0.org/support/tools/SConscript libffado-2.3.0/support/tools/SConscript
--- libffado-2.3.0.org/support/tools/SConscript 2013-05-17 08:37:50.000000000 -0400
+++ libffado-2.3.0/support/tools/SConscript 2017-11-05 14:58:45.691736311 -0500
@@ -33,7 +33,7 @@ e = env.Clone()
e.MergeFlags( "-I#/ -I#/src -L%ssrc -lffado" % env['build_base'] )
if not e.GetOption( "clean" ):
if not env['SERIALIZE_USE_EXPAT']:
- e.MergeFlags( env['LIBXML26_FLAGS'] )
+ e.MergeFlags( env['LIBXML26_FLAGS'].decode() )
else:
e.PrependUnique( LIBS=["expat"] )
diff -rupN libffado-2.3.0.org/tests/SConscript libffado-2.3.0/tests/SConscript
--- libffado-2.3.0.org/tests/SConscript 2012-05-01 20:38:14.000000000 -0400
+++ libffado-2.3.0/tests/SConscript 2017-11-05 15:15:57.721041067 -0500
@@ -29,10 +29,10 @@ env.MergeFlags( "-I#/ -I#/src -L%ssrc -l
if not env.GetOption( "clean" ):
env.MergeFlags( "-lpthread" )
- env.MergeFlags( env['LIBIEC61883_FLAGS'] )
- env.MergeFlags( env['LIBRAW1394_FLAGS'] )
+ env.MergeFlags( env['LIBIEC61883_FLAGS'].decode() )
+ env.MergeFlags( env['LIBRAW1394_FLAGS'].decode() )
if not env['SERIALIZE_USE_EXPAT']:
- env.MergeFlags( env['LIBXML26_FLAGS'] )
+ env.MergeFlags( env['LIBXML26_FLAGS'].decode() )
else:
env.PrependUnique( LIBS=["expat"] )
@@ -65,7 +65,7 @@ if env['ENABLE_BEBOB']:
apps.update( { "test-focusrite" : "test-focusrite.cpp" } )
if env['ENABLE_GENERICAVC']:
if env.has_key("ALSA_FLAGS") and env["ALSA_FLAGS"]:
- env.MergeFlags( env["ALSA_FLAGS"] )
+ env.MergeFlags( env["ALSA_FLAGS"].decode() )
apps.update( { "test-scs" : "test-scs.cpp" } )
apps.update( { "test-volume" : "test-volume.cpp" } )
apps.update( { "test-enhanced-mixer" : "test-enhanced-mixer.cpp" } )
diff -rupN libffado-2.3.0.org/tests/systemtests/SConscript libffado-2.3.0/tests/systemtests/SConscript
--- libffado-2.3.0.org/tests/systemtests/SConscript 2010-01-04 11:09:43.000000000 -0500
+++ libffado-2.3.0/tests/systemtests/SConscript 2017-11-05 15:16:38.976893207 -0500
@@ -30,7 +30,7 @@ env.PrependUnique( LIBPATH=[env['build_b
env.PrependUnique( LIBS=["ffado"] )
if not env.GetOption( "clean" ):
- env.MergeFlags( env['LIBRAW1394_FLAGS'] )
+ env.MergeFlags( env['LIBRAW1394_FLAGS'].decode() )
env.MergeFlags( "-lrt -lpthread" )
static_env = env.Clone()

@ -0,0 +1,22 @@
diff -rupN libffado-2.4.0.org/src/rme/rme_avdevice.cpp libffado-2.4.0/src/rme/rme_avdevice.cpp
--- libffado-2.4.0.org/src/rme/rme_avdevice.cpp 2017-06-03 04:08:05.000000000 -0400
+++ libffado-2.4.0/src/rme/rme_avdevice.cpp 2018-01-02 21:38:01.507348351 -0500
@@ -42,7 +42,6 @@
#include <stdint.h>
#include <assert.h>
#include <unistd.h>
-#include "libutil/ByteSwap.h"
#include <iostream>
#include <sstream>
diff -rupN libffado-2.4.0.org/src/rme/rme_avdevice.h libffado-2.4.0/src/rme/rme_avdevice.h
--- libffado-2.4.0.org/src/rme/rme_avdevice.h 2017-05-09 08:55:47.000000000 -0400
+++ libffado-2.4.0/src/rme/rme_avdevice.h 2018-01-02 21:38:12.755286977 -0500
@@ -31,6 +31,7 @@
#include "libavc/avc_definitions.h"
#include "libutil/Configuration.h"
+#include "libutil/ByteSwap.h"
#include "fireface_def.h"
#include "libstreaming/rme/RmeReceiveStreamProcessor.h"

@ -1,20 +0,0 @@
--- libffado-2.3.0/src/libieee1394/configrom.cpp.derefptr 2017-02-16 12:03:33.894937836 +0000
+++ libffado-2.3.0/src/libieee1394/configrom.cpp 2017-02-16 12:03:44.000947451 +0000
@@ -176,7 +176,7 @@
( void* )CSR1212_TEXTUAL_DESCRIPTOR_LEAF_DATA( m_vendorNameKv ),
len );
- while ((buf + len - 1) == '\0') {
+ while (*(buf + len - 1) == '\0') {
len--;
}
// \todo XXX seems a bit strage to do this but the nodemgr.c code does
@@ -195,7 +195,7 @@
memcpy( buf,
( void* )CSR1212_TEXTUAL_DESCRIPTOR_LEAF_DATA( m_modelNameKv ),
len );
- while ((buf + len - 1) == '\0') {
+ while (*(buf + len - 1) == '\0') {
len--;
}
// \todo XXX for edirol fa-66 it seems somehow broken. see above

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,10 +0,0 @@
Index: trunk/libffado/src/libutil/PosixMessageQueue.cpp
===================================================================
--- trunk/libffado/src/libutil/PosixMessageQueue.cpp (revision 2171)
+++ trunk/libffado/src/libutil/PosixMessageQueue.cpp (revision 2706)
@@ -31,4 +31,5 @@
#include <string.h>
#include <poll.h>
+#include <signal.h>
#define MQ_INVALID_ID ((mqd_t) -1)

@ -1,11 +0,0 @@
Index: trunk/libffado/src/bebob/bebob_dl_mgr.cpp
===================================================================
--- trunk/libffado/src/bebob/bebob_dl_mgr.cpp (revision 2691)
+++ trunk/libffado/src/bebob/bebob_dl_mgr.cpp (revision 2707)
@@ -33,4 +33,6 @@
#include "libutil/ByteSwap.h"
+
+#include "ffadodevice.h"
#include <cstdio>

@ -1,19 +0,0 @@
diff -urp a/src/libutil/TimestampedBuffer.cpp b/src/libutil/TimestampedBuffer.cpp
--- a/src/libutil/TimestampedBuffer.cpp 2014-06-01 19:00:10.000000000 -0500
+++ b/src/libutil/TimestampedBuffer.cpp 2016-02-29 21:01:56.693239943 -0600
@@ -32,6 +32,7 @@
#include <cstdlib>
#include <cstring>
+#include <math.h>
#define DLL_PI (3.141592653589793238)
#define DLL_SQRT2 (1.414213562373095049)
@@ -179,7 +180,6 @@ bool TimestampedBuffer::setWrapValue(ffa
m_wrap_at=w;
return true;
}
-#include <math.h>
/**
* \brief return the effective rate

@ -1,21 +0,0 @@
diff -rupN libffado-2.3.0.org/SConstruct libffado-2.3.0/SConstruct
--- libffado-2.3.0.org/SConstruct 2017-11-06 22:48:46.072463247 -0500
+++ libffado-2.3.0/SConstruct 2017-11-06 22:50:28.751129313 -0500
@@ -575,7 +575,7 @@ class CpuInfo (object):
# general CPU architecture
self.is_x86 = self.machine in ('i686', 'x86_64') or \
re.match("i[3-5]86", self.machine) or False
- self.is_powerpc = self.machine in ('ppc64', 'ppc', 'powerpc', 'powerpc64')
+ self.is_powerpc = self.machine in ('ppc64', 'ppc', 'powerpc', 'powerpc64', 'ppc64le')
#!!! probably not comprehensive
self.is_mips = self.machine == 'mips'
#!!! not a comprehensive list. uname -m on one android phone reports 'armv71'
@@ -593,7 +593,7 @@ class CpuInfo (object):
# 64-bit (x86_64/AMD64/Intel64)
# Long Mode (x86-64: amd64, also known as Intel 64, i.e. 64-bit capable)
self.is_64bit = (self.is_x86 and 'lm' in self.x86_flags) or \
- (self.is_powerpc and '970' in self.ppc_type)
+ (self.is_powerpc and ('970' in self.ppc_type or 'power8' in self.ppc_type.lower()))
# Hardware virtualization capable: vmx (Intel), svm (AMD)
self.has_hwvirt = self.is_x86 and (

@ -0,0 +1,172 @@
diff -rupN libffado-2.4.0.org/support/mixer-qt4/ffado/ffadowindow.py libffado-2.4.0/support/mixer-qt4/ffado/ffadowindow.py
--- libffado-2.4.0.org/support/mixer-qt4/ffado/ffadowindow.py 2017-06-04 03:23:13.000000000 -0400
+++ libffado-2.4.0/support/mixer-qt4/ffado/ffadowindow.py 2018-01-05 20:27:25.394068104 -0500
@@ -22,6 +22,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
+import ctypes
+import datetime
import os
from ffado.config import *
@@ -92,7 +94,8 @@ class FFADOWindow(QMainWindow):
self.menuTheme[theme].setCheckable(True)
if (ffado_python3 and (self.style().objectName().lower() == theme.lower()) or
- not(ffado_python3) and (self.style().objectName().toLower() == theme.toLower())):
+ not(ffado_python3) and (self.style().objectName().toLower() == theme.toLower() if ffado_pyqt_version == 4 else
+ self.style().objectName().lower() == theme.lower())):
self.menuTheme[theme].setDisabled(True)
self.menuTheme[theme].setChecked(True)
self.menuTheme[theme].triggered.connect(self.switchTheme )
@@ -174,9 +177,11 @@ class FFADOWindow(QMainWindow):
QMessageBox.about( self, "About FFADO", """
<h1>ffado.org</h1>
+<p>{ffado_version}</p>
+
<p>FFADO is the new approach to have firewire audio on linux.</p>
-<p>&copy; 2006-2014 by the FFADO developers<br />ffado is licensed under the GPLv3, for the full license text see <a href="http://www.gnu.org/licenses/">www.gnu.org/licenses</a> or the LICENSE.* files shipped with ffado.</p>
+ <p>&copy; 2006-2018 by the FFADO developers<br />ffado is licensed under the GPLv3, for the full license text see <a href="http://www.gnu.org/licenses/">www.gnu.org/licenses</a> or the LICENSE.* files shipped with ffado.</p>
<p>FFADO developers are:<ul>
<li>Pieter Palmers
@@ -191,8 +196,17 @@ with contributions from:<ul>
<li>Stefan Richter
<li>Jano Svitok
</ul>
-""" )
+ """.format(ffado_version=get_ffado_version(), thisyear=datetime.datetime.now().year))
+def get_ffado_version():
+ try:
+ # call the C function ffado_get_version() to figure out the version
+ lib = ctypes.cdll.LoadLibrary('libffado.so')
+ func = ctypes.CFUNCTYPE(ctypes.c_char_p)
+ ffado_get_version = func(('ffado_get_version', lib))
+ return ffado_get_version()
+ except:
+ return "libffado"
def get_lock(process_name):
import socket
@@ -252,6 +266,7 @@ def ffadomain(args):
logging.getLogger('global').setLevel(debug_level)
log = logging.getLogger('main')
+ log.debug("Using %s with Qt: %s PyQt: %s" % (get_ffado_version(), QtCore.QT_VERSION_STR, QtCore.PYQT_VERSION_STR))
app = QApplication(args)
app.setWindowIcon( QIcon( SHAREDIR + "/icons/hi64-apps-ffado.png" ) )
diff -rupN libffado-2.4.0.org/support/mixer-qt4/ffado/logginghandler.py libffado-2.4.0/support/mixer-qt4/ffado/logginghandler.py
--- libffado-2.4.0.org/support/mixer-qt4/ffado/logginghandler.py 2017-06-03 04:25:01.000000000 -0400
+++ libffado-2.4.0/support/mixer-qt4/ffado/logginghandler.py 2018-01-03 22:01:14.939141810 -0500
@@ -28,7 +28,7 @@ import logging
log = logging.getLogger('logginghandler')
class QStatusLogger( QObject, logging.Handler ):
- log = pyqtSignal(QString, int, name='log')
+ log = pyqtSignal(QString if ffado_pyqt_version == 4 else str, int, name='log')
def __init__( self, parent, statusbar, level=logging.NOTSET ):
QObject.__init__( self, parent )
logging.Handler.__init__( self, level )
diff -rupN libffado-2.4.0.org/support/mixer-qt4/ffado/panelmanager.py libffado-2.4.0/support/mixer-qt4/ffado/panelmanager.py
--- libffado-2.4.0.org/support/mixer-qt4/ffado/panelmanager.py 2017-06-04 03:40:48.000000000 -0400
+++ libffado-2.4.0/support/mixer-qt4/ffado/panelmanager.py 2018-01-03 21:18:15.042504716 -0500
@@ -378,7 +378,7 @@ except ImportError:
action = self.sender()
# Extract the action data and store as a dbus.String type so
# it is usable as a key into self.panels[].
- panel_key = dbus.String(action.data().toString())
+ panel_key = dbus.String(action.data().toString() if ffado_pyqt_version == 4 else action.data())
self.tabs.setCurrentIndex(self.tabs.indexOf(self.panels[panel_key]))
def displayPanels(self):
@@ -515,6 +515,8 @@ except ImportError:
saveString.append('</device>\n')
# file saving
savefilename = QFileDialog.getSaveFileName(self, 'Save File', os.getenv('HOME'))
+ if isinstance(savefilename, tuple): # newer PyQt5
+ savefilename = savefilename[0]
try:
f = open(savefilename, 'w')
except IOError:
@@ -526,6 +528,8 @@ except ImportError:
def readSettings(self):
readfilename = QFileDialog.getOpenFileName(self, 'Open File', os.getenv('HOME'))
+ if isinstance(readfilename, tuple): # newer PyQt5
+ readfilename = readfilename[0]
try:
f = open(readfilename, 'r')
except IOError:
diff -rupN libffado-2.4.0.org/support/mixer-qt4/ffado/widgets/crossbarrouter.py libffado-2.4.0/support/mixer-qt4/ffado/widgets/crossbarrouter.py
--- libffado-2.4.0.org/support/mixer-qt4/ffado/widgets/crossbarrouter.py 2017-06-03 04:25:01.000000000 -0400
+++ libffado-2.4.0/support/mixer-qt4/ffado/widgets/crossbarrouter.py 2018-01-03 21:11:01.563420583 -0500
@@ -168,7 +168,10 @@ class CrossbarRouter(QWidget):
self.timer.setInterval(200)
self.timer.timeout.connect(self.updateLevels)
- self.vubtn.setChecked(self.settings.value("crossbarrouter/runvu", False).toBool())
+ if ffado_pyqt_version == 4:
+ self.vubtn.setChecked(self.settings.value("crossbarrouter/runvu", False).toBool())
+ else:
+ self.vubtn.setChecked(self.settings.value("crossbarrouter/runvu", False) == u'true')
def __del__(self):
print( "CrossbarRouter.__del__()" )
diff -rupN libffado-2.4.0.org/support/mixer-qt4/ffado/widgets/matrixmixer.py libffado-2.4.0/support/mixer-qt4/ffado/widgets/matrixmixer.py
--- libffado-2.4.0.org/support/mixer-qt4/ffado/widgets/matrixmixer.py 2017-06-03 07:29:20.000000000 -0400
+++ libffado-2.4.0/support/mixer-qt4/ffado/widgets/matrixmixer.py 2018-01-03 23:39:38.884080843 -0500
@@ -200,14 +200,14 @@ class MixerNode(QAbstractSlider):
def mousePressEvent(self, ev):
if ev.buttons() & Qt.LeftButton:
- self.pos = ev.posF()
+ self.pos = ev.posF() if ffado_pyqt_version == 4 else ev.localPos()
self.tmpvalue = self.value()
ev.accept()
#log.debug("MixerNode.mousePressEvent() %s" % str(self.pos))
def mouseMoveEvent(self, ev):
if hasattr(self, "tmpvalue") and self.pos is not QtCore.QPointF(0, 0):
- newpos = ev.posF()
+ newpos = ev.posF() if ffado_pyqt_version == 4 else ev.localPos()
change = newpos.y() - self.pos.y()
#log.debug("MixerNode.mouseReleaseEvent() change %s" % (str(change)))
self.setValue( self.tmpvalue - math.copysign(pow(abs(change), 2), change) )
@@ -215,7 +215,7 @@ class MixerNode(QAbstractSlider):
def mouseReleaseEvent(self, ev):
if hasattr(self, "tmpvalue") and self.pos is not QtCore.QPointF(0, 0):
- newpos = ev.posF()
+ newpos = ev.posF() if ffado_pyqt_version == 4 else ev.localPos()
change = newpos.y() - self.pos.y()
#log.debug("MixerNode.mouseReleaseEvent() change %s" % (str(change)))
self.setValue( self.tmpvalue - math.copysign(pow(abs(change), 2), change) )
@@ -257,19 +257,19 @@ class MixerNode(QAbstractSlider):
if v == 0:
symb_inf = u"\u221E"
text = "-" + symb_inf + " dB"
- if ffado_python3:
+ if ffado_python3 or ffado_pyqt_version == 5:
# Python3 uses native python UTF strings rather than QString.
# This therefore appears to be the correct way to display this
# UTF8 string, but testing may prove otherwise.
p.drawText(rect, Qt.AlignCenter, text)
else:
- p.drawText(rect, Qt.AlignCenter, QtCore.QString.fromUtf8(text))
+ p.drawText(rect, Qt.AlignCenter, QString.fromUtf8(text))
if (self.inv_action!=None and self.inv_action.isChecked()):
- if ffado_python3:
+ if ffado_python3 or ffado_pyqt_version == 5:
# Refer to the comment about about Python UTF8 strings.
p.drawText(rect, Qt.AlignLeft|Qt.AlignTop, " ϕ")
else:
- p.drawText(rect, Qt.AlignLeft|Qt.AlignTop, QtCore.QString.fromUtf8(" ϕ"))
+ p.drawText(rect, Qt.AlignLeft|Qt.AlignTop, QString.fromUtf8(" ϕ"))
def internalValueChanged(self, value):
#log.debug("MixerNode.internalValueChanged( %i )" % value)

@ -0,0 +1,19 @@
--- libffado-2.4.0.org/SConstruct 2017-12-23 05:43:57.000000000 -0500
+++ libffado-2.4.0/SConstruct 2018-01-02 22:35:01.793115884 -0500
@@ -29,6 +29,7 @@ FFADO_VERSION="2.4.0"
from subprocess import Popen, PIPE
import os
import re
+import sys
from string import Template
import imp
import distutils.sysconfig
@@ -395,7 +396,7 @@ results above get rechecked.
# PyQT checks
if env['BUILD_MIXER'] != 'false':
- have_dbus = (conf.CheckForApp( 'which pyuic4' ) and conf.CheckForPyModule( 'dbus.mainloop.qt' ))
+ have_dbus = ((conf.CheckForApp( 'which pyuic4' ) and conf.CheckForPyModule( 'dbus.mainloop.qt' )) or (conf.CheckForApp( 'which pyuic5' ) and conf.CheckForPyModule( 'dbus.mainloop.pyqt5' )))
have_pyqt4 = (conf.CheckForApp( 'which pyuic4' ) and conf.CheckForPyModule( 'PyQt4' ))
have_pyqt5 = (conf.CheckForApp( 'which pyuic5' ) and conf.CheckForPyModule( 'PyQt5' ))
if ((have_pyqt4 or have_pyqt5) and have_dbus):

@ -1,11 +0,0 @@
diff -rupN libffado-2.3.0.org/src/libutil/PosixMessageQueue.h libffado-2.3.0/src/libutil/PosixMessageQueue.h
--- libffado-2.3.0.org/src/libutil/PosixMessageQueue.h 2009-12-19 11:26:20.000000000 -0500
+++ libffado-2.3.0/src/libutil/PosixMessageQueue.h 2017-11-05 16:01:06.730315493 -0500
@@ -35,6 +35,7 @@
#include <time.h>
#include <mqueue.h>
#include <string>
+#include <signal.h>
namespace Util
{

@ -1,7 +1,7 @@
Summary: Free firewire audio driver library
Name: libffado
Version: 2.3.0
Release: 7%{?dist}
Version: 2.4.0
Release: 1%{?dist}
# src/libutil/float_cast.h is LGPLv2+.
# The rest is (GPLv2 or GPLv3)
License: LGPLv2+ and (GPLv2 or GPLv3)
@ -15,39 +15,18 @@ Source9: libffado-snapshot.sh
# 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
Patch1: libffado-gcc6.patch
# http://subversion.ffado.org/changeset/2673
Patch2: libffado-derefptr.patch
# Various backports from the trunk to fix compilation warnings/errors
# C++11 missing space between literal and string macro
# http://subversion.ffado.org/changeset/2651
Patch3: libffado-diff-trunk-from-r2650-to-r2651.diff
# std::auto_ptr deprecated
# http://subversion.ffado.org/changeset/2691
# http://subversion.ffado.org/changeset/2707
Patch4: libffado-diff-trunk-from-r2690-to-r2691.diff
Patch5: libffado-diff-trunk-from-r2706-to-r2707.diff
# SIGEV_THREAD not declared
# http://subversion.ffado.org/changeset/2706
Patch6: libffado-diff-trunk-from-r2705-to-r2706.diff
# MIPS support. RHBZ#1366701
Patch7: libffado-MIPS.patch
# Make SConstruct Python3 compatible. This patch has workarounds
# that need a real fix. Sent upstream. RHBZ#1509478
# Partially accepted until upstream switches to scons3 for good
# Upstream revisions 2711-2716
Patch8: libffado-SConstruct-py3.patch
# Compilation fix. Accepted upstream
# http://subversion.ffado.org/changeset/2710
Patch9: libffado-signal_h.patch
# Fix bitness related flags on ppc64, ppc64le
# Sent upstream
Patch10: libffado-ppc64-bitness.patch
# add missing header. Fixes build on big endian systems. Upstreamed r2724
Patch1: libffado-byteswap.patch
# add missing import and fix build against PyQt5. Upstreamed r2724 and r2725
Patch2: libffado-sconstruct.patch
# PyQt4 and 5 compatibility. Upstreamed r2726
Patch3: libffado-pyqt4and5compat.patch
BuildRequires: alsa-lib-devel
BuildRequires: dbus-c++-devel
BuildRequires: dbus-devel
BuildRequires: dbus-python-devel
# the following got renamed to python2-dbus on F28. We are using the backward-compatible Provides
BuildRequires: dbus-python
BuildRequires: desktop-file-utils
BuildRequires: doxygen
BuildRequires: glibmm24-devel
@ -57,7 +36,7 @@ BuildRequires: libiec61883-devel
BuildRequires: libraw1394-devel
BuildRequires: libxml++-devel
BuildRequires: pkgconfig
BuildRequires: PyQt4-devel
BuildRequires: python2-PyQt5-devel
BuildRequires: python2-devel
BuildRequires: scons
BuildRequires: subversion
@ -87,8 +66,9 @@ Group: Applications/Multimedia
License: GPLv3 and GPLv3+ and (GPLv2 or GPLv3)
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: dbus
# the following got renamed to python2-dbus on F28. We are using the backward-compatible Provides
Requires: dbus-python
Requires: PyQt4
Requires: python2-PyQt5
%description -n ffado
Applications and utilities for use with libffado.
@ -97,24 +77,21 @@ Applications and utilities for use with libffado.
%prep
%setup -q
%patch0 -p1 -b .api.doc.only
%patch1 -p1 -b .gcc6
%patch2 -p1 -b .derefptr
%patch3 -p2 -b .string
%patch4 -p2 -b .auto_ptr
%patch5 -p2 -b .auto_ptr2
%patch6 -p2 -b .signal_h
%patch7 -p1 -b .MIPS
%patch8 -p1 -b .py3
%patch9 -p1 -b .signal_h
%patch10 -p1 -b .ppc64
%patch1 -p1 -b .byteswap
%patch2 -p1 -b .sconstruct
%patch3 -p1 -b .pyqt4and5
# We don't want to install all tests
sed -i '/Install/d' tests/{,*/}SConscript
# Use standard icon name
sed -i 's|hi64-apps-ffado.png|ffado.png|' support/mixer-qt4/ffado/ffadowindow.py
%build
export CFLAGS="%{optflags} -ffast-math"
export CXXFLAGS="%{optflags} -ffast-math --std=gnu++11"
scons %{?_smp_mflags} \
ENABLE_SETBUFFERSIZE_API_VER=True \
ENABLE_OPTIMIZATIONS=True \
CUSTOM_ENV=True \
PREFIX=%{_prefix} \
@ -135,6 +112,7 @@ scons DESTDIR=%{buildroot} \
mkdir -p %{buildroot}%{_datadir}/applications
desktop-file-install --dir %{buildroot}%{_datadir}/applications \
--add-category="Settings" \
--set-icon=ffado \
support/xdg/ffado.org-ffadomixer.desktop
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/64x64/apps
ln -s ../../../../libffado/icons/hi64-apps-ffado.png \
@ -185,6 +163,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%changelog
* Fri Jan 05 2018 Orcan Ogetbil <oget[dot]fedora[at]gmail[dot]com> - 2.4.0-1
- Update to 2.4.0
- Drop upstreamed patches
* Mon Nov 06 2017 Orcan Ogetbil <oget[dot]fedora[at]gmail[dot]com> - 2.3.0-7
- Build against scons3
- Build against newer gcc/glibc

Loading…
Cancel
Save