No description
Find a file
Fabio Valentini 63acdf63c4 Accept and move to rust2rpm.conf as standard config file location
Using .rust2rpm.conf is confusing to new users, because they never see
these files in existing packages and are only seeing magic happen.

This commit changes the default location of the configuration file to
./rust2rpm.conf, and will rename existing .rust2rpm.conf or _rust2rpm.conf
files to the new name if they already exist.

I have also added a little more documentation about the config file itself
to the README.
2022-06-06 07:33:54 +00:00
data Allow easy overriding of the opt-level/debuginfo/codegen-units flags 2022-02-22 12:05:49 +01:00
rust2rpm Accept and move to rust2rpm.conf as standard config file location 2022-06-06 07:33:54 +00:00
tools fedora-helper: Use f35 as a base for license generation 2021-03-07 21:40:31 +01:00
.gitignore gitignore: add /build/ 2018-01-08 20:08:43 +01:00
LICENSE
MANIFEST.in Translate SPDX licenses to Fedora license tags, warn about "/" 2018-08-16 16:16:02 +02:00
NEWS Version 21 2022-02-20 15:51:04 +01:00
README.md Accept and move to rust2rpm.conf as standard config file location 2022-06-06 07:33:54 +00:00
requirements.txt metadata: replace semantic-version with a custom parser 2019-10-28 11:19:46 +01:00
setup.py setup: bump development status to "production" 2021-11-28 12:50:37 +01:00
test.py Support wildcards in 0.x versions 2022-01-09 08:08:17 +01:00
tox.ini Add python 3.10 to tox.ini 2021-10-14 18:41:02 +02:00

rust2rpm

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:

  • 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 feature
  • bin.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.