|
|
[features]
|
|
|
hide = [
|
|
|
# For wasm/browser targets only; rust2rpm already patches everything out of
|
|
|
# this feature automatically.
|
|
|
"js",
|
|
|
# We do not want to package jiff-tzdb (which bundles the timezone
|
|
|
# database), and we think Fedora should always be using the system tz
|
|
|
# database, not a bundled one.
|
|
|
"tzdb-bundle-always",
|
|
|
]
|
|
|
enable = [
|
|
|
# Required for some doctests
|
|
|
"serde",
|
|
|
]
|
|
|
|
|
|
[package]
|
|
|
cargo-toml-patch-comments = [
|
|
|
# This would be a candidate for automated patching with tomcli if it were
|
|
|
# an unconditional dependency, but given it is
|
|
|
# target.'cfg(not(target_family = "wasm"))', manual patching is easier.
|
|
|
"Drop dev-dependency hifitime: not packaged, and only for doctests",
|
|
|
]
|
|
|
|
|
|
[[package.extra-sources]]
|
|
|
number = 10
|
|
|
file = "https://github.com/BurntSushi/jiff/archive/%{version}/jiff-%{version}.tar.gz"
|
|
|
comments = [
|
|
|
"""\
|
|
|
Since 0.1.22, the published crates no longer include “non-essential files \
|
|
|
(including tests and test data).” Since we would like to run the tests, we \
|
|
|
use the GitHub archive as an additonal source as permitted in \
|
|
|
https://docs.fedoraproject.org/en-US/packaging-guidelines/Rust/#_package_sources, \
|
|
|
waiting until %%check to copy in the extra files to prove they are not \
|
|
|
included in the crate sources shipped in the binary RPMs.\
|
|
|
""",
|
|
|
]
|
|
|
|
|
|
[[package.extra-patches]]
|
|
|
number = 10
|
|
|
file = "0001-Downstream-only-Omit-doctests-that-require-hifitime.patch"
|
|
|
comments = [
|
|
|
"""\
|
|
|
Downstream-only: Omit doctests that require hifitime. \
|
|
|
It is not worth packaging it solely for a couple of tiny examples.\
|
|
|
""",
|
|
|
]
|
|
|
|
|
|
[[package.extra-patches]]
|
|
|
number = 11
|
|
|
file = "0001-Downstream-only-Omit-doctests-that-require-icu.patch"
|
|
|
comments = [
|
|
|
"""\
|
|
|
Downstream-only: Omit doctests that require icu.\
|
|
|
""",
|
|
|
]
|
|
|
|
|
|
[[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, doctests and examples (but not the lib and integration tests)
|
|
|
are allowed to 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 and/or examples there
|
|
|
entirely.\
|
|
|
""",
|
|
|
]
|
|
|
|
|
|
|
|
|
[requires]
|
|
|
build = [
|
|
|
"tomcli",
|
|
|
]
|
|
|
|
|
|
[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+<N> for EPEL<N>.\
|
|
|
""",
|
|
|
# EPEL9 rpm does not support "%patch <N>", and would quietly attempt and
|
|
|
# fail to re-apply Patch0 instead of applying the desired patch. We *need*
|
|
|
# to use "%patch -P <N>" instead.
|
|
|
"""\
|
|
|
%if 0%{?el9}
|
|
|
%patch -P 1009 -p1
|
|
|
%endif
|
|
|
# We do not yet have a rust-icu package (although one would be desirable)
|
|
|
tomcli set Cargo.toml del dev-dependencies.icu\
|
|
|
"""
|
|
|
]
|
|
|
|
|
|
[scripts.check]
|
|
|
pre = [
|
|
|
"""\
|
|
|
# Copy in snapshots, integration tests, and test data – required to run tests,
|
|
|
# but not included in the released crate. By doing so here in %%check rather
|
|
|
# than in %%prep, we prove that the binary RPMs are derived solely from the
|
|
|
# published crate sources.
|
|
|
tar -xzvf '%{SOURCE10}' --strip-components=1 \\
|
|
|
jiff-%{version}/src/tz/snapshots \\
|
|
|
jiff-%{version}/src/tz/testdata \\
|
|
|
jiff-%{version}/tests\
|
|
|
""",
|
|
|
]
|