pub struct NfpmConfig {Show 41 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<String>>,
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 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 (at least one required).
vendor: Option<String>Package vendor name.
homepage: Option<String>Project homepage URL.
maintainer: Option<String>Package maintainer in “Name
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<String>>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).
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).
libdirs: 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_name() -> String
fn schema_name() -> String
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 is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read more