diff --git a/0001-EPEL9-Ignore-doctests-that-require-very-recent-Rust-.patch b/0001-EPEL9-Ignore-doctests-that-require-very-recent-Rust-.patch new file mode 100644 index 0000000..5a018e5 --- /dev/null +++ b/0001-EPEL9-Ignore-doctests-that-require-very-recent-Rust-.patch @@ -0,0 +1,33 @@ +From cc8baaf562c4d3bda50db88da33e8772c1f620cd Mon Sep 17 00:00:00 2001 +From: "Benjamin A. Beasley" +Date: Thu, 10 Oct 2024 17:43:14 -0400 +Subject: [PATCH] EPEL9: Ignore doctests that require very recent Rust + compilers +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In this crate, some doctests use Rust features from versions newer than +the MSRV. It’s therefore necessary to ignore some of them on EPEL9. If +this patch becomes too unwieldy, we could choose to start skipping +doctests there entirely. +--- + src/lib.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lib.rs b/src/lib.rs +index 3213b7b..96f7e83 100644 +--- a/src/lib.rs ++++ b/src/lib.rs +@@ -20,7 +20,7 @@ + //! Being able to construct `ConstTypeId` in const makes it suitable for use + //! cases that rely on static promotion: + //! +-//! ``` ++//! ```ignore + //! use std::fmt::{self, Debug, Display}; + //! use std::ptr; + //! use typeid::ConstTypeId; +-- +2.46.2 + diff --git a/rust-typeid.spec b/rust-typeid.spec index 6c1975f..50665b6 100644 --- a/rust-typeid.spec +++ b/rust-typeid.spec @@ -12,6 +12,12 @@ Summary: Const TypeId and non-'static TypeId License: MIT OR Apache-2.0 URL: https://crates.io/crates/typeid Source: %{crates_source} +# * EPEL9: Ignore doctests that require very recent Rust compilers +# * In this crate, some doctests use Rust features from versions newer than the +# MSRV. It’s therefore necessary to ignore some of them on EPEL9. If this +# patch becomes too unwieldy, we could choose to start skipping doctests there +# entirely. +Patch1009: 0001-EPEL9-Ignore-doctests-that-require-very-recent-Rust-.patch BuildRequires: cargo-rpm-macros >= 24 @@ -48,7 +54,14 @@ use the "default" feature of the "%{crate}" crate. %ghost %{crate_instdir}/Cargo.toml %prep -%autosetup -n %{crate}-%{version} -p1 +%autosetup -n %{crate}-%{version} -N +# NOTE: The -p1 in %%autosetup, above, must be replaced with -N so that we can +# do conditional patching, below. +%autopatch -M 999 -p1 +# We reserved patch number 1000+ for EPEL. +%if 0%{?el9} +%patch -P 1009 -p1 +%endif %cargo_prep %generate_buildrequires diff --git a/rust2rpm.toml b/rust2rpm.toml new file mode 100644 index 0000000..db91dc2 --- /dev/null +++ b/rust2rpm.toml @@ -0,0 +1,26 @@ +[[package.extra-patches]] +number = 1009 +file = "0001-EPEL9-Ignore-doctests-that-require-very-recent-Rust-.patch" +comments = [ + "EPEL9: Ignore doctests that require very recent Rust compilers", + """\ + In this crate, some doctests use Rust features from versions newer than \ + the MSRV. It’s therefore necessary to ignore some of them on EPEL9. If \ + this patch becomes too unwieldy, we could choose to start skipping \ + doctests there entirely.\ + """, +] + +[scripts.prep] +pre = [ + "# NOTE: The -p1 in %%autosetup, above, must be replaced with -N so that we can", + "# do conditional patching, below.", + "%autopatch -M 999 -p1", + "# We reserved patch number 1000+ for EPEL.", + "%if 0%{?el9}", + # EPEL9 rpm does not support "%patch ", and would quietly attempt and + # fail to re-apply Patch0 instead of applying the desired patch. We *need* + # to use "%patch -P " instead. + "%patch -P 1009 -p1", + "%endif", +]