Rename them to match what qemu expects
[fedora-reviews.git] / opensbi / opensbi.spec
1 # Disable debug packages, we don't need them.
2 %global debug_package %{nil}
3
4 # Make sure we use the cross-binary to strip.
5 %global __strip riscv64-linux-gnu-strip
6
7 # Avoid this error caused by cross-compilation and packaging the
8 # result in a noarch package:
9 #   error: Arch dependent binaries in noarch package
10 %global _binaries_in_noarch_packages_terminate_build 0
11
12 %global forgeurl https://github.com/riscv/opensbi
13 %global commit   355796c5bc1906d749850e4215e0f7f53802ba5b
14 %forgemeta
15
16 Name:            opensbi
17 Version:         1.2
18 Release:         1%{?dist}
19 Summary:         RISC-V Open Source Supervisor Binary Interface
20
21 License:         BSD
22 URL:             %{forgeurl}
23 Source:          %{forgesource}
24
25 # The resulting binary contains RISC-V firmware intended to be used
26 # under virtualization, so it can be used on any architecture.
27 Buildarch:      noarch
28
29 BuildRequires:   gcc-riscv64-linux-gnu
30 BuildRequires:   binutils-riscv64-linux-gnu
31 BuildRequires:   findutils
32 BuildRequires:   grep
33 BuildRequires:   coreutils
34 BuildRequires:   make
35 BuildRequires:   dtc
36 BuildRequires:   python3
37 BuildRequires:   gawk
38 BuildRequires:   sed
39
40
41 %description
42 RISC-V Open Source Supervisor Binary Interface.  This is for QEMU
43 RISC-V virt machines.
44
45
46 %prep
47 %forgesetup
48
49
50 %build
51 mkdir build32 build64
52 # Build 32 bit firmware.
53 %make_build \
54   O=build32 \
55   CROSS_COMPILE=riscv64-linux-gnu- \
56   PLATFORM=generic \
57   PLATFORM_RISCV_XLEN=32
58 # Build 64 bit firmware.
59 %make_build \
60   O=build32 \
61   CROSS_COMPILE=riscv64-linux-gnu- \
62   PLATFORM=generic
63
64 %install
65 # Install 32 bit firmware.
66 %make_install \
67   O=build32 \
68   CROSS_COMPILE=riscv64-linux-gnu- \
69   PLATFORM=generic \
70   PLATFORM_RISCV_XLEN=32 \
71   I=%{buildroot} \
72   INSTALL_LIB_PATH=%{_libdir} \
73   INSTALL_FIRMWARE_PATH=%{_datadir}/%{name}
74 pushd %{buildroot}%{_datadir}/%{name}/generic/firmware
75 for f in fw_*.bin fw_*.elf; do
76   mv $f opensbi-riscv32-generic-$f
77 done
78 popd
79
80 # Install 64 bit firmware.
81 %make_install \
82   O=build64 \
83   CROSS_COMPILE=riscv64-linux-gnu- \
84   PLATFORM=generic \
85   I=%{buildroot} \
86   INSTALL_LIB_PATH=%{_libdir} \
87   INSTALL_FIRMWARE_PATH=%{_datadir}/%{name}
88 pushd %{buildroot}%{_datadir}/%{name}/generic/firmware
89 for f in fw_*.bin fw_*.elf; do
90   mv $f opensbi-riscv64-generic-$f
91 done
92 popd
93
94 # Remove development libraries and headers for the time being.
95 rm -rfv %{buildroot}%{_libdir}
96 rm -rfv %{buildroot}/include
97
98 # Remove the example/testing payloads.
99 rm -rfv %{buildroot}%{_datadir}/%{name}/*/firmware/payloads
100
101
102 %files
103 %license COPYING.BSD
104 %doc README.md
105 %dir %{_datadir}/%{name}
106 %{_datadir}/%{name}/*
107
108
109 %changelog
110 * Tue May 23 2023 Richard W.M. Jones <rjones@redhat.com> 1.2
111 - Use forge macros
112 - Convert to use cross-compilation
113 - Fix dates in changelog
114
115 * Tue May 02 2023 David Abdurachmanov <davidlt@rivosinc.com> v1.2.116.2023.05.02.7919530-1
116 - Sync with upstream master branch (v1.2-116-g7919530)
117
118 * Thu Jan 26 2023 David Abdurachmanov <davidlt@rivosinc.com> v1.2.0.2023.01.26.c6b5188c-1
119 - Use v1.2 (last stable release for now)
120
121 * Wed Jan 25 2023 David Abdurachmanov <davidlt@rivosinc.com> v1.2.34.2023.01.25.c45992c-1
122 - Sync with upstream master branch (v1.2-34-gc45992c)
123
124 * Thu Nov 17 2022 David Abdurachmanov <davidlt@rivosinc.com> v1.1.85.2022.11.17.14f5c4c-1
125 - Sync with upstream master branch (v1.1-85-g14f5c4c)
126
127 * Mon Jun 27 2022 David Abdurachmanov <davidlt@rivosinc.com> v1.1.0.2022.06.27.4489876-1
128 - Sync with upstream master branch (v1.1 tag)
129
130 * Thu Jun 23 2022 David Abdurachmanov <davidlt@rivosinc.com> v1.0.99.2022.06.23.6f1fe98-1
131 - Sync with upstream master branch
132
133 * Thu Jun 02 2022 David Abdurachmanov <davidlt@rivosinc.com> v1.0.92.2022.06.13.9dc5ec5-1
134 - Sync with upstream master branch
135
136 * Thu Jun 02 2022 David Abdurachmanov <davidlt@rivosinc.com> v1.0.81.2022.06.02.cb8271c-1
137 - Sync with upstream master branch
138
139 * Sat Nov 06 2021 David Abdurachmanov <david.abdurachmanov@gmail.com> v0.9.163.2021.11.06.0979ffd-1
140 - Sync with upstream master branch
141
142 * Fri Oct 08 2021 David Abdurachmanov <david.abdurachmanov@gmail.com> v0.9.152.2021.10.08.754d511-1
143 - Sync with upstream master branch
144
145 * Tue Aug 17 2021 David Abdurachmanov <david.abdurachmanov@gmail.com> v0.9.134.2021.08.17.7aa6c9a-1
146 - Sync with upstream master branch
147 - Upstream support for SiFive HiFive Unmatched
148
149 * Wed Apr 21 2021 David Abdurachmanov <david.abdurachmanov@gmail.com> v0.9.35.2021.04.21.f41196a
150 - Update to v0.9+
151
152 * Wed Jan 06 2021 David Abdurachmanov <david.abdurachmanov@sifive.com> v0.8.81.2021.01.06.7dcb1e1
153 - New version
154 - Switch to generic platform
155 - Remove all others special Fedora variants of firmware
156 - Remove development library and documentation (not needed)
157 - Remove example payloads