[jack-audio-connection-kit] update to 1.9.9.5
Orcan Ogetbil
oget at fedoraproject.org
Fri Dec 28 04:00:50 UTC 2012
commit b10034aa2638f6e2bbda8512a1befd57140d04d9
Author: Orcan Ogetbil <oget.fedora at gmail.com>
Date: Thu Dec 27 23:00:45 2012 -0500
update to 1.9.9.5
.gitignore | 1 +
...dio-connection-kit-1.9.8-sigsegv-handling.patch | 28 --
jack-audio-connection-kit-ppc-uc_regs.patch | 15 -
jack-audio-connection-kit.spec | 55 +--
jack-doxygen-buildfix.patch | 39 ++
jack-ffado-buffersize.patch | 230 ----------
jack-fix-connect-segfault.patch | 35 --
jack-portnames.patch | 447 ++++++++++++++++++++
jack-realtime-compat.patch | 56 ++-
sources | 2 +-
10 files changed, 555 insertions(+), 353 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 8540ee9..b0a228b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@ jack-1.9.5.tar.bz2
/jack-1.9.6.tar.bz2
/jack-1.9.7.tar.bz2
/jack-1.9.8.tgz
+/jack-1.9.9.5.tar.bz2
diff --git a/jack-audio-connection-kit.spec b/jack-audio-connection-kit.spec
index 7a10aca..05050d4 100644
--- a/jack-audio-connection-kit.spec
+++ b/jack-audio-connection-kit.spec
@@ -3,13 +3,13 @@
Summary: The Jack Audio Connection Kit
Name: jack-audio-connection-kit
-Version: 1.9.8
-Release: 14%{?dist}
+Version: 1.9.9.5
+Release: 1%{?dist}
# The entire source (~500 files) is a mixture of these three licenses
License: GPLv2 and GPLv2+ and LGPLv2+
Group: System Environment/Daemons
URL: http://www.jackaudio.org
-Source0: http://www.grame.fr/~letz/jack-%{version}.tgz
+Source0: https://dl.dropbox.com/u/28869550/jack-%{version}.tar.bz2
Source1: %{name}-README.Fedora
Source2: %{name}-script.pa
Source3: %{name}-limits.conf
@@ -19,20 +19,14 @@ Patch0: jack-audio-connection-kit-no_date_footer.patch
Patch1: jack-doxygen-output-dir-fix.patch
# We don't want the internal API documentation
Patch2: jack-apidoc-only.patch
-# Enable ffado buffersize change at runtime. From upstream trunk
-# https://github.com/jackaudio/jack2/commit/96e025123
-Patch3: jack-ffado-buffersize.patch
+# Fix doxygen doc build regression. From upstream trunk 95a1162d6aecc91
+Patch3: jack-doxygen-buildfix.patch
# Adjust default priority. RHBZ#795094
Patch4: jack-realtime-compat.patch
-# Fix jack-connect segfault when invoked with no arguments. From upstream trunk
-# https://github.com/jackaudio/jack2/commit/00280570a
-Patch5: jack-fix-connect-segfault.patch
+# Enable renaming and reordering the jack ports RHBZ#887408
+Patch5: jack-portnames.patch
# Fix ppc64 mpd startup issue RHBZ#799552
Patch6: jack-ppc64-long.patch
-# uc_regs no longer available on ppc64
-Patch7: jack-audio-connection-kit-ppc-uc_regs.patch
-# correct sigsegv handling
-Patch8: jack-audio-connection-kit-1.9.8-sigsegv-handling.patch
BuildRequires: alsa-lib-devel
BuildRequires: dbus-devel
@@ -45,6 +39,8 @@ BuildRequires: libffado-devel
BuildRequires: libsamplerate-devel
BuildRequires: libsndfile-devel
BuildRequires: ncurses-devel
+# We are waiting for RHBZ#887530 to enable opus support
+#BuildRequires: opus-devel
BuildRequires: pkgconfig
BuildRequires: python2
BuildRequires: readline-devel
@@ -77,7 +73,6 @@ Launcher to start Jack through D-Bus.
Summary: Header files for Jack
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
-Requires: pkgconfig
%description devel
Header files for the Jack Audio Connection Kit.
@@ -93,16 +88,13 @@ Small example clients that use the Jack Audio Connection Kit.
%prep
%setup -q -n jack-%{version}
-pushd jack-%{version}
%patch0 -p1 -b .nodate
%patch1 -p1 -b .outdir
%patch2 -p1 -b .nointernalapi
-%patch3 -p1 -b .ffadobuffer
+%patch3 -p1 -b .doxyfix
%patch4 -p1 -b .priority
-%patch5 -p1 -b .connectcrash
+%patch5 -p1 -b .portnames
%patch6 -p1 -b .mpd
-%patch7 -p1 -b .uc_regs
-%patch8 -p1 -b .sigsegvfault
# Fix encoding issues
for file in ChangeLog README TODO; do
@@ -111,18 +103,15 @@ for file in ChangeLog README TODO; do
touch -r $file $file.tmp2
mv -f $file.tmp2 $file
done
-popd
-
%build
-pushd jack-%{version}
-export CPPFLAGS="$RPM_OPT_FLAGS -DJACK_32_64 -O0"
+export CPPFLAGS="$RPM_OPT_FLAGS -O0"
export PREFIX=%{_prefix}
# Parallel build disabled as it fails sometimes
./waf configure \
- -j1 \
- --mandir=/share/man/man1 \
- --libdir=/%{_lib} \
+ %{?_smp_mflags} \
+ --mandir=%{_mandir}/man1 \
+ --libdir=%{_libdir} \
--doxygen \
--dbus \
--classic \
@@ -135,10 +124,8 @@ export PREFIX=%{_prefix}
./waf build %{?_smp_mflags} -v
-popd
%install
-pushd jack-%{version}
./waf --destdir=$RPM_BUILD_ROOT install
# move doxygen documentation to the right place
@@ -161,7 +148,6 @@ mv $RPM_BUILD_ROOT%{_bindir}/jack_rec $RPM_BUILD_ROOT%{_bindir}/jackrec
# Fix permissions of the modules
chmod 755 $RPM_BUILD_ROOT%{_libdir}/jack/*.so $RPM_BUILD_ROOT%{_libdir}/libjack*.so.*.*.*
-popd
%pre
getent group %groupname > /dev/null || groupadd -r %groupname
@@ -172,9 +158,9 @@ exit 0
%postun -p /sbin/ldconfig
%files
-%doc jack-%{version}/ChangeLog jack-%{version}/README jack-%{version}/README_NETJACK2 jack-%{version}/TODO
-%doc jack-%{version}/README.Fedora
-%doc jack-%{version}/jack.pa
+%doc ChangeLog README README_NETJACK2 TODO
+%doc README.Fedora
+%doc jack.pa
%{_bindir}/jackd
%{_bindir}/jackrec
%{_libdir}/jack/
@@ -192,7 +178,7 @@ exit 0
%{_bindir}/jack_control
%files devel
-%doc jack-%{version}/reference/*
+%doc reference/html/
%{_includedir}/jack/
%{_libdir}/libjack.so
%{_libdir}/libjacknet.so
@@ -263,6 +249,9 @@ exit 0
%changelog
+* Tue Dec 25 2012 Orcan Ogetbil <oget[dot]fedora[at]gmail[dot]com> - 1.9.9.5-1
+- update to 1.9.9.5
+
* Tue Nov 20 2012 Brendan Jones <brendan.jones.it at gmail.com> 1.9.8-14
- Correct build flags
diff --git a/jack-doxygen-buildfix.patch b/jack-doxygen-buildfix.patch
new file mode 100644
index 0000000..bfb5098
--- /dev/null
+++ b/jack-doxygen-buildfix.patch
@@ -0,0 +1,39 @@
+diff -rupN jack-1.9.9.5.old/wscript jack-1.9.9.5/wscript
+--- jack-1.9.9.5.old/wscript 2012-12-10 04:26:57.000000000 -0500
++++ jack-1.9.9.5/wscript 2012-12-16 23:29:44.629292671 -0500
+@@ -356,10 +356,11 @@ def build(bld):
+ bld.add_subdirs('dbus')
+
+ if bld.env['BUILD_DOXYGEN_DOCS'] == True:
+- share_dir = bld.env.get_destdir() + bld.env['PREFIX'] + '/share/jack-audio-connection-kit'
+ html_docs_source_dir = "build/default/html"
+- html_docs_install_dir = share_dir + '/reference/html/'
+- if Options.commands['install']:
++ if bld.cmd == 'install':
++ share_dir = bld.options.destdir + bld.env['PREFIX'] + '/share/jack-audio-connection-kit'
++ html_docs_install_dir = share_dir + '/reference/html/'
++
+ if os.path.isdir(html_docs_install_dir):
+ Logs.pprint('CYAN', "Removing old doxygen documentation installation...")
+ shutil.rmtree(html_docs_install_dir)
+@@ -367,17 +368,17 @@ def build(bld):
+ Logs.pprint('CYAN', "Installing doxygen documentation...")
+ shutil.copytree(html_docs_source_dir, html_docs_install_dir)
+ Logs.pprint('CYAN', "Installing doxygen documentation done.")
+- elif Options.commands['uninstall']:
++ elif bld.cmd =='uninstall':
+ Logs.pprint('CYAN', "Uninstalling doxygen documentation...")
+ if os.path.isdir(share_dir):
+ shutil.rmtree(share_dir)
+ Logs.pprint('CYAN', "Uninstalling doxygen documentation done.")
+- elif Options.commands['clean']:
++ elif bld.cmd =='clean':
+ if os.access(html_docs_source_dir, os.R_OK):
+ Logs.pprint('CYAN', "Removing doxygen generated documentation...")
+ shutil.rmtree(html_docs_source_dir)
+ Logs.pprint('CYAN', "Removing doxygen generated documentation done.")
+- elif Options.commands['build']:
++ elif bld.cmd =='build':
+ if not os.access(html_docs_source_dir, os.R_OK):
+ os.popen("doxygen").read()
+ else:
diff --git a/jack-portnames.patch b/jack-portnames.patch
new file mode 100644
index 0000000..0534045
--- /dev/null
+++ b/jack-portnames.patch
@@ -0,0 +1,447 @@
+ 1.) Human-readable portnames on larger cards where "playback_56" is
+ simply to cumbersome to figure out what's actually connected
+ 2.) People who travel with ADAT-ADCs/DACs, but connect them via
+ different interfaces in different locations, e.g. a Multiface
+ when on the road and a RayDat when in the studio. Despite the
+ different cards, the port names and hence any ardour session
+ would remain intact.
+ http://adi.loris.tv/jackd2-portnames.png
+ alsa_pcm:hw:1,0:out1
+ system:capture_1
+ alsa_pcm:hw:1,0:out2
+ system:capture_2
+--- /dev/null
++++ b/linux/alsa/port_names.c
+@@ -0,0 +1,179 @@
++/* -*- mode: c; c-file-style: "linux"; -*- */
++/*
++ Copyright (C) 2010 Florian Faber, faber at faberman.de
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++
++*/
++
++
++#include <math.h>
++#include <stdio.h>
++#include <memory.h>
++#include <unistd.h>
++#include <stdlib.h>
++#include <errno.h>
++#include <stdarg.h>
++#include <signal.h>
++#include <sys/types.h>
++#include <regex.h>
++#include <string.h>
++
++#include "alsa_driver.h"
++
++
++static int port_names_load_portfile(alsa_driver_t *driver, const char *filename, char **buf, const unsigned int offset, const unsigned int num) {
++ int fh, i, ret, lineno, id, res=0;
++ char line[256];
++
++ printf("Trying to load portnames from %s\n", filename);
++ fh = open(filename, O_RDONLY);
++ if (-1!=fh) {
++ res = 1;
++ i = 0;
++ lineno = 1;
++ for (;;) {
++ ret = read(fh, &line[i], 1);
++ if (0==ret) {
++ break;
++ } else if (-1==ret) {
++ sprintf(stderr, "Error while reading \"%s\": %s", filename, strerror(errno));
++ break;
++ }
++ if (0x0A==line[i]) {
++ /* new line, parse input */
++ line[i] = 0;
++
++ if ('#' != line[0]) {
++ i=0;
++ while ((i<255) && (line[i]!='=')) i++;
++ if (255==i) {
++ sprintf(stderr, "Error while reading \"%s\": Line %d has no key=value syntax!", filename, lineno);
++ } else {
++ line[i] = 0;
++ id = atoi(line);
++ if ((id>=1) && (id<=num)) {
++ if (NULL==buf[id-1+offset]) {
++ /* don't overwrite existing names */
++ buf[id-1+offset] = strdup(&line[i+1]);
++ }
++ } else {
++ sprintf(stderr, "Error while reading \"%s\": Key %d out of range in line %d (1..%d)", filename, id, lineno, num);
++ }
++ }
++ }
++
++ i = 0;
++ lineno++;
++ } else {
++ i++;
++ if (i==255) {
++ sprintf(stderr, "Error while reading \"%s\": Line %d is too long", filename, lineno);
++ break;
++ }
++ }
++ }
++
++ (void) close(fh);
++ }
++
++ return res;
++}
++
++
++static void port_names_default_portnames(char **buf, const unsigned int offset, const unsigned int num, const char *defaultname) {
++ unsigned int i;
++ char line[256];
++
++ /* Fill in default names */
++ for (i=0; i<num; i++) {
++ if (NULL==buf[i+offset]) {
++ snprintf(line, 255, defaultname, i+1);
++ buf[i+offset] = strdup(line);
++ }
++ }
++}
++
++
++char** port_names_get_portnames(alsa_driver_t *driver) {
++ snd_ctl_card_info_t *card_info;
++ int err;
++ const char *card_name = NULL;
++ char filename[256], *speed;
++ char **buf;
++
++ printf("Using port names patch v0.1 (07.04.2010)\n");
++
++ if (driver->frame_rate > 96000) {
++ speed="qs";
++ } else if (driver->frame_rate > 48000) {
++ speed="ds";
++ } else {
++ speed="ss";
++ }
++
++ snd_ctl_card_info_alloca(&card_info);
++ err = snd_ctl_card_info(driver->ctl_handle, card_info);
++ if (err >= 0) {
++ card_name = snd_ctl_card_info_get_name(card_info);
++ } else {
++ card_name = "noname";
++ }
++
++ buf = malloc(sizeof(char *)*(driver->capture_nchannels + driver->playback_nchannels));
++ if (NULL==buf) {
++ sprintf(stderr, "ALSA: Not enough memory for %d port names", driver->capture_nchannels + driver->playback_nchannels);
++ return NULL;
++ }
++ bzero(buf, sizeof(char *)*(driver->capture_nchannels + driver->playback_nchannels));
++
++ /* Read port names from special to general:
++ * Begin with user and speed specific port names */
++ snprintf(filename, 255, "%s/.config/jack/cards/%s.%s.ports.in", getenv("HOME"), card_name, speed);
++ (void) port_names_load_portfile(driver, filename, buf, 0, driver->capture_nchannels);
++
++ /* Now user general */
++ snprintf(filename, 255, "%s/.config/jack/cards/%s.ports.in", getenv("HOME"), card_name);
++ (void) port_names_load_portfile(driver, filename, buf, 0, driver->capture_nchannels);
++
++ /* System speed specific */
++ snprintf(filename, 255, "/etc/jack/cards/%s.%s.ports.in", card_name, speed);
++ (void) port_names_load_portfile(driver, filename, buf, 0, driver->capture_nchannels);
++
++ /* System general */
++ snprintf(filename, 255, "/etc/jack/cards/%s.ports.in", card_name);
++ (void) port_names_load_portfile(driver, filename, buf, 0, driver->capture_nchannels);
++
++ /* Fill all still unnamed ports with default names */
++ port_names_default_portnames(buf, 0, driver->capture_nchannels, "capture_%lu");
++
++
++ /* Same procedure for the playback channels */
++ snprintf(filename, 255, "%s/.config/jack/cards/%s.%s.ports.out", getenv("HOME"), card_name, speed);
++ (void) port_names_load_portfile(driver, filename, buf, driver->capture_nchannels, driver->playback_nchannels);
++
++ snprintf(filename, 255, "%s/.config/jack/cards/%s.ports.out", getenv("HOME"), card_name);
++ (void) port_names_load_portfile(driver, filename, buf, driver->capture_nchannels, driver->playback_nchannels);
++
++ snprintf(filename, 255, "/etc/jack/cards/%s.%s.ports.out", card_name, speed);
++ (void) port_names_load_portfile(driver, filename, buf, driver->capture_nchannels, driver->playback_nchannels);
++
++ snprintf(filename, 255, "/etc/jack/cards/%s.ports.out", card_name);
++ (void) port_names_load_portfile(driver, filename, buf, driver->capture_nchannels, driver->playback_nchannels);
++
++ port_names_default_portnames(buf, driver->capture_nchannels, driver->playback_nchannels, "playback_%lu");
++
++ return buf;
++}
+--- /dev/null
++++ b/linux/alsa/port_names.h
+@@ -0,0 +1,34 @@
++/*
++ Copyright (C) 2010 Florian Faber, faber at faberman.de
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++
++*/
++
++#ifndef __jack_port_names_h__
++#define __jack_port_names_h__
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++char** port_names_get_portnames(alsa_driver_t *driver);
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* __jack_port_names_h__ */
+--- a/linux/alsa/JackAlsaDriver.cpp
++++ b/linux/alsa/JackAlsaDriver.cpp
+@@ -42,6 +42,7 @@
+ #include "JackPosixThread.h"
+ #include "JackCompilerDeps.h"
+ #include "JackServerGlobals.h"
++#include "port_names.h"
+
+ namespace Jack
+ {
+@@ -97,6 +98,8 @@
+ unsigned long port_flags = (unsigned long)CaptureDriverFlags;
+ char name[REAL_JACK_PORT_NAME_SIZE];
+ char alias[REAL_JACK_PORT_NAME_SIZE];
++ char old_name[REAL_JACK_PORT_NAME_SIZE];
++ char **portnames;
+
+ assert(fCaptureChannels < DRIVER_PORT_NUM);
+ assert(fPlaybackChannels < DRIVER_PORT_NUM);
+@@ -112,13 +115,17 @@
+
+ jack_log("JackAlsaDriver::Attach fBufferSize %ld fSampleRate %ld", fEngineControl->fBufferSize, fEngineControl->fSampleRate);
+
++ portnames = port_names_get_portnames(alsa_driver);
++
+ for (int i = 0; i < fCaptureChannels; i++) {
+ snprintf(alias, sizeof(alias), "%s:%s:out%d", fAliasName, fCaptureDriverName, i + 1);
+- snprintf(name, sizeof(name), "%s:capture_%d", fClientControl.fName, i + 1);
++ snprintf(old_name, sizeof(old_name), "%s:capture_%d", fClientControl.fName, i + 1);
++ snprintf(name, sizeof(name), "%s:%s", fClientControl.fName, portnames[i]);
+ if (fEngine->PortRegister(fClientControl.fRefNum, name, JACK_DEFAULT_AUDIO_TYPE, (JackPortFlags)port_flags, fEngineControl->fBufferSize, &port_index) < 0) {
+ jack_error("driver: cannot register port for %s", name);
+ return -1;
+ }
++ free(portnames[i]);
+ port = fGraphManager->GetPort(port_index);
+ port->SetAlias(alias);
+ fCapturePortList[i] = port_index;
+@@ -129,11 +136,13 @@
+
+ for (int i = 0; i < fPlaybackChannels; i++) {
+ snprintf(alias, sizeof(alias), "%s:%s:in%d", fAliasName, fPlaybackDriverName, i + 1);
+- snprintf(name, sizeof(name), "%s:playback_%d", fClientControl.fName, i + 1);
++ snprintf(old_name, sizeof(old_name), "%s:playback_%d", fClientControl.fName, i + 1);
++ snprintf(name, sizeof(name), "%s:%s", fClientControl.fName, portnames[i+fCaptureChannels]);
+ if (fEngine->PortRegister(fClientControl.fRefNum, name, JACK_DEFAULT_AUDIO_TYPE, (JackPortFlags)port_flags, fEngineControl->fBufferSize, &port_index) < 0) {
+ jack_error("driver: cannot register port for %s", name);
+ return -1;
+ }
++ free(portnames[i+fCaptureChannels]);
+ port = fGraphManager->GetPort(port_index);
+ port->SetAlias(alias);
+ fPlaybackPortList[i] = port_index;
+@@ -151,6 +160,8 @@
+ }
+ }
+
++ free(portnames);
++
+ UpdateLatencies();
+
+ if (alsa_driver->midi) {
+--- a/linux/wscript
++++ b/linux/wscript
+@@ -55,6 +55,7 @@
+ 'alsa/hdsp.c',
+ 'alsa/alsa_driver.c',
+ 'alsa/hammerfall.c',
++ 'alsa/port_names.c',
+ 'alsa/ice1712.c'
+ ]
+
+ alsa_pcm:hw:1,0:out1
+ system:capture_1
+ alsa_pcm:hw:1,0:out2
+ system:capture_2
+ alsa_pcm:hw:1,0:out3
+ system:capture_3
+ alsa_pcm:hw:1,0:out4
+ system:capture_4
+ alsa_pcm:hw:1,0:out5
+ system:capture_5
+ alsa_pcm:hw:1,0:out6
+ system:capture_6
+ alsa_pcm:hw:1,0:out7
+ system:capture_7
+ alsa_pcm:hw:1,0:out8
+ system:capture_8
+ alsa_pcm:hw:1,0:out9
+ system:capture_9
+ alsa_pcm:hw:1,0:out10
+ system:capture_10
+ alsa_pcm:hw:1,0:out11
+ system:capture_11
+ alsa_pcm:hw:1,0:out12
+ system:capture_12
+ alsa_pcm:hw:1,0:out13
+ system:capture_13
+ alsa_pcm:hw:1,0:out14
+ system:capture_14
+ alsa_pcm:hw:1,0:out15
+ system:capture_15
+ alsa_pcm:hw:1,0:out16
+ system:capture_16
+ alsa_pcm:hw:1,0:out17
+ system:capture_17
+ alsa_pcm:hw:1,0:out18
+ system:capture_18
+ alsa_pcm:hw:1,0:out19
+ system:capture_19
+ alsa_pcm:hw:1,0:out20
+ system:capture_20
+ alsa_pcm:hw:1,0:out21
+ system:capture_21
+ alsa_pcm:hw:1,0:out22
+ system:capture_22
+ alsa_pcm:hw:1,0:out23
+ system:capture_23
+ alsa_pcm:hw:1,0:out24
+ system:capture_24
+ alsa_pcm:hw:1,0:out25
+ system:capture_25
+ alsa_pcm:hw:1,0:out26
+ system:capture_26
+ alsa_pcm:hw:1,0:out27
+ system:capture_27
+ alsa_pcm:hw:1,0:out28
+ system:capture_28
+ alsa_pcm:hw:1,0:out29
+ system:capture_29
+ alsa_pcm:hw:1,0:out30
+ system:capture_30
+ alsa_pcm:hw:1,0:out31
+ system:capture_31
+ alsa_pcm:hw:1,0:out32
+ system:capture_32
+ alsa_pcm:hw:1,0:out33
+ system:capture_33
+ alsa_pcm:hw:1,0:out34
+ system:capture_34
+ alsa_pcm:hw:1,0:out35
+ system:capture_35
+ alsa_pcm:hw:1,0:out36
+ system:capture_36
+ alsa_pcm:hw:1,0:in1
+ system:playback_1
+ alsa_pcm:hw:1,0:in2
+ system:playback_2
+ alsa_pcm:hw:1,0:in3
+ system:playback_3
+ alsa_pcm:hw:1,0:in4
+ system:playback_4
+ alsa_pcm:hw:1,0:in5
+ system:playback_5
+ alsa_pcm:hw:1,0:in6
+ system:playback_6
+ alsa_pcm:hw:1,0:in7
+ system:playback_7
+ alsa_pcm:hw:1,0:in8
+ system:playback_8
+ alsa_pcm:hw:1,0:in9
+ system:playback_9
+ alsa_pcm:hw:1,0:in10
+ system:playback_10
+ alsa_pcm:hw:1,0:in11
+ system:playback_11
+ alsa_pcm:hw:1,0:in12
+ system:playback_12
+ alsa_pcm:hw:1,0:in13
+ system:playback_13
+ alsa_pcm:hw:1,0:in14
+ system:playback_14
+ alsa_pcm:hw:1,0:in15
+ system:playback_15
+ alsa_pcm:hw:1,0:in16
+ system:playback_16
+ alsa_pcm:hw:1,0:in17
+ system:playback_17
+ alsa_pcm:hw:1,0:in18
+ system:playback_18
+ alsa_pcm:hw:1,0:in19
+ system:playback_19
+ alsa_pcm:hw:1,0:in20
+ system:playback_20
+ alsa_pcm:hw:1,0:in21
+ system:playback_21
+ alsa_pcm:hw:1,0:in22
+ system:playback_22
+ alsa_pcm:hw:1,0:in23
+ system:playback_23
+ alsa_pcm:hw:1,0:in24
+ system:playback_24
+ alsa_pcm:hw:1,0:in25
+ system:playback_25
+ alsa_pcm:hw:1,0:in26
+ system:playback_26
+ alsa_pcm:hw:1,0:in27
+ system:playback_27
+ alsa_pcm:hw:1,0:in28
+ system:playback_28
+ alsa_pcm:hw:1,0:in29
+ system:playback_29
+ alsa_pcm:hw:1,0:in30
+ system:playback_30
+ alsa_pcm:hw:1,0:in31
+ system:playback_31
+ alsa_pcm:hw:1,0:in32
+ system:playback_32
+ alsa_pcm:hw:1,0:in33
+ system:playback_33
+ alsa_pcm:hw:1,0:in34
+ system:playback_34
+ alsa_pcm:hw:1,0:in35
+ system:playback_35
+ alsa_pcm:hw:1,0:in36
+ system:playback_36
diff --git a/jack-realtime-compat.patch b/jack-realtime-compat.patch
index 9be6924..05cc0fe 100644
--- a/jack-realtime-compat.patch
+++ b/jack-realtime-compat.patch
@@ -1,24 +1,58 @@
-diff -rupN jack-1.9.8.old/common/JackControlAPI.cpp jack-1.9.8/common/JackControlAPI.cpp
---- jack-1.9.8.old/common/JackControlAPI.cpp 2011-12-19 06:54:02.000000000 -0500
-+++ jack-1.9.8/common/JackControlAPI.cpp 2012-04-07 15:04:06.882823048 -0400
-@@ -678,7 +678,7 @@ SERVER_EXPORT jackctl_server_t * jackctl
+diff -rupN jack-1.9.9.5.old/common/JackControlAPI.cpp jack-1.9.9.5/common/JackControlAPI.cpp
+--- jack-1.9.9.5.old/common/JackControlAPI.cpp 2012-12-10 04:26:56.000000000 -0500
++++ jack-1.9.9.5/common/JackControlAPI.cpp 2012-12-15 21:40:01.639927082 -0500
+@@ -32,6 +32,7 @@
+ #include <stdio.h>
+ #include <assert.h>
+ #include <signal.h>
++#include <sys/utsname.h>
+
+ #include "jslist.h"
+ #include "driver_interface.h"
+@@ -756,7 +757,14 @@ SERVER_EXPORT jackctl_server_t * jackctl
goto fail_free_parameters;
}
- value.i = 10;
-+ value.i = 60;
++ struct utsname utsname;
++ int success;
++ success = uname( &utsname );
++ if( success == 0 && strstr( utsname.version, "PREEMPT RT" ) )
++ value.i = 60;
++ else
++ value.i = 20;
++
if (jackctl_add_parameter(
&server_ptr->parameters,
"realtime-priority",
-diff -rupN jack-1.9.8.old/common/JackServerGlobals.cpp jack-1.9.8/common/JackServerGlobals.cpp
---- jack-1.9.8.old/common/JackServerGlobals.cpp 2011-12-19 06:54:02.000000000 -0500
-+++ jack-1.9.8/common/JackServerGlobals.cpp 2012-04-07 15:05:11.841498738 -0400
-@@ -98,7 +98,7 @@ bool JackServerGlobals::Init()
+diff -rupN jack-1.9.9.5.old/common/JackServerGlobals.cpp jack-1.9.9.5/common/JackServerGlobals.cpp
+--- jack-1.9.9.5.old/common/JackServerGlobals.cpp 2012-12-10 04:26:56.000000000 -0500
++++ jack-1.9.9.5/common/JackServerGlobals.cpp 2012-12-15 21:45:43.793194190 -0500
+@@ -23,6 +23,7 @@ Foundation, Inc., 675 Mass Ave, Cambridg
+ #include "shm.h"
+ #include <getopt.h>
+ #include <errno.h>
++#include <sys/utsname.h>
+
+ static char* server_name = NULL;
+
+@@ -96,9 +97,18 @@ void JackServerGlobals::Delete()
+
+ bool JackServerGlobals::Init()
{
++ struct utsname utsname;
++ int success;
++ success = uname( &utsname );
++
int realtime = 0;
int client_timeout = 0; /* msecs; if zero, use period size. */
- int realtime_priority = 10;
-+ int realtime_priority = 60;
++ int realtime_priority;
++ if( success == 0 && strstr( utsname.version, "PREEMPT RT" ) )
++ realtime_priority = 60;
++ else
++ realtime_priority = 20;
++
int verbose_aux = 0;
- int do_mlock = 1;
unsigned int port_max = 128;
+ int temporary = 0;
diff --git a/sources b/sources
index edccc32..3d602e9 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-1dd2ff054cab79dfc11d134756f27165 jack-1.9.8.tgz
+6c9de6b89db9d7076fa2ce222816cf4c jack-1.9.9.5.tar.bz2
More information about the scm-commits
mailing list