diff options
Diffstat (limited to 'alsa-sof-firmware.spec')
-rw-r--r-- | alsa-sof-firmware.spec | 239 |
1 files changed, 239 insertions, 0 deletions
diff --git a/alsa-sof-firmware.spec b/alsa-sof-firmware.spec new file mode 100644 index 0000000..9adab09 --- /dev/null +++ b/alsa-sof-firmware.spec @@ -0,0 +1,239 @@ +# 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.03 +%global sof_ver_avs 2024.02 +#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: 5%{?sof_ver_rel}%{?dist} +# See later in the spec for a breakdown of licensing +License: BSD-3-Clause AND Apache-2.0 +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 +Source2: https://github.com/thesofproject/avs-topology-xml/releases/download/v%{sof_ver_avs}/avs-topology_%{sof_ver_avs}.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 + +mkdir avs +tar xvzf %{SOURCE2} --strip-components=1 --directory=avs +mv avs/LICENSE LICENCE.avs +mv avs/lib/firmware/intel/avs firmware/intel +echo "%{sof_ver_avs}" > manifest.avs.txt + +%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 +for d in avs; do \ + find -P "firmware/intel/${d}" -type f -name "*.bin" -exec xz -z %{_xz_opts} {} \; +done + +mv firmware/intel/sof-ipc4-tplg firmware/intel/sof-ace-tplg +ln -s sof-ace-tplg firmware/intel/sof-ipc4-tplg + +%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 +%doc manifest.avs.txt +%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-ace-tplg/*.tplg.xz +%{_firmwarepath}/intel/sof-ipc4-tplg + +# Licence: Apache 2.0 +%{_firmwarepath}/intel/avs/*.bin.xz + +# Licence: SOF (3-clause BSD plus others) +# .. for files with suffix .ri + +%files debug -f alsa-sof-firmware.debug-files + +%pretrans -p <lua> +path = "%{_firmwarepath}/intel/sof-tplg" +st = posix.stat(path) +if st and st.type == "link" then + os.remove(path) +end + +%changelog +* Mon Jun 17 2024 Jaroslav Kysela <jkysela@redhat.com> - 2024.03-5 +- Update to v2024.03 +- Add AVS topology files v2024.02 + +* Wed Dec 20 2023 Jaroslav Kysela <perex@perex.cz> - 2023.12-1 +- Update to v2023.12 + +* Thu Nov 16 2023 Jaroslav Kysela <perex@perex.cz> - 2023.09.2-1 +- Update to v2023.09.2 +- SPDX license + +* Thu Jun 15 2023 Jaroslav Kysela <perex@perex.cz> - 2.2.5-2 +- add sof-rpl-rt711-l0-rt1316-l12-rt714-l3.tplg for Dell SKU 0BDA +- add xz compression support (with CRC32) + +* Mon May 15 2023 Jaroslav Kysela <perex@perex.cz> - 2.2.5-1 +- Update to v2.2.5 + +* Mon Jan 9 2023 Jaroslav Kysela <perex@perex.cz> - 2.2.4-1 +- Update to v2.2.4 + +* Wed Dec 7 2022 Jaroslav Kysela <perex@perex.cz> - 2.2.3-1 +- Update to v2.2.3 + +* Thu Sep 29 2022 Jaroslav Kysela <perex@perex.cz> - 2.2.2-1 +- Update to v2.2.2 + +* Mon Jun 20 2022 Jaroslav Kysela <perex@perex.cz> - 2.1.1-1 +- Update to v2.1.1 + v2.1.1a (topology) + +* Mon Dec 20 2021 Jaroslav Kysela <perex@perex.cz> - 1.9.3-2 +- Update to v1.9.3 + +* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.8-2 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Thu Jul 22 2021 Jaroslav Kysela <perex@perex.cz> - 1.8-1 +- Update to v1.8 + +* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 1.6.1-5 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Thu Mar 11 2021 Jaroslav Kysela <perex@perex.cz> - 1.6.1-4 +- Add SST Skylake HDA topology binary (bug#1933423) + +* Fri Mar 5 2021 Jaroslav Kysela <perex@perex.cz> - 1.6.1-3 +- Add TGL-H firmware files + +* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sun Jan 3 2021 Jaroslav Kysela <perex@perex.cz> - 1.6.1-1 +- Update to v1.6.1 + +* Thu Dec 10 2020 Jaroslav Kysela <perex@perex.cz> - 1.6-4 +- Update to v1.6 (Dec 9) + +* Thu Nov 19 2020 Jaroslav Kysela <perex@perex.cz> - 1.6-3 +- Update to v1.6 (Nov 19) + +* Wed Oct 14 2020 Jaroslav Kysela <perex@perex.cz> - 1.6-1 +- Update to v1.6 (Oct 13) + +* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jun 1 2020 Jaroslav Kysela <perex@perex.cz> - 1.5-1 +- Update to v1.5 + +* Tue May 12 2020 Jaroslav Kysela <perex@perex.cz> - 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 <perex@perex.cz> - 1.4.2-5 +- Add missing symlink for sof-cfl.ri + +* Thu Mar 12 2020 Jaroslav Kysela <perex@perex.cz> - 1.4.2-4 +- Add missing symlink for sof-cml.ri + +* Mon Mar 2 2020 Jaroslav Kysela <perex@perex.cz> - 1.4.2-3 +- Initial version, SOF firmware 1.4.2 |