git: 085b0eb3ebf1 - stable/15 - packages: Add a sound package

From: Colin Percival <cperciva_at_FreeBSD.org>
Date: Fri, 03 Oct 2025 16:53:43 UTC
The branch stable/15 has been updated by cperciva:

URL: https://cgit.FreeBSD.org/src/commit/?id=085b0eb3ebf13e65facbf77fd3b1f90f19a570b9

commit 085b0eb3ebf13e65facbf77fd3b1f90f19a570b9
Author:     Lexi Winter <ivy@FreeBSD.org>
AuthorDate: 2025-10-02 01:16:11 +0000
Commit:     Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2025-10-03 16:50:05 +0000

    packages: Add a sound package
    
    Put virtual_oss, /etc/devd/snd.conf and the other audio-related tools
    into a new "sound" package.  Don't create a separate -lib package,
    since it's unlikely someone will want mixer(3) without mixer(8).
    
    Put the sound package in the optional set rather than minimal, since
    it's not actually required for audio hardware support, and many systems
    (including nearly all servers) won't want it installed.
    
    MFC after:      3 seconds
    Reviewed by:    christos
    Sponsored by:   https://www.patreon.com/bsdivy
    Differential Revision:  https://reviews.freebsd.org/D52823
    
    (cherry picked from commit 1b806e607f52285f973fb1106491668fd28da6a4)
---
 UPDATING                           |  6 ++++++
 lib/libmixer/Makefile              |  2 ++
 lib/libsamplerate/Makefile         |  2 ++
 libexec/rc/rc.d/Makefile           |  4 +++-
 release/packages/ucl/sound-all.ucl | 42 ++++++++++++++++++++++++++++++++++++++
 sbin/devd/Makefile                 |  7 ++++++-
 usr.bin/beep/Makefile              |  2 ++
 usr.bin/mididump/Makefile          |  2 ++
 usr.sbin/mixer/Makefile            |  2 ++
 usr.sbin/sndctl/Makefile           |  2 ++
 usr.sbin/virtual_oss/Makefile.inc  |  2 ++
 11 files changed, 71 insertions(+), 2 deletions(-)

diff --git a/UPDATING b/UPDATING
index 6ee866092f47..6e893f07df61 100644
--- a/UPDATING
+++ b/UPDATING
@@ -17,6 +17,12 @@ and/or ports.
 	can install the ftp/freebsd-ftpd port.  pkgbase users should remove
 	the orphaned FreeBSD-ftpd package.
 
+20251002:
+	Audio-related utilities including mixer(8) and virtual_oss(8) have
+	moved to the new FreeBSD-sound package.  If you have set-optional or
+	set-base installed this package will be installed automatically,
+	otherwise you should install it manually if you need these utilities.
+
 20250929:
 	Both drm-kmod and nividia-drm ports had to be updated to either no
 	longer conflict on LinuxKPI vs. native PCI changes and/or to keep
diff --git a/lib/libmixer/Makefile b/lib/libmixer/Makefile
index a0bb37a85fb8..49621ad1f188 100644
--- a/lib/libmixer/Makefile
+++ b/lib/libmixer/Makefile
@@ -1,3 +1,5 @@
+PACKAGE=	sound
+
 LIB=		mixer
 SRCS=		${LIB}.c
 INCS=		${LIB}.h
diff --git a/lib/libsamplerate/Makefile b/lib/libsamplerate/Makefile
index 256f2087284f..c094cbb791d2 100644
--- a/lib/libsamplerate/Makefile
+++ b/lib/libsamplerate/Makefile
@@ -1,5 +1,7 @@
 .PATH:		${SRCTOP}/contrib/libsamplerate
 
+PACKAGE=	sound
+
 LIB=		samplerate
 INTERNALLIB=
 
diff --git a/libexec/rc/rc.d/Makefile b/libexec/rc/rc.d/Makefile
index a116ba751fde..7ac2f382b989 100644
--- a/libexec/rc/rc.d/Makefile
+++ b/libexec/rc/rc.d/Makefile
@@ -213,7 +213,9 @@ CCDPACKAGE=	ccdconfig
 .endif
 
 .if ${MK_CUSE} != "no"
-CONFS+=		virtual_oss
+CONFGROUPS+=	VOSS
+VOSS=		virtual_oss
+VOSSPACKAGE=	sound
 .endif
 
 .if ${MK_KERBEROS_SUPPORT} != "no"
