--- audio/jack/Makefile (revision 446051) +++ audio/jack/Makefile (working copy) @@ -3,10 +3,8 @@ PORTNAME= jackit PORTVERSION= 0.125.0 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= audio -MASTER_SITES= http://jackaudio.org/downloads/ -DISTNAME= jack-audio-connection-kit-${PORTVERSION} MAINTAINER= multimedia@FreeBSD.org COMMENT= Low latency audio server @@ -19,10 +17,18 @@ libcelt0.so:audio/celt \ libuuid.so:misc/e2fsprogs-libuuid +USES= autoreconf gmake pathfix pkgconfig libtool localbase bdb +USE_GITHUB= yes +GH_ACCOUNT= jackaudio +GH_PROJECT= jack1 +GH_TAGNAME= 90f9dd3 +GH_TUPLE= jackaudio:headers:07f1ecf:h/jack +GH_TUPLE+= jackaudio:tools:8d13c31:t/tools +GH_TUPLE+= jackaudio:example-clients:7fa0890:e/example-clients +USE_LDCONFIG= yes GNU_CONFIGURE= yes -USE_LDCONFIG= yes -USES= gmake pathfix pkgconfig libtool localbase bdb USE_RC_SUBR= jackd +SUB_FILES= pkg-message CONFIGURE_ARGS= --disable-portaudio \ --enable-force-install \ @@ -29,12 +35,14 @@ --with-default-tmpdir=/tmp CFLAGS+= -I${BDB_INCLUDE_DIR} +COOKEDMODE_CFLAGS+= -DOPTION_COOKEDMODE=1 LIBS+= -L${BDB_LIB_DIR} INSTALL_TARGET= install-strip -OPTIONS_DEFINE= ALSA DOXYGEN READLINE SNDIO -OPTIONS_DEFAULT=READLINE +OPTIONS_DEFINE= ALSA DOXYGEN READLINE SNDIO COOKEDMODE +OPTIONS_DEFAULT=READLINE COOKEDMODE OPTIONS_SUB= yes +COOKEDMODE_DESC=Use OSS COOKEDMODE (OSS driver is broken without it) ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_CONFIGURE_ENABLE= alsa @@ -51,20 +59,6 @@ SNDIO_CONFIGURE_ENABLE= sndio 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 \ - ${WRKSRC}/jackd/Makefile.in \ - ${WRKSRC}/example-clients/Makefile.in ${WRKSRC}/jack.pc.in - @${REINPLACE_CMD} -e "s,-lrt,," ${WRKSRC}/libjack/Makefile.in \ - ${WRKSRC}/jackd/Makefile.in \ - ${WRKSRC}/example-clients/Makefile.in - @${REINPLACE_CMD} -e "s,-ldl,," ${WRKSRC}/jackd/Makefile.in \ - ${WRKSRC}/example-clients/Makefile.in - @${REINPLACE_CMD} -e 's|md5sum|md5 -q|g' \ - ${WRKSRC}/jackd/Makefile.in @${RM} ${WRKSRC}/doc/reference/html/* post-build: --- audio/jack/distinfo (revision 446051) +++ audio/jack/distinfo (working copy) @@ -1,3 +1,9 @@ -TIMESTAMP = 1491234945 -SHA256 (jack-audio-connection-kit-0.125.0.tar.gz) = 3517b5bff82139a76b2b66fe2fd9a3b34b6e594c184f95a988524c575b11d444 -SIZE (jack-audio-connection-kit-0.125.0.tar.gz) = 1217977 +TIMESTAMP = 1500250305 +SHA256 (jackaudio-jack1-0.125.0-90f9dd3_GH0.tar.gz) = e0ba7dcf58fa934af51329cd329f466fe8d2bc180d07e4ab8be21ed80c60aa8a +SIZE (jackaudio-jack1-0.125.0-90f9dd3_GH0.tar.gz) = 392822 +SHA256 (jackaudio-headers-07f1ecf_GH0.tar.gz) = 04a3bb87d278923985ba44045b7a27439c90776cc5d4a6016d062fc7a6aa5023 +SIZE (jackaudio-headers-07f1ecf_GH0.tar.gz) = 36704 +SHA256 (jackaudio-tools-8d13c31_GH0.tar.gz) = 23e6bc60c8cef4283677206f2687a408367203a725c091c923f48554ae6e8cc8 +SIZE (jackaudio-tools-8d13c31_GH0.tar.gz) = 45544 +SHA256 (jackaudio-example-clients-7fa0890_GH0.tar.gz) = 79e2ac1d38d7d77b1afb71aa97414c339e8c00613a5d9b725861232b5c995223 +SIZE (jackaudio-example-clients-7fa0890_GH0.tar.gz) = 16174 --- audio/jack/files/patch-drivers_oss_oss__driver.c (revision 446051) +++ audio/jack/files/patch-drivers_oss_oss__driver.c (working copy) @@ -1,4 +1,4 @@ ---- drivers/oss/oss_driver.c.orig 2016-02-23 15:13:53 UTC +--- drivers/oss/oss_driver.c.orig 2017-01-10 10:20:51 UTC +++ drivers/oss/oss_driver.c @@ -23,6 +23,7 @@ @@ -83,7 +83,20 @@ dstidx += chcount; } break; -@@ -441,19 +454,7 @@ static int oss_driver_start (oss_driver_ +@@ -429,7 +442,11 @@ static int oss_driver_detach (oss_driver + + static int oss_driver_start (oss_driver_t *driver) + { +- int flags = 0; ++#if defined(OPTION_COOKEDMODE) ++ int cookedmode = 1; ++#else ++ int cookedmode = 0; ++#endif + int format; + int channels; + int samplerate; +@@ -441,19 +458,7 @@ static int oss_driver_start (oss_driver_ const char *indev = driver->indev; const char *outdev = driver->outdev; @@ -104,7 +117,52 @@ driver->trigger = 0; if (strcmp (indev, outdev) != 0) { if (driver->capture_channels > 0) { -@@ -705,7 +706,9 @@ static int oss_driver_start (oss_driver_ +@@ -464,7 +469,7 @@ static int oss_driver_start (oss_driver_ + indev, __FILE__, __LINE__, errno); + } + #ifndef OSS_NO_COOKED_MODE +- ioctl (infd, SNDCTL_DSP_COOKEDMODE, &flags); ++ ioctl (infd, SNDCTL_DSP_COOKEDMODE, &cookedmode); + #endif + fragsize = driver->period_size * + driver->capture_channels * samplesize; +@@ -479,7 +484,7 @@ static int oss_driver_start (oss_driver_ + outdev, __FILE__, __LINE__, errno); + } + #ifndef OSS_NO_COOKED_MODE +- ioctl (outfd, SNDCTL_DSP_COOKEDMODE, &flags); ++ ioctl (outfd, SNDCTL_DSP_COOKEDMODE, &cookedmode); + #endif + fragsize = driver->period_size * + driver->playback_channels * samplesize; +@@ -497,7 +502,7 @@ static int oss_driver_start (oss_driver_ + return -1; + } + #ifndef OSS_NO_COOKED_MODE +- ioctl (infd, SNDCTL_DSP_COOKEDMODE, &flags); ++ ioctl (infd, SNDCTL_DSP_COOKEDMODE, &cookedmode); + #endif + } else if (driver->capture_channels == 0 && + driver->playback_channels != 0) { +@@ -510,7 +515,7 @@ static int oss_driver_start (oss_driver_ + return -1; + } + #ifndef OSS_NO_COOKED_MODE +- ioctl (outfd, SNDCTL_DSP_COOKEDMODE, &flags); ++ ioctl (outfd, SNDCTL_DSP_COOKEDMODE, &cookedmode); + #endif + } else { + infd = outfd = open (indev, O_RDWR | O_EXCL); +@@ -521,7 +526,7 @@ static int oss_driver_start (oss_driver_ + return -1; + } + #ifndef OSS_NO_COOKED_MODE +- ioctl (infd, SNDCTL_DSP_COOKEDMODE, &flags); ++ ioctl (infd, SNDCTL_DSP_COOKEDMODE, &cookedmode); + #endif + } + if (infd >= 0 && outfd >= 0) { +@@ -705,7 +710,9 @@ static int oss_driver_start (oss_driver_ sem_post (&driver->sem_start); } @@ -115,7 +173,7 @@ driver->next_periodtime = 0; driver->iodelay = 0.0F; -@@ -1143,6 +1146,23 @@ jack_driver_t * driver_initialize (jack_ +@@ -1143,6 +1150,23 @@ jack_driver_t * driver_initialize (jack_ pnode = jack_slist_next (pnode); } @@ -139,7 +197,7 @@ driver->sample_rate = sample_rate; driver->period_size = period_size; driver->nperiods = nperiods; -@@ -1163,58 +1183,6 @@ jack_driver_t * driver_initialize (jack_ +@@ -1163,58 +1187,6 @@ jack_driver_t * driver_initialize (jack_ } driver->infd = -1; driver->outfd = -1; --- audio/jack/files/pkg-message.in (nonexistent) +++ audio/jack/files/pkg-message.in (working copy) @@ -0,0 +1,26 @@ +====================================================================== +It is recommended to run Jack with real-time priority (-R). + +The recommended way to start Jack is to add the following +lines to /etc/rc.conf: + +jackd_enable="YES" +jackd_user="{your-jack-user}" +jackd_rtprio="YES" +jackd_args="-R -doss -r{sample-rate} -p1024 -n3 -w16 \ + --capture /dev/dsp{N} --playback /dev/dsp{N}" + +Where: +- your-jack-user: is the user who is going to use jack; currently + only one user is supported +- sample-rate: can be 44100, 48000, etc. +- /dev/dsp{N}: your OSS devices, usually /dev/dsp0 + +Please note that the port option COOKEDMODE is "on" by default, which +makes your system to automatically scale the sample-rate between +apps and audio hardware. One reason COOKEDMODE=on is because the +Jack's OSS driver doesn't support some sample-rate and hardware +combinations when COOKEDMODE=off. To achieve the best sound quality +please make sure your hardware natively supports the sample-rate set +in jackd_args, and set COOKEDMODE=off. +====================================================================== --- audio/jack/pkg-plist (revision 446051) +++ audio/jack/pkg-plist (working copy) @@ -61,7 +61,28 @@ lib/libjackserver.so.0 lib/libjackserver.so.0.0.28 libdata/pkgconfig/jack.pc +man/man1/alsa_in.1.gz +man/man1/alsa_out.1.gz +man/man1/jack_bufsize.1.gz +man/man1/jack_connect.1.gz +man/man1/jack_disconnect.1.gz +man/man1/jack_freewheel.1.gz +man/man1/jack_impulse_grabber.1.gz +man/man1/jack_iodelay.1.gz +man/man1/jack_load.1.gz +man/man1/jack_load_test.1.gz +man/man1/jack_lsp.1.gz +man/man1/jack_metro.1.gz +man/man1/jack_monitor_client.1.gz +man/man1/jack_netsource.1.gz +man/man1/jack_property.1.gz +man/man1/jack_samplerate.1.gz +man/man1/jack_showtime.1.gz +man/man1/jack_transport.1.gz +man/man1/jack_unload.1.gz +man/man1/jack_wait.1.gz man/man1/jackd.1.gz +man/man1/jackrec.1.gz man/man1/jackstart.1.gz %%DOXYGEN%%share/jack-audio-connection-kit/reference/html/annotated.html %%DOXYGEN%%share/jack-audio-connection-kit/reference/html/classes.html