rust2rpm Version 21 - new %crate_instdir convenience macro with the path to the installation directory - license and documentation files are now installed just once under %crate_instdir and are marked with %license and %doc there - link flags are now passed using the RUSTFLAGS envvar and include package note linker script (when %_package_note_file is defined) - CFLAGS/CXXFLAGS are passed to the processes started by cargo - rpmautospec can be disabled with --no-rpmautospec - minor tweaks to existence checks, documentation file detection, license tags, version handling and spec file naming Version 20 - fix autodetection of rpmspec if it was already used in the existing spec file - fix parsing of ID_LIKE in os-release files - drop unused __cargo_skip_build logic - improve handling of the upper bound in dependencies with ~ in version - minor improvements to grammar and whitespace in generated output Version 19 - use rpmautospec by default for Fedora - check if a package already exists in Fedora (use --no-existence-check to opt-out) - replace hyphens by underscores in Version (issue #124) - suppress tracebacks for network errors and similar (issue #125) - add bundled() provider for vendoring to be used with 'cargo vendor' and a new --provides-vendor parameter - test with Python 3.10 and mark it as supported - licensing: add CDDL-1.1, LGPL-2.0-or-later Version 18 - Add simple %license and %doc file auto-detection - Add optional support for rpmautospec (%autorelease, %autochangelog) - Use changelog timestamp format with time and timezone only on OpenSUSE - Fix parsing of features with "+" in their name - Use Fedora 35 for Fedora license helper script - licensing: add Python-2.0 Version 17 - revert the change to specify all BuildRequires directly, not in %generate_buildrequires Version 16 - new 'fedora-helper' tool for Fedora - specify all BuildRequires directly, not in %generate_buildrequires - introduce new unwanted-features setting in .rust2rpm.conf files to prevent subpackages for specific "unwanted" features from being generated - licensing: add LGPL-3.0-or-later, LGPL-2.1-or-later, EUPL-1.2 - add riscv64 to %rust_arches Version 14/15 - Use '--no-track' for 'cargo install' - Support versions with multiple wildcards (e.g. '1.*.*') - Ignore 'Cargo.toml.orig' which causes issues with build of many crates Version 13 - Generate %files entries with '%{version_no_tilde}' - Add support for using multiple features at a time in cargo-inspector - Implement support for "renamed" dependencies Version 12 - Set proper Version field for pre-release versions of crates Version 11 - When dynamic BuildRequires are turned on, propagate arguments to %cargo_* - Few improvements in algorithm of description splitting into a summary - Ignore Cargo.lock for installation (publish lockfile feature in Cargo 1.37+) - Replace semantic_version dependency by custom parser - Add MPL-2.0-or-later and 0BSD into a Fedora SPDX mapping - Pass --cap-lints=warn into the RUSTFLAGS to prevent FTBFS after dependency and/or compiler updates - Enable dynamic BuildRequires by default for Fedora target Version 10 - Translate '-or-later' and '+' license suffixes properly - Check /usr/lib/os-release in addition to /etc/os-release - Prettify summary and description automatically - Use %{expand:…} for %description to avoid escaping of newlines - Add '--suffix' option for "compat" packages - Implement option to skip building of crates (aka fast/bootstrap build) Version 9 - Always put upstream license in spec - Fix version in egg-info - Remove accidentally left Cargo.toml.deps - Fix packager detection fallback Version 8 - Pass '-Ccodegen-units=1' in RUSTFLAGS - Switch to '%{build_rustflags}' Version 7 - Generate %doc statements for readme from Cargo.toml - Split features into subpackages ('rust-$crate+$feature-devel') - Add support for dependencies with same name - Add support for user configuration ('.rust2rpm.conf', '_rust2rpm.conf') - Option to not generate default changelog entry ('--no-auto-changelog-entry') - Set 'CARGO_HOME' to the local '.cargo' (required by new Rust) - Improvements for crates with pre-release versions - Fix '%cargo_install' with crates which use whitespace in files - Do not put unneeded optional dependencies in BuildRequires ('-Z avoid-dev-deps') - Option to use all crate features when generating spec file - Use new-style changelog format (with TZ info) on Fedora - Option to use dynamic BuildRequires (requires RPM 4.15+) - Environment variables to control packager identity Version 6 - Improvements in RPM macros - Add support for handling local crates - Add option to copy crate into current working directory - Filter non-linux dependencies automatically - Translate SPDX licenses into Fedora ones (for Fedora and Mageia) Version 5 - Add cargo dependency for runtime (devel subpackages) - Use cp instead of install in macros in order to keep original permissions - Ignore yanked versions when no version is specified - Pass --no-fail-fast for cargo-test - Treat optional dependencies as "features" as well - Add support for "rlib" crate-type - Add support for Mageia and (open)SUSE in template Version 4 - Switch to /usr/share/cargo/registry for storing crates - Explicitly set rustdoc in macro so it won't collide with the one used by user - Add initial support for pre-release versions - Add support for versions with multiple wildcards (like 1.*.*) Version 3 - Use rich dependencies to fulfil requirements - Automagically strip [dev-dependencies] when building without tests - Add support for wildcard in version - Generate initial changelog - Use rust-packaging for BuildRequires to break loop - Other cleanups and fixes Version 2 - Automatic generation of summary and description - Initial patching of metadata - Save generated spec/patch as files instead of printing to stdout - Support for proc-macro kind of library - %cargo_build and %cargo_test now accept any parameters - Automatically strip [dev-dependencies] when %check is disabled Version 1 - initial version with setuptools metadata