-Name: opensbi-unstable
-# The last part is short hash
-# Format: <TAG>.<NUMBER_OF_COMMITS_AFTER_TAG>.<YEAR>.<MONTH>.<DAY>.<SHORT_COMMIT>
-Version: v1.2.116.2023.05.02.7919530
-Release: 1%{?dist}
-Summary: RISC-V Open Source Supervisor Binary Interface
-
-License: BSD
-URL: https://github.com/riscv/opensbi
-
-# Download tarball, e.g.:
-# https://github.com/riscv/opensbi/archive/%full_commit.tar.gz
-%global full_commit 791953030836d39687688a8e7f1a3e708892cfa1
-Source0: https://github.com/riscv/opensbi/archive/%{full_commit}.tar.gz
-
-BuildRequires: gcc
-BuildRequires: binutils
-BuildRequires: findutils
-BuildRequires: grep
-BuildRequires: coreutils
-BuildRequires: make
-BuildRequires: dtc
-BuildRequires: python3
-BuildRequires: gawk
-BuildRequires: sed
+# Make sure we use the cross-binary to strip.
+%global __strip riscv64-linux-gnu-strip
+
+# 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
+
+%global forgeurl https://github.com/riscv/opensbi
+%global commit 355796c5bc1906d749850e4215e0f7f53802ba5b
+%forgemeta
+
+Name: opensbi
+Version: 1.2
+Release: 1%{?dist}
+Summary: RISC-V Open Source Supervisor Binary Interface
+
+License: BSD
+URL: %{forgeurl}
+Source: %{forgesource}
+
+# 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