diff options
author | Hans Petter Selasky <hselasky@FreeBSD.org> | 2022-01-19 10:41:40 +0000 |
---|---|---|
committer | Hans Petter Selasky <hselasky@FreeBSD.org> | 2022-01-19 10:44:09 +0000 |
commit | 93344cda77603560b6ba421778d92be03e70800b (patch) | |
tree | 8254ad5d1bfccf1df47f734e6742e391eb2f920c | |
parent | 05da06fe8bd18146938fa697ade2d063565536d9 (diff) | |
download | ports-93344cda77603560b6ba421778d92be03e70800b.tar.gz ports-93344cda77603560b6ba421778d92be03e70800b.zip |
audio/jack: Update to 1.9.20 release.
The FreeBSD specific changes have been upstreamed, we can fetch the original
sources again. Development of the client examples and tools has been split
from the JACK server, move them to the new port jack-example-tools.
This also includes a fix for missing library symbols, see bug #257696.
Take maintainership of audio/jack and audio/jack-example-tools .
PR: 257696
PR: 261256
Submitted by: Florian Walpen <dev@submerge.ch>
Approved by: pi (implicit)
-rw-r--r-- | audio/Makefile | 1 | ||||
-rw-r--r-- | audio/jack-example-tools/Makefile | 49 | ||||
-rw-r--r-- | audio/jack-example-tools/distinfo | 3 | ||||
-rw-r--r-- | audio/jack-example-tools/pkg-descr | 8 | ||||
-rw-r--r-- | audio/jack-example-tools/pkg-plist | 65 | ||||
-rw-r--r-- | audio/jack/Makefile | 34 | ||||
-rw-r--r-- | audio/jack/distinfo | 6 | ||||
-rw-r--r-- | audio/jack/files/patch-common_JackError.cpp | 10 | ||||
-rw-r--r-- | audio/jack/files/patch-common_JackError.h | 13 | ||||
-rw-r--r-- | audio/jack/pkg-descr | 13 | ||||
-rw-r--r-- | audio/jack/pkg-message | 49 | ||||
-rw-r--r-- | audio/jack/pkg-plist | 60 |
12 files changed, 184 insertions, 127 deletions
diff --git a/audio/Makefile b/audio/Makefile index f6393325b658..50fb1d0ff447 100644 --- a/audio/Makefile +++ b/audio/Makefile @@ -322,6 +322,7 @@ SUBDIR += invada-studio-plugins-lv2 SUBDIR += ir-lv2 SUBDIR += jack + SUBDIR += jack-example-tools SUBDIR += jack-keyboard SUBDIR += jack-smf-utils SUBDIR += jack_ghero diff --git a/audio/jack-example-tools/Makefile b/audio/jack-example-tools/Makefile new file mode 100644 index 000000000000..ef110430d926 --- /dev/null +++ b/audio/jack-example-tools/Makefile @@ -0,0 +1,49 @@ +PORTNAME= jack-example-tools +DISTVERSION= 1 +CATEGORIES= audio + +MAINTAINER= dev@submerge.ch +COMMENT= Low latency audio server + +LICENSE= GPLv2 GPLv3+ +LICENSE_COMB= multi + +LIB_DEPENDS= libjack.so:audio/jack \ + libsndfile.so:audio/libsndfile \ + libsamplerate.so:audio/libsamplerate \ + libsysinfo.so:devel/libsysinfo + +USES= compiler:c11 pkgconfig meson localbase:ldflags + +USE_GITHUB= yes +GH_ACCOUNT= jackaudio + +CFLAGS+= -fPIC +CPPFLAGS+= -I${LOCALBASE}/include + +CONFIGURE_ARGS= -Djack_net=enabled -Djack_netsource=enabled -Djack_rec=enabled + +OPTIONS_DEFINE= ALSA READLINE OPUS +OPTIONS_DEFAULT= READLINE OPUS +OPTIONS_SUB= yes + +ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib \ + libzita-alsa-pcmi.so:audio/zita-alsa-pcmi \ + libzita-resampler.so:audio/zita-resampler +ALSA_MESON_ENABLED= alsa_in_out zalsa + +READLINE_USES= readline +READLINE_MESON_ENABLED= readline_support +READLINE_LDFLAGS= -lreadline + +OPUS_LIB_DEPENDS= libopus.so:audio/opus +OPUS_MESON_ENABLED= opus_support + +.include <bsd.port.pre.mk> + +# The alloca.h header is not available on FreeBSD. Upstream knows: +# https://github.com/jackaudio/jack-example-tools/pull/56 +post-extract: + @${TOUCH} ${WRKSRC}/tools/alloca.h + +.include <bsd.port.post.mk> diff --git a/audio/jack-example-tools/distinfo b/audio/jack-example-tools/distinfo new file mode 100644 index 000000000000..373aad2c1a57 --- /dev/null +++ b/audio/jack-example-tools/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1642267725 +SHA256 (jackaudio-jack-example-tools-1_GH0.tar.gz) = dd4fc199b1cfe73ca31890b2427e935321a4e9934be4b80fa8a159afe75bd446 +SIZE (jackaudio-jack-example-tools-1_GH0.tar.gz) = 124188 diff --git a/audio/jack-example-tools/pkg-descr b/audio/jack-example-tools/pkg-descr new file mode 100644 index 000000000000..94e879e7d142 --- /dev/null +++ b/audio/jack-example-tools/pkg-descr @@ -0,0 +1,8 @@ +JACK Audio Connection Kit (or JACK) is a professional sound server API and pair +of daemon implementations to provide real-time, low-latency connections for +both audio and MIDI data between applications. + +These are the official JACK example clients and tools that are now distributed +separately from the JACK server package. + +WWW: https://jackaudio.org/ diff --git a/audio/jack-example-tools/pkg-plist b/audio/jack-example-tools/pkg-plist new file mode 100644 index 000000000000..35f683f8b3ad --- /dev/null +++ b/audio/jack-example-tools/pkg-plist @@ -0,0 +1,65 @@ +%%ALSA%%bin/alsa_in +%%ALSA%%bin/alsa_out +bin/jack_alias +bin/jack_bufsize +bin/jack_connect +bin/jack_control_client +bin/jack_cpu_load +bin/jack_disconnect +bin/jack_evmon +bin/jack_freewheel +bin/jack_impulse_grabber +bin/jack_iodelay +bin/jack_latent_client +bin/jack_load +bin/jack_load_test +bin/jack_lsp +bin/jack_metro +bin/jack_midi_dump +bin/jack_midi_latency_test +bin/jack_midiseq +bin/jack_midisine +bin/jack_monitor_client +bin/jack_net_master +bin/jack_net_slave +bin/jack_netsource +bin/jack_property +bin/jack_rec +bin/jack_samplerate +bin/jack_server_control +bin/jack_showtime +bin/jack_simdtests +bin/jack_simple_client +bin/jack_thru_client +bin/jack_transport +bin/jack_transport_client +bin/jack_tw +bin/jack_unload +bin/jack_wait +bin/jack_zombie +lib/jack/jack_inprocess.so +lib/jack/jack_internal_metro.so +lib/jack/jack_intime.so +%%ALSA%%lib/jack/zalsa_in.so +%%ALSA%%lib/jack/zalsa_out.so +%%ALSA%%man/man1/alsa_in.1.gz +%%ALSA%%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_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_rec.1.gz +man/man1/jack_samplerate.1.gz +man/man1/jack_showtime.1.gz +man/man1/jack_simple_client.1.gz +man/man1/jack_transport.1.gz +man/man1/jack_unload.1.gz +man/man1/jack_wait.1.gz diff --git a/audio/jack/Makefile b/audio/jack/Makefile index 0873feb1ac25..c33166d1df5d 100644 --- a/audio/jack/Makefile +++ b/audio/jack/Makefile @@ -1,19 +1,15 @@ -# Created by: Tilman Linneweh <arved@FreeBSD.org> - PORTNAME= jackit DISTVERSIONPREFIX= v -DISTVERSION= 1.9.16 -PORTREVISION= 1 +DISTVERSION= 1.9.20 CATEGORIES= audio -MAINTAINER= multimedia@FreeBSD.org +MAINTAINER= dev@submerge.ch COMMENT= Low latency audio server LICENSE= GPLv2 LGPL21 LICENSE_COMB= multi -LIB_DEPENDS= libsndfile.so:audio/libsndfile \ - libsamplerate.so:audio/libsamplerate \ +LIB_DEPENDS= libsamplerate.so:audio/libsamplerate \ libsysinfo.so:devel/libsysinfo USES= compiler:c11 pkgconfig python:3.4+ shebangfix waf @@ -21,20 +17,20 @@ USE_LDCONFIG= yes USE_RC_SUBR= jackd USE_GITHUB= yes -GH_ACCOUNT= 0EVSG +GH_ACCOUNT= jackaudio GH_PROJECT= jack2 -GH_TAGNAME= eaedec353489f26617221d66f80fd2503953c663 CFLAGS+= -fPIC CPPFLAGS+= -I${LOCALBASE}/include -SHEBANG_FILES= tools/jack_control +SHEBANG_FILES= dbus/jack_control SHEBANG_LANG= python3 -CONFIGURE_ARGS= --celt=no --sndfile=yes --samplerate=yes +CONFIGURE_ARGS= --celt=no --sndfile=no --samplerate=yes \ + --readline=no --example-tools=no -OPTIONS_DEFINE= ALSA DBUS READLINE OPUS PROFILING -OPTIONS_DEFAULT= DBUS READLINE OPUS +OPTIONS_DEFINE= ALSA DBUS OPUS PROFILING +OPTIONS_DEFAULT= DBUS OPUS OPTIONS_SUB= yes ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib @@ -46,12 +42,7 @@ DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus \ libexpat.so:textproc/expat2 DBUS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dbus>0:devel/py-dbus@${PY_FLAVOR} -READLINE_USES= readline -READLINE_CONFIGURE_ON= --readline=yes -READLINE_CONFIGURE_OFF= --readline=no -READLINE_LDFLAGS= -lreadline - -OPUS_LIB_DEPENDS= libopus.so:audio/opus +OPUS_LIB_DEPENDS= libopus.so:audio/opus OPUS_CONFIGURE_ON= --opus=yes OPUS_CONFIGURE_OFF= --opus=no @@ -66,13 +57,10 @@ PLIST_SUB+= CLASSIC="@comment " PLIST_SUB+= CLASSIC="" .endif -post-extract: - @echo '#define SVN_VERSION "${GH_TAGNAME}"' > ${WRKSRC}/svnversion.h - post-install: @cd ${STAGEDIR}${PREFIX} && ${STRIP_CMD} \ lib/libjack*.so \ lib/jack/*.so \ - $$(ls bin/* | grep -v jack_control) + $$(ls bin/* | ${GREP} -v jack_control) .include <bsd.port.post.mk> diff --git a/audio/jack/distinfo b/audio/jack/distinfo index 3e7f5f49caa3..b8c82243ecda 100644 --- a/audio/jack/distinfo +++ b/audio/jack/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1626106682 -SHA256 (0EVSG-jack2-v1.9.16-eaedec353489f26617221d66f80fd2503953c663_GH0.tar.gz) = 7720a65408ec7bcb2468fd090e3bbd0fcf7fc37408e116a7011c2469ba304e01 -SIZE (0EVSG-jack2-v1.9.16-eaedec353489f26617221d66f80fd2503953c663_GH0.tar.gz) = 989685 +TIMESTAMP = 1642267444 +SHA256 (jackaudio-jack2-v1.9.20_GH0.tar.gz) = 915ad2900992159bdb729b9fc4ea134b962ce32b2df0b384fee40a2c5808835d +SIZE (jackaudio-jack2-v1.9.20_GH0.tar.gz) = 1005000 diff --git a/audio/jack/files/patch-common_JackError.cpp b/audio/jack/files/patch-common_JackError.cpp new file mode 100644 index 000000000000..6782fc71318e --- /dev/null +++ b/audio/jack/files/patch-common_JackError.cpp @@ -0,0 +1,10 @@ +--- common/JackError.cpp.orig 2022-01-15 18:51:10 UTC ++++ common/JackError.cpp +@@ -133,5 +133,5 @@ SERVER_EXPORT void silent_jack_error_callback(const ch + SERVER_EXPORT void silent_jack_info_callback(const char *desc) + {} + +-SERVER_EXPORT void (*jack_error_callback)(const char *desc) = &default_jack_error_callback; +-SERVER_EXPORT void (*jack_info_callback)(const char *desc) = &default_jack_info_callback; ++LIB_EXPORT void (*jack_error_callback)(const char *desc) = &default_jack_error_callback; ++LIB_EXPORT void (*jack_info_callback)(const char *desc) = &default_jack_info_callback; diff --git a/audio/jack/files/patch-common_JackError.h b/audio/jack/files/patch-common_JackError.h new file mode 100644 index 000000000000..073040eaede7 --- /dev/null +++ b/audio/jack/files/patch-common_JackError.h @@ -0,0 +1,13 @@ +--- common/JackError.h.orig 2022-01-15 18:51:23 UTC ++++ common/JackError.h +@@ -35,8 +35,8 @@ extern "C" + SERVER_EXPORT void jack_info(const char *fmt, ...); + SERVER_EXPORT void jack_log(const char *fmt, ...); + +- SERVER_EXPORT extern void (*jack_error_callback)(const char *desc); +- SERVER_EXPORT extern void (*jack_info_callback)(const char *desc); ++ LIB_EXPORT extern void (*jack_error_callback)(const char *desc); ++ LIB_EXPORT extern void (*jack_info_callback)(const char *desc); + + SERVER_EXPORT extern void default_jack_error_callback(const char *desc); + SERVER_EXPORT extern void default_jack_info_callback(const char *desc); diff --git a/audio/jack/pkg-descr b/audio/jack/pkg-descr index 71daccf14aec..17dc85ed87f1 100644 --- a/audio/jack/pkg-descr +++ b/audio/jack/pkg-descr @@ -1,11 +1,8 @@ -JACK is a low latency audio server, written for POSIX-conformant operating -systems. It can connect a number of different applications to an audio -device, as well as allowing them to share audio between themselves. Its -clients can run in their own processes (i.e. as normal applications), or -can they can run within the JACK server (i.e. as a "plugin"). +JACK Audio Connection Kit (or JACK) is a professional sound server API and pair +of daemon implementations to provide real-time, low-latency connections for +both audio and MIDI data between applications. -JACK was designed from the ground up for professional audio work, and its -design focuses on two key areas: synchronous execution of all clients, and -low latency operation. +This provides the JACK server and libraries, example clients and tools are +distributed separately now. WWW: https://jackaudio.org/ diff --git a/audio/jack/pkg-message b/audio/jack/pkg-message index 46971db02ba6..d87b12e61522 100644 --- a/audio/jack/pkg-message +++ b/audio/jack/pkg-message @@ -1,45 +1,26 @@ -[ -{ - message: <<EOD -====================================================================== -It is recommended to run Jack with real-time priority. As FreeBSD doesn't -allow unprivileged users to set real-time priority, you should do it manually -with rtprio(1). As this port comes with jackd and jackdbus executables, note -that only one can be used. +The new JACK server comes with a DBUS control interface: -Configure backend options using jack_control: +$ jack_control help $ jack_control ds oss +$ jack_control dp $ jack_control eps realtime False -$ jack_control eps sync True +$ jack_control start -Configure memory locking editing either /etc/login.conf or ~/.login_conf with: -:memorylocked=unlimited: +Only root can grant real-time priority to processes for now, using rtprio(1). +Upcoming FreeBSD releases will have a MAC policy with a realtime user group. -After every change to login.conf, you should execute: -cap_mkdb /etc/login.conf +Memory locking has to be allowed in /etc/login.conf or ~/.login_conf. Set the +resource limit ":memorylocked=unlimited:" and don't forget to run -There are two ways to start jack: -* via dbus (new executable: jackdbus) -* as rc service (classic executable: jackd) +# cap_mkdb /etc/login.conf -- Starting via DBUS: -$ jack_control start +It's still possible to start JACK server as an RC service for a dedicated user. +Note that only one JACK server can be run at a time. An /etc/rc.conf example: -- Starting as RC service: -add the following lines to /etc/rc.conf: jackd_enable="YES" -jackd_user="{your-jack-user}" +jackd_user="joe" jackd_rtprio="YES" -jackd_args="-R -doss -r{sample-rate} -p1024 -n3 -w16 \ - --capture /dev/dsp{N} --playback /dev/dsp{N}" +jackd_args="-R -doss -r48000 -p1024 -n1 -w16 \ + --capture /dev/dsp0 --playback /dev/dsp0" -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 -====================================================================== -EOD, - type: install -} -] +Official JACK example clients and tools are available as jack-example-tools. diff --git a/audio/jack/pkg-plist b/audio/jack/pkg-plist index 5b9939a40cd2..a10c115295d1 100644 --- a/audio/jack/pkg-plist +++ b/audio/jack/pkg-plist @@ -1,41 +1,5 @@ -bin/jack_alias -bin/jack_bufsize -bin/jack_connect -bin/jack_control -bin/jack_cpu -bin/jack_cpu_load -bin/jack_disconnect -bin/jack_evmon -bin/jack_freewheel -bin/jack_iodelay -bin/jack_latent_client -bin/jack_load -bin/jack_lsp -bin/jack_metro -bin/jack_midi_dump -bin/jack_midi_latency_test -bin/jack_midiseq -bin/jack_midisine -bin/jack_monitor_client -bin/jack_multiple_metro -bin/jack_net_master -bin/jack_net_slave -bin/jack_property -bin/jack_rec -bin/jack_samplerate -bin/jack_server_control -bin/jack_session_notify -bin/jack_showtime -bin/jack_simdtests -bin/jack_simple_client -bin/jack_simple_session_client -bin/jack_test -bin/jack_thru -%%READLINE%%bin/jack_transport -bin/jack_unload -bin/jack_wait -bin/jack_zombie bin/jackd +%%DBUS%%bin/jack_control %%DBUS%%bin/jackdbus include/jack/control.h include/jack/intclient.h @@ -55,7 +19,6 @@ include/jack/uuid.h include/jack/weakjack.h include/jack/weakmacros.h lib/jack/audioadapter.so -lib/jack/inprocess.so %%ALSA%%lib/jack/jack_alsa.so %%ALSA%%lib/jack/jack_alsarawmidi.so lib/jack/jack_dummy.so @@ -78,25 +41,4 @@ lib/libjackserver.so.0 lib/libjackserver.so.0.1.0 libdata/pkgconfig/jack.pc %%DBUS%%share/dbus-1/services/org.jackaudio.service -share/man/man1/alsa_in.1.gz -share/man/man1/alsa_out.1.gz -share/man/man1/jack_bufsize.1.gz -share/man/man1/jack_connect.1.gz -share/man/man1/jack_disconnect.1.gz -share/man/man1/jack_freewheel.1.gz -share/man/man1/jack_impulse_grabber.1.gz -share/man/man1/jack_iodelay.1.gz -share/man/man1/jack_load.1.gz -share/man/man1/jack_lsp.1.gz -share/man/man1/jack_metro.1.gz -share/man/man1/jack_monitor_client.1.gz -share/man/man1/jack_netsource.1.gz -share/man/man1/jack_property.1.gz -share/man/man1/jack_samplerate.1.gz -share/man/man1/jack_showtime.1.gz -share/man/man1/jack_simple_client.1.gz -share/man/man1/jack_transport.1.gz -share/man/man1/jack_unload.1.gz -share/man/man1/jack_wait.1.gz share/man/man1/jackd.1.gz -share/man/man1/jackrec.1.gz |