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
This commit is contained in:
Lexi Winter 2025-10-02 02:16:11 +01:00
parent ed6716207d
commit 1b806e607f
11 changed files with 71 additions and 2 deletions

View file

@ -27,6 +27,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 16.x IS SLOW:
world, or to merely disable the most expensive debugging functionality
at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
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

View file

@ -1,3 +1,5 @@
PACKAGE= sound
LIB= mixer
SRCS= ${LIB}.c
INCS= ${LIB}.h

View file

@ -1,5 +1,7 @@
.PATH: ${SRCTOP}/contrib/libsamplerate
PACKAGE= sound
LIB= samplerate
PRIVATELIB=

View file

@ -216,7 +216,9 @@ CCDPACKAGE= ccdconfig
.endif
.if ${MK_CUSE} != "no"
CONFS+= virtual_oss
CONFGROUPS+= VOSS
VOSS= virtual_oss
VOSSPACKAGE= sound
.endif
.if ${MK_KERBEROS_SUPPORT} != "no"

View file

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

View file

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

View file

@ -1,3 +1,5 @@
PACKAGE=sound
PROG= beep
MAN= beep.1
LIBADD= m

View file

@ -1,5 +1,7 @@
.include <src.opts.mk>
PACKAGE= sound
PROG= mididump
SRCS= ${PROG}.c
MAN= ${PROG}.1

View file

@ -1,5 +1,7 @@
.include <src.opts.mk>
PACKAGE= sound
PROG= mixer
SRCS= ${PROG}.c
MAN= ${PROG}.8

View file

@ -1,5 +1,7 @@
.include <src.opts.mk>
PACKAGE= sound
PROG= sndctl
SRCS= ${PROG}.c
MAN= ${PROG}.8

View file

@ -1 +1,3 @@
PACKAGE?= sound
.include "../Makefile.inc"