git: 06dbf1df62a4 - main - audio/alsa-plugins: convert options to subpackages

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Fri, 02 Feb 2024 13:46:28 UTC
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=06dbf1df62a4f54da4cadecbbc0be5f33902eb1c

commit 06dbf1df62a4f54da4cadecbbc0be5f33902eb1c
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2024-01-30 16:18:28 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2024-02-02 13:44:56 +0000

    audio/alsa-plugins: convert options to subpackages
    
    Reduce heavy dependencies for consumers e.g.,
    - chromium -> pipewire -> alsa-plugins -> pulseaudio
    - wine -> alsa-plugins -> pulseaudio
    
    Approved by:    portmgr (mat)
    Differential Revision:  https://reviews.freebsd.org/D43667
---
 audio/alsa-plugins/Makefile             | 19 +++++---
 audio/alsa-plugins/pkg-descr.ffmpeg     |  3 ++
 audio/alsa-plugins/pkg-descr.jack       |  3 ++
 audio/alsa-plugins/pkg-descr.pulseaudio |  3 ++
 audio/alsa-plugins/pkg-descr.samplerate |  3 ++
 audio/alsa-plugins/pkg-descr.speex      |  3 ++
 audio/alsa-plugins/pkg-message          | 13 +++++
 audio/alsa-plugins/pkg-plist            | 84 ++++++++++++++++-----------------
 8 files changed, 82 insertions(+), 49 deletions(-)

diff --git a/audio/alsa-plugins/Makefile b/audio/alsa-plugins/Makefile
index 127343819c20..80cd0031b0cf 100644
--- a/audio/alsa-plugins/Makefile
+++ b/audio/alsa-plugins/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	alsa-plugins
 PORTVERSION=	1.2.7.1
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	audio
 MASTER_SITES=	https://www.alsa-project.org/files/pub/plugins/
 
@@ -20,22 +20,27 @@ INSTALL_TARGET=	install-strip
 CPPFLAGS+=	-I${.CURDIR}/../alsa-lib/files
 
 OPTIONS_DEFINE=		FFMPEG JACK PULSEAUDIO SAMPLERATE SPEEX
-OPTIONS_DEFAULT=	PULSEAUDIO
+OPTIONS_DEFAULT=	FFMPEG JACK PULSEAUDIO SAMPLERATE SPEEX
 OPTIONS_SUB=		yes
 
-FFMPEG_LIB_DEPENDS=		libavcodec.so:multimedia/ffmpeg
+FFMPEG_SUBPACKAGES=		ffmpeg
+LIB_DEPENDS.ffmpeg=		${LIB_DEPENDS} libavcodec.so:multimedia/ffmpeg
 FFMPEG_CONFIGURE_ENABLE=	libav
 
-JACK_LIB_DEPENDS=	libjack.so:audio/jack
+JACK_SUBPACKAGES=	jack
+LIB_DEPENDS.jack=	${LIB_DEPENDS} libjack.so:audio/jack
 JACK_CONFIGURE_ENABLE=	jack
 
-PULSEAUDIO_LIB_DEPENDS=		libpulse.so:audio/pulseaudio
+PULSEAUDIO_SUBPACKAGES=		pulseaudio
+LIB_DEPENDS.pulseaudio=		${LIB_DEPENDS} libpulse.so:audio/pulseaudio
 PULSEAUDIO_CONFIGURE_ENABLE=	pulseaudio
 
-SAMPLERATE_LIB_DEPENDS=		libsamplerate.so:audio/libsamplerate
+SAMPLERATE_SUBPACKAGES=		samplerate
+LIB_DEPENDS.samplerate=		${LIB_DEPENDS} libsamplerate.so:audio/libsamplerate
 SAMPLERATE_CONFIGURE_ENABLE=	samplerate
 
-SPEEX_LIB_DEPENDS=	libspeexdsp.so:audio/speexdsp
+SPEEX_SUBPACKAGES=	speex
+LIB_DEPENDS.speex=	${LIB_DEPENDS} libspeexdsp.so:audio/speexdsp
 SPEEX_CONFIGURE_ON=	--with-speex=lib
 SPEEX_CONFIGURE_OFF=	--without-speex
 
