aboutsummaryrefslogtreecommitdiff
path: root/audio/jack
diff options
context:
space:
mode:
authorThomas Zander <riggs@FreeBSD.org>2017-05-06 12:58:55 +0000
committerThomas Zander <riggs@FreeBSD.org>2017-05-06 12:58:55 +0000
commitd9c6b86d6d2f311ef7a58bc67ce0a6153d4ae10e (patch)
tree6902cededde07d3daadad74002b38188b8412a20 /audio/jack
parentb0fe75db3dc4728b28de1a7a0308fa4246177480 (diff)
downloadports-d9c6b86d6d2f311ef7a58bc67ce0a6153d4ae10e.tar.gz
ports-d9c6b86d6d2f311ef7a58bc67ce0a6153d4ae10e.zip
Update to upstream version 0.125.0, add SNDIO option
PR: 218338 Submitted by: tobik
Notes
Notes: svn path=/head/; revision=440260
Diffstat (limited to 'audio/jack')
-rw-r--r--audio/jack/Makefile14
-rw-r--r--audio/jack/distinfo5
-rw-r--r--audio/jack/files/patch-configure53
-rw-r--r--audio/jack/files/patch-drivers_alsa_memops.c2
-rw-r--r--audio/jack/files/patch-drivers_dummy_dummy__driver.c11
-rw-r--r--audio/jack/files/patch-drivers_dummy_dummy__driver.h11
-rw-r--r--audio/jack/files/patch-drivers_oss_oss__driver.c269
-rw-r--r--audio/jack/files/patch-jack.pc.in2
-rw-r--r--audio/jack/files/patch-jackd_engine.c21
-rw-r--r--audio/jack/files/patch-libjack_client.c205
-rw-r--r--audio/jack/pkg-plist1
11 files changed, 254 insertions, 340 deletions
diff --git a/audio/jack/Makefile b/audio/jack/Makefile
index f48e9a4f6c19..9bebc000797c 100644
--- a/audio/jack/Makefile
+++ b/audio/jack/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= jackit
-PORTVERSION= 0.124.1
-PORTREVISION= 6
+PORTVERSION= 0.125.0
CATEGORIES= audio
MASTER_SITES= http://jackaudio.org/downloads/
DISTNAME= jack-audio-connection-kit-${PORTVERSION}
@@ -21,18 +20,18 @@ LIB_DEPENDS= libsndfile.so:audio/libsndfile \
GNU_CONFIGURE= yes
USE_LDCONFIG= yes
-USES= gmake pathfix pkgconfig libtool bdb
+USES= gmake pathfix pkgconfig libtool localbase bdb
USE_RC_SUBR= jackd
CONFIGURE_ARGS= --disable-portaudio \
+ --enable-force-install \
--with-default-tmpdir=/tmp
CFLAGS+= -I${BDB_INCLUDE_DIR}
-CPPFLAGS+= -I${LOCALBASE}/include
-LIBS+= -L${LOCALBASE}/lib -L${BDB_LIB_DIR}
+LIBS+= -L${BDB_LIB_DIR}
INSTALL_TARGET= install-strip
-OPTIONS_DEFINE= ALSA DOXYGEN READLINE
+OPTIONS_DEFINE= ALSA DOXYGEN READLINE SNDIO
OPTIONS_DEFAULT=READLINE
OPTIONS_SUB= yes
@@ -47,6 +46,9 @@ DOXYGEN_CONFIGURE_ENV_OFF= ac_cv_prog_HAVE_DOXYGEN="false"
READLINE_CONFIGURE_ENV_OFF= ac_cv_lib_readline_readline=no \
ac_cv_header_readline_chardefs_h=no
+SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio
+SNDIO_CONFIGURE_ENABLE= sndio
+
post-patch:
@${REINPLACE_CMD} -e 's|define USE_MLOCK|undef USE_MLOCK|' \
-e 's|alloca.h||' \
diff --git a/audio/jack/distinfo b/audio/jack/distinfo
index 700ef355d68e..6a98cb33f05d 100644
--- a/audio/jack/distinfo
+++ b/audio/jack/distinfo
@@ -1,2 +1,3 @@
-SHA256 (jack-audio-connection-kit-0.124.1.tar.gz) = eb42df6065576f08feeeb60cb9355dce4eb53874534ad71534d7aa31bae561d6
-SIZE (jack-audio-connection-kit-0.124.1.tar.gz) = 1113456
+TIMESTAMP = 1491234945
+SHA256 (jack-audio-connection-kit-0.125.0.tar.gz) = 3517b5bff82139a76b2b66fe2fd9a3b34b6e594c184f95a988524c575b11d444
+SIZE (jack-audio-connection-kit-0.125.0.tar.gz) = 1217977
diff --git a/audio/jack/files/patch-configure b/audio/jack/files/patch-configure
deleted file mode 100644
index ffbf502f3b2d..000000000000
--- a/audio/jack/files/patch-configure
+++ /dev/null
@@ -1,53 +0,0 @@
---- configure.orig 2014-01-22 20:23:47 UTC
-+++ configure
-@@ -2607,50 +2607,6 @@ ac_link='$CC -o conftest$ac_exeext $CFLA
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
--
--
--
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking existing, conflicting JACK installs" >&5
--$as_echo_n "checking existing, conflicting JACK installs... " >&6; }
--not_overwriting=0
--installs=
--for dir in /usr/lib /usr/local/lib /opt/lib ; do
-- if test -d $dir ; then
-- if test $(find $dir/ -name 'libjack.so.*' 2>/dev/null | wc -l) -gt 0 ; then
-- if echo $prefix/lib | grep -vs $dir >/dev/null 2>&1 ; then
-- not_overwriting=$(expr $not_overwriting + 1)
-- fi
-- installs="$installs $dir"
-- fi
-- fi
--done
--
--if test $not_overwriting -gt 0 ; then
-- echo
-- echo
-- echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
-- echo "You appear to have at least one existing installation of JACK."
-- echo
-- echo "Complete or partial JACK installs exist in:$installs"
-- echo
-- echo "Installing this version will leave at least one of these"
-- echo "existing installations installed and this will probably break"
-- echo "JACK on your machine. "
-- echo
-- echo "Before building, you should first remove the existing JACK"
-- echo "installation(s). "
-- echo
-- echo "Alternatively use ./configure --prefix=... to force overwriting"
-- echo "the existing install."
-- echo
-- echo "WARNING: ON ANY DEBIAN-DERIVED DISTRIBUTION (Debian, Ubuntu etc)"
-- echo "CHANGING THE INSTALLATION PREFIX WILL NOT PRODUCE A WORKING JACK"
-- echo "INSTALL. Please contact the distribution packager for JACK and"
-- echo "ask them to fix their packaging."
-- echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
-- exit 1
--fi
--
- ac_aux_dir=
- for ac_dir in config "$srcdir"/config; do
- for ac_t in install-sh install.sh shtool; do
diff --git a/audio/jack/files/patch-drivers_alsa_memops.c b/audio/jack/files/patch-drivers_alsa_memops.c
index 6f31f947c57c..ea2b1524440b 100644
--- a/audio/jack/files/patch-drivers_alsa_memops.c
+++ b/audio/jack/files/patch-drivers_alsa_memops.c
@@ -1,4 +1,4 @@
---- drivers/alsa/memops.c.orig 2013-10-04 00:45:25 UTC
+--- drivers/alsa/memops.c.orig 2016-02-23 15:13:53 UTC
+++ drivers/alsa/memops.c
@@ -30,7 +30,7 @@
#include <stdlib.h>
diff --git a/audio/jack/files/patch-drivers_dummy_dummy__driver.c b/audio/jack/files/patch-drivers_dummy_dummy__driver.c
deleted file mode 100644
index 6289ef2928e6..000000000000
--- a/audio/jack/files/patch-drivers_dummy_dummy__driver.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- drivers/dummy/dummy_driver.c.orig 2013-10-04 00:45:25 UTC
-+++ drivers/dummy/dummy_driver.c
-@@ -73,7 +73,7 @@ FakeVideoSync( dummy_driver_t *driver )
- }
- }
-
--#ifdef HAVE_CLOCK_GETTIME
-+#if HAVE_CLOCK_GETTIME
- static inline unsigned long long ts_to_nsec(struct timespec ts)
- {
- return ts.tv_sec * 1000000000LL + ts.tv_nsec;
diff --git a/audio/jack/files/patch-drivers_dummy_dummy__driver.h b/audio/jack/files/patch-drivers_dummy_dummy__driver.h
deleted file mode 100644
index 4dd31438c269..000000000000
--- a/audio/jack/files/patch-drivers_dummy_dummy__driver.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- drivers/dummy/dummy_driver.h.orig 2013-10-04 00:45:25 UTC
-+++ drivers/dummy/dummy_driver.h
-@@ -44,7 +44,7 @@ struct _dummy_driver
- jack_nframes_t period_size;
- unsigned long wait_time;
-
--#ifdef HAVE_CLOCK_GETTIME
-+#if HAVE_CLOCK_GETTIME
- struct timespec next_wakeup;
- #else
- jack_time_t next_time;
diff --git a/audio/jack/files/patch-drivers_oss_oss__driver.c b/audio/jack/files/patch-drivers_oss_oss__driver.c
index 0ae2d99a0842..8163808148ba 100644
--- a/audio/jack/files/patch-drivers_oss_oss__driver.c
+++ b/audio/jack/files/patch-drivers_oss_oss__driver.c
@@ -1,4 +1,4 @@
---- drivers/oss/oss_driver.c.orig 2013-10-04 00:45:25 UTC
+--- drivers/oss/oss_driver.c.orig 2016-02-23 15:13:53 UTC
+++ drivers/oss/oss_driver.c
@@ -23,6 +23,7 @@
@@ -8,198 +8,191 @@
#ifdef USE_BARRIER
/*
* POSIX conformance level should be globally defined somewhere, possibly
-@@ -183,7 +184,9 @@ static void set_period_size (oss_driver_
- ((double) driver->period_size /
- (double) driver->sample_rate) * 1e6;
+@@ -172,7 +173,9 @@ static void set_period_size (oss_driver_
+ ((double)driver->period_size /
+ (double)driver->sample_rate) * 1e6;
driver->last_wait_ust = 0;
-- driver->last_periodtime = driver->engine->get_microseconds();
+- driver->last_periodtime = driver->engine->get_microseconds ();
+ driver->last_periodtime = driver->engine ?
+ driver->engine->get_microseconds() :
+ jack_get_microseconds();
driver->next_periodtime = 0;
driver->iodelay = 0.0F;
}
-@@ -191,7 +194,9 @@ static void set_period_size (oss_driver_
+@@ -180,7 +183,9 @@ static void set_period_size (oss_driver_
static inline void update_times (oss_driver_t *driver)
{
-- driver->last_periodtime = driver->engine->get_microseconds();
+- driver->last_periodtime = driver->engine->get_microseconds ();
+ driver->last_periodtime = driver->engine ?
+ driver->engine->get_microseconds() :
+ jack_get_microseconds();
- if (driver->next_periodtime > 0)
- {
+ if (driver->next_periodtime > 0) {
driver->iodelay = (float)
-@@ -224,6 +229,7 @@ static void copy_and_convert_in (jack_sa
+ ((long double)driver->last_periodtime -
+@@ -211,6 +216,7 @@ static void copy_and_convert_in (jack_sa
int dstidx;
- signed short *s16src = (signed short *) src;
- signed int *s32src = (signed int *) src;
+ signed short *s16src = (signed short*)src;
+ signed int *s32src = (signed int*)src;
+ unsigned char *s24src = (unsigned char *) src;
- double *f64src = (double *) src;
+ double *f64src = (double*)src;
jack_sample_t scale;
-@@ -240,11 +246,14 @@ static void copy_and_convert_in (jack_sa
- }
- break;
- case 24:
-- scale = 1.0f / 0x7fffff;
-+ scale = 1.0f / 0x7fffffff;
- for (dstidx = 0; dstidx < nframes; dstidx++)
- {
- dst[dstidx] = (jack_sample_t)
-- s32src[srcidx] * scale;
-+ ((signed int)(
-+ (s24src[3 * srcidx + 2] << 24) |
-+ (s24src[3 * srcidx + 1] << 16) |
-+ (s24src[3 * srcidx + 0] << 8))) * scale;
- srcidx += chcount;
- }
- break;
-@@ -274,6 +283,7 @@ static void copy_and_convert_out (void *
+@@ -225,10 +231,13 @@ static void copy_and_convert_in (jack_sa
+ }
+ break;
+ case 24:
+- scale = 1.0f / 0x7fffff;
++ scale = 1.0f / 0x7fffffff;
+ for (dstidx = 0; dstidx < nframes; dstidx++) {
+ dst[dstidx] = (jack_sample_t)
+- s32src[srcidx] * scale;
++ ((signed int)(
++ (s24src[3 * srcidx + 2] << 24) |
++ (s24src[3 * srcidx + 1] << 16) |
++ (s24src[3 * srcidx + 0] << 8))) * scale;
+ srcidx += chcount;
+ }
+ break;
+@@ -256,6 +265,7 @@ static void copy_and_convert_out (void *
int srcidx;
int dstidx;
- signed short *s16dst = (signed short *) dst;
+ signed short *s16dst = (signed short*)dst;
+ unsigned char *s24dst = (unsigned char *) dst;
- signed int *s32dst = (signed int *) dst;
- double *f64dst = (double *) dst;
+ signed int *s32dst = (signed int*)dst;
+ double *f64dst = (double*)dst;
jack_sample_t scale;
-@@ -293,13 +303,17 @@ static void copy_and_convert_out (void *
- }
- break;
- case 24:
-- scale = 0x7fffff;
-+ scale = 0x7fffffff;
- for (srcidx = 0; srcidx < nframes; srcidx++)
- {
-- s32dst[dstidx] = (signed int)
-- (src[srcidx] >= 0.0f) ?
-- (src[srcidx] * scale + 0.5f) :
-- (src[srcidx] * scale - 0.5f);
-+ signed int sample =
-+ (src[srcidx] >= 0.0f) ?
-+ (src[srcidx] * scale + 0.5f) :
-+ (src[srcidx] * scale - 0.5f) ;
-+
-+ s24dst[3*dstidx + 2] = sample >> 24;
-+ s24dst[3*dstidx + 1] = sample >> 16;
-+ s24dst[3*dstidx + 0] = sample >> 8;
- dstidx += chcount;
- }
- break;
-@@ -471,20 +485,7 @@ static int oss_driver_start (oss_driver_
+@@ -273,12 +283,15 @@ static void copy_and_convert_out (void *
+ }
+ break;
+ case 24:
+- scale = 0x7fffff;
++ scale = 0x7fffffff;
+ for (srcidx = 0; srcidx < nframes; srcidx++) {
+- s32dst[dstidx] = (signed int)
+- (src[srcidx] >= 0.0f) ?
+- (src[srcidx] * scale + 0.5f) :
+- (src[srcidx] * scale - 0.5f);
++ signed int sample =
++ (src[srcidx] >= 0.0f) ?
++ (src[srcidx] * scale + 0.5f) :
++ (src[srcidx] * scale - 0.5f) ;
++ s24dst[3*dstidx + 2] = sample >> 24;
++ s24dst[3*dstidx + 1] = sample >> 16;
++ s24dst[3*dstidx + 0] = sample >> 8;
+ dstidx += chcount;
+ }
+ break;
+@@ -441,19 +454,7 @@ static int oss_driver_start (oss_driver_
const char *indev = driver->indev;
const char *outdev = driver->outdev;
-- switch (driver->bits)
-- {
-- case 24:
-- case 32:
-- samplesize = sizeof(int);
-- break;
-- case 64:
-- samplesize = sizeof(double);
-- break;
-- case 16:
-- default:
-- samplesize = sizeof(short);
-- break;
+- switch (driver->bits) {
+- case 24:
+- case 32:
+- samplesize = sizeof(int);
+- break;
+- case 64:
+- samplesize = sizeof(double);
+- break;
+- case 16:
+- default:
+- samplesize = sizeof(short);
+- break;
- }
+ samplesize = driver->bits / 8;
driver->trigger = 0;
- if (strcmp(indev, outdev) != 0)
- {
-@@ -762,7 +763,9 @@ static int oss_driver_start (oss_driver_
- if (driver->threads & 1) sem_post(&driver->sem_start);
- if (driver->threads & 2) sem_post(&driver->sem_start);
+ if (strcmp (indev, outdev) != 0) {
+ if (driver->capture_channels > 0) {
+@@ -705,7 +706,9 @@ static int oss_driver_start (oss_driver_
+ sem_post (&driver->sem_start);
+ }
-- driver->last_periodtime = driver->engine->get_microseconds();
+- driver->last_periodtime = driver->engine->get_microseconds ();
+ driver->last_periodtime = driver->engine ?
+ driver->engine->get_microseconds() :
+ jack_get_microseconds();
driver->next_periodtime = 0;
driver->iodelay = 0.0F;
-@@ -1235,7 +1238,24 @@ jack_driver_t * driver_initialize (jack_
- }
- pnode = jack_slist_next(pnode);
+@@ -1143,6 +1146,23 @@ jack_driver_t * driver_initialize (jack_
+ pnode = jack_slist_next (pnode);
}
--
-+
+
+ switch (bits)
+ {
-+ case 16: /* native-endian 16-bit integer */
++ case 16: /* native-endian 16-bit integer */
+ driver->format = AFMT_S16_NE;
+ break;
-+ case 24: /* little-endian 24-bit integer */
++ case 24: /* little-endian 24-bit integer */
+ driver->format = AFMT_S24_LE;
+ break;
-+ case 32: /* native-endian 32-bit integer */
++ case 32: /* native-endian 32-bit integer */
+ driver->format = AFMT_S32_NE;
+ break;
+ default:
+ free(driver);
+ jack_error("OSS: invalid number of bits: %d",
-+ __FILE__, __LINE__, bits);
++ __FILE__, __LINE__, bits);
+ return NULL;
+ }
driver->sample_rate = sample_rate;
driver->period_size = period_size;
driver->nperiods = nperiods;
-@@ -1254,59 +1274,6 @@ jack_driver_t * driver_initialize (jack_
- driver->outdev = strdup(OSS_DRIVER_DEF_DEV);
+@@ -1163,58 +1183,6 @@ jack_driver_t * driver_initialize (jack_
+ }
driver->infd = -1;
driver->outfd = -1;
-- switch (driver->bits)
-- {
--# ifndef OSS_ENDIAN
--# ifdef __GNUC__
--# if (defined(__i386__) || defined(__alpha__) || defined(__arm__) || defined(__x86_64__) || (defined(__sh__) && !defined(__LITTLE_ENDIAN__)))
--# define OSS_LITTLE_ENDIAN 1234
--# define OSS_ENDIAN OSS_LITTLE_ENDIAN
--# else
--# define OSS_BIG_ENDIAN 4321
--# define OSS_ENDIAN OSS_BIG_ENDIAN
--# endif
--# else /* __GNUC__ */
--# if (defined(_AIX) || defined(AIX) || defined(sparc) || defined(__hppa) || defined(PPC) || defined(__powerpc__) && !defined(i386) && !defined(__i386) && !defined(__i386__))
--# define OSS_BIG_ENDIAN 4321
--# define OSS_ENDIAN OSS_BIG_ENDIAN
--# else
--# define OSS_LITTLE_ENDIAN 1234
--# define OSS_ENDIAN OSS_LITTLE_ENDIAN
--# endif
--# endif /* __GNUC__ */
--# endif /* OSS_ENDIAN */
--# if (OSS_ENDIAN == 1234)
-- /* little-endian architectures */
-- case 24: /* little-endian LSB aligned 24-bits in 32-bits integer */
-- driver->format = 0x00008000;
-- break;
-- case 32: /* little-endian 32-bit integer */
-- driver->format = 0x00001000;
-- break;
-- case 64: /* native-endian 64-bit float */
-- driver->format = 0x00004000;
-- break;
-- case 16: /* little-endian 16-bit integer */
-- default:
-- driver->format = 0x00000010;
-- break;
+- switch (driver->bits) {
+-# ifndef OSS_ENDIAN
+-# ifdef __GNUC__
+-# if (defined(__i386__) || defined(__alpha__) || defined(__arm__) || defined(__x86_64__) || (defined(__sh__) && !defined(__LITTLE_ENDIAN__)))
+-# define OSS_LITTLE_ENDIAN 1234
+-# define OSS_ENDIAN OSS_LITTLE_ENDIAN
+-# else
+-# define OSS_BIG_ENDIAN 4321
+-# define OSS_ENDIAN OSS_BIG_ENDIAN
+-# endif
+-# else /* __GNUC__ */
+-# if (defined(_AIX) || defined(AIX) || defined(sparc) || defined(__hppa) || defined(PPC) || defined(__powerpc__) && !defined(i386) && !defined(__i386) && !defined(__i386__))
+-# define OSS_BIG_ENDIAN 4321
+-# define OSS_ENDIAN OSS_BIG_ENDIAN
+-# else
+-# define OSS_LITTLE_ENDIAN 1234
+-# define OSS_ENDIAN OSS_LITTLE_ENDIAN
+-# endif
+-# endif /* __GNUC__ */
+-# endif /* OSS_ENDIAN */
+-# if (OSS_ENDIAN == 1234)
+- /* little-endian architectures */
+- case 24: /* little-endian LSB aligned 24-bits in 32-bits integer */
+- driver->format = 0x00008000;
+- break;
+- case 32: /* little-endian 32-bit integer */
+- driver->format = 0x00001000;
+- break;
+- case 64: /* native-endian 64-bit float */
+- driver->format = 0x00004000;
+- break;
+- case 16: /* little-endian 16-bit integer */
+- default:
+- driver->format = 0x00000010;
+- break;
- /* big-endian architectures */
--# else
-- case 24: /* big-endian LSB aligned 24-bits in 32-bits integer */
-- break;
-- driver->format = 0x00010000;
-- case 32: /* big-endian 32-bit integer */
-- driver->format = 0x00002000;
-- break;
-- case 64: /* native-endian 64-bit float */
-- driver->format = 0x00004000;
-- break;
-- case 16: /* big-endian 16-bit integer */
-- default:
-- driver->format = 0x00000020;
--# endif
+-# else
+- case 24: /* big-endian LSB aligned 24-bits in 32-bits integer */
+- break;
+- driver->format = 0x00010000;
+- case 32: /* big-endian 32-bit integer */
+- driver->format = 0x00002000;
+- break;
+- case 64: /* native-endian 64-bit float */
+- driver->format = 0x00004000;
+- break;
+- case 16: /* big-endian 16-bit integer */
+- default:
+- driver->format = 0x00000020;
+-# endif
- }
-
driver->indevbuf = driver->outdevbuf = NULL;
diff --git a/audio/jack/files/patch-jack.pc.in b/audio/jack/files/patch-jack.pc.in
index 9ee5fd5636de..24f9490d22da 100644
--- a/audio/jack/files/patch-jack.pc.in
+++ b/audio/jack/files/patch-jack.pc.in
@@ -5,5 +5,5 @@
Description: the Jack Audio Connection Kit: a low-latency synchronous callback-based media server
Version: @JACK_VERSION@
-Libs: -L${libdir} -ljack -lpthread @OS_LDFLAGS@
-+Libs: -L${libdir} -ljack -lpthread
++Libs: -L${libdir} -ljack -pthread
Cflags: -I${includedir}
diff --git a/audio/jack/files/patch-jackd_engine.c b/audio/jack/files/patch-jackd_engine.c
index 572108ccb3c3..1eadfe3985ab 100644
--- a/audio/jack/files/patch-jackd_engine.c
+++ b/audio/jack/files/patch-jackd_engine.c
@@ -1,20 +1,11 @@
---- jackd/engine.c.orig 2013-11-30 17:04:00 UTC
+--- jackd/engine.c.orig 2016-09-14 17:41:53 UTC
+++ jackd/engine.c
-@@ -1415,7 +1415,7 @@ handle_external_client_request (jack_eng
- if ((r = read (client->request_fd, &req, sizeof (req)))
- < (ssize_t) sizeof (req)) {
+@@ -1435,7 +1435,7 @@ handle_external_client_request (jack_eng
+ if ((r = read (client->request_fd, &req, sizeof(req)))
+ < (ssize_t)sizeof(req)) {
if (r == 0) {
--#ifdef JACK_USE_MACH_THREADS
-+#ifndef __linux
+-#if defined(JACK_USE_MACH_THREADS) || defined(__OpenBSD__)
++#if 1
/* poll is implemented using
select (see the macosx/fakepoll
code). When the socket is closed
-@@ -1428,7 +1428,7 @@ handle_external_client_request (jack_eng
- and remove the client.
- */
- jack_mark_client_socket_error (engine, fd);
--#endif /* JACK_USE_MACH_THREADS */
-+#endif /* !__linux */
- return 1;
- } else {
- jack_error ("cannot read request from client (%d/%d/%s)",
diff --git a/audio/jack/files/patch-libjack_client.c b/audio/jack/files/patch-libjack_client.c
index b5e7fa9508b3..779cb71f4999 100644
--- a/audio/jack/files/patch-libjack_client.c
+++ b/audio/jack/files/patch-libjack_client.c
@@ -1,8 +1,8 @@
---- libjack/client.c.orig 2014-01-21 22:48:10 UTC
+--- libjack/client.c.orig 2016-09-14 17:41:53 UTC
+++ libjack/client.c
-@@ -116,6 +116,30 @@ init_cpu ()
-
- char *jack_tmpdir = DEFAULT_TMP_DIR;
+@@ -69,6 +69,30 @@
+ static pthread_mutex_t client_lock;
+ static pthread_cond_t client_ready;
+/*
+ * The following read/write wrappers handle the case of interruption
@@ -29,161 +29,162 @@
+}
+
static int
- jack_get_tmpdir ()
- {
-@@ -248,7 +272,7 @@ oop_client_deliver_request (void *ptr, j
+ jack_client_close_aux(jack_client_t *client);
+
+@@ -252,7 +276,7 @@ oop_client_deliver_request (void *ptr, j
int wok, rok;
- jack_client_t *client = (jack_client_t*) ptr;
-
-- wok = (write (client->request_fd, req, sizeof (*req))
-+ wok = (write_retry (client->request_fd, req, sizeof (*req))
- == sizeof (*req));
-
- /* if necessary, add variable length key data after a PropertyChange request
-@@ -256,7 +280,7 @@ oop_client_deliver_request (void *ptr, j
-
- if (req->type == PropertyChangeNotify) {
- if (req->x.property.keylen) {
-- if (write (client->request_fd, req->x.property.key, req->x.property.keylen) != req->x.property.keylen) {
-+ if (write_retry (client->request_fd, req->x.property.key, req->x.property.keylen) != req->x.property.keylen) {
- jack_error ("cannot send property key of length %d to server",
- req->x.property.keylen);
- req->status = -1;
-@@ -265,7 +289,7 @@ oop_client_deliver_request (void *ptr, j
- }
- }
-
-- rok = (read (client->request_fd, req, sizeof (*req))
-+ rok = (read_retry (client->request_fd, req, sizeof (*req))
- == sizeof (*req));
-
- if (wok && rok) { /* everything OK? */
-@@ -822,14 +846,14 @@ server_event_connect (jack_client_t *cli
+ jack_client_t *client = (jack_client_t*)ptr;
+
+- wok = (write (client->request_fd, req, sizeof(*req))
++ wok = (write_retry (client->request_fd, req, sizeof(*req))
+ == sizeof(*req));
+
+ /* if necessary, add variable length key data after a PropertyChange request
+@@ -260,7 +284,7 @@ oop_client_deliver_request (void *ptr, j
+
+ if (req->type == PropertyChangeNotify) {
+ if (req->x.property.keylen) {
+- if (write (client->request_fd, req->x.property.key, req->x.property.keylen) != req->x.property.keylen) {
++ if (write_retry (client->request_fd, req->x.property.key, req->x.property.keylen) != req->x.property.keylen) {
+ jack_error ("cannot send property key of length %d to server",
+ req->x.property.keylen);
+ req->status = -1;
+@@ -269,7 +293,7 @@ oop_client_deliver_request (void *ptr, j
+ }
+ }
+
+- rok = (read (client->request_fd, req, sizeof(*req))
++ rok = (read_retry (client->request_fd, req, sizeof(*req))
+ == sizeof(*req));
+
+ if (wok && rok) { /* everything OK? */
+@@ -838,14 +862,14 @@ server_event_connect (jack_client_t *cli
jack_uuid_copy (&req.client_id, client->control->uuid);
-- if (write (fd, &req, sizeof (req)) != sizeof (req)) {
-+ if (write_retry (fd, &req, sizeof (req)) != sizeof (req)) {
- jack_error ("cannot write event connect request to server (%s)",
+- if (write (fd, &req, sizeof(req)) != sizeof(req)) {
+- jack_error ("cannot write event connect request to server (%s)",
++ if (write_retry (fd, &req, sizeof(req)) != sizeof(req)) {
++ jack_error ("cannot write_retry event connect request to server (%s)",
strerror (errno));
close (fd);
return -1;
}
-- if (read (fd, &res, sizeof (res)) != sizeof (res)) {
-+ if (read_retry (fd, &res, sizeof (res)) != sizeof (res)) {
+- if (read (fd, &res, sizeof(res)) != sizeof(res)) {
++ if (read_retry (fd, &res, sizeof(res)) != sizeof(res)) {
jack_error ("cannot read event connect result from server (%s)",
strerror (errno));
close (fd);
-@@ -1070,14 +1094,14 @@ jack_request_client (ClientType type,
- snprintf (req.object_data, sizeof (req.object_data),
+@@ -1110,14 +1134,14 @@ jack_request_client (ClientType type,
+ snprintf (req.object_data, sizeof(req.object_data),
"%s", va->load_init);
-- if (write (*req_fd, &req, sizeof (req)) != sizeof (req)) {
-+ if (write_retry (*req_fd, &req, sizeof (req)) != sizeof (req)) {
+- if (write (*req_fd, &req, sizeof(req)) != sizeof(req)) {
++ if (write_retry (*req_fd, &req, sizeof(req)) != sizeof(req)) {
jack_error ("cannot send request to jack server (%s)",
strerror (errno));
- *status |= (JackFailure|JackServerError);
+ *status |= (JackFailure | JackServerError);
goto fail;
}
-- if (read (*req_fd, res, sizeof (*res)) != sizeof (*res)) {
-+ if (read_retry (*req_fd, res, sizeof (*res)) != sizeof (*res)) {
+- if (read (*req_fd, res, sizeof(*res)) != sizeof(*res)) {
++ if (read_retry (*req_fd, res, sizeof(*res)) != sizeof(*res)) {
if (errno == 0) {
/* server shut the socket */
-@@ -1456,7 +1480,7 @@ jack_internal_client_close (const char *
+@@ -1513,7 +1537,7 @@ jack_internal_client_close (const char *
return;
}
-- if (write (fd, &req, sizeof (req)) != sizeof(req)) {
-+ if (write_retry (fd, &req, sizeof (req)) != sizeof(req)) {
+- if (write (fd, &req, sizeof(req)) != sizeof(req)) {
++ if (write_retry (fd, &req, sizeof(req)) != sizeof(req)) {
jack_error ("cannot deliver ClientUnload request to JACK "
"server.");
}
-@@ -1582,7 +1606,7 @@ jack_session_notify (jack_client_t* clie
+@@ -1649,7 +1673,7 @@ jack_session_notify (jack_client_t* clie
request.x.session.type = code;
-
-- if( (write (client->request_fd, &request, sizeof (request))
-+ if( (write_retry (client->request_fd, &request, sizeof (request))
- != sizeof (request)) ) {
+
+- if ( (write (client->request_fd, &request, sizeof(request))
++ if ( (write_retry (client->request_fd, &request, sizeof(request))
+ != sizeof(request)) ) {
jack_error ("cannot send request type %d to server",
- request.type);
-@@ -1592,7 +1616,7 @@ jack_session_notify (jack_client_t* clie
- while( 1 ) {
+ request.type);
+@@ -1659,7 +1683,7 @@ jack_session_notify (jack_client_t* clie
+ while ( 1 ) {
jack_uuid_t uid;
-- if (read (client->request_fd, &uid, sizeof (uid)) != sizeof (uid)) {
-+ if (read_retry (client->request_fd, &uid, sizeof (uid)) != sizeof (uid)) {
+- if (read (client->request_fd, &uid, sizeof(uid)) != sizeof(uid)) {
++ if (read_retry (client->request_fd, &uid, sizeof(uid)) != sizeof(uid)) {
jack_error ("cannot read result for request type %d from"
- " server (%s)", request.type, strerror (errno));
+ " server (%s)", request.type, strerror (errno));
goto out;
-@@ -1613,19 +1637,19 @@ jack_session_notify (jack_client_t* clie
+@@ -1681,19 +1705,19 @@ jack_session_notify (jack_client_t* clie
break;
- }
+ }
-- if (read (client->request_fd, (char *)retval[num_replies-1].client_name, JACK_CLIENT_NAME_SIZE)
-+ if (read_retry (client->request_fd, (char *)retval[num_replies-1].client_name, JACK_CLIENT_NAME_SIZE)
- != JACK_CLIENT_NAME_SIZE) {
+- if (read (client->request_fd, (char*)retval[num_replies - 1].client_name, JACK_CLIENT_NAME_SIZE)
++ if (read_retry (client->request_fd, (char*)retval[num_replies - 1].client_name, JACK_CLIENT_NAME_SIZE)
+ != JACK_CLIENT_NAME_SIZE) {
jack_error ("cannot read result for request type %d from"
- " server (%s)", request.type, strerror (errno));
+ " server (%s)", request.type, strerror (errno));
goto out;
}
-- if (read (client->request_fd, (char *)retval[num_replies-1].command, JACK_PORT_NAME_SIZE)
-+ if (read_retry (client->request_fd, (char *)retval[num_replies-1].command, JACK_PORT_NAME_SIZE)
- != JACK_PORT_NAME_SIZE) {
+- if (read (client->request_fd, (char*)retval[num_replies - 1].command, JACK_PORT_NAME_SIZE)
++ if (read_retry (client->request_fd, (char*)retval[num_replies - 1].command, JACK_PORT_NAME_SIZE)
+ != JACK_PORT_NAME_SIZE) {
jack_error ("cannot read result for request type %d from"
- " server (%s)", request.type, strerror (errno));
+ " server (%s)", request.type, strerror (errno));
goto out;
}
-- if (read (client->request_fd, & retval[num_replies-1].flags, sizeof(retval[num_replies-1].flags) )
-+ if (read_retry (client->request_fd, & retval[num_replies-1].flags, sizeof(retval[num_replies-1].flags) )
- != sizeof(retval[num_replies-1].flags) ) {
+- if (read (client->request_fd, &retval[num_replies - 1].flags, sizeof(retval[num_replies - 1].flags) )
++ if (read_retry (client->request_fd, &retval[num_replies - 1].flags, sizeof(retval[num_replies - 1].flags) )
+ != sizeof(retval[num_replies - 1].flags) ) {
jack_error ("cannot read result for request type %d from"
- " server (%s)", request.type, strerror (errno));
-@@ -1742,7 +1766,7 @@ jack_client_process_events (jack_client_
+ " server (%s)", request.type, strerror (errno));
+@@ -1812,7 +1836,7 @@ jack_client_process_events (jack_client_
/* server has sent us an event. process the
* event and reply */
-
-- if (read (client->event_fd, &event, sizeof (event))
-+ if (read_retry (client->event_fd, &event, sizeof (event))
- != sizeof (event)) {
+
+- if (read (client->event_fd, &event, sizeof(event))
++ if (read_retry (client->event_fd, &event, sizeof(event))
+ != sizeof(event)) {
jack_error ("cannot read server event (%s)",
strerror (errno));
-@@ -1751,7 +1775,7 @@ jack_client_process_events (jack_client_
-
- if (event.type == PropertyChange) {
- key = (char *) malloc (event.y.key_size);
-- if (read (client->event_fd, key, event.y.key_size) !=
-+ if (read_retry (client->event_fd, key, event.y.key_size) !=
- event.y.key_size) {
- jack_error ("cannot read property change key (%s)",
- strerror (errno));
-@@ -1868,7 +1892,7 @@ jack_client_process_events (jack_client_
+@@ -1822,7 +1846,7 @@ jack_client_process_events (jack_client_
+ if (event.type == PropertyChange) {
+ if (event.y.key_size) {
+ key = (char*)malloc (event.y.key_size);
+- if (read (client->event_fd, key, event.y.key_size) !=
++ if (read_retry (client->event_fd, key, event.y.key_size) !=
+ event.y.key_size) {
+ jack_error ("cannot read property change key (%s)",
+ strerror (errno));
+@@ -1941,7 +1965,7 @@ jack_client_process_events (jack_client_
DEBUG ("client has dealt with the event, writing "
"response on event fd");
-
-- if (write (client->event_fd, &status, sizeof (status))
-+ if (write_retry (client->event_fd, &status, sizeof (status))
- != sizeof (status)) {
+
+- if (write (client->event_fd, &status, sizeof(status))
++ if (write_retry (client->event_fd, &status, sizeof(status))
+ != sizeof(status)) {
jack_error ("cannot send event response to "
"engine (%s)", strerror (errno));
-@@ -1888,7 +1912,7 @@ jack_wake_next_client (jack_client_t* cl
+@@ -1961,7 +1985,7 @@ jack_wake_next_client (jack_client_t* cl
int pret = 0;
char c = 0;
-- if (write (client->graph_next_fd, &c, sizeof (c))
-+ if (write_retry (client->graph_next_fd, &c, sizeof (c))
- != sizeof (c)) {
- DEBUG("cannot write byte to fd %d", client->graph_next_fd);
+- if (write (client->graph_next_fd, &c, sizeof(c))
++ if (write_retry (client->graph_next_fd, &c, sizeof(c))
+ != sizeof(c)) {
+ DEBUG ("cannot write byte to fd %d", client->graph_next_fd);
jack_error ("cannot continue execution of the "
-@@ -1916,7 +1940,7 @@ jack_wake_next_client (jack_client_t* cl
+@@ -1989,7 +2013,7 @@ jack_wake_next_client (jack_client_t* cl
}
if (pret > 0 && (pfds[0].revents & POLLIN)) {
-- if (read (client->graph_wait_fd, &c, sizeof (c))
-+ if (read_retry (client->graph_wait_fd, &c, sizeof (c))
- != sizeof (c)) {
+- if (read (client->graph_wait_fd, &c, sizeof(c))
++ if (read_retry (client->graph_wait_fd, &c, sizeof(c))
+ != sizeof(c)) {
jack_error ("cannot complete execution of the "
- "processing graph (%s)", strerror(errno));
+ "processing graph (%s)", strerror (errno));
diff --git a/audio/jack/pkg-plist b/audio/jack/pkg-plist
index 360b59be1eba..2874f8479008 100644
--- a/audio/jack/pkg-plist
+++ b/audio/jack/pkg-plist
@@ -53,6 +53,7 @@ lib/jack/intime.so
lib/jack/jack_dummy.so
lib/jack/jack_net.so
lib/jack/jack_oss.so
+%%SNDIO%%lib/jack/jack_sndio.so
lib/libjack.so
lib/libjack.so.0
lib/libjack.so.0.0.28