# This is a firmware package, so binaries (which are not run on the host) 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 2024.09 #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 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_ver} Release: 1%{?sof_ver_rel}%{?dist} # See later in the spec for a breakdown of licensing License: BSD-3-Clause URL: https://github.com/thesofproject/sof-bin 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 # noarch, since the package is firmware BuildArch: noarch %description 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 %description debug This package contains the debug files for the Sound Open Firmware project. %prep %autosetup -n sof-bin-%{sof_ver_pkg0} mkdir -p firmware/intel for d in sof sof-ipc4 sof-ipc4-tplg sof-tplg; do \ mv "${d}" firmware/intel; \ done ln -s sof-ipc4-tplg firmware/intel/sof-ace-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 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-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 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 firmware/* %{buildroot}%{_firmwarepath} # gather files and directories FILEDIR=$(pwd) pushd %{buildroot}/%{_firmwarepath} 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 "*.ldc" | sed -e '/^.$/d' > $FILEDIR/alsa-sof-firmware.debug-files find -P . -type d | sed -e '/^.$/d' > $FILEDIR/alsa-sof-firmware.dirs popd sed -i -e 's:^./::' alsa-sof-firmware.{files,debug-files,dirs} sed -i -e 's!^!/usr/lib/firmware/!' alsa-sof-firmware.{files,debug-files,dirs} sed -e 's/^/%%dir /' alsa-sof-firmware.dirs >> alsa-sof-firmware.files 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.xz # Licence: 3-clause BSD # .. for files with suffix .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 %files debug -f alsa-sof-firmware.debug-files %pretrans -p path = "%{_firmwarepath}/intel/sof-tplg" st = posix.stat(path) 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 * Mon Oct 14 2024 Jaroslav Kysela - 2024.09-1 - Update to v2024.09 * Tue Jul 30 2024 Jaroslav Kysela - 2024.03-9 - Remove AVS topology files (moved to linux-firmware) * Mon Jun 24 2024 Troy Dawson - 2024.03-8 - Bump release for June 2024 mass rebuild * Mon Jun 17 2024 Jaroslav Kysela - 2024.03-7 - Update to v2024.03 - 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-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-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) * Mon Jul 27 2020 Fedora Release Engineering - 1.5-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Mon Jun 1 2020 Jaroslav Kysela - 1.5-1 - Update to v1.5 * Tue May 12 2020 Jaroslav Kysela - 1.4.2-6 - Fix the upgrade (make /usr/lib/firmware/intel/sof-tplg directory again) - Remove the version from all paths * Thu Apr 30 2020 Jaroslav Kysela - 1.4.2-5 - Add missing symlink for sof-cfl.ri * Thu Mar 12 2020 Jaroslav Kysela - 1.4.2-4 - Add missing symlink for sof-cml.ri * Mon Mar 2 2020 Jaroslav Kysela - 1.4.2-3 - Initial version, SOF firmware 1.4.2