diff --git a/audio/alsa-plugins/pkg-descr.ffmpeg b/audio/alsa-plugins/pkg-descr.ffmpeg
new file mode 100644
index 000000000000..0e7a7c1ebabe
--- /dev/null
+++ b/audio/alsa-plugins/pkg-descr.ffmpeg
@@ -0,0 +1,3 @@
+The Advanced Linux Sound Architecture (ALSA) plugins
+
+This package provides FFmpeg-based plugins.
diff --git a/audio/alsa-plugins/pkg-descr.jack b/audio/alsa-plugins/pkg-descr.jack
new file mode 100644
index 000000000000..945af4fa9321
--- /dev/null
+++ b/audio/alsa-plugins/pkg-descr.jack
@@ -0,0 +1,3 @@
+The Advanced Linux Sound Architecture (ALSA) plugins
+
+This package provides jack plugin.
diff --git a/audio/alsa-plugins/pkg-descr.pulseaudio b/audio/alsa-plugins/pkg-descr.pulseaudio
new file mode 100644
index 000000000000..e26d8290a7ee
--- /dev/null
+++ b/audio/alsa-plugins/pkg-descr.pulseaudio
@@ -0,0 +1,3 @@
+The Advanced Linux Sound Architecture (ALSA) plugins
+
+This package provides pulseaudio plugin.
diff --git a/audio/alsa-plugins/pkg-descr.samplerate b/audio/alsa-plugins/pkg-descr.samplerate
new file mode 100644
index 000000000000..673f7550eab1
--- /dev/null
+++ b/audio/alsa-plugins/pkg-descr.samplerate
@@ -0,0 +1,3 @@
+The Advanced Linux Sound Architecture (ALSA) plugins
+
+This package provides samplerate plugin.
diff --git a/audio/alsa-plugins/pkg-descr.speex b/audio/alsa-plugins/pkg-descr.speex
new file mode 100644
index 000000000000..9bc2f7628467
--- /dev/null
+++ b/audio/alsa-plugins/pkg-descr.speex
@@ -0,0 +1,3 @@
+The Advanced Linux Sound Architecture (ALSA) plugins
+
+This package provides speex plugin.
diff --git a/audio/alsa-plugins/pkg-message b/audio/alsa-plugins/pkg-message
new file mode 100644
index 000000000000..343f2a5c551b
--- /dev/null
+++ b/audio/alsa-plugins/pkg-message
@@ -0,0 +1,13 @@
+[
+{ type: upgrade
+  maximum_version: "1.2.7.1_2"
+  message: <<EOD
+Plugins with extra dependencies moved into subpackages:
+- alsa-plugins-ffmpeg
+- alsa-plugins-jack
+- alsa-plugins-pulseaudio
+- alsa-plugins-samplerate
+- alsa-plugins-speex
+EOD
+}
+]
diff --git a/audio/alsa-plugins/pkg-plist b/audio/alsa-plugins/pkg-plist
index afe367876651..ae0942cbfd88 100644
--- a/audio/alsa-plugins/pkg-plist
+++ b/audio/alsa-plugins/pkg-plist
@@ -1,65 +1,65 @@
-%%FFMPEG%%etc/alsa/conf.d/10-rate-lav.conf
-%%SAMPLERATE%%etc/alsa/conf.d/10-samplerate.conf
-%%SPEEX%%etc/alsa/conf.d/10-speexrate.conf
-%%JACK%%etc/alsa/conf.d/50-jack.conf
-%%FFMPEG%%etc/alsa/conf.d/60-a52-encoder.conf
+%%FFMPEG%%@@ffmpeg@@etc/alsa/conf.d/10-rate-lav.conf
+%%SAMPLERATE%%@@samplerate@@etc/alsa/conf.d/10-samplerate.conf
+%%SPEEX%%@@speex@@etc/alsa/conf.d/10-speexrate.conf
+%%JACK%%@@jack@@etc/alsa/conf.d/50-jack.conf
+%%FFMPEG%%@@ffmpeg@@etc/alsa/conf.d/60-a52-encoder.conf
 @comment etc/alsa/conf.d/50-arcam-av-ctl.conf
 etc/alsa/conf.d/50-oss.conf
-%%PULSEAUDIO%%etc/alsa/conf.d/50-pulseaudio.conf
-%%SPEEX%%etc/alsa/conf.d/60-speex.conf
+%%PULSEAUDIO%%@@pulseaudio@@etc/alsa/conf.d/50-pulseaudio.conf
+%%SPEEX%%@@speex@@etc/alsa/conf.d/60-speex.conf
 @comment etc/alsa/conf.d/60-upmix.conf
 @comment etc/alsa/conf.d/60-vdownmix.conf
 @comment etc/alsa/conf.d/98-usb-stream.conf
 @comment etc/alsa/conf.d/99-pulseaudio-default.conf.example
