* update pulseaudio to 17.0+r43+g3e2bb8a1e-1
This commit is contained in:
parent
c867e764aa
commit
5d3dc58653
@ -1,7 +1,7 @@
|
||||
pkgbase = pulseaudio
|
||||
pkgdesc = A featureful, general-purpose sound server
|
||||
pkgver = 17.0
|
||||
pkgrel = 3.1
|
||||
pkgver = 17.0+r43+g3e2bb8a1e
|
||||
pkgrel = 1
|
||||
url = https://www.freedesktop.org/wiki/Software/PulseAudio/
|
||||
arch = x86_64
|
||||
arch = powerpc64le
|
||||
@ -12,50 +12,78 @@ pkgbase = pulseaudio
|
||||
makedepends = alsa-lib
|
||||
makedepends = attr
|
||||
makedepends = avahi
|
||||
makedepends = bash
|
||||
makedepends = bluez
|
||||
makedepends = bluez-libs
|
||||
makedepends = check
|
||||
makedepends = dbus
|
||||
makedepends = doxygen
|
||||
makedepends = fftw
|
||||
makedepends = gcc-libs
|
||||
makedepends = git
|
||||
makedepends = glib2
|
||||
makedepends = glibc
|
||||
makedepends = gst-plugins-base
|
||||
makedepends = gst-plugins-base-libs
|
||||
makedepends = gst-plugins-good
|
||||
makedepends = gstreamer
|
||||
makedepends = gtk3
|
||||
makedepends = jack2
|
||||
makedepends = libasyncns
|
||||
makedepends = libcap
|
||||
makedepends = libice
|
||||
makedepends = libltdl
|
||||
makedepends = libsm
|
||||
makedepends = libsndfile
|
||||
makedepends = libsoxr
|
||||
makedepends = libx11
|
||||
makedepends = libxcb
|
||||
makedepends = libxtst
|
||||
makedepends = lirc
|
||||
makedepends = meson
|
||||
makedepends = openssl
|
||||
makedepends = orc
|
||||
makedepends = python
|
||||
makedepends = python-dbus
|
||||
makedepends = python-pyqt5
|
||||
makedepends = rtkit
|
||||
makedepends = sbc
|
||||
makedepends = speexdsp
|
||||
makedepends = systemd
|
||||
makedepends = systemd-libs
|
||||
makedepends = tdb
|
||||
makedepends = valgrind
|
||||
makedepends = webrtc-audio-processing-1
|
||||
makedepends = xmltoman
|
||||
source = git+https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git#commit=1f020889c9aa44ea0f63d7222e8c2b62c3f45f68
|
||||
b2sums = SKIP
|
||||
source = git+https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git#commit=3e2bb8a1ece02ae4e2c217273c9c0929cb9f5cae
|
||||
source = 0001-alsa-ucm-Fix-segfault-from-recursion-due-to-too-many.patch
|
||||
b2sums = 1eea3f798a56ea7d51ebc49de20160b8ef2eeae00e4a139786dab02b7a2f0fb459a744a8960d1a6573d7f5591f54a391d943096260edc6dfc5b0f04773b9b311
|
||||
b2sums = 73f93801069b2c5b09646870269c0f42cefc2183a73b47c78fd160c978a841c11c5146b98351a11be24d4785181f361a455534e6f6ca2d977cf585044836f8ed
|
||||
|
||||
pkgname = pulseaudio
|
||||
install = pulseaudio.install
|
||||
depends = libpulse=17.0+r43+g3e2bb8a1e-1
|
||||
depends = alsa-lib
|
||||
depends = bash
|
||||
depends = dbus
|
||||
depends = fftw
|
||||
depends = gcc-libs
|
||||
depends = glib2
|
||||
depends = glibc
|
||||
depends = libcap
|
||||
depends = libice
|
||||
depends = libltdl
|
||||
depends = libpulse=17.0-3.1
|
||||
depends = libsm
|
||||
depends = libsndfile
|
||||
depends = libsoxr
|
||||
depends = libx11
|
||||
depends = libxcb
|
||||
depends = libxtst
|
||||
depends = orc
|
||||
depends = rtkit
|
||||
depends = speexdsp
|
||||
depends = systemd
|
||||
depends = systemd-libs
|
||||
depends = tdb
|
||||
depends = webrtc-audio-processing-1
|
||||
optdepends = pulseaudio-alsa: ALSA configuration (recommended)
|
||||
@ -75,13 +103,14 @@ pkgname = pulseaudio
|
||||
|
||||
pkgname = libpulse
|
||||
pkgdesc = A featureful, general-purpose sound server (client library)
|
||||
license = LGPL
|
||||
depends = bash
|
||||
depends = dbus
|
||||
depends = glib2
|
||||
depends = glibc
|
||||
depends = libasyncns
|
||||
depends = libsndfile
|
||||
depends = libxcb
|
||||
depends = systemd
|
||||
optdepends = glib2: mainloop integration
|
||||
depends = systemd-libs
|
||||
optdepends = pulse-native-provider: PulseAudio backend
|
||||
provides = libpulse-mainloop-glib.so
|
||||
provides = libpulse-simple.so
|
||||
@ -90,38 +119,57 @@ pkgname = libpulse
|
||||
|
||||
pkgname = pulseaudio-zeroconf
|
||||
pkgdesc = Zeroconf support for PulseAudio
|
||||
depends = libpulse=17.0+r43+g3e2bb8a1e-1
|
||||
depends = pulseaudio=17.0+r43+g3e2bb8a1e-1
|
||||
depends = avahi
|
||||
depends = pulseaudio=17.0-3.1
|
||||
depends = dbus
|
||||
depends = glibc
|
||||
|
||||
pkgname = pulseaudio-lirc
|
||||
pkgdesc = IR (lirc) support for PulseAudio
|
||||
depends = pulseaudio=17.0+r43+g3e2bb8a1e-1
|
||||
depends = glibc
|
||||
depends = lirc
|
||||
depends = pulseaudio=17.0-3.1
|
||||
|
||||
pkgname = pulseaudio-jack
|
||||
pkgdesc = Jack support for PulseAudio
|
||||
depends = pulseaudio=17.0+r43+g3e2bb8a1e-1
|
||||
depends = dbus
|
||||
depends = glibc
|
||||
depends = jack
|
||||
depends = pulseaudio=17.0-3.1
|
||||
|
||||
pkgname = pulseaudio-bluetooth
|
||||
pkgdesc = Bluetooth support for PulseAudio
|
||||
depends = libpulse=17.0+r43+g3e2bb8a1e-1
|
||||
depends = pulseaudio=17.0+r43+g3e2bb8a1e-1
|
||||
depends = bluez
|
||||
depends = bluez-libs
|
||||
depends = dbus
|
||||
depends = glib2
|
||||
depends = glibc
|
||||
depends = gst-plugins-base-libs
|
||||
depends = pulseaudio=17.0-3.1
|
||||
depends = gstreamer
|
||||
depends = sbc
|
||||
optdepends = gst-plugins-bad: AptX and LDAC support
|
||||
|
||||
pkgname = pulseaudio-equalizer
|
||||
pkgdesc = Graphical equalizer for PulseAudio
|
||||
depends = pulseaudio=17.0-3.1
|
||||
depends = pulseaudio=17.0+r43+g3e2bb8a1e-1
|
||||
depends = dbus
|
||||
depends = fftw
|
||||
depends = glibc
|
||||
depends = python
|
||||
depends = python-dbus
|
||||
depends = python-pyqt5
|
||||
|
||||
pkgname = pulseaudio-rtp
|
||||
pkgdesc = RTP and RAOP support for PulseAudio
|
||||
depends = libpulse=17.0+r43+g3e2bb8a1e-1
|
||||
depends = pulseaudio=17.0+r43+g3e2bb8a1e-1
|
||||
depends = glib2
|
||||
depends = glibc
|
||||
depends = gst-plugins-base
|
||||
depends = gst-plugins-base-libs
|
||||
depends = gst-plugins-good
|
||||
depends = gstreamer
|
||||
depends = openssl
|
||||
depends = pulseaudio=17.0-3.1
|
||||
|
4
pulseaudio/.nvchecker.toml
Normal file
4
pulseaudio/.nvchecker.toml
Normal file
@ -0,0 +1,4 @@
|
||||
[pulseaudio]
|
||||
source = "git"
|
||||
git = "https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git"
|
||||
prefix = "v"
|
@ -0,0 +1,63 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
|
||||
Date: Wed, 4 Dec 2024 17:34:45 +0300
|
||||
Subject: [PATCH] alsa-ucm: Fix segfault from recursion due to too many devices
|
||||
|
||||
While trying to figure out device subsets that have aren't internally
|
||||
contain conflicting devices, we walk through all possible subsets and
|
||||
check each set if it satisfies ConflictingDevices/SupportedDevices
|
||||
listed in UCM configuration. For a better user experience, we want to
|
||||
skip subsets that are fully included in another valid subset we will
|
||||
also generate.
|
||||
|
||||
The iterate_device_subsets() function that achieves the former is
|
||||
intentionally in iterative form to avoid a stack overflow, since it will
|
||||
walk through 2^n sets. However, the iterate_maximal_device_subsets()
|
||||
function that skips incomplete sets is in recursive form, as I had
|
||||
assumed tail-call optimization would take care of the potential problem.
|
||||
|
||||
Convert iterate_maximal_device_subsets() to an iterative form, because
|
||||
the recursion seems to trigger a segfault with more than 16 devices.
|
||||
|
||||
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
|
||||
---
|
||||
src/modules/alsa/alsa-ucm.c | 22 ++++++++++------------
|
||||
1 file changed, 10 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/src/modules/alsa/alsa-ucm.c b/src/modules/alsa/alsa-ucm.c
|
||||
index 018c01739ba0..34a9d30ade48 100644
|
||||
--- a/src/modules/alsa/alsa-ucm.c
|
||||
+++ b/src/modules/alsa/alsa-ucm.c
|
||||
@@ -1404,22 +1404,20 @@ static pa_idxset *iterate_device_subsets(pa_idxset *devices, void **state) {
|
||||
static pa_idxset *iterate_maximal_device_subsets(pa_idxset *devices, void **state) {
|
||||
uint32_t idx;
|
||||
pa_alsa_ucm_device *dev;
|
||||
- pa_idxset *subset;
|
||||
+ pa_idxset *subset = NULL;
|
||||
|
||||
pa_assert(devices);
|
||||
pa_assert(state);
|
||||
|
||||
- subset = iterate_device_subsets(devices, state);
|
||||
- if (!subset)
|
||||
- return subset;
|
||||
-
|
||||
- /* Skip this group if it's incomplete, by checking if we can add any
|
||||
- * other device. If we can, this iteration is a subset of another
|
||||
- * group that we already returned or eventually return. */
|
||||
- PA_IDXSET_FOREACH(dev, devices, idx) {
|
||||
- if (!pa_idxset_contains(subset, dev) && devset_supports_device(subset, dev)) {
|
||||
- pa_idxset_free(subset, NULL);
|
||||
- return iterate_maximal_device_subsets(devices, state);
|
||||
+ while (subset == NULL && (subset = iterate_device_subsets(devices, state))) {
|
||||
+ /* Skip this group if it's incomplete, by checking if we can add any
|
||||
+ * other device. If we can, this iteration is a subset of another
|
||||
+ * group that we already returned or eventually return. */
|
||||
+ PA_IDXSET_FOREACH(dev, devices, idx) {
|
||||
+ if (subset && !pa_idxset_contains(subset, dev) && devset_supports_device(subset, dev)) {
|
||||
+ pa_idxset_free(subset, NULL);
|
||||
+ subset = NULL;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
@ -12,8 +12,8 @@ pkgname=(
|
||||
pulseaudio-equalizer
|
||||
pulseaudio-rtp
|
||||
)
|
||||
pkgver=17.0
|
||||
pkgrel=3.1
|
||||
pkgver=17.0+r43+g3e2bb8a1e
|
||||
pkgrel=1
|
||||
pkgdesc="A featureful, general-purpose sound server"
|
||||
url="https://www.freedesktop.org/wiki/Software/PulseAudio/"
|
||||
arch=(x86_64 powerpc64le powerpc64 powerpc riscv64)
|
||||
@ -22,38 +22,57 @@ makedepends=(
|
||||
alsa-lib
|
||||
attr
|
||||
avahi
|
||||
bash
|
||||
bluez
|
||||
bluez-libs
|
||||
check
|
||||
dbus
|
||||
doxygen
|
||||
fftw
|
||||
gcc-libs
|
||||
git
|
||||
glib2
|
||||
glibc
|
||||
gst-plugins-base
|
||||
gst-plugins-base-libs
|
||||
gst-plugins-good
|
||||
gstreamer
|
||||
gtk3
|
||||
jack2
|
||||
libasyncns
|
||||
libcap
|
||||
libice
|
||||
libltdl
|
||||
libsm
|
||||
libsndfile
|
||||
libsoxr
|
||||
libx11
|
||||
libxcb
|
||||
libxtst
|
||||
lirc
|
||||
meson
|
||||
openssl
|
||||
orc
|
||||
python
|
||||
python-dbus
|
||||
python-pyqt5
|
||||
rtkit
|
||||
sbc
|
||||
speexdsp
|
||||
systemd
|
||||
systemd-libs
|
||||
tdb
|
||||
valgrind
|
||||
webrtc-audio-processing-1
|
||||
xmltoman
|
||||
)
|
||||
_commit=1f020889c9aa44ea0f63d7222e8c2b62c3f45f68 # tags/v17.0^0
|
||||
source=("git+https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git#commit=$_commit")
|
||||
b2sums=('SKIP')
|
||||
_commit=3e2bb8a1ece02ae4e2c217273c9c0929cb9f5cae # master
|
||||
source=(
|
||||
"git+https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git#commit=$_commit"
|
||||
0001-alsa-ucm-Fix-segfault-from-recursion-due-to-too-many.patch
|
||||
)
|
||||
b2sums=('1eea3f798a56ea7d51ebc49de20160b8ef2eeae00e4a139786dab02b7a2f0fb459a744a8960d1a6573d7f5591f54a391d943096260edc6dfc5b0f04773b9b311'
|
||||
'73f93801069b2c5b09646870269c0f42cefc2183a73b47c78fd160c978a841c11c5146b98351a11be24d4785181f361a455534e6f6ca2d977cf585044836f8ed')
|
||||
|
||||
pkgver() {
|
||||
cd pulseaudio
|
||||
@ -66,10 +85,8 @@ prepare() {
|
||||
# Freeze version before patching
|
||||
./git-version-gen doesnt-exist >.tarball-version
|
||||
|
||||
# Fix crashes with some UCM devices
|
||||
# https://gitlab.archlinux.org/archlinux/packaging/packages/pulseaudio/-/issues/4
|
||||
git cherry-pick -n f5cacd94abcc47003bd88ad7ca1450de649ffb15
|
||||
git cherry-pick -n ed3d4f0837f670e5e5afb1afa5bcfc8ff05d3407
|
||||
# https://gitlab.archlinux.org/archlinux/packaging/packages/pulseaudio/-/issues/7
|
||||
git apply -3 ../0001-alsa-ucm-Fix-segfault-from-recursion-due-to-too-many.patch
|
||||
}
|
||||
|
||||
build() {
|
||||
@ -103,17 +120,28 @@ _pick() {
|
||||
|
||||
package_pulseaudio() {
|
||||
depends=(
|
||||
alsa-lib
|
||||
fftw
|
||||
libcap
|
||||
libltdl
|
||||
"libpulse=$pkgver-$pkgrel"
|
||||
alsa-lib
|
||||
bash
|
||||
dbus
|
||||
fftw
|
||||
gcc-libs
|
||||
glib2
|
||||
glibc
|
||||
libcap
|
||||
libice
|
||||
libltdl
|
||||
libsm
|
||||
libsndfile
|
||||
libsoxr
|
||||
libx11
|
||||
libxcb
|
||||
libxtst
|
||||
orc
|
||||
rtkit
|
||||
speexdsp
|
||||
systemd
|
||||
systemd-libs
|
||||
tdb
|
||||
webrtc-audio-processing-1
|
||||
)
|
||||
@ -200,22 +228,21 @@ package_pulseaudio() {
|
||||
package_libpulse() {
|
||||
pkgdesc="$pkgdesc (client library)"
|
||||
depends=(
|
||||
bash
|
||||
dbus
|
||||
glib2
|
||||
glibc
|
||||
libasyncns
|
||||
libsndfile
|
||||
libxcb
|
||||
systemd
|
||||
)
|
||||
optdepends=(
|
||||
'glib2: mainloop integration'
|
||||
'pulse-native-provider: PulseAudio backend'
|
||||
systemd-libs
|
||||
)
|
||||
optdepends=('pulse-native-provider: PulseAudio backend')
|
||||
provides=(
|
||||
libpulse-mainloop-glib.so
|
||||
libpulse-simple.so
|
||||
libpulse.so
|
||||
)
|
||||
license=(LGPL)
|
||||
backup=(etc/pulse/client.conf)
|
||||
|
||||
mv libpulse/* "$pkgdir"
|
||||
@ -224,8 +251,11 @@ package_libpulse() {
|
||||
package_pulseaudio-zeroconf() {
|
||||
pkgdesc="Zeroconf support for PulseAudio"
|
||||
depends=(
|
||||
avahi
|
||||
"libpulse=$pkgver-$pkgrel"
|
||||
"pulseaudio=$pkgver-$pkgrel"
|
||||
avahi
|
||||
dbus
|
||||
glibc
|
||||
)
|
||||
|
||||
mv zeroconf/* "$pkgdir"
|
||||
@ -234,8 +264,9 @@ package_pulseaudio-zeroconf() {
|
||||
package_pulseaudio-lirc() {
|
||||
pkgdesc="IR (lirc) support for PulseAudio"
|
||||
depends=(
|
||||
lirc
|
||||
"pulseaudio=$pkgver-$pkgrel"
|
||||
glibc
|
||||
lirc
|
||||
)
|
||||
|
||||
mv lirc/* "$pkgdir"
|
||||
@ -244,8 +275,10 @@ package_pulseaudio-lirc() {
|
||||
package_pulseaudio-jack() {
|
||||
pkgdesc="Jack support for PulseAudio"
|
||||
depends=(
|
||||
jack
|
||||
"pulseaudio=$pkgver-$pkgrel"
|
||||
dbus
|
||||
glibc
|
||||
jack
|
||||
)
|
||||
|
||||
mv jack/* "$pkgdir"
|
||||
@ -254,10 +287,15 @@ package_pulseaudio-jack() {
|
||||
package_pulseaudio-bluetooth() {
|
||||
pkgdesc="Bluetooth support for PulseAudio"
|
||||
depends=(
|
||||
"libpulse=$pkgver-$pkgrel"
|
||||
"pulseaudio=$pkgver-$pkgrel"
|
||||
bluez
|
||||
bluez-libs
|
||||
dbus
|
||||
glib2
|
||||
glibc
|
||||
gst-plugins-base-libs
|
||||
"pulseaudio=$pkgver-$pkgrel"
|
||||
gstreamer
|
||||
sbc
|
||||
)
|
||||
optdepends=('gst-plugins-bad: AptX and LDAC support')
|
||||
@ -269,6 +307,10 @@ package_pulseaudio-equalizer() {
|
||||
pkgdesc="Graphical equalizer for PulseAudio"
|
||||
depends=(
|
||||
"pulseaudio=$pkgver-$pkgrel"
|
||||
dbus
|
||||
fftw
|
||||
glibc
|
||||
python
|
||||
python-dbus
|
||||
python-pyqt5
|
||||
)
|
||||
@ -279,11 +321,15 @@ package_pulseaudio-equalizer() {
|
||||
package_pulseaudio-rtp() {
|
||||
pkgdesc="RTP and RAOP support for PulseAudio"
|
||||
depends=(
|
||||
"libpulse=$pkgver-$pkgrel"
|
||||
"pulseaudio=$pkgver-$pkgrel"
|
||||
glib2
|
||||
glibc
|
||||
gst-plugins-base
|
||||
gst-plugins-base-libs
|
||||
gst-plugins-good
|
||||
gstreamer
|
||||
openssl
|
||||
"pulseaudio=$pkgver-$pkgrel"
|
||||
)
|
||||
|
||||
mv rtp/* "$pkgdir"
|
||||
|
Loading…
x
Reference in New Issue
Block a user