Skip to content

build rpms without a spec file. Pure Rust. No dependencies to librpm

License

Notifications You must be signed in to change notification settings

Richterrettich/rpm-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rpm-builder

Build rpms without SPEC files. This is written in pure Rust, so it should be easy to do static linking.

Example

rpm-builder \
  --exec-file "path/to/binary:/usr/bin/awesome-bin" \
  --config-file "path/to/config-file:/etc/awesome/config.json" \
  --doc-file "path/to/doc-file:/usr/share/man/awesome/manpage.1.gz" \
  --compression gzip \
  --changelog "me:was awesome, eh?:2018-01-02" \
  --changelog "you:yeah:2018-01-02" \
  --requires "wget >= 1.0.0" \
  --obsoletes "rpmbuild" \
  awesome
# creates a file called awesome.rpm in version 1.0.0, release 1, license is MIT.

Additional Flags

Flag Description
arch Specify the target architecture
changelog Add a changelog entry to the rpm. The entry has the form <author>:<content>:<yyyy-mm-dd> (time is in utc)
compression Specify the compression algorithm. Currently only gzip and zstd are supported
config-file Add a config-file to the rpm
conflicts Indicates that the rpm conflicts with another package. Use the format ` [>
desc Give a description of the package
dir Add a directory and all its files to the rpm
doc-file Add a documentation-file to the rpm
exec-file Add a executable-file to the rpm
file Add a regular file to the rpm
license Specify a license
name Specify the name of your package
obsoletes Indicates that the rpm obsoletes another package. Use the format ` [>
out Specify an out file
provides Indicates that the rpm provides another package. Use the format ` [>
release Specify release number of the package
requires Indicates that the rpm requires another package. Use the format ` [>
version Specify a version
sign-with-pgp-asc Sign package with the specified pgp key