Compare commits

...

11 Commits

Author SHA1 Message Date
openeuler-ci-bot
12ec2ab73b
!81 update to version 17.0
From: @nicholastao 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2024-02-07 03:18:49 +00:00
nicholastao
279c7d1133
update pulseaudio.spec.
Signed-off-by: nicholastao <taoyuxiang2@huawei.com>
2024-02-07 02:02:14 +00:00
taoyuxiang
37c9c86bb9 update to version 17.0 2024-02-06 21:11:29 +08:00
openeuler-ci-bot
2a94bf6783
!78 update to version 16.99.1
From: @weigang-li 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2023-11-01 08:51:16 +00:00
li weigang
a671d3d052 update to version 16.99.1 2023-11-01 13:56:16 +08:00
openeuler-ci-bot
d0c539133b
!75 alsa-ucm: Always create device conflicting/supported device idxsets
From: @wuxu_buque_admin 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2023-04-27 06:29:25 +00:00
buque
4486e0d28f alsa-ucm: Always create device conflicting/supported device idxsets
This is intended to make the current and upcoming code a bit clearer, as
we won't need to constantly check for the existence of these idxsets
before using or operating on them.
2023-04-27 12:09:40 +08:00
openeuler-ci-bot
8c97c51ab0
!74 [sync] PR-73: fix cannot open shared object file libprotocol-native.so libalsa-util.so
From: @openeuler-sync-bot 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2023-03-14 07:00:00 +00:00
peijiankang
40efc3c119 fix cannot open shared object file libprotocol-native.so libalsa-util.so
(cherry picked from commit bbdb4172a9e277780b24358263e0290873a9159a)
2023-03-14 14:58:54 +08:00
openeuler-ci-bot
a9f120c901
!70 idxset: Add reverse iteration functions, set comparison operations adn set contains() function
From: @wuxu_buque 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2022-12-12 07:33:31 +00:00
buque
f352aaf393 idxset: Add reverse iteration functions, set comparison operations adn set contains() function
Add complementary functions to the existing idxset iterate(),
    steal_first(), first(), next() functions that work in the reverse
    direction: reverse_iterate(), steal_last(), last() and previous().

    Add isdisjoint(), issubset(), issuperset() and equals() functions that
    element-wise compare two idxsets.

    Add set contains() function, This is functionally equivalent to get_by_data(s, p, NULL) == p, but
    with a more obvious name and form because some existing code is instead
    manually iterating through idxsets to check for existence of an item.

    Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
    Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/596>
2022-12-12 15:12:41 +08:00
9 changed files with 24 additions and 169 deletions

View File

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

View File

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

View File

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

View File

@ -1 +0,0 @@
8eef32ce91d47979f95fd9a935e738cd7eb7463430dabc72863251751e504ae4 *pulseaudio-16.1.tar.xz

BIN
pulseaudio-17.0.tar.xz Normal file

Binary file not shown.

View File

@ -0,0 +1 @@
053794d6671a3e397d849e478a80b82a63cb9d8ca296bd35b73317bb5ceb87b5 *pulseaudio-17.0.tar.xz

View File

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

View File

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