pub struct NfpmConfig {Show 42 fields
pub id: Option<String>,
pub package_name: Option<String>,
pub formats: Vec<String>,
pub vendor: Option<String>,
pub homepage: Option<String>,
pub maintainer: Option<String>,
pub description: Option<String>,
pub license: Option<String>,
pub bindir: Option<String>,
pub bin_alias: Option<String>,
pub contents: Option<Vec<NfpmContent>>,
pub dependencies: Option<HashMap<String, Vec<String>>>,
pub overrides: Option<HashMap<String, Value>>,
pub file_name_template: Option<String>,
pub scripts: Option<NfpmScripts>,
pub recommends: Option<Vec<String>>,
pub suggests: Option<Vec<String>>,
pub conflicts: Option<Vec<String>>,
pub replaces: Option<Vec<String>>,
pub provides: Option<Vec<String>>,
pub ids: Option<Vec<String>>,
pub amd64_variant: Option<Vec<Amd64Variant>>,
pub epoch: Option<String>,
pub release: Option<String>,
pub prerelease: Option<String>,
pub version_metadata: Option<String>,
pub section: Option<String>,
pub priority: Option<String>,
pub meta: Option<bool>,
pub umask: Option<StringOrU32>,
pub mtime: Option<String>,
pub rpm: Option<NfpmRpmConfig>,
pub deb: Option<NfpmDebConfig>,
pub apk: Option<NfpmApkConfig>,
pub archlinux: Option<NfpmArchlinuxConfig>,
pub ipk: Option<NfpmIpkConfig>,
pub msix: Option<NfpmMsixConfig>,
pub libdirs: Option<NfpmLibdirs>,
pub changelog: Option<String>,
pub if_condition: Option<String>,
pub templated_contents: Option<Vec<NfpmContent>>,
pub templated_scripts: Option<NfpmScripts>,
}Fields§
§id: Option<String>Unique identifier for cross-referencing this nFPM config.
package_name: Option<String>Package name (defaults to crate name).
formats: Vec<String>Package formats to produce: deb, rpm, apk, archlinux, termux.deb, ipk, msix (at least one required).
vendor: Option<String>Package vendor name — the distributing entity recorded in the
rpm/deb Vendor field. When unset, derived from the crate’s first
Cargo.toml [package].authors entry with any <email> suffix
stripped (e.g. "Ada Lovelace <ada@x>" → "Ada Lovelace").
homepage: Option<String>Project homepage URL.
maintainer: Option<String>Package maintainer in Name <email> format.
description: Option<String>Package description (multiline supported).
license: Option<String>SPDX license identifier (e.g., “MIT”, “Apache-2.0”).
bindir: Option<String>Installation directory for binaries (default: /usr/bin).
bin_alias: Option<String>Rename the installed binary inside the package only.
When set, the auto-emitted binary content entry is installed under this
name (in bindir) instead of the built file’s name; the archive/build
output is untouched. Use this to resolve Debian/RPM name clashes — e.g.
fd ships its binary as fdfind in the Debian package while the tarball
keeps fd. Templated.
contents: Option<Vec<NfpmContent>>Files to include in the package beyond the main binary.
dependencies: Option<HashMap<String, Vec<String>>>Runtime package dependencies keyed by format (e.g., {“deb”: [“libc6”], “rpm”: [“glibc”]}).
overrides: Option<HashMap<String, Value>>Per-format setting overrides (e.g., {“deb”: {compression: “xz”}}).
file_name_template: Option<String>Package filename template (supports templates).
scripts: Option<NfpmScripts>Package lifecycle scripts (preinstall, postinstall, preremove, postremove).
recommends: Option<Vec<String>>Packages recommended (soft dependency) by this package.
suggests: Option<Vec<String>>Packages suggested (weaker than recommends) by this package.
conflicts: Option<Vec<String>>Packages this package conflicts with.
replaces: Option<Vec<String>>Packages this package replaces (for upgrade paths from old package names).
provides: Option<Vec<String>>Virtual packages provided by this package.
ids: Option<Vec<String>>Build IDs filter: only include artifacts from builds whose id is in this list.
Accepts the deprecated builds: spelling via serde alias for
back-compat with imported configs (the legacy builds key
marked deprecated, aliasing ids).
amd64_variant: Option<Vec<Amd64Variant>>amd64 microarchitecture variant filter (["v1"], ["v2", "v3"], etc.),
set via the amd64_variant: key. When set, only amd64 binaries with
amd64_variant matching one of the listed values are included. The
legacy goamd64: spelling is accepted via serde alias for back-compat
with imported configs. When unset, all amd64 variants are included (no
filtering).
Each entry is typed as Amd64Variant, so any value outside
v1..v4 is rejected when the config is parsed.
epoch: Option<String>Package epoch for versioning (integer as string).
release: Option<String>Package release number.
prerelease: Option<String>Prerelease version suffix.
version_metadata: Option<String>Version metadata (e.g. git commit hash).
section: Option<String>Package section (e.g. “utils”, “devel”).
priority: Option<String>Package priority (e.g. “optional”, “required”).
meta: Option<bool>Whether this is a meta-package (no files, only dependencies).
umask: Option<StringOrU32>File permission umask. Accepts a YAML int (18), an octal-prefixed
string ("0o022"), or a leading-zero octal string ("022").
mtime: Option<String>Default modification time for files in the package.
rpm: Option<NfpmRpmConfig>RPM-specific configuration.
deb: Option<NfpmDebConfig>Deb-specific configuration.
apk: Option<NfpmApkConfig>APK-specific configuration.
archlinux: Option<NfpmArchlinuxConfig>Archlinux-specific configuration.
ipk: Option<NfpmIpkConfig>IPK-specific configuration (OpenWrt packages).
msix: Option<NfpmMsixConfig>MSIX-specific configuration (Windows app packages).
Only consumed when formats includes msix. nfpm requires
publisher, properties.logo, and at least one applications entry;
everything else has derived defaults.
msix:
publisher: "CN=My Company, O=My Company, C=US"
properties:
logo: assets/logo.png
applications:
- id: MyApp
executable: myapp.exelibdirs: Option<NfpmLibdirs>CGo library installation directories (header, carchive, cshared).
changelog: Option<String>Path to a YAML-format changelog file for deb/rpm packages.
if_condition: Option<String>Template-conditional: skip this nfpm config if rendered result is “false” or empty. Conditional-skip gate.
templated_contents: Option<Vec<NfpmContent>>Extra file contents whose source files are Tera-rendered before packaging.
Each entry mirrors contents; the difference is that at stage time the file at src is
read, rendered through the template engine, written to a temp file, and then included
in the package at dst using the temp file as the real source. Useful for shipping
config files with templated values (version, commit, maintainer, etc.).
templated_scripts: Option<NfpmScripts>Lifecycle scripts whose script-file bodies are Tera-rendered before packaging
Each path is read, rendered through the template engine, written to
a temp file, and used as the real script. If a field is set on both scripts and
templated_scripts, the templated version wins.
Trait Implementations§
Source§impl Clone for NfpmConfig
impl Clone for NfpmConfig
Source§fn clone(&self) -> NfpmConfig
fn clone(&self) -> NfpmConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for NfpmConfig
impl Debug for NfpmConfig
Source§impl Default for NfpmConfig
impl Default for NfpmConfig
Source§fn default() -> NfpmConfig
fn default() -> NfpmConfig
Source§impl<'de> Deserialize<'de> for NfpmConfigwhere
NfpmConfig: Default,
impl<'de> Deserialize<'de> for NfpmConfigwhere
NfpmConfig: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for NfpmConfig
impl JsonSchema for NfpmConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more