Cargo helper command to generate a binary RPM package (.rpm) from Cargo project.
This command does not depend on rpmbuild and generates an RPM package file without a spec file by using rpm-rs.
sh
cargo install cargo-generate-rpm
sh
cargo build --release
strip -s target/release/XXX
cargo generate-rpm
Upon run cargo generate-rpm on your cargo project, a binary RPM package file will be created in target/generate-rpm/XXX.rpm.
You can change the RPM package file location using -o option.
In advance, run cargo run --release and strip the debug symbols (strip -s target/release/XXX), because these are not run upon cargo generate-rpm as of now.
This command obtains RPM metadata from the Cargo.toml file:
[package.metadata.generate-rpm] optionspackage.name is used.package.version is used.package.license is used.package.description is used.target/release/XXX)/usr/bin/XXX)755 to indicate -rwxr-xr-x)To generate an RPM package from a member of a workspace, execute cargo generate-rpm in the workspace directory
with specifying the package (directory path) with option -p:
sh
cargo build --release
strip -s target/release/XXX
cargo generate-rpm -p XXX
[package.metadata.generate-rpm] options should be written in XXX/Cargo.toml.
When the option -p specified, first, the asset file source shall be treated as a relative path from the current directory.
If not found, it shall be treated as a relative path from the directory of the package.
If both not found, cargo generate-rpm shall fail with an error.
For example, source = target/bin/XXX would usually be treated as a relative path from the current directory.
Because all packages in the workspace share a common output directory that is located target in workspace directory.