5 releases
0.2.1 | Jan 10, 2021 |
---|---|
0.2.0 | Jan 1, 2021 |
0.1.2 | Oct 25, 2020 |
0.1.1 | Oct 11, 2020 |
0.1.0 | Oct 4, 2020 |
#48 in Cargo plugins
40 downloads per month
21KB
435 lines
cargo-generate-rpm
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.
Install
cargo install cargo-generate-rpm
Usage
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.
Configuration
This command obtains RPM metadata from the Cargo.toml
file:
[package.metadata.generate-rpm]
options
- name: the package name. If not present,
package.name
is used. - version: the package version. If not present,
package.version
is used. - license: the package license. If not present,
package.license
is used. - summary: the package summary/description. If not present,
package.description
is used. - assets: (mandatory) the array of the files to be included in the package
- source: the location of that asset in the Rust project. (e.g.
target/release/XXX
) - dest: the install-destination. (e.g.
/usr/bin/XXX
) - mode: the permissions as octal string. (e.g.
755
to indicate-rwxr-xr-x
) - config: set true if it is a configuration file.
- doc: set true if it is a document file.
- source: the location of that asset in the Rust project. (e.g.
- release: optional string of release.
- epoch: optional number of epoch.
- pre_install_script: optional string of pre_install_script.
- pre_uninstall_script: optional string of pre_uninstall_script.
- post_install_script: optional string of post_install_script.
- post_uninstall_script: optional string of post_uninstall_script.
Advanced Usage
Workspace
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
:
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.
Dependencies
~5MB
~93K SLoC