Index: Makefile =================================================================== --- Makefile (revision 437609) +++ Makefile (working copy) @@ -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 @@ 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 @@ 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||' \ Index: distinfo =================================================================== --- distinfo (revision 437609) +++ distinfo (working copy) @@ -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 Index: files/patch-configure =================================================================== --- files/patch-configure (revision 437609) +++ files/patch-configure (nonexistent) @@ -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 Property changes on: files/patch-configure ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: files/patch-drivers_alsa_memops.c =================================================================== --- files/patch-drivers_alsa_memops.c (revision 437609) +++ files/patch-drivers_alsa_memops.c (working copy) @@ -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 Index: files/patch-drivers_dummy_dummy__driver.c =================================================================== --- files/patch-drivers_dummy_dummy__driver.c (revision 437609) +++ files/patch-drivers_dummy_dummy__driver.c (nonexistent) @@ -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; Property changes on: files/patch-drivers_dummy_dummy__driver.c ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: files/patch-drivers_dummy_dummy__driver.h =================================================================== --- files/patch-drivers_dummy_dummy__driver.h (revision 437609) +++ files/patch-drivers_dummy_dummy__driver.h (nonexistent) @@ -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; Property changes on: files/patch-drivers_dummy_dummy__driver.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: files/patch-drivers_oss_oss__driver.c =================================================================== --- files/patch-drivers_oss_oss__driver.c (revision 437609) +++ files/patch-drivers_oss_oss__driver.c (working copy) @@ -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,11 +8,11 @@ #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(); @@ -19,100 +19,96 @@ 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(); @@ -119,87 +115,84 @@ 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; Index: files/patch-jack.pc.in =================================================================== --- files/patch-jack.pc.in (revision 437609) +++ files/patch-jack.pc.in (working copy) @@ -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} Index: files/patch-jackd_engine.c =================================================================== --- files/patch-jackd_engine.c (revision 437609) +++ files/patch-jackd_engine.c (working copy) @@ -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)", Index: files/patch-libjack_client.c =================================================================== --- files/patch-libjack_client.c (revision 437609) +++ files/patch-libjack_client.c (working copy) @@ -1,9 +1,9 @@ ---- 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 () +@@ -69,6 +69,30 @@ + static pthread_mutex_t client_lock; + static pthread_cond_t client_ready; - char *jack_tmpdir = DEFAULT_TMP_DIR; - +/* + * The following read/write wrappers handle the case of interruption + * by system signals: @@ -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; + 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)); +- 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 - } - } + /* if necessary, add variable length key data after a PropertyChange request +@@ -260,7 +284,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 (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 + } + } - if (wok && rok) { /* everything OK? */ -@@ -822,14 +846,14 @@ server_event_connect (jack_client_t *cli +- 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)); Index: pkg-plist =================================================================== --- pkg-plist (revision 437609) +++ pkg-plist (working copy) @@ -53,6 +53,7 @@ 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