diff --git a/alsa-restore.service b/alsa-restore.service index c97411f..0411c99 100644 --- a/alsa-restore.service +++ b/alsa-restore.service @@ -6,9 +6,11 @@ [Unit] Description=Save/Restore Sound Card State ConditionPathExists=!/etc/alsa/state-daemon.conf +After=alsa-state.service [Service] Type=oneshot RemainAfterExit=true ExecStart=-/sbin/alsactl -E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf --initfile=/lib/alsa/init/00main restore ExecStop=/sbin/alsactl -E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf store +StandardOutput=syslog diff --git a/alsa-state.service b/alsa-state.service index 6dd312b..f917da8 100644 --- a/alsa-state.service +++ b/alsa-state.service @@ -6,6 +6,7 @@ [Unit] Description=Manage Sound Card State (restore and store) ConditionPathExists=/etc/alsa/state-daemon.conf +After=sysinit.target [Service] Type=simple diff --git a/alsa-utils-git.patch b/alsa-utils-git.patch deleted file mode 100644 index e69de29..0000000 diff --git a/alsa-utils.spec b/alsa-utils.spec index 9699a63..dcfe025 100644 --- a/alsa-utils.spec +++ b/alsa-utils.spec @@ -1,64 +1,42 @@ -%define baseversion 1.2.15 -%define fixversion .2 +%define baseversion 1.1.4 +#define fixversion .2 %global _hardened_build 1 -%global utils_patch 0 - Summary: Advanced Linux Sound Architecture (ALSA) utilities Name: alsa-utils Version: %{baseversion}%{?fixversion} -Release: 2%{?dist} -License: GPL-2.0-or-later +Release: 1%{?dist} +License: GPLv2+ +Group: Applications/Multimedia URL: http://www.alsa-project.org/ Source: ftp://ftp.alsa-project.org/pub/utils/alsa-utils-%{version}.tar.bz2 Source4: alsaunmute Source5: alsaunmute.1 +Source10: alsa.rules Source11: alsactl.conf Source20: alsa-restore.service Source22: alsa-state.service -%if %{utils_patch} -Patch1: alsa-git.patch -%endif -BuildRequires: gcc -BuildRequires: autoconf automake libtool BuildRequires: alsa-lib-devel >= %{baseversion} BuildRequires: libsamplerate-devel BuildRequires: ncurses-devel BuildRequires: gettext-devel BuildRequires: xmlto -BuildRequires: python3-docutils BuildRequires: systemd Requires(post): systemd Requires(preun): systemd Requires(postun): systemd # use latest alsa-lib - the executables in this package requires latest API Requires: alsa-lib%{?_isa} >= %{baseversion} -Requires: alsa-ucm >= %{baseversion} %description This package contains command line utilities for the Advanced Linux Sound Architecture (ALSA). -%package -n alsa-ucm-utils -Summary: Advanced Linux Sound Architecture (ALSA) - Use Case Manager - -%description -n alsa-ucm-utils -This package contains Use Case Manager tools for Advanced Linux Sound -Architecture (ALSA) framework. - -%package -n alsa-topology-utils -Summary: Advanced Linux Sound Architecture (ALSA) - Topology -Requires: alsa-topology >= %{baseversion} - -%description -n alsa-topology-utils -This package contains topology tools for Advanced Linux Sound -Architecture (ALSA) framework. - %package alsabat Summary: Advanced Linux Sound Architecture (ALSA) - Basic Audio Tester +Group: Applications/Multimedia BuildRequires: fftw-devel -BuildRequires: make %description alsabat This package contains tool for basic audio testing using Advanced Linux Sound @@ -66,41 +44,34 @@ Architecture (ALSA) framework and Fast Fourier Transform library. %prep %setup -q -n %{name}-%{version} -%if %{utils_patch} -%patch -P1 -p1 -b .alsa-git -%endif %build -autoreconf -vif %configure CFLAGS="$RPM_OPT_FLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" --disable-alsaconf \ --with-udev-rules-dir=%{_prefix}/lib/udev/rules.d \ - --with-systemdsystemunitdir=%{_unitdir} \ - --with-alsactl-udev-args="-E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf --initfile=/lib/alsa/init/00main" \ - --with-alsactl-udev-extra-test="" + --with-systemdsystemunitdir=%{_unitdir} make %{?_smp_mflags} cp %{SOURCE4} . %install -%global alsacfgdir %{_prefix}/lib/alsa - make install DESTDIR=%{buildroot} %find_lang %{name} -# Install ALSA udev rules and services +# Install ALSA udev rules mkdir -p %{buildroot}/%{_prefix}/lib/udev/rules.d +install -p -m 644 %{SOURCE10} %{buildroot}/%{_prefix}/lib/udev/rules.d/90-alsa-restore.rules mkdir -p %{buildroot}/%{_unitdir} install -p -m 644 %{SOURCE20} %{buildroot}/%{_unitdir}/alsa-restore.service install -p -m 644 %{SOURCE22} %{buildroot}/%{_unitdir}/alsa-state.service # Install support utilities mkdir -p -m755 %{buildroot}/%{_bindir} -install -p -m 755 %{SOURCE4} %{buildroot}/%{_bindir} +install -p -m 755 alsaunmute %{buildroot}/%{_bindir} mkdir -p -m755 %{buildroot}/%{_mandir}/man1 install -p -m 644 %{SOURCE5} %{buildroot}/%{_mandir}/man1/alsaunmute.1 # Move /usr/share/alsa/init to /usr/lib/alsa/init -mkdir -p -m 755 %{buildroot}%{alsacfgdir} -mv %{buildroot}%{_datadir}/alsa/init %{buildroot}%{alsacfgdir} +mkdir -p -m 755 %{buildroot}/%{_prefix}/lib/alsa +mv %{buildroot}%{_datadir}/alsa/init %{buildroot}/%{_prefix}/lib/alsa # Link /usr/lib/alsa/init to /usr/share/alsa/init back ln -s ../../lib/alsa/init %{buildroot}%{_datadir}/alsa/init @@ -110,38 +81,32 @@ mkdir -p -m 755 %{buildroot}/etc/alsa install -p -m 644 %{SOURCE11} %{buildroot}/etc/alsa # Create /var/lib/alsa tree -mkdir -p -m 755 %{buildroot}%{_sharedstatedir}/alsa - -find %{buildroot} -name "*.la" -exec rm {} \; +mkdir -p -m 755 %{buildroot}/var/lib/alsa %files -f %{name}.lang -%doc COPYING ChangeLog README.md TODO alsamixer/alsamixer.rc.example +%doc COPYING ChangeLog README TODO %config /etc/alsa/* %{_prefix}/lib/udev/rules.d/* %{_unitdir}/* -#{_unitdir}/sound.target.wants/* -%{alsacfgdir}/init/* +%{_unitdir}/basic.target.wants/* +%{_prefix}/lib/alsa/init/* %{_bindir}/aconnect -%{_sbindir}/alsactl %{_bindir}/alsaloop %{_bindir}/alsamixer +%{_bindir}/alsaucm %{_bindir}/alsaunmute -%{_sbindir}/alsa-info.sh %{_bindir}/amidi %{_bindir}/amixer %{_bindir}/aplay %{_bindir}/aplaymidi -%{_bindir}/aplaymidi2 %{_bindir}/arecord %{_bindir}/arecordmidi -%{_bindir}/arecordmidi2 %{_bindir}/aseqdump %{_bindir}/aseqnet -%{_bindir}/aseqsend -%{_bindir}/axfer %{_bindir}/iecset -%{_bindir}/nhlt-dmic-info %{_bindir}/speaker-test +%{_bindir}/alsatplg +%{_sbindir}/* %{_datadir}/alsa/ %{_datadir}/sounds/* %{_mandir}/man7/* @@ -153,39 +118,22 @@ find %{buildroot} -name "*.la" -exec rm {} \; %{_mandir}/man1/amixer.1.gz %{_mandir}/man1/aplay.1.gz %{_mandir}/man1/aplaymidi.1.gz -%{_mandir}/man1/aplaymidi2.1.gz %{_mandir}/man1/arecord.1.gz %{_mandir}/man1/arecordmidi.1.gz -%{_mandir}/man1/arecordmidi2.1.gz %{_mandir}/man1/aseqdump.1.gz %{_mandir}/man1/aseqnet.1.gz -%{_mandir}/man1/aseqsend.1.gz -%{_mandir}/man1/axfer.1.gz -%{_mandir}/man1/axfer-list.1.gz -%{_mandir}/man1/axfer-transfer.1.gz %{_mandir}/man1/iecset.1.gz %{_mandir}/man1/speaker-test.1.gz %{_mandir}/man1/aconnect.1.gz -%{_mandir}/man8/alsa-info.sh.8.gz -%{_mandir}/man1/nhlt-dmic-info.1.gz +%{_mandir}/man1/alsa-info.sh.1.gz %dir /etc/alsa/ -%dir %{alsacfgdir}/ -%dir %{alsacfgdir}/init/ -%dir %{_sharedstatedir}/alsa/ - -%files -n alsa-ucm-utils -%{_bindir}/alsaucm -%{_mandir}/man1/alsaucm.1.gz - -%files -n alsa-topology-utils -%{_bindir}/alsatplg -%{_mandir}/man1/alsatplg.1.gz -%{_libdir}/alsa-topology/libalsatplg_module_* +%dir %{_prefix}/lib/alsa/ +%dir %{_prefix}/lib/alsa/init/ +%dir /var/lib/alsa/ %files alsabat %{_bindir}/alsabat -%{_sbindir}/alsabat-test.sh %{_mandir}/man1/alsabat.1.gz %pre @@ -199,8 +147,8 @@ fi if [ -s /etc/alsa/asound.state -a ! -s /etc/asound.state ] ; then mv /etc/alsa/asound.state /etc/asound.state fi -if [ -s /etc/asound.state -a ! -s %{_sharedstatedir}/alsa/asound.state ] ; then - mv /etc/asound.state %{_sharedstatedir}/alsa/asound.state +if [ -s /etc/asound.state -a ! -s /var/lib/alsa/asound.state ] ; then + mv /etc/asound.state /var/lib/alsa/asound.state fi %systemd_post alsa-state.service @@ -211,166 +159,6 @@ fi %systemd_postun_with_restart alsa-state.service %changelog -* Fri Jan 16 2026 Fedora Release Engineering - 1.2.15.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Thu Jan 8 2026 Jaroslav Kysela - 1.2.15.2-1 -* Updated to 1.2.15.2 - -* Thu Jan 1 2026 Jaroslav Kysela - 1.2.15.1-3 -* Apply fix to alsactl (card detection issue) - -* Fri Dec 19 2025 Jaroslav Kysela - 1.2.15.1-1 -* Updated to 1.2.15.1 - -* Mon Dec 8 2025 Jaroslav Kysela - 1.2.15-2 -* Updated to 1.2.15 - -* Wed Jul 23 2025 Fedora Release Engineering - 1.2.14-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Mon Apr 14 2025 Jaroslav Kysela - 1.2.14-1 -* Updated to 1.2.14 - -* Thu Jan 16 2025 Fedora Release Engineering - 1.2.13-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Thu Nov 14 2024 Jaroslav Kysela - 1.2.13-2 -* Updated 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 - -* Tue Jun 11 2024 Jaroslav Kysela - 1.2.12-1 -* Updated to 1.2.12 - -* Mon Jan 29 2024 Jaroslav Kysela - 1.2.11-1 -* Updated to 1.2.11 - -* Mon Jan 22 2024 Fedora Release Engineering - 1.2.10-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 1.2.10-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Sep 1 2023 Jaroslav Kysela - 1.2.10-1 -* Updated 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 license - -* Tue May 16 2023 Jaroslav Kysela - 1.2.9-2 -* Add nhlt-dmic-info utility - -* Thu May 4 2023 Jaroslav Kysela - 1.2.9-1 -* Updated to 1.2.9 - -* Wed Jan 18 2023 Fedora Release Engineering - 1.2.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Mon Oct 24 2022 Jaroslav Kysela - 1.2.8-1 -* Updated to 1.2.8 - -* Wed Jul 20 2022 Fedora Release Engineering - 1.2.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Tue May 31 2022 Jaroslav Kysela - 1.2.7-1 -* Updated to 1.2.7 - -* Wed Jan 19 2022 Fedora Release Engineering - 1.2.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Mon Dec 6 2021 Jaroslav Kysela - 1.2.6-1 -* Updated to 1.2.6 - -* 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 -* Updated to 1.2.5.1 - -* Thu Jun 3 2021 Jaroslav Kysela - 1.2.5-3 -* Fixes for 1.2.5 (alsactl) - -* Mon May 31 2021 Jaroslav Kysela - 1.2.5-2 -* Updated to 1.2.5 - -* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 1.2.4-3 -- Rebuilt for updated systemd-rpm-macros - See https://pagure.io/fesco/issue/2583. - -* Tue Jan 26 2021 Fedora Release Engineering - 1.2.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Thu Oct 15 2020 Jaroslav Kysela - 1.2.4-1 -* Updated to 1.2.4 - -* Fri Jul 31 2020 Fedora Release Engineering - 1.2.3-6 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 27 2020 Fedora Release Engineering - 1.2.3-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Fri Jul 3 2020 Jaroslav Kysela - 1.2.3-4 -* Fix the .spec (changelog0) - -* Sun Jun 7 2020 Jaroslav Kysela - 1.2.3-3 -* Updated to 1.2.3 - -* Wed Feb 19 2020 Jaroslav Kysela - 1.2.2-1 -* Updated to 1.2.2 - -* Sun Feb 9 2020 Jaroslav Kysela - 1.2.1-6 -- UCM and topology fixes - -* Tue Jan 28 2020 Fedora Release Engineering - 1.2.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Fri Nov 15 2019 Jaroslav Kysela - 1.2.1-4 -- 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-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Jan 7 2019 Jaroslav Kysela - 1.1.8-2 -- Updated to 1.1.8 - -* Tue Oct 16 2018 Jaroslav Kysela - 1.1.7-2 -- Moved use case manager utility to alsa-ucm-utils -- Moved topology utility to alsa-topology-utils -- Updated to 1.1.7 - -* Fri Sep 07 2018 Jaroslav Kysela - 1.1.6-5 -- Added udev rules for PAZ00 - -* Thu Jul 12 2018 Fedora Release Engineering - 1.1.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* 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-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 1.1.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - * Tue May 16 2017 Jaroslav Kysela - 1.1.4-1 - Updated to 1.1.4 diff --git a/alsa.rules b/alsa.rules new file mode 100644 index 0000000..6a4a0c3 --- /dev/null +++ b/alsa.rules @@ -0,0 +1,8 @@ +ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", GOTO="alsa_restore_go" +GOTO="alsa_restore_end" + +LABEL="alsa_restore_go" +TEST!="/etc/alsa/state-daemon.conf", RUN+="/sbin/alsactl -E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf --initfile=/lib/alsa/init/00main restore /dev/$name" +TEST=="/etc/alsa/state-daemon.conf", RUN+="/sbin/alsactl -E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf --initfile=/lib/alsa/init/00main nrestore /dev/$name" + +LABEL="alsa_restore_end" diff --git a/sources b/sources index ad5e1c4..7e1299e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (alsa-utils-1.2.15.2.tar.bz2) = 13ca15a63bcbf81a4643ef03e391200d7523335bc300e290756089c4cfeccb9773cf6b77f9fcf4b80e6aa2e8c5e33a2c86c9173f1feb480aedf5ecda0f7c47cd +MD5 (alsa-utils-1.1.4.tar.bz2) = 01e3934ca5bd22a80c27289d1b0adcdc diff --git a/tests/run_tests.sh b/tests/run_tests.sh deleted file mode 100755 index eb91753..0000000 --- a/tests/run_tests.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -set -ex - -# is alsactl present and working? -alsactl --version - -# is amixer present and working? -amixer --help - -# is alsamixer present and working? -alsamixer --version - -# is amidi present and working? -amidi --version - -# is speaker-test preset and working? -speaker-test -h - -# aplay test (like for alsa-lib) -str=$(aplay -L | grep -E "^null$") -if [ "$str" != "null" ]; then - echo "The 'null' pcm plugin was not found!" - exit 99 -fi - -# alsa-info.sh present and working? -alsa-info.sh --help diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index e56da89..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,9 +0,0 @@ -- hosts: localhost - roles: - - role: standard-test-basic - tags: - - classic - tests: - - simple: - dir: . - run: ./run_tests.sh