diff --git a/release/packages/ucl/sound-all.ucl b/release/packages/ucl/sound-all.ucl
new file mode 100644
index 000000000000..6a8ad098c6b1
--- /dev/null
+++ b/release/packages/ucl/sound-all.ucl
@@ -0,0 +1,42 @@
+/*
+ * SPDX-License-Identifier: ISC
+ *
+ * Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+comment = "Audio utilities"
+
+desc = <<EOD
+The sound(4) facility provides an API based on the Open Sound System (OSS)
+to allow applications to play and record audio through physical or virtual
+audio devices.
+
+This package provides several sound-related userland utilities:
+
+* mixer(8) can adjust the playback and recording levels of audio devices.
+
+* sndctl(8) can display and modify audio device configuration.
+
+* The virtual_oss(8) daemon can be used to configure flexible virtual audio
+  devices which can be used by any application.
+
+* beep(1) can play a beep sound.
+
+* mididump(1) can monitor the incoming MIDI events on a MIDI port.
+EOD
+
+annotations {
+	set = "optional"
+}
diff --git a/sbin/devd/Makefile b/sbin/devd/Makefile
index dad6f4f9c340..553aecf4ee88 100644
--- a/sbin/devd/Makefile
+++ b/sbin/devd/Makefile
@@ -4,7 +4,7 @@ WARNS?= 6
 PACKAGE=devd
 CONFGROUPS=	CONFS DEVD
 CONFS=	devd.conf
-DEVD=	devmatch.conf snd.conf
+DEVD=	devmatch.conf
 DEVDDIR=	/etc/devd
 .if ${MK_ACPI} != "no"
 DEVD+=	asus.conf
@@ -32,6 +32,11 @@ CONSOLEDIR=		${DEVDDIR}
 CONSOLE+=		moused.conf syscons.conf
 CONSOLEPACKAGE=		console-tools
 
+CONFGROUPS+=		SND
+SNDDIR=			${DEVDDIR}
+SND=			snd.conf
+SNDPACKAGE=		sound
+
 .if ${MK_BLUETOOTH} != "no"
 CONFGROUPS+=		BLUETOOTH
 BLUETOOTHDIR=		${DEVDDIR}
diff --git a/usr.bin/beep/Makefile b/usr.bin/beep/Makefile
index 1f2548c24819..79735e6f354a 100644
--- a/usr.bin/beep/Makefile
+++ b/usr.bin/beep/Makefile
@@ -1,3 +1,5 @@
+PACKAGE=sound
+
 PROG=	beep
 MAN=	beep.1
 LIBADD=	m
diff --git a/usr.bin/mididump/Makefile b/usr.bin/mididump/Makefile
index 758bbb3a1189..5b22376b7bb8 100644
--- a/usr.bin/mididump/Makefile
+++ b/usr.bin/mididump/Makefile
@@ -1,5 +1,7 @@
 .include <src.opts.mk>
 
+PACKAGE=	sound
+
 PROG=		mididump
 SRCS=		${PROG}.c
 MAN=		${PROG}.1
diff --git a/usr.sbin/mixer/Makefile b/usr.sbin/mixer/Makefile
index 9e96c2f2d2e8..6c75e65d2a9b 100644
--- a/usr.sbin/mixer/Makefile
+++ b/usr.sbin/mixer/Makefile
@@ -1,5 +1,7 @@
 .include <src.opts.mk>
 
+PACKAGE=	sound
+
 PROG=		mixer
 SRCS=		${PROG}.c
 MAN=		${PROG}.8
diff --git a/usr.sbin/sndctl/Makefile b/usr.sbin/sndctl/Makefile
index c1830413f931..d6697bb88fd5 100644
--- a/usr.sbin/sndctl/Makefile
+++ b/usr.sbin/sndctl/Makefile
@@ -1,5 +1,7 @@
 .include <src.opts.mk>
 
+PACKAGE=	sound
+
 PROG=		sndctl
 SRCS=		${PROG}.c
 MAN=		${PROG}.8
diff --git a/usr.sbin/virtual_oss/Makefile.inc b/usr.sbin/virtual_oss/Makefile.inc
index 01b5f23410c8..d2b0d74fa8c4 100644
--- a/usr.sbin/virtual_oss/Makefile.inc
+++ b/usr.sbin/virtual_oss/Makefile.inc
@@ -1 +1,3 @@
+PACKAGE?=	sound
+
 .include "../Makefile.inc"