-%%PULSEAUDIO%%lib/alsa-lib/libasound_module_conf_pulse.la
-%%PULSEAUDIO%%lib/alsa-lib/libasound_module_conf_pulse.so
+%%PULSEAUDIO%%@@pulseaudio@@lib/alsa-lib/libasound_module_conf_pulse.la
+%%PULSEAUDIO%%@@pulseaudio@@lib/alsa-lib/libasound_module_conf_pulse.so
 lib/alsa-lib/libasound_module_ctl_arcam_av.la
 lib/alsa-lib/libasound_module_ctl_arcam_av.so
 lib/alsa-lib/libasound_module_ctl_oss.la
 lib/alsa-lib/libasound_module_ctl_oss.so
-%%PULSEAUDIO%%lib/alsa-lib/libasound_module_ctl_pulse.la
-%%PULSEAUDIO%%lib/alsa-lib/libasound_module_ctl_pulse.so
-%%FFMPEG%%lib/alsa-lib/libasound_module_pcm_a52.la
-%%FFMPEG%%lib/alsa-lib/libasound_module_pcm_a52.so
-%%JACK%%lib/alsa-lib/libasound_module_pcm_jack.la
-%%JACK%%lib/alsa-lib/libasound_module_pcm_jack.so
+%%PULSEAUDIO%%@@pulseaudio@@lib/alsa-lib/libasound_module_ctl_pulse.la
+%%PULSEAUDIO%%@@pulseaudio@@lib/alsa-lib/libasound_module_ctl_pulse.so
+%%FFMPEG%%@@ffmpeg@@lib/alsa-lib/libasound_module_pcm_a52.la
+%%FFMPEG%%@@ffmpeg@@lib/alsa-lib/libasound_module_pcm_a52.so
+%%JACK%%@@jack@@lib/alsa-lib/libasound_module_pcm_jack.la
+%%JACK%%@@jack@@lib/alsa-lib/libasound_module_pcm_jack.so
 lib/alsa-lib/libasound_module_pcm_oss.la
 lib/alsa-lib/libasound_module_pcm_oss.so
-%%PULSEAUDIO%%lib/alsa-lib/libasound_module_pcm_pulse.la
-%%PULSEAUDIO%%lib/alsa-lib/libasound_module_pcm_pulse.so
-%%SPEEX%%lib/alsa-lib/libasound_module_pcm_speex.la
-%%SPEEX%%lib/alsa-lib/libasound_module_pcm_speex.so
+%%PULSEAUDIO%%@@pulseaudio@@lib/alsa-lib/libasound_module_pcm_pulse.la
+%%PULSEAUDIO%%@@pulseaudio@@lib/alsa-lib/libasound_module_pcm_pulse.so
+%%SPEEX%%@@speex@@lib/alsa-lib/libasound_module_pcm_speex.la
+%%SPEEX%%@@speex@@lib/alsa-lib/libasound_module_pcm_speex.so
 lib/alsa-lib/libasound_module_pcm_upmix.la
 lib/alsa-lib/libasound_module_pcm_upmix.so
 lib/alsa-lib/libasound_module_pcm_usb_stream.la
 lib/alsa-lib/libasound_module_pcm_usb_stream.so
 lib/alsa-lib/libasound_module_pcm_vdownmix.la
 lib/alsa-lib/libasound_module_pcm_vdownmix.so
