Releases 43

If the developers have uploaded one or more tarball(s), you will be able to find them in the release folder.

The CHECKSUMS file contains the checksums (SHA256 and SHA512) of the files uploaded to pagure.

To use this file, simply download it next to the tarball you downloaded and run

sha512sum -c CHECKSUMS

========== Added: - New macros for collecting license information for all crates that are statically linked into a Rust binary (`%cargo_license` and `%cargo_license_summary`). - Add support for specifying "testrequires" in rust2rpm.conf. These work similar to "buildrequires", but the specified dependencies will be wrapped in an `%if %{with check}` conditional in the generated spec file. This can be used to specify BuildRequires that are only needed when running a crate's test suite, but which are not necessary to build the crate itself. Changed: - The list of binaries in %files is now consistently sorted in generated spec files (this only affects crates that build more than one binary, of course). - Fall back to the latest pre-release if there are no stable releases (or if all previously published stable released have been yanked). - Dropped `ExclusiveArch: %{rust_arches}` when generating spec files for Fedora. RPM itself will start to depend on Rust components, so Rust will by definition need to be available on all architectures that are supported by Fedora. - Replaced `i686` with the `%{ix86}` macro in `%{rust_arches}`. Fixed: - Ensure that rust2rpm doesn't auto-generate architecture-dependent patches. - Ensure both automatically generated and manually written patches affect spec file generation (i.e. feature subpackages). - Fix evaluation of cfg-expressions that contain the new "wasm64" target. - Only remove target-specific dependencies from feature dependencies if they are optional. - The logic for replacing the current version of rust2rpm when comparing spec output in tests has been fixed for OpenSUSE spec templates.
========== This release comes with lots of improvements, bug fixes, and new features, but also drops support for Python versions older than 3.10. Added: - Add macros to allow overriding default Rust compiler flags without needing to manually invoke sed: %rustflags_opt_level, %rustflags_debuginfo, %rustflags_codegen_units (PR#182 / @zbyszek) - Add a new rust2rpm.conf setting that mirrors the "--all-features" CLI argument of rust2rpm (PR#191 / @decathorpe) - Add support for running rust2rpm without an explicit crate name argument, and use heuristics (value of the %crate macro in an existing spec file, or the name of the current directory) as fallback values (PR#197 / @zbyszek) - Add a parser and evaluation logic for "cfg"-expressions and automatically generate a Cargo.toml patch that removes "foreign" dependencies (PR#183 / @zbyszek) - Add CC-PDDC ("Creative Commons Public Domain Dedication and Certification") to the list of accepted licenses (PR#203 / @yizhengxie) - Added simple logger functionality and print messages to stderr to ensure the "--stdout" mode of rust2rpm continues to work (@decathorpe). Changed: - Change the default name of the rust2rpm configuration file to "rust2rpm.conf", and migrate existing ".rust2rpm.conf" and "_rust2rpm.conf" files (PR#189 / @decathorpe) - Dropped unnecessary numbering of patches in spec files generated by rust2rpm (PR#196 / @gotmax23) - Dropped translation from SPDX license expressions to Fedora / Callaway notation when targeting Fedora or EPEL (PR#195 / @zbyszek) - Apply consistent formatting for %license and %doc files for binary packages and -devel packages (PR#197 / @zbyszek) - Skip pre-release versions when running rust2rpm without an explicit version argument (PR#197 / @zbyszek) - Change the warning messages that are printed after the "existence check" of rust2rpm succeeds to take compat packages into account (PR#199 / @decathorpe) - Split rust2rpm package into "core" functionality without third-party python dependencies, which can be used by cargo-inspector and RPM macros (PR#204 / @decathorpe) - Ported rust2rpm packaging to declarative configuration with setup.cfg and pyproject.toml (PR#207 / @decathorpe) - Enforced a consistent code formatting standard with black (@decathorpe). Fixed: - Various fixes for the automatic detection of rpmautospec usage in existing spec files and the "--rpmautospec" and "--no-rpmautospec" CLI arguments (PR#190, PR#195 / @zbyszek, @andersblomdell) - Fix building with Rust 1.62+, which now fails when re-packaging sources from crates.io (PR#194 / @decathorpe) - Fixed the "existence check" when running rust2rpm by requesting the correct URL (PR#199 / @decathorpe) - Fixed tox settings for refactored tests and updated list of supported Python versions (PR#208 / @decathorpe)
Bugfixes and some small new features: - 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
A release with bugfixes and cleanups: - 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
* Fix parsing of features with "+" in their name * Convert SPDX license data to Unix line endings * Add "Python-2.0" to list of acceptable licenses * Use Fedora 35 for Fedora license helper script * Add simple %license and %doc file auto-detection * Add optional support for rpmautospec (autorelease, autochangelog) * Use changelog timestamp format without time and timezone on Fedora
* Return printing of BuildRequires into the %generate_buildrequires section
rust2rpm changes: - set User-Agent header to "rust2rpm" to work around new crates.io API limits, which prevent rust2pm from accessing crates.io - introduce new unwanted-features setting in .rust2rpm.conf files to prevent subpackages for specific "unwanted" features from being generated spdx2fedora changes: - map LGPL-3.0-or-later to LGPLv3+ - map LGPL-2.1-or-later to LGPLv2+ - map EUPL-1.2 to EUPL 1.2 rust-packaging changes: - add riscv64 to %rust_arches
* Update `__version__` in `__init__.py` Git-EVTag-v0-SHA512: 525f15ef3332951175d28019fb8f4da688c9be75abe0a566dd18ec071a93e293814c0f6b9bad01c35c57c8b324f36975a8f971076b03f1711dfc48d1f4c4d4ea
* 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 Git-EVTag-v0-SHA512: 3edbeb5f160b47708f0fc1b2f1243fa4eb8b3603351e977a327d4f5a682c1deda784e53687c0433fc914cd3cdc34c8eb260f79cdb35213ee3db947a19cd800df
* Generate %files entries with '%{version_no_tilde}' * Add support for using multiple features at a time in cargo-inspector * Implement support for "renamed" dependencies Git-EVTag-v0-SHA512: 2ad9a5fc747b3ab48d39cc27ccae30c86bd1d150bcc91178349e2a31c4a9add584e9a33f58ddfc82a9ac8dee9e783025a6b7812fff225d2aa3e1f680d348142a
* Set proper Version field for pre-release versions of crates Git-EVTag-v0-SHA512: 38cac67188ce38e6d1f2fa27b3284c4923b5ccfdb4149b24bc38c691afd6324618a0508260cc8247b8e8cf7ff6fc070508df8f8bacd2e7ebe3081ea6b6678b95
* 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 Git-EVTag-v0-SHA512: 996fc2e44771e93afd1d971236ea8ada97b042538e83645b0387ae572d67f393c93195e238c6579ad5ee88f18a621a403ec6dc15489d0f4719de1f5b6f287d00
* 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) Git-EVTag-v0-SHA512: e3efb8954305bab99e9a0224b77873c0275b015ea3154d45d83ea18d35a51af7c7db286717b8c3e941cb193c7a1df9b1c6956ddd90173ab044d9f357a7eda5b8
* Always put upstream license in spec * Fix version in egg-info * Remove accidentally left Cargo.toml.deps * Fix packager detection fallback Git-EVTag-v0-SHA512: fcc158ff4cd259eef9577b2a99f4b1b73c9aef85439dbe311c4fa8dfa597acdb810e424b915992d41fce64ae76e34357eebfbdc218dd3a0a71ba6fc88fefeebb
* Pass `-Ccodegen-units=1` in RUSTFLAGS * Switch to `%{build_rustflags}` Git-EVTag-v0-SHA512: 48ddf371642b01785b5150b42335aaf5d800dfd07db7463c9da04d0d2159bfc679075ac6c46824e7315509ff89e2ae3debaee4cefa99affb8289013f75943ce7
* 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 Git-EVTag-v0-SHA512: 26302a30a51fc217f539c907a882a4db5737051cb1ab9adebe1ce6a90d578b0ca7f99cd1b6ebf5abf3aeb64bbdfd2a3e9a20b84dd858d2978b1415e20aed22ff
* 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) Git-EVTag-v0-SHA512: 7aa00ca1ca9a9b740d06419ceafa630c640948d8d61f79af814d4271d21887603fd133a4455e464a541353c683ad96a9ca5091b86d4c743590dea7c36400683d
* 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 Git-EVTag-v0-SHA512: e2bf56691beb3475bc1d7c7e95780b85e7dce9a66eb1991c2ade6ac0d11b1e87640b8fb58aabb7713e4c093758685e5ab0d0a1bf3dc9d4bd7fb3f9c4076f0b94
* 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.*.*) Git-EVTag-v0-SHA512: 9b6fe5a5205de2e2f4b1dcd06f2bf20a9cbdf558a31e743cad94d9cb83c2b2cf6e565bd44ce429d9738eef8e30569ec2e3edb54ee2bc4de0643a2b5e49cca075
* 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 Git-EVTag-v0-SHA512: f8ecbc04da72fe3fd46d97553befcf3a1d9465dda3a50b25c1c7e7ce5d6f940bdf7f1f3bcf783f2266afe06c833c2b5fdc4e80ea714cfbe1721b2c6cf197dd31
* 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 are now accepting any parameters * Automatically strip [dev-dependencies] when %check is disabled Git-EVTag-v0-SHA512: bf650c1042db3762797b918665d2a072323d716be74cc0f045774fdfc7f06162dfb6af80fc857192b3e79cae85f80fb53292f73433b902475f0231fbe5b0ad3d
Git-EVTag-v0-SHA512: 5a0f840f296650804b85d24978054f12dbc1085e498da49abaf523ca8022b7ed0951ade4184cb81891a4dc6fd6a466563ac73fb953a3f9090e431a41af2fb553