diff --git a/.gitignore b/.gitignore index f2c97a9..19dc3be 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ /alsa-lib-1.*.tar.bz2 +/alsa-topology-conf-1.*.tar.bz2 +/alsa-ucm-conf-1.*.tar.bz2 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.0.24-config.patch b/alsa-lib-1.2.3.1-config.patch similarity index 79% rename from alsa-lib-1.0.24-config.patch rename to alsa-lib-1.2.3.1-config.patch index f0e50e3..95961a5 100644 --- a/alsa-lib-1.0.24-config.patch +++ b/alsa-lib-1.2.3.1-config.patch @@ -1,22 +1,22 @@ diff --git a/src/conf/alsa.conf b/src/conf/alsa.conf -index 1889f01..60c12ac 100644 +index 18427ec6..1915af4e 100644 --- a/src/conf/alsa.conf +++ b/src/conf/alsa.conf -@@ -66,8 +66,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.rate 48000 - defaults.pcm.dmix.format "unchanged" + defaults.pcm.dmix.channels 2 diff --git a/src/conf/pcm/dmix.conf b/src/conf/pcm/dmix.conf -index e62cb29..a005488 100644 +index 50e573da..70523f29 100644 --- a/src/conf/pcm/dmix.conf +++ b/src/conf/pcm/dmix.conf -@@ -41,10 +41,6 @@ pcm.!dmix { +@@ -48,10 +48,6 @@ pcm.!dmix { @func refer name defaults.pcm.ipc_key } @@ -28,7 +28,7 @@ index e62cb29..a005488 100644 @func refer name defaults.pcm.ipc_perm diff --git a/src/conf/pcm/dsnoop.conf b/src/conf/pcm/dsnoop.conf -index 49cfca9..842e1fb 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 8c8a152..df66e75 100644 --- a/alsa-lib.spec +++ b/alsa-lib.spec @@ -2,24 +2,38 @@ #define prever_dot .rc3 #define postver a +%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: 1.1.4.1 -Release: 3%{?prever_dot}%{?dist} -License: LGPLv2+ -Group: System Environment/Libraries +Version: %{version_alsa_lib} +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 +Source1: ftp://ftp.alsa-project.org/pub/lib/alsa-ucm-conf-%{version_alsa_ucm}.tar.bz2 +Source2: ftp://ftp.alsa-project.org/pub/lib/alsa-topology-conf-%{version_alsa_tplg}.tar.bz2 Source10: asound.conf Source11: modprobe-dist-alsa.conf Source12: modprobe-dist-oss.conf -Patch0: alsa-lib-1.0.24-config.patch -Patch1: 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 -Requires(post): /sbin/ldconfig, coreutils +BuildRequires: make %description The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI @@ -31,7 +45,6 @@ the older OSS API, providing binary compatibility for most OSS programs. %package devel Summary: Development files from the ALSA library -Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: pkgconfig @@ -43,20 +56,44 @@ This package includes the ALSA development libraries for developing against the ALSA libraries and interfaces. %package -n alsa-ucm -Summary: ALSA Universal Configuration Manager -Group: System Environment/Libraries -Requires: %{name} = %{version}-%{release} +Summary: ALSA Use Case Manager configuration +BuildArch: noarch +License: BSD-3-Clause +Requires: %{name} >= %{version_alsa_lib} %description -n alsa-ucm -The Advanced Linux Sound Architecture (ALSA) Universal Configuration -Manager allows configuration of Audio input/output names and routing +The Advanced Linux Sound Architecture (ALSA) Use Case Manager configuration +contains alsa-lib configuration of Audio input/output names and routing + +%package -n alsa-topology +Summary: ALSA Topology configuration +BuildArch: noarch +License: BSD-3-Clause +Requires: %{name} >= %{version_alsa_lib} + +%description -n alsa-topology +The Advanced Linux Sound Architecture (ALSA) topology configuration +contains alsa-lib configuration of SoC topology %prep %setup -q -n %{name}-%{version}%{?prever}%{?postver} -%patch0 -p1 -b .config -%patch1 -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 @@ -68,57 +105,285 @@ make %{?_smp_mflags} V=1 make doc %install -make DESTDIR=%{buildroot} install +%global sysmodprobedir %{_prefix}/lib/modprobe.d -# 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 +make DESTDIR=%{buildroot} install # Install global configuration files mkdir -p -m 755 %{buildroot}/etc install -p -m 644 %{SOURCE10} %{buildroot}/etc # Install the modprobe files for ALSA -mkdir -p -m 755 %{buildroot}/lib/modprobe.d/ -install -p -m 644 %{SOURCE11} %{buildroot}/lib/modprobe.d/dist-alsa.conf +mkdir -p -m 755 %{buildroot}%{sysmodprobedir} +install -p -m 644 %{SOURCE11} %{buildroot}%{sysmodprobedir}/dist-alsa.conf # bug#926973, place this file to the doc directory install -p -m 644 %{SOURCE12} . -# Create UCM directory +# Create UCM directories mkdir -p %{buildroot}/%{_datadir}/alsa/ucm +mkdir -p %{buildroot}/%{_datadir}/alsa/ucm2 -#Remove libtool archives. +# Unpack UCMs +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 --strip-components=1 "*/topology" + +# Remove libtool archives. find %{buildroot} -name '*.la' -delete -%post -p /sbin/ldconfig +# Remove /usr/include/asoundlib.h +rm %{buildroot}/%{_includedir}/asoundlib.h -%postun -p /sbin/ldconfig +%ldconfig_scriptlets %files %{!?_licensedir:%global license %%doc} %license COPYING %doc doc/asoundrc.txt modprobe-dist-oss.conf %config %{_sysconfdir}/asound.conf -/%{_lib}/libasound.so.* +/%{_libdir}/libasound.so.* +/%{_libdir}/libatopology.so.* %{_bindir}/aserver -#%{_libdir}/alsa-lib/ +#{_libdir}/alsa-lib/ %{_datadir}/alsa/ %exclude %{_datadir}/alsa/ucm -/lib/modprobe.d/dist-* +%exclude %{_datadir}/alsa/ucm2 +%exclude %{_datadir}/alsa/topology +%{sysmodprobedir}/dist-* %files devel %doc TODO doc/doxygen/ %{_includedir}/alsa/ %{_includedir}/sys/asoundlib.h %{_libdir}/libasound.so +%{_libdir}/libatopology.so %{_libdir}/pkgconfig/alsa.pc +%{_libdir}/pkgconfig/alsa-topology.pc %{_datadir}/aclocal/alsa.m4 %files -n alsa-ucm +# BSD %{_datadir}/alsa/ucm +%{_datadir}/alsa/ucm2 + +%files -n alsa-topology +# BSD +%{_datadir}/alsa/topology %changelog +* 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 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri May 10 2019 Jaroslav Kysela - 1.1.9-1 +- Updated to 1.1.9 + +* Thu Jan 31 2019 Fedora Release Engineering - 1.1.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jan 7 2019 Jaroslav Kysela - 1.1.8-1 +- Updated to 1.1.8 + +* Tue Dec 25 2018 Hans de Goede - 1.1.7-3 +- Fix broken chtrt5645 UCM profile, fixing mic input on chtrt5645 devices + +* Wed Oct 24 2018 Jaroslav Kysela - 1.1.7-2 +- Moved topology files to alsa-topology +- Updated to 1.1.7 + +* Thu Jul 12 2018 Fedora Release Engineering - 1.1.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Apr 04 2018 Jaroslav Kysela - 1.1.6-2 +- Changed add-on directory to /etc/alsa/conf.d + +* Tue Apr 03 2018 Jaroslav Kysela - 1.1.6-1 +- Updated to 1.1.6 + +* Wed Feb 07 2018 Fedora Release Engineering - 1.1.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Nov 14 2017 Jaroslav Kysela - 1.1.5-1 +- Updated to 1.1.5 + * Wed Aug 02 2017 Fedora Release Engineering - 1.1.4.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild diff --git a/sources b/sources index 80d6d02..8a1161f 100644 --- a/sources +++ b/sources @@ -1 +1,3 @@ -MD5 (alsa-lib-1.1.4.1.tar.bz2) = 29fa3e69122d3cf3e8f0e01a0cb1d183 +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