mirror of
https://github.com/goreleaser/nfpm
synced 2026-10-31 10:41:33 +01:00
main
rpmbuild runs script.req on the executable files of a package, so a package that ships a "#!/bin/bash" script requires /bin/bash without any work from the packager. nfpm has no such generator, so the interpreter of every script must be listed by hand, which is error-prone. Add the opt-in rpm.script_requires option. Like script.req with the exeonly flag of script.attr, it reads the "#!" line of each executable file and requires its interpreter, and the absolute program run by env, flagged RPMSENSE_FIND_REQUIRES like the dependencies rpmbuild generates. Documentation files, symlinks, directories and ghosts are skipped. The mode checked is the one in the package, so file_info.mode is honored and the option also works when building on Windows. The generated spec sets AutoReqProv: no, so the requires are written to it explicitly and rpmbuild --rebuild keeps them. Add unit tests, a scriptrequires acceptance stage that reads the requires back with rpm, and an executable script to the srpm rebuild acceptance test. Co-authored-by: Laurent Coustet <laurent.coustet@bluemind.net>
Why
While fpm is great, for me, it is a bummer that it depends on ruby, tar
and other software.
I wanted something that could be used as a binary and/or as a library and that was really simple.
So I created nFPM: a simpler, 0-dependency, as-little-assumptions-as-possible alternative to fpm.
Getting started
Special thanks 🙏
Thanks to the fpm authors for fpm, which inspires nfpm a lot.
Community
You have questions, need support and or just want to talk about GoReleaser/nFPM?
Here are ways to get in touch with the GoReleaser community:
Donate
Donations are very much appreciated! You can donate/sponsor on the main goreleaser opencollective! It's easy and will surely help the developers at least buy some ☕️ or 🍺!
Description
NFPM is Not FPM - a simple deb, rpm and apk packager written in Go
7.2 MiB
1 Stars
1 Watchers
0 Forks
Languages
Go
99.5%
HTML
0.2%
Shell
0.2%



