[[command]]
name = "fpm"
description = "Package builder — converts between source formats (dir, tar, gem, python, cpan, npm, deb, rpm, ...) and emits a target package (deb, rpm, apk, snap, tar, dir, ...). Always writes the resulting package file (-p PATH or a default `<name>_<version>.<arch>.<ext>` in the working directory). With source types like gem/python/cpan/npm, fpm fetches upstream artifacts from the corresponding registry — those input types perform network operations as part of building the package. The maintainer-script flags (--before-install, --after-install, --before-remove, --after-remove, --before-upgrade, --after-upgrade) take script paths whose contents are bundled into the resulting package; the scripts are executed by the package manager on the install target, not by fpm itself. The -e/--edit flag opens an interactive editor and is not part of the safe surface."
url = "https://fpm.readthedocs.io/"
researched_version = "fpm 1.17.0 (October 2025)"
level = "SafeWrite"
bare = false
standalone = [
"--debug", "--debug-workspace", "--force",
"--help", "--no-auto-depends", "--no-depends",
"--source-date-epoch-from-changelog",
"--template-scripts", "--verbose", "--version",
"-f", "-h",
]
valued = [
"--after-install", "--after-remove", "--after-upgrade",
"--architecture", "--before-install", "--before-remove",
"--before-upgrade", "--category", "--chdir",
"--config-files", "--conflicts", "--depends",
"--description", "--directories", "--epoch",
"--exclude", "--exclude-file", "--fpm-options-file",
"--input-type", "--inputs", "--iteration",
"--license", "--log", "--maintainer",
"--name", "--output-type", "--package",
"--package-name-suffix", "--prefix", "--provides",
"--replaces", "--source-date-epoch-default",
"--template-value", "--url", "--vendor", "--version",
"--workdir",
"-C", "-S", "-a", "-d", "-m", "-n", "-p", "-s",
"-t", "-v", "-x",
]