Compare commits
11 Commits
b40144d146
...
12ec2ab73b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
12ec2ab73b | ||
|
|
279c7d1133 | ||
|
|
37c9c86bb9 | ||
|
|
2a94bf6783 | ||
|
|
a671d3d052 | ||
|
|
d0c539133b | ||
|
|
4486e0d28f | ||
|
|
8c97c51ab0 | ||
|
|
40efc3c119 | ||
|
|
a9f120c901 | ||
|
|
f352aaf393 |
@ -1,27 +0,0 @@
|
||||
From 306282bee2b993ebdf83ffb6c731655bb841441d Mon Sep 17 00:00:00 2001
|
||||
From: tangjie02 <tangjie02@kylinsec.com.cn>
|
||||
Date: Tue, 26 Jul 2022 19:52:44 +0800
|
||||
Subject: [PATCH] Fix the problem that the description field of pa_alsa_path
|
||||
struct isn't translated
|
||||
|
||||
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
|
||||
---
|
||||
src/modules/alsa/alsa-mixer.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
|
||||
index 7b755ce..49c3968 100644
|
||||
--- a/src/modules/alsa/alsa-mixer.c
|
||||
+++ b/src/modules/alsa/alsa-mixer.c
|
||||
@@ -2838,7 +2838,7 @@ static int path_verify(pa_alsa_path *p) {
|
||||
if (p->device_port_type == PA_DEVICE_PORT_TYPE_UNKNOWN)
|
||||
p->device_port_type = map->type;
|
||||
if (!p->description)
|
||||
- p->description = pa_xstrdup(map->description);
|
||||
+ p->description = pa_xstrdup(_(map->description));
|
||||
}
|
||||
|
||||
if (!p->description) {
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -1,49 +0,0 @@
|
||||
From def8eb074eb4a80836c39fa320c33fe89bce38d9 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Mon, 27 Jun 2022 10:32:07 +0200
|
||||
Subject: [PATCH] alsa-mixer: allow to re-attach the mixer control element
|
||||
|
||||
It may be possible that the ALSA control element appears
|
||||
again. Allow this combination by checking, if the pulseaudio
|
||||
mixer element already exists. Do not create the duplicate
|
||||
mixer element in this case.
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/729>
|
||||
---
|
||||
src/modules/alsa/alsa-util.c | 18 +++++++++++++-----
|
||||
1 file changed, 13 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c
|
||||
index f4e838d37..81dc77cc3 100644
|
||||
--- a/src/modules/alsa/alsa-util.c
|
||||
+++ b/src/modules/alsa/alsa-util.c
|
||||
@@ -1663,12 +1663,20 @@ static int mixer_class_event(snd_mixer_class_t *class, unsigned int mask,
|
||||
} else if (mask & SND_CTL_EVENT_MASK_ADD) {
|
||||
snd_ctl_elem_iface_t iface = snd_hctl_elem_get_interface(helem);
|
||||
if (iface == SND_CTL_ELEM_IFACE_CARD || iface == SND_CTL_ELEM_IFACE_PCM) {
|
||||
+ snd_mixer_t *mixer = snd_mixer_class_get_mixer(class);
|
||||
+ snd_ctl_elem_iface_t iface = snd_hctl_elem_get_interface(helem);
|
||||
+ const char *name = snd_hctl_elem_get_name(helem);
|
||||
+ const int index = snd_hctl_elem_get_index(helem);
|
||||
+ const int device = snd_hctl_elem_get_device(helem);
|
||||
snd_mixer_elem_t *new_melem;
|
||||
-
|
||||
- /* Put the hctl pointer as our private data - it will be useful for callbacks */
|
||||
- if ((err = snd_mixer_elem_new(&new_melem, SND_MIXER_ELEM_PULSEAUDIO, 0, helem, NULL)) < 0) {
|
||||
- pa_log_warn("snd_mixer_elem_new failed: %s", pa_alsa_strerror(err));
|
||||
- return 0;
|
||||
+
|
||||
+ new_melem = pa_alsa_mixer_find(mixer, iface, name, index, device);
|
||||
+ if (!new_melem) {
|
||||
+ /* Put the hctl pointer as our private data - it will be useful for callbacks */
|
||||
+ if ((err = snd_mixer_elem_new(&new_melem, SND_MIXER_ELEM_PULSEAUDIO, 0, helem, NULL)) < 0) {
|
||||
+ pa_log_warn("snd_mixer_elem_new failed: %s", pa_alsa_strerror(err));
|
||||
+ return 0;
|
||||
+ }
|
||||
}
|
||||
|
||||
if ((err = snd_mixer_elem_attach(new_melem, helem)) < 0) {
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -1,59 +0,0 @@
|
||||
From 4bdf4c99662f3da0e58d6c04bafff95d84362922 Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
|
||||
Date: Mon, 27 Jun 2022 10:09:52 +0900
|
||||
Subject: [PATCH] alsa-mixer: avoid assertion at alsa-lib mixer API when
|
||||
element removal
|
||||
|
||||
PulseAudio v5.99 or later hits assertion at alsa-lib mixer API due to
|
||||
wrong handling of removal event for mixer element.
|
||||
|
||||
pulseaudio: mixer.c:149: hctl_elem_event_handler: Assertion `bag_empty(bag)' failed.
|
||||
|
||||
The removal event is defined as '~0U', thus it's not distinguished from
|
||||
the other type of event just by bitwise operator.
|
||||
|
||||
At the removal event, class implementator for mixer API should detach
|
||||
mixer element from hcontrol element in callback handler since alsa-lib
|
||||
has assertion to check the list of mixer elements for a hcontrol element
|
||||
is empty or not after calling all of handlers. In detail, please refer to
|
||||
MR to alsa-lib:
|
||||
|
||||
* https://github.com/alsa-project/alsa-lib/pull/244
|
||||
|
||||
This commit fixes the above two issues. The issue can be regenerated by
|
||||
`samples/ctl` Python 3 script of alsa-gobject.
|
||||
|
||||
* https://github.com/alsa-project/alsa-gobject/
|
||||
|
||||
It adds some user-defined elements into sound card 0. When terminated by
|
||||
SIGINT signal, it removes the elements. Then PulseAudio dies due to the
|
||||
assertion.
|
||||
|
||||
Fixes: 1fd8848e64cf ("alsa-util: Add functions for accessing mixer elements through mixer class")
|
||||
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/728>
|
||||
---
|
||||
src/modules/alsa/alsa-util.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c
|
||||
index 7dc373fa0..f4e838d37 100644
|
||||
--- a/src/modules/alsa/alsa-util.c
|
||||
+++ b/src/modules/alsa/alsa-util.c
|
||||
@@ -1654,7 +1654,13 @@ static int mixer_class_event(snd_mixer_class_t *class, unsigned int mask,
|
||||
{
|
||||
int err;
|
||||
const char *name = snd_hctl_elem_get_name(helem);
|
||||
- if (mask & SND_CTL_EVENT_MASK_ADD) {
|
||||
+ /* NOTE: The remove event is defined as '~0U`. */
|
||||
+ if (mask == SND_CTL_EVENT_MASK_REMOVE) {
|
||||
+ /* NOTE: Unless we remove the pointer to melem from the linked-list at
|
||||
+ * private_data of helem, an assertion will be hit in alsa-lib since
|
||||
+ * the list is not empty. */
|
||||
+ snd_mixer_elem_detach(melem, helem);
|
||||
+ } else if (mask & SND_CTL_EVENT_MASK_ADD) {
|
||||
snd_ctl_elem_iface_t iface = snd_hctl_elem_get_interface(helem);
|
||||
if (iface == SND_CTL_ELEM_IFACE_CARD || iface == SND_CTL_ELEM_IFACE_PCM) {
|
||||
snd_mixer_elem_t *new_melem;
|
||||
--
|
||||
2.33.0
|
||||
|
||||
Binary file not shown.
@ -1 +0,0 @@
|
||||
8eef32ce91d47979f95fd9a935e738cd7eb7463430dabc72863251751e504ae4 *pulseaudio-16.1.tar.xz
|
||||
BIN
pulseaudio-17.0.tar.xz
Normal file
BIN
pulseaudio-17.0.tar.xz
Normal file
Binary file not shown.
1
pulseaudio-17.0.tar.xz.sha256sum
Normal file
1
pulseaudio-17.0.tar.xz.sha256sum
Normal file
@ -0,0 +1 @@
|
||||
053794d6671a3e397d849e478a80b82a63cb9d8ca296bd35b73317bb5ceb87b5 *pulseaudio-17.0.tar.xz
|
||||
@ -1,23 +0,0 @@
|
||||
|
||||
|
||||
---
|
||||
src/daemon/start-pulseaudio-x11.in | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/src/daemon/start-pulseaudio-x11.in b/src/daemon/start-pulseaudio-x11.in
|
||||
index 722a639..7cdf14e 100755
|
||||
--- a/src/daemon/start-pulseaudio-x11.in
|
||||
+++ b/src/daemon/start-pulseaudio-x11.in
|
||||
@@ -17,6 +17,9 @@
|
||||
|
||||
set -e
|
||||
|
||||
+# probe to test if autospawn works, else resort to starting manually
|
||||
+@PACTL_BINARY@ info > /dev/null 2>&1 || /usr/bin/pulseaudio --start "$@"
|
||||
+
|
||||
if [ -n "$1" ] ; then
|
||||
case $1 in
|
||||
stop)
|
||||
--
|
||||
2.27.0
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
%global pa_major 17.0
|
||||
|
||||
%undefine _strict_symbol_defs_build
|
||||
|
||||
%global multilib_archs x86_64 %{ix86}
|
||||
@ -5,18 +7,14 @@
|
||||
|
||||
Name: pulseaudio
|
||||
Summary: Improved Linux Sound Server
|
||||
Version: 16.1
|
||||
Release: 6
|
||||
Version: %{pa_major}%{?pa_minor:.%{pa_minor}}
|
||||
Release: 1
|
||||
License: LGPLv2+
|
||||
URL: https://www.freedesktop.org/wiki/Software/PulseAudio
|
||||
Source0: https://freedesktop.org/software/pulseaudio/releases/pulseaudio-%{version}.tar.xz
|
||||
Source1: https://freedesktop.org/software/pulseaudio/releases/pulseaudio-%{version}.tar.xz.sha256sum
|
||||
Source5: default.pa-for-gdm
|
||||
|
||||
Patch201: pulseaudio-autostart.patch
|
||||
Patch1001: 0001-Fix-the-problem-that-the-description-field-of-pa_als.patch
|
||||
Patch1002: 0001-alsa-mixer-avoid-assertion-at-alsa-lib-mixer-API-whe.patch
|
||||
Patch1003: 0001-alsa-mixer-allow-to-re-attach-the-mixer-control-elem.patch
|
||||
|
||||
BuildRequires: meson
|
||||
BuildRequires: automake libtool gcc-c++ bash-completion
|
||||
@ -129,7 +127,7 @@ mv -fv $RPM_BUILD_ROOT/lib/udev/rules.d/90-pulseaudio.rules $RPM_BUILD_ROOT%{_pr
|
||||
|
||||
## delete rpath
|
||||
touch %{name}-%{_arch}.conf
|
||||
echo "%{_libdir}/pulse-%{version}/modules" >> %{name}-%{_arch}.conf
|
||||
echo "%{_libdir}/pulseaudio/modules" >> %{name}-%{_arch}.conf
|
||||
echo "%{_libdir}/%{name}/" >> %{name}-%{_arch}.conf
|
||||
find $RPM_BUILD_ROOT/ -type f -exec file {} ';' | grep "ELF" | awk -F ':' '{print $1}' | xargs -i chrpath --delete {}
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/ld.so.conf.d
|
||||
@ -169,7 +167,7 @@ exit 0
|
||||
%config(noreplace) %{_sysconfdir}/pulse/daemon.conf
|
||||
%config(noreplace) %{_sysconfdir}/pulse/*.pa
|
||||
%config(noreplace) %{_sysconfdir}/pulse/client.conf
|
||||
%{_sysconfdir}/dbus-1/system.d/pulseaudio-system.conf
|
||||
%{_datadir}/dbus-1/system.d/pulseaudio-system.conf
|
||||
%{_sysconfdir}/xdg/autostart/pulseaudio.desktop
|
||||
%{bash_completionsdir}/*
|
||||
%{_bindir}/pulseaudio
|
||||
@ -189,7 +187,7 @@ exit 0
|
||||
%exclude %{_libdir}/libpulse-simple.so.0*
|
||||
%exclude %{_libdir}/libpulse-mainloop-glib.so.0*
|
||||
%{_libdir}/pulseaudio/*.so
|
||||
%exclude %{_libdir}/pulseaudio/libpulsecommon-%{version}.so
|
||||
%exclude %{_libdir}/pulseaudio/libpulsecommon-%{pa_major}.so
|
||||
%{_libdir}/pulseaudio/modules/*.so
|
||||
%exclude %{_libdir}/pulseaudio/modules/module-equalizer-sink.so
|
||||
%exclude %{_libdir}/pulseaudio/modules/module-detect.so
|
||||
@ -226,7 +224,7 @@ exit 0
|
||||
%{_libdir}/libpulse.so.0*
|
||||
%{_libdir}/libpulse-simple.so.0*
|
||||
%dir %{_libdir}/pulseaudio/
|
||||
%{_libdir}/pulseaudio/libpulsecommon-%{version}.so
|
||||
%{_libdir}/pulseaudio/libpulsecommon-%{pa_major}.so
|
||||
|
||||
%files libs-glib2
|
||||
%{_libdir}/libpulse-mainloop-glib.so.0*
|
||||
@ -244,6 +242,21 @@ exit 0
|
||||
%{_mandir}/man*/*
|
||||
|
||||
%changelog
|
||||
* Tue Feb 06 2024 taoyuxiang <taoyuxiang2@huawei.com> - 17.0-1
|
||||
- update to version 17.0
|
||||
|
||||
* Wed Nov 01 2023 liweigang <weigangli99@gmail.com> - 16.99.1-1
|
||||
- update to version 16.99.1
|
||||
|
||||
* Thu Apr 27 2023 wuxu <wuxu.wu@huawei.com> - 16.1-9
|
||||
- alsa-ucm: Always create device conflicting/supported device idxsets
|
||||
|
||||
* Tue Mar 14 2023 peijiankang <peijiankang@kylinos.cn> - 16.1-8
|
||||
- fix cannot open shared object file libprotocol-native.so libalsa-util.so
|
||||
|
||||
* Mon Dec 12 2022 wuxu <wuxu.wu@huawei.com> - 16.1-7
|
||||
- idxset: Add reverse iteration functions, set comparison operations adn set contains() function
|
||||
|
||||
* Mon Dec 12 2022 wuxu <wuxu.wu@huawei.com> - 16.1-6
|
||||
- alsa-mixer: allow to re-attach the mixer control element
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user