-%%FFMPEG%%lib/alsa-lib/libasound_module_rate_lavrate.la
-%%FFMPEG%%lib/alsa-lib/libasound_module_rate_lavrate.so
-%%FFMPEG%%lib/alsa-lib/libasound_module_rate_lavrate_fast.so
-%%FFMPEG%%lib/alsa-lib/libasound_module_rate_lavrate_faster.so
-%%FFMPEG%%lib/alsa-lib/libasound_module_rate_lavrate_high.so
-%%FFMPEG%%lib/alsa-lib/libasound_module_rate_lavrate_higher.so
-%%SAMPLERATE%%lib/alsa-lib/libasound_module_rate_samplerate.la
-%%SAMPLERATE%%lib/alsa-lib/libasound_module_rate_samplerate.so
-%%SAMPLERATE%%lib/alsa-lib/libasound_module_rate_samplerate_best.so
-%%SAMPLERATE%%lib/alsa-lib/libasound_module_rate_samplerate_linear.so
-%%SAMPLERATE%%lib/alsa-lib/libasound_module_rate_samplerate_medium.so
-%%SAMPLERATE%%lib/alsa-lib/libasound_module_rate_samplerate_order.so
-%%SPEEX%%lib/alsa-lib/libasound_module_rate_speexrate.la
-%%SPEEX%%lib/alsa-lib/libasound_module_rate_speexrate.so
-%%SPEEX%%lib/alsa-lib/libasound_module_rate_speexrate_best.so
-%%SPEEX%%lib/alsa-lib/libasound_module_rate_speexrate_medium.so
-%%FFMPEG%%share/alsa/alsa.conf.d/10-rate-lav.conf
-%%SAMPLERATE%%share/alsa/alsa.conf.d/10-samplerate.conf
-%%SPEEX%%share/alsa/alsa.conf.d/10-speexrate.conf
+%%FFMPEG%%@@ffmpeg@@lib/alsa-lib/libasound_module_rate_lavrate.la
+%%FFMPEG%%@@ffmpeg@@lib/alsa-lib/libasound_module_rate_lavrate.so
+%%FFMPEG%%@@ffmpeg@@lib/alsa-lib/libasound_module_rate_lavrate_fast.so
+%%FFMPEG%%@@ffmpeg@@lib/alsa-lib/libasound_module_rate_lavrate_faster.so
+%%FFMPEG%%@@ffmpeg@@lib/alsa-lib/libasound_module_rate_lavrate_high.so
+%%FFMPEG%%@@ffmpeg@@lib/alsa-lib/libasound_module_rate_lavrate_higher.so
+%%SAMPLERATE%%@@samplerate@@lib/alsa-lib/libasound_module_rate_samplerate.la
+%%SAMPLERATE%%@@samplerate@@lib/alsa-lib/libasound_module_rate_samplerate.so
+%%SAMPLERATE%%@@samplerate@@lib/alsa-lib/libasound_module_rate_samplerate_best.so
+%%SAMPLERATE%%@@samplerate@@lib/alsa-lib/libasound_module_rate_samplerate_linear.so
+%%SAMPLERATE%%@@samplerate@@lib/alsa-lib/libasound_module_rate_samplerate_medium.so
+%%SAMPLERATE%%@@samplerate@@lib/alsa-lib/libasound_module_rate_samplerate_order.so
+%%SPEEX%%@@speex@@lib/alsa-lib/libasound_module_rate_speexrate.la
+%%SPEEX%%@@speex@@lib/alsa-lib/libasound_module_rate_speexrate.so
+%%SPEEX%%@@speex@@lib/alsa-lib/libasound_module_rate_speexrate_best.so
+%%SPEEX%%@@speex@@lib/alsa-lib/libasound_module_rate_speexrate_medium.so
+%%FFMPEG%%@@ffmpeg@@share/alsa/alsa.conf.d/10-rate-lav.conf
+%%SAMPLERATE%%@@samplerate@@share/alsa/alsa.conf.d/10-samplerate.conf
+%%SPEEX%%@@speex@@share/alsa/alsa.conf.d/10-speexrate.conf
 @comment share/alsa/alsa.conf.d/50-arcam-av-ctl.conf
-%%JACK%%share/alsa/alsa.conf.d/50-jack.conf
+%%JACK%%@@jack@@share/alsa/alsa.conf.d/50-jack.conf
 share/alsa/alsa.conf.d/50-oss.conf
-%%PULSEAUDIO%%share/alsa/alsa.conf.d/50-pulseaudio.conf
-%%FFMPEG%%share/alsa/alsa.conf.d/60-a52-encoder.conf
-%%SPEEX%%share/alsa/alsa.conf.d/60-speex.conf
+%%PULSEAUDIO%%@@pulseaudio@@share/alsa/alsa.conf.d/50-pulseaudio.conf
+%%FFMPEG%%@@ffmpeg@@share/alsa/alsa.conf.d/60-a52-encoder.conf
+%%SPEEX%%@@speex@@share/alsa/alsa.conf.d/60-speex.conf
 @comment share/alsa/alsa.conf.d/60-upmix.conf
 @comment share/alsa/alsa.conf.d/60-vdownmix.conf
 @comment share/alsa/alsa.conf.d/98-usb-stream.conf