Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Jan 2022 10:44:51 GMT
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 93344cda7760 - main - audio/jack: Update to 1.9.20 release.
Message-ID:  <202201191044.20JAipPt016090@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by hselasky:

URL: https://cgit.FreeBSD.org/ports/commit/?id=93344cda77603560b6ba421778d92be03e70800b

commit 93344cda77603560b6ba421778d92be03e70800b
Author:     Hans Petter Selasky <hselasky@FreeBSD.org>
AuthorDate: 2022-01-19 10:41:40 +0000
Commit:     Hans Petter Selasky <hselasky@FreeBSD.org>
CommitDate: 2022-01-19 10:44:09 +0000

    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)
---
 audio/Makefile                              |  1 +
 audio/jack-example-tools/Makefile           | 49 ++++++++++++++++++++++
 audio/jack-example-tools/distinfo           |  3 ++
 audio/jack-example-tools/pkg-descr          |  8 ++++
 audio/jack-example-tools/pkg-plist          | 65 +++++++++++++++++++++++++++++
 audio/jack/Makefile                         | 34 +++++----------
 audio/jack/distinfo                         |  6 +--
 audio/jack/files/patch-common_JackError.cpp | 10 +++++
 audio/jack/files/patch-common_JackError.h   | 13 ++++++
 audio/jack/pkg-descr                        | 13 +++---
 audio/jack/pkg-message                      | 49 +++++++---------------
 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202201191044.20JAipPt016090>