diff --git a/.gitignore b/.gitignore index c39e352..921bfba 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,31 @@ /sof-bin-faa5bdc.tar.gz /sof-bin-b77c851.tar.gz /sof-bin-f31c9ce.tar.gz +/sof-bin-6bd5501.tar.gz +/sof-bin-v1.8.tar.gz +/sof-bin-v1.9.tar.gz +/sof-bin-v1.9.2.tar.gz +/sof-bin-v1.9.3.tar.gz +/sof-bin-v2.0.tar.gz +/sof-tplg-v2.1.1a.tar.gz +/alsa-sof-firmware-2.1.1-1.fc37.src.rpm +/sof-bin-v2.1.1.tar.gz +/sof-bin-v2.2.2.tar.gz +/sof-bin-v2.2.3.tar.gz +/sof-bin-v2.2.4.tar.gz +/sof-bin-v2.2.5.tar.gz +/sof-bin-v2.2.6.tar.gz +/sof-bin-2023.09.tar.gz +/sof-bin-2023.09.1.tar.gz +/sof-bin-2023.09.2.tar.gz +/sof-bin-2023.12.1.tar.gz +/avs-topology_2024.02.tar.gz +/sof-bin-2024.03.tar.gz +/sof-bin-2024.06.tar.gz +/sof-bin-2024.09.tar.gz +/sof-bin-2024.09.1.tar.gz +/sof-bin-2024.09.2.tar.gz +/sof-bin-2025.01.tar.gz +/sof-bin-2025.01.1.tar.gz +/sof-bin-2025.05.tar.gz +/sof-bin-2025.05.1.tar.gz diff --git a/alsa-sof-firmware.spec b/alsa-sof-firmware.spec index 622cef9..f31a42c 100644 --- a/alsa-sof-firmware.spec +++ b/alsa-sof-firmware.spec @@ -2,22 +2,30 @@ # in the end package are expected. %define _binaries_in_noarch_packages_terminate_build 0 %global _firmwarepath /usr/lib/firmware +%global _xz_opts -9 --check=crc32 +%global sof_ver 2025.05.1 +#global sof_ver_pre rc1 +%global sof_ver_rel %{?sof_ver_pre:.%{sof_ver_pre}} +%global sof_ver_pkg0 %{sof_ver}%{?sof_ver_pre:-%{sof_ver_pre}} +%global sof_ver_pkg v%{sof_ver_pkg0} -%global sof_version 1.6.1 -%global sof_commit f31c9ce30ac2792ec39e19da489aee7631e00654 -%global sof_shortcommit %(c=%{sof_commit}; echo ${c:0:7}) +%global with_sof_addon 0 +%global sof_ver_addon 0 %global tplg_version 1.2.4 Summary: Firmware and topology files for Sound Open Firmware project Name: alsa-sof-firmware -Version: %{sof_version} -Release: 4%{?dist} +Version: %{sof_ver} +Release: 2%{?sof_ver_rel}%{?dist} # See later in the spec for a breakdown of licensing -License: BSD +License: BSD-3-Clause AND Apache-2.0 URL: https://github.com/thesofproject/sof-bin -Source: https://github.com/thesofproject/sof-bin/archive/%{sof_commit}/sof-bin-%{sof_shortcommit}.tar.gz +Source: https://github.com/thesofproject/sof-bin/releases/download/%{sof_ver_pkg}/sof-bin-%{sof_ver_pkg0}.tar.gz +%if 0%{?with_sof_addon} +Source3: https://github.com/thesofproject/sof-bin/releases/download/v%{sof_ver_addon}/sof-tplg-v%{sof_ver_addon}.tar.gz +%endif BuildRequires: alsa-topology >= %{tplg_version} BuildRequires: alsa-topology-utils >= %{tplg_version} Conflicts: alsa-firmware <= 1.2.1-6 @@ -31,69 +39,86 @@ This package contains the firmware binaries for the Sound Open Firmware project. %package debug Requires: alsa-sof-firmware Summary: Debug files for Sound Open Firmware project -License: BSD +License: BSD-3-Clause %description debug This package contains the debug files for the Sound Open Firmware project. %prep -%autosetup -n sof-bin-%{sof_commit} +%autosetup -n sof-bin-%{sof_ver_pkg0} -cd lib/firmware +mkdir -p firmware/intel -# we have the version in the package name -mv intel/sof/v%{sof_version}/* intel/sof -rmdir intel/sof/v%{sof_version} - -# rename intel signed firmware files -for platform in apl cnl ehl icl tgl tgl-h; do - mv intel/sof/intel-signed/sof-$platform-v%{sof_version}.ri intel/sof/intel-signed/sof-$platform.ri - ln -sf intel-signed/sof-$platform.ri intel/sof/sof-$platform.ri +for d in sof sof-ipc4 sof-ipc4-lib sof-ipc4-tplg sof-tplg; do \ + mv "${d}" firmware/intel; \ done -# rename public signed firmware files -for platform in apl cnl icl jsl tgl tgl-h; do - mv intel/sof/public-signed/sof-$platform-v%{sof_version}.ri intel/sof/public-signed/sof-$platform.ri -done +ln -s sof-ipc4-tplg firmware/intel/sof-ace-tplg -# rename unsigned firmware files -for platform in bdw byt cht; do - mv intel/sof/sof-$platform-v%{sof_version}.ri intel/sof/sof-$platform.ri -done - -# rename debug files -for platform in apl bdw byt cht cnl ehl icl tgl tgl-h; do - mv intel/sof/sof-$platform-v%{sof_version}.ldc intel/sof/sof-$platform.ldc -done - -# add missing symlinks -ln -s intel-signed/sof-apl.ri intel/sof/sof-glk.ri -ln -s intel-signed/sof-cnl.ri intel/sof/sof-cml.ri -ln -s intel-signed/sof-cnl.ri intel/sof/sof-cfl.ri - -# move topology files -rm -f intel/sof-tplg -mv intel/sof-tplg-v%{sof_version} intel/sof-tplg +%if 0%{?with_sof_addon} +tar xvzf %{SOURCE3} +mv sof-tplg-v%{sof_ver_addon}/*.tplg firmware/intel/sof-tplg +%endif # remove NXP firmware files -rm -rf nxp ../../LICENCE.NXP -rm -rf intel/sof-tplg/sof-imx8* +rm Notice.NXP LICENCE.NXP +rm -rf firmware/intel/sof-tplg/sof-imx8* + +# remove Mediatek firmware files +rm -rf firmware/intel/sof-tplg/sof-mt8* + +# use xz compression +xz -z %{_xz_opts} manifest.txt +for d in sof sof-ipc4; do \ + find -P "firmware/intel/${d}" -type f -name "*.ri" -exec xz -z %{_xz_opts} {} \; + for f in $(find -P "firmware/intel/${d}" -type l -name "*.ri"); do \ + l=$(readlink "${f}"); \ + n=$(dirname "${f}"); \ + b=$(basename "${f}"); \ + rm "${f}"; \ + pushd "${n}"; \ + ln -svf "${l}.xz" "${b}.xz"; \ + popd; \ + done; \ +done +for d in sof-ipc4-lib; do \ + for e in bin llext; do \ + find -P "firmware/intel/${d}" -type f -name "*.${e}" -exec xz -z %{_xz_opts} {} \; + for f in $(find -P "firmware/intel/${d}" -type l -name "*.${e}"); do \ + l=$(readlink "${f}"); \ + n=$(dirname "${f}"); \ + b=$(basename "${f}"); \ + rm "${f}"; \ + pushd "${n}"; \ + ln -svf "${l}.xz" "${b}.xz"; \ + popd; \ + done; \ + done; \ +done +for d in sof-tplg sof-ipc4-tplg; do \ + find -P "firmware/intel/${d}" -type f -name "*.tplg" -exec xz -z %{_xz_opts} {} \; +done %build # SST topology files (not SOF related, but it's a Intel hw support # and this package seems a good place to distribute them alsatplg -c /usr/share/alsa/topology/hda-dsp/skl_hda_dsp_generic-tplg.conf \ - -o lib/firmware/skl_hda_dsp_generic-tplg.bin + -o firmware/skl_hda_dsp_generic-tplg.bin +# use xz compression +xz -z %{_xz_opts} firmware/*.bin +chmod 0644 firmware/*.bin.xz %install mkdir -p %{buildroot}%{_firmwarepath} -cp -ra lib/firmware/* %{buildroot}%{_firmwarepath} +cp -ra firmware/* %{buildroot}%{_firmwarepath} # gather files and directories FILEDIR=$(pwd) pushd %{buildroot}/%{_firmwarepath} -find -P . -name "*.ri" | sed -e '/^.$/d' > $FILEDIR/alsa-sof-firmware.files +find -P . -name "*.ri.xz" | sed -e '/^.$/d' >> $FILEDIR/alsa-sof-firmware.files #find -P . -name "*.tplg" | sed -e '/^.$/d' >> $FILEDIR/alsa-sof-firmware.files +find -P . -name "*.llext.xz" | sed -e '/^.$/d' >> $FILEDIR/alsa-sof-firmware.files +find -P intel/sof-ipc4-lib -name "*.bin.xz" | sed -e '/^.$/d' >> $FILEDIR/alsa-sof-firmware.files find -P . -name "*.ldc" | sed -e '/^.$/d' > $FILEDIR/alsa-sof-firmware.debug-files find -P . -type d | sed -e '/^.$/d' > $FILEDIR/alsa-sof-firmware.dirs popd @@ -105,14 +130,17 @@ cat alsa-sof-firmware.files %files -f alsa-sof-firmware.files %license LICENCE* %doc README* +%doc manifest.txt.xz %dir %{_firmwarepath} # Licence: 3-clause BSD -%{_firmwarepath}/*.bin +%{_firmwarepath}/*.bin.xz # Licence: 3-clause BSD # .. for files with suffix .tplg -%{_firmwarepath}/intel/sof-tplg +%{_firmwarepath}/intel/sof-tplg/*.tplg.xz +%{_firmwarepath}/intel/sof-ipc4-tplg/*.tplg.xz +%{_firmwarepath}/intel/sof-ace-tplg # Licence: SOF (3-clause BSD plus others) # .. for files with suffix .ri @@ -126,19 +154,155 @@ if st and st.type == "link" then os.remove(path) end +path1 = "%{_firmwarepath}/intel/sof-ace-tplg" +path2 = "%{_firmwarepath}/intel/sof-ipc4-tplg" +st = posix.stat(path1) +if st and st.type == "directory" then + os.rename(path1, path2) +end + %changelog -* Fri Mar 12 2021 Jaroslav Kysela - 1.6.1-4 +* Fri Jan 16 2026 Fedora Release Engineering - 2025.05.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Wed Aug 27 2025 Jaroslav Kysela - 2025.05.1-1 +- Update to v2025.05.1 + +* Wed Jul 23 2025 Fedora Release Engineering - 2025.05-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Jun 24 2025 Jaroslav Kysela - 2025.05-1 +- Update to v2025.05 + +* Thu Apr 3 2025 Jaroslav Kysela - 2025.01.1-1 +- Update to v2025.01.1 + +* Tue Feb 25 2025 Jaroslav Kysela - 2025.01-1 +- Update to v2025.01 + +* Thu Jan 16 2025 Fedora Release Engineering - 2024.09.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Dec 18 2024 Jaroslav Kysela - 2024.09.2-2 +- Add sof-ipc4-lib directory + +* Fri Dec 6 2024 Jaroslav Kysela - 2024.09.2-1 +- Update to v2024.09.2 + +* Mon Nov 11 2024 Jaroslav Kysela - 2024.09.1-1 +- Update to v2024.09.1 + +* Fri Sep 27 2024 Jaroslav Kysela - 2024.09-1 +- Update to v2024.09 + +* Tue Sep 3 2024 Jaroslav Kysela - 2024.06-1 +- Update to v2024.06 +- Remove AVS topology files (linux-firmware is the main source now) + +* Wed Jul 17 2024 Fedora Release Engineering - 2024.03-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Apr 3 2024 Jaroslav Kysela - 2024.03-2 +- Update to v2024.03 + +* Tue Mar 5 2024 Jaroslav Kysela - 2023.12.1-1 +- Update to v2023.12.1 +- Add AVS topology files v2024.02 + +* Mon Jan 22 2024 Fedora Release Engineering - 2023.12-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 2023.12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Dec 20 2023 Jaroslav Kysela - 2023.12-1 +- Update to v2023.12 + +* Thu Nov 16 2023 Jaroslav Kysela - 2023.09.2-1 +- Update to v2023.09.2 + +* Mon Nov 6 2023 Jaroslav Kysela - 2023.09.1-1 +- Update to v2023.09.1 + +* Tue Oct 24 2023 Jaroslav Kysela - 2023.09-1 +- Update to v2023.09 + +* Wed Aug 9 2023 Jaroslav Kysela - 2.2.6-1 +- Update to v2.2.6 + +* Wed Jul 19 2023 Fedora Release Engineering - 2.2.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 6 2023 Jaroslav Kysela - 2.2.5-2 +- SPDX license + +* Mon May 15 2023 Jaroslav Kysela - 2.2.5-1 +- Update to v2.2.5 + +* Wed Jan 18 2023 Fedora Release Engineering - 2.2.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Jan 9 2023 Jaroslav Kysela - 2.2.4-2 +- Update to v2.2.4 + +* Wed Dec 7 2022 Jaroslav Kysela - 2.2.3-1 +- Update to v2.2.3 + +* Sat Sep 24 2022 Jaroslav Kysela - 2.2.2-1 +- Update to v2.2.2 + +* Wed Jul 20 2022 Fedora Release Engineering - 2.1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jun 17 2022 Jaroslav Kysela - 2.1.1-1 +- Update to v2.1.1 + v2.1.1a (topology) + +* Fri Feb 4 2022 Jaroslav Kysela - 2.0-3 +- Use CRC32 for the xz compression + +* Thu Jan 27 2022 Jaroslav Kysela - 2.0-2 +- Update to v2.0 +- Use xz compression + +* Wed Jan 19 2022 Fedora Release Engineering - 1.9.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Dec 15 2021 Jaroslav Kysela - 1.9.3-1 +- Update to v1.9.3 + +* Tue Nov 23 2021 Jaroslav Kysela - 1.9.2-1 +- Update to v1.9.2 + +* Tue Oct 5 2021 Jaroslav Kysela - 1.9-2 +- Update to v1.9 + +* Wed Jul 21 2021 Fedora Release Engineering - 1.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jun 22 2021 Jaroslav Kysela - 1.8-1 +- Update to v1.8 + +* Thu Jun 3 2021 Jaroslav Kysela - 1.7-1 +- Update to v1.7 + +* Thu Mar 11 2021 Jaroslav Kysela - 1.6.1-4 - Add SST Skylake HDA topology binary (bug#1933423) -* Fri Mar 5 2021 Jaroslav Kysela - 1.6.1-2 +* Fri Mar 5 2021 Jaroslav Kysela - 1.6.1-3 - Add TGL-H firmware files +* Tue Jan 26 2021 Fedora Release Engineering - 1.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Sun Jan 3 2021 Jaroslav Kysela - 1.6.1-1 - Update to v1.6.1 -* Thu Dec 10 2020 Jaroslav Kysela - 1.6-2 +* Thu Dec 10 2020 Jaroslav Kysela - 1.6-4 - Update to v1.6 (Dec 9) +* Thu Nov 19 2020 Jaroslav Kysela - 1.6-3 +- Update to v1.6 (Nov 19) + * Wed Oct 14 2020 Jaroslav Kysela - 1.6-1 - Update to v1.6 (Oct 13) diff --git a/sources b/sources index 69e33a4..f2359d1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (sof-bin-f31c9ce.tar.gz) = 9eedb85c520c0489e7a2f4c5d09e489d022dd88239e2f18aa792fd538ec11200d750c2501e78868f30d29624ce58522bbd2cc86302dffa9a6cd94f1d640d9840 +SHA512 (sof-bin-2025.05.1.tar.gz) = ad255502c607e80dcd9d42f4b734e10534e7b2bc36b0cc077b825a75b91040a9094df1fb3b3bab3a87b99940009b99835357f22bc6289c52fb66f472459fe8e1