diff --git a/.gitignore b/.gitignore index 164c3cd..19dc3be 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ /alsa-lib-1.*.tar.bz2 -/alsa-topology-conf-1.2.1.tar.bz2 -/alsa-ucm-conf-1.2.1.tar.bz2 +/alsa-topology-conf-1.*.tar.bz2 +/alsa-ucm-conf-1.*.tar.bz2 diff --git a/alsa-git.patch b/alsa-git.patch deleted file mode 100644 index e69de29..0000000 diff --git a/alsa-lib-1.0.14-glibc-open.patch b/alsa-lib-1.0.14-glibc-open.patch deleted file mode 100644 index bc625bd..0000000 --- a/alsa-lib-1.0.14-glibc-open.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- alsa-lib-1.0.14/aserver/aserver.c 2007-05-31 10:05:13.000000000 +0200 -+++ alsa-lib-1.0.14.lennart/aserver/aserver.c 2007-08-15 15:53:32.000000000 +0200 -@@ -35,6 +35,8 @@ - - #include "aserver.h" - -+#undef open -+ - char *command; - - #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) diff --git a/alsa-lib-1.2.10-glibc-open.patch b/alsa-lib-1.2.10-glibc-open.patch new file mode 100644 index 0000000..2e53a92 --- /dev/null +++ b/alsa-lib-1.2.10-glibc-open.patch @@ -0,0 +1,10 @@ +--- alsa-lib-1.2.10/aserver/aserver.c~ 2023-09-01 17:35:48.000000000 +0200 ++++ alsa-lib-1.2.10/aserver/aserver.c 2023-09-01 18:13:11.339601685 +0200 +@@ -35,6 +35,7 @@ + #include + #include + ++#undef open + + char *command; + diff --git a/alsa-lib-1.1.9-config.patch b/alsa-lib-1.2.3.1-config.patch similarity index 85% rename from alsa-lib-1.1.9-config.patch rename to alsa-lib-1.2.3.1-config.patch index f8c2c59..95961a5 100644 --- a/alsa-lib-1.1.9-config.patch +++ b/alsa-lib-1.2.3.1-config.patch @@ -1,19 +1,19 @@ diff --git a/src/conf/alsa.conf b/src/conf/alsa.conf -index 09980586..c4525f0b 100644 +index 18427ec6..1915af4e 100644 --- a/src/conf/alsa.conf +++ b/src/conf/alsa.conf -@@ -67,8 +67,7 @@ defaults.pcm.nonblock 1 +@@ -80,8 +80,7 @@ defaults.pcm.nonblock 1 defaults.pcm.compat 0 defaults.pcm.minperiodtime 5000 # in us defaults.pcm.ipc_key 5678293 -defaults.pcm.ipc_gid audio -defaults.pcm.ipc_perm 0660 +defaults.pcm.ipc_perm 0600 + defaults.pcm.tstamp_type default defaults.pcm.dmix.max_periods 0 defaults.pcm.dmix.channels 2 - defaults.pcm.dmix.rate 48000 diff --git a/src/conf/pcm/dmix.conf b/src/conf/pcm/dmix.conf -index 7fa5c8b2..97936a82 100644 +index 50e573da..70523f29 100644 --- a/src/conf/pcm/dmix.conf +++ b/src/conf/pcm/dmix.conf @@ -48,10 +48,6 @@ pcm.!dmix { @@ -28,7 +28,7 @@ index 7fa5c8b2..97936a82 100644 @func refer name defaults.pcm.ipc_perm diff --git a/src/conf/pcm/dsnoop.conf b/src/conf/pcm/dsnoop.conf -index abbd44f7..528fb6ad 100644 +index f4336e5f..60b9f212 100644 --- a/src/conf/pcm/dsnoop.conf +++ b/src/conf/pcm/dsnoop.conf @@ -41,10 +41,6 @@ pcm.!dsnoop { diff --git a/alsa-lib.spec b/alsa-lib.spec index 4900974..df66e75 100644 --- a/alsa-lib.spec +++ b/alsa-lib.spec @@ -2,15 +2,18 @@ #define prever_dot .rc3 #define postver a -%define version_alsa_lib 1.2.1 -%define version_alsa_ucm 1.2.1 -%define version_alsa_tplg 1.2.1 +%define version_alsa_lib 1.2.15.3 +%define version_alsa_ucm 1.2.15.3 +%define version_alsa_tplg 1.2.5 + +%global lib_patch 0 +%global ucm_patch 0 Summary: The Advanced Linux Sound Architecture (ALSA) library Name: alsa-lib Version: %{version_alsa_lib} -Release: 1%{?prever_dot}%{?dist} -License: LGPLv2+ +Release: 2%{?prever_dot}%{?dist} +License: LGPL-2.1-or-later URL: http://www.alsa-project.org/ Source: ftp://ftp.alsa-project.org/pub/lib/%{name}-%{version}%{?prever}%{?postver}.tar.bz2 @@ -19,12 +22,18 @@ Source2: ftp://ftp.alsa-project.org/pub/lib/alsa-topology-conf-%{version_alsa_t Source10: asound.conf Source11: modprobe-dist-alsa.conf Source12: modprobe-dist-oss.conf -#Patch0: alsa-git.patch -Patch1: alsa-lib-1.1.9-config.patch -Patch2: alsa-lib-1.0.14-glibc-open.patch +%if %{ucm_patch} +Source40: alsa-ucm-conf.patch +%endif +%if %{lib_patch} +Patch0: alsa-git.patch +%endif +Patch1: alsa-lib-1.2.3.1-config.patch +Patch2: alsa-lib-1.2.10-glibc-open.patch BuildRequires: doxygen BuildRequires: autoconf automake libtool +BuildRequires: make %description The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI @@ -49,7 +58,8 @@ against the ALSA libraries and interfaces. %package -n alsa-ucm Summary: ALSA Use Case Manager configuration BuildArch: noarch -Requires: %{name} >= %{version_alsa_ucm} +License: BSD-3-Clause +Requires: %{name} >= %{version_alsa_lib} %description -n alsa-ucm The Advanced Linux Sound Architecture (ALSA) Use Case Manager configuration @@ -58,7 +68,8 @@ contains alsa-lib configuration of Audio input/output names and routing %package -n alsa-topology Summary: ALSA Topology configuration BuildArch: noarch -Requires: %{name} >= %{version_alsa_tplg} +License: BSD-3-Clause +Requires: %{name} >= %{version_alsa_lib} %description -n alsa-topology The Advanced Linux Sound Architecture (ALSA) topology configuration @@ -66,11 +77,23 @@ contains alsa-lib configuration of SoC topology %prep %setup -q -n %{name}-%{version}%{?prever}%{?postver} -#%patch0 -p1 -b .alsa-git -%patch1 -p1 -b .config -%patch2 -p1 -b .glibc-open +%if %{lib_patch} +%patch -P0 -p1 -b .alsa-git +%endif +%patch -P1 -p1 -b .config +%patch -P2 -p1 -b .glibc-open %build +# This package uses top level ASM constructs which are incompatible with LTO. +# Top level ASMs are often used to implement symbol versioning. gcc-10 +# introduces a new mechanism for symbol versioning which works with LTO. +# Converting packages to use that mechanism instead of toplevel ASMs is +# recommended. +# Note: The v1.2.4 contains changes wich are compatible with gcc-10 LTO +# although using the old ASM constructs. +# Enable custom LTO flags +%define _lto_cflags -flto -ffat-lto-objects -flto-partition=none + autoreconf -vif %configure --disable-aload --with-plugindir=%{_libdir}/alsa-lib --disable-alisp @@ -86,13 +109,6 @@ make doc make DESTDIR=%{buildroot} install -# We need the library to be available even before /usr might be mounted -mkdir -p %{buildroot}/%{_lib} -mv %{buildroot}%{_libdir}/libasound.so.* %{buildroot}/%{_lib} -ln -snf ../../%{_lib}/libasound.so.2 %{buildroot}%{_libdir}/libasound.so -mv %{buildroot}%{_libdir}/libatopology.so.* %{buildroot}/%{_lib} -ln -snf ../../%{_lib}/libatopology.so.2 %{buildroot}%{_libdir}/libatopology.so - # Install global configuration files mkdir -p -m 755 %{buildroot}/etc install -p -m 644 %{SOURCE10} %{buildroot}/etc @@ -108,13 +124,16 @@ mkdir -p %{buildroot}/%{_datadir}/alsa/ucm mkdir -p %{buildroot}/%{_datadir}/alsa/ucm2 # Unpack UCMs -tar xvJf %{SOURCE1} -C %{buildroot}/%{_datadir}/alsa ucm ucm2 +tar xvjf %{SOURCE1} -C %{buildroot}/%{_datadir}/alsa --strip-components=1 "*/ucm" "*/ucm2" +%if %{ucm_patch} +patch -d %{buildroot}/%{_datadir}/alsa -p1 < %{SOURCE40} +%endif # Create topology directory mkdir -p %{buildroot}/%{_datadir}/alsa/topology # Unpack topologies -tar xvJf %{SOURCE2} -C %{buildroot}/%{_datadir}/alsa topology +tar xvjf %{SOURCE2} -C %{buildroot}/%{_datadir}/alsa --strip-components=1 "*/topology" # Remove libtool archives. find %{buildroot} -name '*.la' -delete @@ -129,8 +148,8 @@ rm %{buildroot}/%{_includedir}/asoundlib.h %license COPYING %doc doc/asoundrc.txt modprobe-dist-oss.conf %config %{_sysconfdir}/asound.conf -/%{_lib}/libasound.so.* -/%{_lib}/libatopology.so.* +/%{_libdir}/libasound.so.* +/%{_libdir}/libatopology.so.* %{_bindir}/aserver #{_libdir}/alsa-lib/ %{_datadir}/alsa/ @@ -150,14 +169,185 @@ rm %{buildroot}/%{_includedir}/asoundlib.h %{_datadir}/aclocal/alsa.m4 %files -n alsa-ucm +# BSD %{_datadir}/alsa/ucm %{_datadir}/alsa/ucm2 %files -n alsa-topology +# BSD %{_datadir}/alsa/topology %changelog -* Wed Nov 13 2019 Jaroslav Kysela - 1.2.1-1 +* Fri Jan 16 2026 Fedora Release Engineering - 1.2.15.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Tue Jan 13 2026 Jaroslav Kysela - 1.2.15.3-1 +- update to 1.2.15.3 + +* Thu Jan 8 2026 Jaroslav Kysela - 1.2.15.2-1 +- update to 1.2.15.2 + +* Fri Dec 19 2025 Jaroslav Kysela - 1.2.15.1-1 +- update to 1.2.15.1 + +* Wed Dec 10 2025 Jaroslav Kysela - 1.2.15-4 +- update to 1.2.15 + +* Wed Jul 23 2025 Fedora Release Engineering - 1.2.14-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Jun 24 2025 Jaroslav Kysela - 1.2.14-3 +- update to latest alsa-ucm-conf files + +* Mon Apr 14 2025 Jaroslav Kysela - 1.2.14-2 +- update to 1.2.14 + +* Thu Jan 16 2025 Fedora Release Engineering - 1.2.13-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Fri Nov 15 2024 Jaroslav Kysela - 1.2.13-3 +- update to 1.2.13 + +* Wed Jul 17 2024 Fedora Release Engineering - 1.2.12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jun 10 2024 Jaroslav Kysela - 1.2.12-1 +- update to 1.2.12 + +* Mon Jan 29 2024 Jaroslav Kysela - 1.2.11-2 +- update to 1.2.11 + +* Mon Jan 22 2024 Fedora Release Engineering - 1.2.10-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 1.2.10-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Sep 4 2023 Jaroslav Kysela - 1.2.10-3 +- fix control.h header file (ump) +- fix SplitPCM (alsa-ucm) + +* Fri Sep 1 2023 Jaroslav Kysela - 1.2.10-1 +- update to 1.2.10 + +* Wed Jul 19 2023 Fedora Release Engineering - 1.2.9-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 6 2023 Jaroslav Kysela - 1.2.9-3 +- SPDX licences + +* Tue May 16 2023 Jaroslav Kysela - 1.2.9-2 +- update ucm (nhlt-dmic-info) + +* Thu May 4 2023 Jaroslav Kysela - 1.2.9-1 +- update to 1.2.9 + +* Wed Jan 18 2023 Fedora Release Engineering - 1.2.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Dec 7 2022 Jaroslav Kysela - 1.2.8-2 +- update lib code to latest git +- update ucm configs to latest git + +* Mon Oct 24 2022 Jaroslav Kysela - 1.2.8-1 +- update to 1.2.8 + +* Wed Jul 20 2022 Fedora Release Engineering - 1.2.7.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jul 8 2022 Jaroslav Kysela - 1.2.7.1-2 +- update to 1.2.7.2 + +* Fri Jun 17 2022 Jaroslav Kysela - 1.2.7.1-1 +- update to 1.2.7.1 + +* Tue May 31 2022 Jaroslav Kysela - 1.2.7-1 +- update to 1.2.7 + +* Wed Jan 19 2022 Fedora Release Engineering - 1.2.6.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Dec 17 2021 Jaroslav Kysela - 1.2.6.1-3 +- updated alsa-ucm-conf to 1.2.6.3 + +* Fri Dec 10 2021 Jaroslav Kysela - 1.2.6.1-2 +- updated alsa-lib to 1.2.6.1 and alsa-ucm-conf to 1.2.6.2 + +* Thu Dec 9 2021 Jaroslav Kysela - 1.2.6-3 +- device open fixes from upstream + +* Mon Dec 6 2021 Jaroslav Kysela - 1.2.6-1 +- update to 1.2.6 + +* Sat Nov 13 2021 Peter Robinson - 1.2.5.1-4 +- Add Rockchip ES8316 support + +* Tue Aug 31 2021 Jaroslav Kysela - 1.2.5.1-3 +- add UCM related fixes + +* Wed Jul 21 2021 Fedora Release Engineering - 1.2.5.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jun 14 2021 Jaroslav Kysela - 1.2.5.1-1 +- update to 1.2.5.1 + +* Wed Jun 2 2021 Jaroslav Kysela - 1.2.5-2 +- add upstream fixes (conf + ucm) + +* Fri May 28 2021 Jaroslav Kysela - 1.2.5-1 +- update to 1.2.5 + +* Tue Jan 26 2021 Fedora Release Engineering - 1.2.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Oct 19 2020 Jaroslav Kysela - 1.2.4-4 +- update to 1.2.4 +- enable LTO + +* Fri Jul 31 2020 Fedora Release Engineering - 1.2.3.2-5 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 1.2.3.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 1 2020 Jeff Law - 1.2.3.2-3 +- Disable LTO + +* Mon Jun 29 2020 Jaroslav Kysela - 1.2.3.2-2 +- update to 1.2.3.2 + +* Thu Jun 18 2020 Jaroslav Kysela - 1.2.3.1-1 +- update to 1.2.3.1 + +* Sun Jun 7 2020 Jaroslav Kysela - 1.2.3-8 +- update to 1.2.3 + +* Mon Apr 6 2020 Jaroslav Kysela - 1.2.2-2 +- UCM2 fixes (RemoveDevice), bug#1786723 + +* Wed Feb 19 2020 Jaroslav Kysela - 1.2.2-1 +- Updated to 1.2.2 + +* Sun Feb 9 2020 Jaroslav Kysela - 1.2.1.2-6 +- More UCM2 related fixes + +* Tue Jan 28 2020 Fedora Release Engineering - 1.2.1.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Dec 9 2019 Jaroslav Kysela - 1.2.1.2-4 +- Fixes for sof-hda-dsp UCM2 configuration + +* Tue Dec 3 2019 Jaroslav Kysela - 1.2.1.2-3 +- Fixed more UCM2 related issues + +* Fri Nov 29 2019 Jaroslav Kysela - 1.2.1.2-1 +- Updated to 1.2.1.2 + +* Tue Nov 19 2019 Jaroslav Kysela - 1.2.1.1-1 +- Updated to 1.2.1.1 + +* Wed Nov 13 2019 Jaroslav Kysela - 1.2.1-3 - Updated to 1.2.1 * Wed Jul 24 2019 Fedora Release Engineering - 1.1.9-2 diff --git a/sources b/sources index 05c95a3..8a1161f 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (alsa-lib-1.2.1.tar.bz2) = 3bc0eef8eb0e16a521781ee4303df7b9c313432f174625fa77d54ed1650ced74efa47e215d26f94af36a1a275bb9975a9c51a51983b5303de1b19bf562bc1dd9 -SHA512 (alsa-ucm-conf-1.2.1.tar.bz2) = f86b94f8b5309f06a4aa9aecdd586cd69c618eedae7914857cf2ee4292fe1ce826781da636e53a0a8206ac78315e6b248cba8111f1647ca075ea60224b41efd9 -SHA512 (alsa-topology-conf-1.2.1.tar.bz2) = 2a17493ba563ee45362e4d2e63fd432d63aed0c817cb42d204d64924f12451d7a03dfa947edf4eb1b644c42c93e15c5d4d4e19d8b942db6a847cfd104ba4ec73 +SHA512 (alsa-lib-1.2.15.3.tar.bz2) = 7fc0fa8a5ae02d3404d2c262c6a14fcbb8b08e25993eac86b9e89b8419ed4d293b422da77b3eb7a1930f26c316b638e5aa7bdba78b0ada9908b0362d132a0cc0 +SHA512 (alsa-ucm-conf-1.2.15.3.tar.bz2) = 079aeb45bc3f98448f6e48a1267db5d3f46a51d7060eb8275d0a084574e23eec34f07108610538e898c397fa24941ccf1bb7722c6b4bb0fa9c48904addc03973 +SHA512 (alsa-topology-conf-1.2.5.tar.bz2) = 2eb4d8baf2dcbf0b631dd11dbf15bffc51694d9cc6931619e51787f3ba58d1a091d266e6721a3b737c040ec74a28270b93f39fb97f30a3227cf340dd646e5d51 diff --git a/tests/run_tests.sh b/tests/run_tests.sh new file mode 100755 index 0000000..aa4c1a1 --- /dev/null +++ b/tests/run_tests.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +set -ex + +# a quick PCM API test +str=$(aplay -L | grep -E "^null$") +if [ "$str" != "null" ]; then + echo "The 'null' pcm plugin was not found!" + exit 99 +fi diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..5683a58 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,11 @@ +- hosts: localhost + roles: + - role: standard-test-basic + tags: + - classic + required_packages: + - alsa-utils + tests: + - simple: + dir: . + run: ./run_tests.sh