Build against scons3

Build against newer gcc/glibc
epel8
Orcan Ogetbil 7 years ago
parent cd705915ef
commit 17a374b93e

@ -0,0 +1,593 @@
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,21 @@
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,11 @@
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: 6%{?dist}
Release: 7%{?dist}
# src/libutil/float_cast.h is LGPLv2+.
# The rest is (GPLv2 or GPLv3)
License: LGPLv2+ and (GPLv2 or GPLv3)
@ -32,6 +32,17 @@ Patch5: libffado-diff-trunk-from-r2706-to-r2707.diff
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
BuildRequires: alsa-lib-devel
BuildRequires: dbus-c++-devel
@ -93,21 +104,32 @@ Applications and utilities for use with libffado.
%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
# We don't want to install all tests
sed -i '/Install/d' tests/{,*/}SConscript
%build
export CFLAGS="%{optflags} -ffast-math"
export CXXFLAGS="%{optflags} -ffast-math --std=gnu++11"
scons %{?_smp_mflags} \
COMPILE_FLAGS="%{optflags} -ffast-math --std=gnu++11" \
ENABLE_OPTIMIZATIONS=True \
CUSTOM_ENV=True \
PREFIX=%{_prefix} \
LIBDIR=%{_libdir} \
MANDIR=%{_mandir} \
UDEVDIR=%{_prefix}/lib/udev/rules.d/ \
PYPKGDIR=%{python_sitelib}/ffado/ \
BUILD_TESTS=1
%install
scons DESTDIR=%{buildroot} install
# Exporting flags so that the install does not trigger another build
export CFLAGS="%{optflags} -ffast-math"
export CXXFLAGS="%{optflags} -ffast-math --std=gnu++11"
scons DESTDIR=%{buildroot} \
install
# We need to install the xdg stuff manually
mkdir -p %{buildroot}%{_datadir}/applications
@ -163,6 +185,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%changelog
* 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
* Thu Aug 10 2017 Orcan Ogetbil <oget[dot]fedora[at]gmail[dot]com> - 2.3.0-6
- Fix FTBFS on F27
- Backported fixes from trunk for various compilation warnings

Loading…
Cancel
Save