rust2rpm is a tool for automatically generating RPM spec files for Rust crates.
rust2rpm.conf
If it is present, a rust2rpm.conf
configuration file is read
by rust2rpm to override some aspects of the automatic spec file generation.
This file can be committed to dist-git to ensure that these settings will be applied for future updates of a crate package, as well.
The file follows a slightly modified ini
syntax. It supports sections for
default settings ([DEFAULT]
) and target-specific settings (i.e. [fedora]
).
These configuration options are available right now:
all-features
: enable all cargo features when generating BuildRequires
,
building the crate, and running cargo tests (defaults to false
; setting this
value to true
is equivalent to supplying the --all-features
CLI flag)unwanted-features
: features or optional dependencies for which no
+feature
subpackage should be generated (for example, dependencies on Rust
compiler internals for crates that are also bundled with Rust itself)buildrequires
: additional build dependencies that must be installed for the
package to build correctly (i.e., pkgconfig(foo)
for the foo-sys
crate)lib.requires
: additional build dependencies that must be installed for the
crate to build correctly as a dependency of another crate (usually, this
contains the same values as the buildrequires
option)lib+foo.requires
: additional build dependencies that must be installed for
the crate to build correctly as a dependency of another crate if it has
enabled the optional foo
featurebin.requires
: additional runtime dependencies of the binary application that
is built from this crate[DEFAULT] unwanted-features = compiler_builtins rustc-dep-of-std buildrequires = pkgconfig(foo) >= 1.2.3 lib.requires = pkgconfig(foo) >= 1.2.3 [fedora] bin.requires = findutils buildrequires = lib.requires = lib+default.requires = pkgconfig(bar) >= 2.0.0
Note that features and optional dependencies that are marked as
unwanted-features
must not be dependencies of other Cargo features that are
not marked "unwanted" as well. Failing to consider transitive dependencies will
lead to broken dependencies of generated rust-foo+bar-devel
packages and / or
errors when generating spec files with rust2rpm.