aboutsummaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authornox <nox@FreeBSD.org>2014-10-28 03:31:53 +0800
committernox <nox@FreeBSD.org>2014-10-28 03:31:53 +0800
commit176fe46e61522fc073fb2a78fc51345e56e0eff6 (patch)
tree5fd781efaf78db81b1126fbb1ce1475d13419fbe /audio
parentcf1640c2c2d7e6651f41f1e39c913a2a0879428e (diff)
downloadfreebsd-ports-graphics-176fe46e61522fc073fb2a78fc51345e56e0eff6.tar.gz
freebsd-ports-graphics-176fe46e61522fc073fb2a78fc51345e56e0eff6.tar.zst
freebsd-ports-graphics-176fe46e61522fc073fb2a78fc51345e56e0eff6.zip
- Update to 0.124.1 .
- Add patch to fix handling of signals during read/write operations. PR: 194545 Submitted by: hselasky
Diffstat (limited to 'audio')
-rw-r--r--audio/jack/Makefile12
-rw-r--r--audio/jack/distinfo4
-rw-r--r--audio/jack/files/patch-drivers-alsa-midi-alsa_rawmidi.c11
-rw-r--r--audio/jack/files/patch-libjack-client.c189
-rw-r--r--audio/jack/pkg-plist28
5 files changed, 216 insertions, 28 deletions
diff --git a/audio/jack/Makefile b/audio/jack/Makefile
index 7948f173260..50b337e25ca 100644
--- a/audio/jack/Makefile
+++ b/audio/jack/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= jackit
-PORTVERSION= 0.121.3
-PORTREVISION= 5
+PORTVERSION= 0.124.1
CATEGORIES= audio
MASTER_SITES= http://jackaudio.org/downloads/
DISTNAME= jack-audio-connection-kit-${PORTVERSION}
@@ -17,16 +16,20 @@ LICENSE_COMB= multi
LIB_DEPENDS= libportaudio.so:${PORTSDIR}/audio/portaudio \
libsndfile.so:${PORTSDIR}/audio/libsndfile \
libsamplerate.so:${PORTSDIR}/audio/libsamplerate \
- libcelt0.so:${PORTSDIR}/audio/celt
+ libcelt0.so:${PORTSDIR}/audio/celt \
+ libuuid.so:${PORTSDIR}/misc/e2fsprogs-libuuid
GNU_CONFIGURE= yes
USE_LDCONFIG= yes
USES= gmake pathfix pkgconfig libtool:keepla
+USE_BDB= 48
CONFIGURE_ARGS= --enable-portaudio \
--with-default-tmpdir=/tmp
+
+CFLAGS+= -I${BDB_INCLUDE_DIR}
CPPFLAGS+= -I${LOCALBASE}/include
-LIBS+= -L${LOCALBASE}/lib
+LIBS+= -L${LOCALBASE}/lib -L${BDB_LIB_DIR}
INSTALL_TARGET= install-strip
LATEST_LINK= jack
@@ -55,6 +58,7 @@ CONFIGURE_ENV+= ac_cv_lib_readline_readline=no \
post-patch:
@${REINPLACE_CMD} -e 's|define USE_MLOCK|undef USE_MLOCK|' \
+ -e 's|alloca.h||' \
${WRKSRC}/configure
@${REINPLACE_CMD} -e "s,-lpthread,-pthread," \
${WRKSRC}/configure ${WRKSRC}/libjack/Makefile.in \
diff --git a/audio/jack/distinfo b/audio/jack/distinfo
index f6722f62eee..700ef355d68 100644
--- a/audio/jack/distinfo
+++ b/audio/jack/distinfo
@@ -1,2 +1,2 @@
-SHA256 (jack-audio-connection-kit-0.121.3.tar.gz) = b7095d3deabeecd19772b37241e89c6c79de6afd6c031ba7567513cfe51beafa
-SIZE (jack-audio-connection-kit-0.121.3.tar.gz) = 1083545
+SHA256 (jack-audio-connection-kit-0.124.1.tar.gz) = eb42df6065576f08feeeb60cb9355dce4eb53874534ad71534d7aa31bae561d6
+SIZE (jack-audio-connection-kit-0.124.1.tar.gz) = 1113456
diff --git a/audio/jack/files/patch-drivers-alsa-midi-alsa_rawmidi.c b/audio/jack/files/patch-drivers-alsa-midi-alsa_rawmidi.c
deleted file mode 100644
index 3d74601b7f6..00000000000
--- a/audio/jack/files/patch-drivers-alsa-midi-alsa_rawmidi.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./drivers/alsa-midi/alsa_rawmidi.c.orig 2008-05-29 16:26:07.000000000 +0400
-+++ ./drivers/alsa-midi/alsa_rawmidi.c 2012-05-16 20:10:24.645166068 +0400
-@@ -853,7 +853,7 @@
- struct timespec ts;
- ts.tv_sec = 0;
- ts.tv_nsec = wait_nanosleep;
-- clock_nanosleep(CLOCK_MONOTONIC, 0, &ts, NULL);
-+ nanosleep(&ts, NULL);
- }
- int res = poll((struct pollfd*)&pfds, npfds, poll_timeout);
- //debug_log("midi_thread(%s): poll exit: %d", str->name, res);
diff --git a/audio/jack/files/patch-libjack-client.c b/audio/jack/files/patch-libjack-client.c
new file mode 100644
index 00000000000..26d3324f29b
--- /dev/null
+++ b/audio/jack/files/patch-libjack-client.c
@@ -0,0 +1,189 @@
+--- libjack/client.c.orig 2014-10-23 09:09:09.000000000 +0200
++++ libjack/client.c 2014-10-23 09:20:15.000000000 +0200
+@@ -116,6 +116,30 @@
+
+ char *jack_tmpdir = DEFAULT_TMP_DIR;
+
++/*
++ * The following read/write wrappers handle the case of interruption
++ * by system signals:
++ */
++static int
++read_retry(int fd, void *dst, int size)
++{
++ int error;
++ do {
++ error = read(fd, dst, size);
++ } while (error == -1 && errno == EINTR);
++ return (error);
++}
++
++static int
++write_retry(int fd, const void *src, int size)
++{
++ int error;
++ do {
++ error = write(fd, src, size);
++ } while (error == -1 && errno == EINTR);
++ return (error);
++}
++
+ static int
+ jack_get_tmpdir ()
+ {
+@@ -248,7 +272,7 @@
+ 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 @@
+
+ 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 @@
+ }
+ }
+
+- 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 @@
+
+ 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)",
+ strerror (errno));
+ close (fd);
+ return -1;
+ }
+
+- 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 @@
+ 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)) {
+ jack_error ("cannot send request to jack server (%s)",
+ strerror (errno));
+ *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 (errno == 0) {
+ /* server shut the socket */
+@@ -1456,7 +1480,7 @@
+ return;
+ }
+
+- 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 @@
+
+ request.x.session.type = code;
+
+- 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 @@
+ 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)) {
+ jack_error ("cannot read result for request type %d from"
+ " server (%s)", request.type, strerror (errno));
+ goto out;
+@@ -1613,19 +1637,19 @@
+ 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) {
+ jack_error ("cannot read result for request type %d from"
+ " 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) {
+ jack_error ("cannot read result for request type %d from"
+ " 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) ) {
+ jack_error ("cannot read result for request type %d from"
+ " server (%s)", request.type, strerror (errno));
+@@ -1742,7 +1766,7 @@
+ /* 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)) {
+ jack_error ("cannot read server event (%s)",
+ strerror (errno));
+@@ -1751,7 +1775,7 @@
+
+ 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 @@
+ 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)) {
+ jack_error ("cannot send event response to "
+ "engine (%s)", strerror (errno));
+@@ -1888,7 +1912,7 @@
+ 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);
+ jack_error ("cannot continue execution of the "
+@@ -1916,7 +1940,7 @@
+ }
+
+ 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)) {
+ jack_error ("cannot complete execution of the "
+ "processing graph (%s)", strerror(errno));
diff --git a/audio/jack/pkg-plist b/audio/jack/pkg-plist
index ff07916621d..3ab89713e86 100644
--- a/audio/jack/pkg-plist
+++ b/audio/jack/pkg-plist
@@ -18,6 +18,7 @@ bin/jack_midisine
bin/jack_midi_dump
bin/jack_monitor_client
bin/jack_netsource
+bin/jack_property
bin/jack_rec
bin/jack_samplerate
bin/jack_session_notify
@@ -33,18 +34,18 @@ bin/jackd
include/jack/control.h
include/jack/intclient.h
include/jack/jack.h
+include/jack/jslist.h
+include/jack/metadata.h
include/jack/midiport.h
include/jack/ringbuffer.h
include/jack/session.h
include/jack/statistics.h
include/jack/thread.h
-include/jack/timestamps.h
include/jack/transport.h
include/jack/types.h
-include/jack/weakmacros.h
+include/jack/uuid.h
include/jack/weakjack.h
-%%ALSA%%lib/jack/a2j_in.la
-%%ALSA%%lib/jack/a2j_in.so
+include/jack/weakmacros.h
lib/jack/inprocess.la
lib/jack/inprocess.so
lib/jack/intime.la
@@ -77,8 +78,8 @@ man/man1/jackstart.1.gz
%%DOCS%%share/jack-audio-connection-kit/reference/html/control_8h.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/control_8h_source.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/deprecated.html
-%%DOCS%%share/jack-audio-connection-kit/reference/html/dir_d611c2c1e1e252f8153c91ce21a161f9.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/dir_3e6ff996e0a05d442d13220a8cf7408f.html
+%%DOCS%%share/jack-audio-connection-kit/reference/html/dir_d611c2c1e1e252f8153c91ce21a161f9.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/doxygen.css
%%DOCS%%share/jack-audio-connection-kit/reference/html/doxygen.png
%%DOCS%%share/jack-audio-connection-kit/reference/html/files.html
@@ -86,20 +87,20 @@ man/man1/jackstart.1.gz
%%DOCS%%share/jack-audio-connection-kit/reference/html/functions.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/functions_vars.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/globals.html
+%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_defs.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_e.html
+%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_enum.html
+%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_eval.html
+%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_func.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_i.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_j.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_m.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_o.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_p.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_t.html
-%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_w.html
-%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_defs.html
-%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_enum.html
-%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_eval.html
-%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_func.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_type.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_vars.html
+%%DOCS%%share/jack-audio-connection-kit/reference/html/globals_w.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/group__ClientCallbacks.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/group__ClientFunctions.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/group__ClientThreads.html
@@ -108,6 +109,7 @@ man/man1/jackstart.1.gz
%%DOCS%%share/jack-audio-connection-kit/reference/html/group__JackSessionManagerAPI.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/group__LatencyFunctions.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/group__MIDIAPI.html
+%%DOCS%%share/jack-audio-connection-kit/reference/html/group__Metadata.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/group__NonCallbackAPI.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/group__PortFunctions.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/group__PortSearching.html
@@ -123,6 +125,8 @@ man/man1/jackstart.1.gz
%%DOCS%%share/jack-audio-connection-kit/reference/html/jack_8h.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/jack_8h_source.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/mainpage_8dox.html
+%%DOCS%%share/jack-audio-connection-kit/reference/html/metadata_8h.html
+%%DOCS%%share/jack-audio-connection-kit/reference/html/metadata_8h_source.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/midiport_8h.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/midiport_8h_source.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/modules.html
@@ -139,12 +143,14 @@ man/man1/jackstart.1.gz
%%DOCS%%share/jack-audio-connection-kit/reference/html/struct__jack__latency__range.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/struct__jack__midi__event.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/struct__jack__session__event.html
+%%DOCS%%share/jack-audio-connection-kit/reference/html/structjack__description__t.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/structjack__position__t.html
+%%DOCS%%share/jack-audio-connection-kit/reference/html/structjack__property__t.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/structjack__ringbuffer__data__t.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/structjack__ringbuffer__t.html
+%%DOCS%%share/jack-audio-connection-kit/reference/html/structjack__session__command__t.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/structjack__transport__info__t.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/structport__pair__t.html
-%%DOCS%%share/jack-audio-connection-kit/reference/html/structjack__session__command__t.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/thread_8h.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/thread_8h_source.html
%%DOCS%%share/jack-audio-connection-kit/reference/html/transport-design.html