X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=opensbi%2Fopensbi.spec;h=6ce35c80457e6e91e90a8d26e08f27ee7a733c6b;hb=HEAD;hp=cda873a7a3d7db829d30ac8cf34b79c0db9af53c;hpb=91174a0dc951c668b296a297e5dbd297fee80ed8;p=fedora-reviews.git diff --git a/opensbi/opensbi.spec b/opensbi/opensbi.spec index cda873a..6ce35c8 100644 --- a/opensbi/opensbi.spec +++ b/opensbi/opensbi.spec @@ -1,82 +1,159 @@ -# Debuginfo and stripping makes no sense for this package. +# Disable debug packages, we don't need them. %global debug_package %{nil} -%global __strip /bin/true -%global _binaries_in_noarch_packages_terminate_build 0 - -Name: opensbi -Version: 0.9 -Release: 1%{?dist} -Summary: RISC-V Open Source Supervisor Binary Interface (OpenSBI) -License: BSD -URL: https://github.com/riscv-software-src/opensbi +# Make sure we use the cross-binary to strip. +%global __strip riscv64-linux-gnu-strip -Source0: https://github.com/riscv-software-src/%{name}/archive/refs/tags/v%{version}.tar.gz +# Avoid this error caused by cross-compilation and packaging the +# result in a noarch package: +# error: Arch dependent binaries in noarch package +%global _binaries_in_noarch_packages_terminate_build 0 -BuildRequires: gcc-riscv64-linux-gnu -BuildRequires: binutils-riscv64-linux-gnu +%global forgeurl https://github.com/riscv/opensbi +%global commit 355796c5bc1906d749850e4215e0f7f53802ba5b +%forgemeta -# The -devel subpackage contains riscv64 code so you'll get: -# > Arch dependent binaries in noarch package -Buildarch: noarch +Name: opensbi +Version: 1.2 +Release: 1%{?dist} +Summary: RISC-V Open Source Supervisor Binary Interface +License: BSD +URL: %{forgeurl} +Source: %{forgesource} -%description -The RISC-V Supervisor Binary Interface (SBI) is the firmware -used to boot RISC-V virtual machines in qemu. +# The resulting binary contains RISC-V firmware intended to be used +# under virtualization, so it can be used on any architecture. +Buildarch: noarch +BuildRequires: gcc-riscv64-linux-gnu +BuildRequires: binutils-riscv64-linux-gnu +BuildRequires: findutils +BuildRequires: grep +BuildRequires: coreutils +BuildRequires: make +BuildRequires: dtc +BuildRequires: python3 +BuildRequires: gawk +BuildRequires: sed -%package devel -Summary: Development files for %{name} -# NB: Doesn't require the base package because it doesn't need it. +%description +RISC-V Open Source Supervisor Binary Interface. -%description devel -This package contains development files (headers, libraries, etc) -for %{name}. +The current version is for QEMU RISC-V virt machines, SiFive HiFive +Unleashed, T-HEAD C9xx and some others. %prep -%setup -q -n opensbi-%{version} +%forgesetup %build -%global platforms generic -for platform in %{platforms}; do - make CROSS_COMPILE=riscv64-linux-gnu- PLATFORM=$platform %{?_smp_mflags} -done - +mkdir build32 build64 +# Build 32 bit firmware. +%make_build \ + O=build32 \ + CROSS_COMPILE=riscv64-linux-gnu- \ + PLATFORM=generic \ + PLATFORM_RISCV_XLEN=32 +# Build 64 bit firmware. +%make_build \ + O=build32 \ + CROSS_COMPILE=riscv64-linux-gnu- \ + PLATFORM=generic %install -# This installs into the install/ subdirectory ... -for platform in %{platforms}; do - make CROSS_COMPILE=riscv64-linux-gnu- PLATFORM=$platform %{?_smp_mflags} \ - install +# Install 32 bit firmware. +%make_install \ + O=build32 \ + CROSS_COMPILE=riscv64-linux-gnu- \ + PLATFORM=generic \ + PLATFORM_RISCV_XLEN=32 \ + I=%{buildroot} \ + INSTALL_LIB_PATH=%{_libdir} \ + INSTALL_FIRMWARE_PATH=%{_datadir}/%{name} +pushd %{buildroot}%{_datadir}/%{name}/generic/firmware +for f in fw_*.bin fw_*.elf; do + mv $f opensbi-riscv32-generic-$f done -# ... and we copy the files we want to the desired locations. - -mkdir -p %{buildroot}%{_libdir} -cp -a install/usr/lib64/* %{buildroot}%{_libdir} +popd + +# Install 64 bit firmware. +%make_install \ + O=build64 \ + CROSS_COMPILE=riscv64-linux-gnu- \ + PLATFORM=generic \ + I=%{buildroot} \ + INSTALL_LIB_PATH=%{_libdir} \ + INSTALL_FIRMWARE_PATH=%{_datadir}/%{name} +pushd %{buildroot}%{_datadir}/%{name}/generic/firmware +for f in fw_*.bin fw_*.elf; do + mv $f opensbi-riscv64-generic-$f +done +popd -mkdir -p %{buildroot}%{_includedir} -cp -a install/usr/include/* %{buildroot}%{_includedir} +# Remove development libraries and headers for the time being. +rm -rfv %{buildroot}%{_libdir} +rm -rfv %{buildroot}/include -mkdir -p %{buildroot}%{_datadir} -cp -a install/usr/share/opensbi %{buildroot}%{_datadir}/%{name} +# Remove the example/testing payloads. +rm -rfv %{buildroot}%{_datadir}/%{name}/*/firmware/payloads %files -%{_datadir}/%{name} +%license COPYING.BSD +%doc README.md +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/* + +%changelog +* Tue May 23 2023 Richard W.M. Jones 1.2 +- Use forge macros +- Convert to use cross-compilation +- Fix dates in changelog -%files devel -%dir %{_libdir}/lp64 -%{_libdir}/lp64/libsbi*.a -%{_libdir}/lp64/opensbi/generic/lib/libplatsbi.a -%{_includedir}/sbi/ -%{_includedir}/sbi_utils/ +* Tue May 02 2023 David Abdurachmanov v1.2.116.2023.05.02.7919530-1 +- Sync with upstream master branch (v1.2-116-g7919530) +* Thu Jan 26 2023 David Abdurachmanov v1.2.0.2023.01.26.c6b5188c-1 +- Use v1.2 (last stable release for now) -%changelog -* Mon Sep 20 2021 Richard W.M. Jones - 0.9-1 -- Initial release. +* Wed Jan 25 2023 David Abdurachmanov v1.2.34.2023.01.25.c45992c-1 +- Sync with upstream master branch (v1.2-34-gc45992c) + +* Thu Nov 17 2022 David Abdurachmanov v1.1.85.2022.11.17.14f5c4c-1 +- Sync with upstream master branch (v1.1-85-g14f5c4c) + +* Mon Jun 27 2022 David Abdurachmanov v1.1.0.2022.06.27.4489876-1 +- Sync with upstream master branch (v1.1 tag) + +* Thu Jun 23 2022 David Abdurachmanov v1.0.99.2022.06.23.6f1fe98-1 +- Sync with upstream master branch + +* Thu Jun 02 2022 David Abdurachmanov v1.0.92.2022.06.13.9dc5ec5-1 +- Sync with upstream master branch + +* Thu Jun 02 2022 David Abdurachmanov v1.0.81.2022.06.02.cb8271c-1 +- Sync with upstream master branch + +* Sat Nov 06 2021 David Abdurachmanov v0.9.163.2021.11.06.0979ffd-1 +- Sync with upstream master branch + +* Fri Oct 08 2021 David Abdurachmanov v0.9.152.2021.10.08.754d511-1 +- Sync with upstream master branch + +* Tue Aug 17 2021 David Abdurachmanov v0.9.134.2021.08.17.7aa6c9a-1 +- Sync with upstream master branch +- Upstream support for SiFive HiFive Unmatched + +* Wed Apr 21 2021 David Abdurachmanov v0.9.35.2021.04.21.f41196a +- Update to v0.9+ + +* Wed Jan 06 2021 David Abdurachmanov v0.8.81.2021.01.06.7dcb1e1 +- New version +- Switch to generic platform +- Remove all others special Fedora variants of firmware +- Remove development library and documentation (not needed) +- Remove example payloads