1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-27 10:03:20 +00:00

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)
This commit is contained in:
Hans Petter Selasky 2022-01-19 11:41:40 +01:00
parent 05da06fe8b
commit 93344cda77
12 changed files with 189 additions and 132 deletions

View File

@ -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

View File

@ -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>

View File

@ -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

View File

@ -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/

View File

@ -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

View File

@ -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>

View File

@ -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

View File

@ -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;

View File

@ -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);

View File

@ -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/

View File

@ -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
Configure memory locking editing either /etc/login.conf or ~/.login_conf with:
:memorylocked=unlimited:
After every change to login.conf, you should execute:
cap_mkdb /etc/login.conf
There are two ways to start jack:
* via dbus (new executable: jackdbus)
* as rc service (classic executable: jackd)
- Starting via DBUS:
$ jack_control start
- Starting as RC service:
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}"
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.
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
}
]
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
# cap_mkdb /etc/login.conf
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:
jackd_enable="YES"
jackd_user="joe"
jackd_rtprio="YES"
jackd_args="-R -doss -r48000 -p1024 -n1 -w16 \
--capture /dev/dsp0 --playback /dev/dsp0"
Official JACK example clients and tools are available as jack-example-tools.

View File

@ -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