diff options
author | Boris Nagaev <bnagaev@gmail.com> | 2016-01-01 11:24:42 (GMT) |
---|---|---|
committer | Boris Nagaev <bnagaev@gmail.com> | 2016-01-01 12:37:50 (GMT) |
commit | 779f2c0a12bd3d73223c4e5ca525318555d30bc1 (patch) | |
tree | 352a3f7053844528457fb59e3842010eb2ac164d /src/jack-1-fixes.patch | |
parent | b6991483c6f62cf1bb83eb7e81315fecf5cc1b21 (diff) | |
download | mxe-779f2c0a12bd3d73223c4e5ca525318555d30bc1.zip mxe-779f2c0a12bd3d73223c4e5ca525318555d30bc1.tar.gz mxe-779f2c0a12bd3d73223c4e5ca525318555d30bc1.tar.bz2 |
jack: consolidate patches
Diffstat (limited to 'src/jack-1-fixes.patch')
-rw-r--r-- | src/jack-1-fixes.patch | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/src/jack-1-fixes.patch b/src/jack-1-fixes.patch new file mode 100644 index 0000000..dcadf4e --- /dev/null +++ b/src/jack-1-fixes.patch @@ -0,0 +1,188 @@ +This file is part of MXE. +See index.html for further information. + +Contains ad hoc patches for cross building. + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Harry Nakos <xnakos@gmail.com> +Date: Tue, 16 Jun 2015 21:55:31 +0300 +Subject: [PATCH] Patch wscript to link to FLAC, vorbis, vorbisenc, and ogg + libraries + +... which libsndfile is dependent on, since libsndfile will most probably +have not been built statically linked to those libraries. + +diff --git a/example-clients/wscript b/example-clients/wscript +index 1111111..2222222 100644 +--- a/example-clients/wscript ++++ b/example-clients/wscript +@@ -41,6 +41,10 @@ def configure(conf): + + if conf.is_defined('HAVE_SNDFILE'): + conf.env['LIB_SNDFILE'] = ['sndfile'] ++ conf.env['LIB_FLAC'] = ['FLAC'] ++ conf.env['LIB_VORBIS'] = ['vorbis'] ++ conf.env['LIB_VORBISENC'] = ['vorbisenc'] ++ conf.env['LIB_OGG'] = ['ogg'] + + conf.check_cfg(package='celt', atleast_version='0.5.0', args='--cflags --libs', mandatory=False) + +@@ -124,7 +128,7 @@ def build(bld): + if bld.env['IS_SUN']: + prog.use += ['RT', 'SNDFILE'] + if bld.env['IS_WINDOWS']: +- prog.uselib = ['SNDFILE'] ++ prog.uselib = ['SNDFILE', 'FLAC', 'VORBIS', 'VORBISENC', 'OGG'] + prog.target = 'jack_rec' + + if bld.env['IS_LINUX'] or bld.env['IS_MACOSX']: + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Boris Nagaev <bnagaev@gmail.com> +Date: Mon, 31 Aug 2015 23:39:35 +0200 +Subject: [PATCH] disable SIGQUIT and SIGHUP + +Windows doesn't have them. + +Fixed error: + + ../example-clients/transport.c: In function 'main': + ../example-clients/transport.c:462:9: error: 'SIGQUIT' undeclared (first use in this function) + signal(SIGQUIT, signal_handler); + ^ + ../example-clients/transport.c:462:9: note: each undeclared identifier is reported only once for each function it appears in + ../example-clients/transport.c:464:9: error: 'SIGHUP' undeclared (first use in this function) + signal(SIGHUP, signal_handler); + ^ + +diff --git a/example-clients/transport.c b/example-clients/transport.c +index 1111111..2222222 100644 +--- a/example-clients/transport.c ++++ b/example-clients/transport.c +@@ -459,9 +459,13 @@ int main(int argc, char *argv[]) + return 1; + } + ++#ifndef _WIN32 + signal(SIGQUIT, signal_handler); ++#endif + signal(SIGTERM, signal_handler); ++#ifndef _WIN32 + signal(SIGHUP, signal_handler); ++#endif + signal(SIGINT, signal_handler); + + jack_on_shutdown(client, jack_shutdown, 0); + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Boris Nagaev <bnagaev@gmail.com> +Date: Tue, 1 Sep 2015 22:59:47 +0200 +Subject: [PATCH] link transport.c -lreadline and -ltermcap + +Fixed error: + +src/jack-3-add-lreadline-to-linkflags-of-transport.patch: + + example-clients/transport.c.28.o:transport.c:(.text+0x2e0): undefined reference to `rl_cleanup_after_signal' + example-clients/transport.c.28.o:transport.c:(.text+0xa27): undefined reference to `rl_readline_name' + example-clients/transport.c.28.o:transport.c:(.text+0xa2d): undefined reference to `rl_completion_entry_function' + example-clients/transport.c.28.o:transport.c:(.text+0xa3e): undefined reference to `readline' + example-clients/transport.c.28.o:transport.c:(.text+0xa82): undefined reference to `add_history' + +diff --git a/example-clients/wscript b/example-clients/wscript +index 1111111..2222222 100644 +--- a/example-clients/wscript ++++ b/example-clients/wscript +@@ -49,12 +49,13 @@ def configure(conf): + conf.check_cfg(package='celt', atleast_version='0.5.0', args='--cflags --libs', mandatory=False) + + e = conf.check_cc(lib='readline', define_name="HAVE_READLINE", mandatory=False) ++ e = conf.check_cc(lib='termcap', define_name="HAVE_TERMCAP", mandatory=False) + + # define_name="HAVE_READLINE" has no effect, LIB_READLINE is defined if readline is available + #if conf.is_defined('HAVE_READLINE'): + # conf.env['LIB_READLINE'] = ['readline'] + +- conf.env['BUILD_EXAMPLE_CLIENT_TRANSPORT'] = bool(conf.env['LIB_READLINE']) ++ conf.env['BUILD_EXAMPLE_CLIENT_TRANSPORT'] = bool(conf.env['LIB_READLINE']) and bool(conf.env['LIB_TERMCAP']) + + conf.env['BUILD_EXAMPLE_CLIENT_REC'] = conf.is_defined('HAVE_SNDFILE') + +@@ -112,6 +113,7 @@ def build(bld): + if bld.env['IS_MACOSX']: + prog.use += ['READLINE'] + prog.target = 'jack_transport' ++ prog.use += ['READLINE', 'TERMCAP'] + + if bld.env['BUILD_EXAMPLE_CLIENT_REC']: + prog = bld(features = 'c cprogram') + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Boris Nagaev <bnagaev@gmail.com> +Date: Tue, 1 Sep 2015 22:23:51 +0200 +Subject: [PATCH] install jack libs to lib/jack/ instead of lib/ + +Some Jack library names collide with other libraries, +namely portaudio. + +When Jack is installed first time, it adds libportaudio.dll.a to +usr/i686-w64-mingw32.static/lib/. Portaudio has library +usr/i686-w64-mingw32.static/lib/libportaudio.a. When Jack is compiled +second time, it uses its own libportaudio.dll.a instead of +libportaudio.a from portaudio. + +Removing usr/i686-w64-mingw32.static/lib/libportaudio.dll.a fixes build of Jack. + +For i686-w64-mingw32.shared, this can't be fixed by just removing +libportaudio.dll.a before building jack, because both portaudio and +jack have file usr/i686-w64-mingw32.shared/lib/libportaudio.dll.a. +Two packages must not have same file. + +jack's libraries should be installed to subdir of usr/<target>/lib/. + +Jack uses waf build system, which unpacks itself from file "waf". +Installation path for lib*.dll.a (PREFIX + /lib) is hardcoded in waf: + +waflib/Tools/ccroot.py: + + self.implib_install_task=self.bld.install_as('${PREFIX}/lib/%s'%implib.name,implib,self.env) + +The least ugly way to change subdir I can find is changing +function do_install in InstallContext class. Other approaches +either do not work or require changing contents of waflib +(which is unpacked from "waf" file in run-time). + +This patch replaces paths like "lib/libjack.dll.a" with +"lib/jack/libjack.dll.a", but doesn't replace +"/lib/pkgconfig/jack.pc". + +diff --git a/jack.pc.in b/jack.pc.in +index 1111111..2222222 100644 +--- a/jack.pc.in ++++ b/jack.pc.in +@@ -7,5 +7,5 @@ server_libs=-L@LIBDIR@ -l@SERVERLIB@ + Name: jack + Description: the Jack Audio Connection Kit: a low-latency synchronous callback-based media server + Version: @JACK_VERSION@ +-Libs: -L@LIBDIR@ -ljack ++Libs: -L@LIBDIR@/jack -ljack + Cflags: -I@INCLUDEDIR@ +diff --git a/wscript b/wscript +index 1111111..2222222 100644 +--- a/wscript ++++ b/wscript +@@ -378,8 +378,13 @@ def configure(conf): + print(Logs.colors.NORMAL, end=' ') + print() + ++class MyInstallContext(InstallContext): ++ def do_install(self, src, tgt, *args, **kvargs): ++ tgt = str(tgt).replace('/lib/lib', '/lib/jack/lib') ++ InstallContext.do_install(self, src, tgt, *args, **kvargs) ++ + def init(ctx): +- for y in (BuildContext, CleanContext, InstallContext, UninstallContext): ++ for y in (BuildContext, CleanContext, MyInstallContext, UninstallContext): + name = y.__name__.replace('Context','').lower() + class tmp(y): + cmd = name + '_' + lib32 |