aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2022-01-19 10:41:40 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2022-01-19 10:44:09 +0000
commit93344cda77603560b6ba421778d92be03e70800b (patch)
tree8254ad5d1bfccf1df47f734e6742e391eb2f920c
parent05da06fe8bd18146938fa697ade2d063565536d9 (diff)
downloadports-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/Makefile1
-rw-r--r--audio/jack-example-tools/Makefile49
-rw-r--r--audio/jack-example-tools/distinfo3
-rw-r--r--audio/jack-example-tools/pkg-descr8
-rw-r--r--audio/jack-example-tools/pkg-plist65
-rw-r--r--audio/jack/Makefile34
-rw-r--r--audio/jack/distinfo6
-rw-r--r--audio/jack/files/patch-common_JackError.cpp10
-rw-r--r--audio/jack/files/patch-common_JackError.h13
-rw-r--r--audio/jack/pkg-descr13
-rw-r--r--audio/jack/pkg-message49
-rw-r--r--audio/jack/pkg-plist60
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