1
1
mirror of https://github.com/goreleaser/nfpm synced 2026-07-24 11:04:52 +02:00
Files
nfpm/www/static/schema.json
Dj Gilcrease e1c7b33e10 feat: replace rpmpack with a more complete implementation (#1104)
* feat: replace rpmpack with a more complete implementation

* chore: add extra testing

* feat: add lang support and config|tree support for rpm

---------

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2026-06-29 21:50:09 -03:00

1114 lines
22 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/goreleaser/nfpm/v2/config",
"$ref": "#/$defs/Config",
"$defs": {
"APK": {
"properties": {
"arch": {
"type": "string",
"title": "architecture in apk nomenclature"
},
"signature": {
"$ref": "#/$defs/APKSignature",
"title": "apk signature"
},
"scripts": {
"$ref": "#/$defs/APKScripts",
"title": "apk scripts"
}
},
"additionalProperties": false,
"type": "object"
},
"APKScripts": {
"properties": {
"preupgrade": {
"type": "string",
"title": "pre upgrade script"
},
"postupgrade": {
"type": "string",
"title": "post upgrade script"
}
},
"additionalProperties": false,
"type": "object"
},
"APKSignature": {
"properties": {
"key_file": {
"type": "string",
"title": "key file",
"examples": [
"key.gpg"
]
},
"key_id": {
"type": "string",
"title": "key id",
"examples": [
"bc8acdd415bd80b3"
]
},
"key_name": {
"type": "string",
"title": "key name",
"default": "maintainer_email.rsa.pub",
"examples": [
"origin"
]
}
},
"additionalProperties": false,
"type": "object"
},
"ArchLinux": {
"properties": {
"pkgbase": {
"type": "string",
"title": "explicitly specify the name used to refer to a split package"
},
"arch": {
"type": "string",
"title": "architecture in archlinux nomenclature"
},
"packager": {
"type": "string",
"title": "organization that packaged the software"
},
"scripts": {
"$ref": "#/$defs/ArchLinuxScripts",
"title": "archlinux-specific scripts"
}
},
"additionalProperties": false,
"type": "object"
},
"ArchLinuxScripts": {
"properties": {
"preupgrade": {
"type": "string",
"title": "preupgrade script"
},
"postupgrade": {
"type": "string",
"title": "postupgrade script"
}
},
"additionalProperties": false,
"type": "object"
},
"Config": {
"properties": {
"replaces": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "replaces directive"
},
"provides": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "provides directive"
},
"depends": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "depends directive"
},
"recommends": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "recommends directive"
},
"suggests": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "suggests directive"
},
"conflicts": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "conflicts directive"
},
"contents": {
"$ref": "#/$defs/Contents",
"title": "files to add to the package"
},
"umask": {
"type": "integer",
"title": "umask for file contents",
"examples": [
112
]
},
"scripts": {
"$ref": "#/$defs/Scripts",
"title": "scripts to execute"
},
"rpm": {
"$ref": "#/$defs/RPM",
"title": "rpm-specific settings"
},
"deb": {
"$ref": "#/$defs/Deb",
"title": "deb-specific settings"
},
"apk": {
"$ref": "#/$defs/APK",
"title": "apk-specific settings"
},
"archlinux": {
"$ref": "#/$defs/ArchLinux",
"title": "archlinux-specific settings"
},
"ipk": {
"$ref": "#/$defs/IPK",
"title": "ipk-specific settings"
},
"msix": {
"$ref": "#/$defs/MSIX",
"title": "msix-specific settings"
},
"name": {
"type": "string",
"title": "package name"
},
"arch": {
"type": "string",
"title": "target architecture",
"examples": [
"amd64"
]
},
"platform": {
"type": "string",
"title": "target platform",
"default": "linux",
"examples": [
"linux"
]
},
"epoch": {
"type": "string",
"title": "version epoch",
"default": "extracted from version",
"examples": [
"2"
]
},
"version": {
"type": "string",
"title": "version",
"examples": [
"v1.0.2",
"2.0.1"
]
},
"version_schema": {
"type": "string",
"enum": [
"semver",
"none"
],
"title": "version schema",
"default": "semver"
},
"release": {
"type": "string",
"title": "version release",
"examples": [
"1"
]
},
"prerelease": {
"type": "string",
"title": "version prerelease",
"default": "extracted from version"
},
"version_metadata": {
"type": "string",
"title": "version metadata",
"examples": [
"git"
]
},
"section": {
"type": "string",
"title": "package section",
"examples": [
"default"
]
},
"priority": {
"type": "string",
"title": "package priority",
"examples": [
"extra"
]
},
"maintainer": {
"type": "string",
"title": "package maintainer",
"examples": [
"me@example.com"
]
},
"description": {
"type": "string",
"title": "package description"
},
"vendor": {
"type": "string",
"title": "package vendor",
"examples": [
"MyCorp"
]
},
"homepage": {
"type": "string",
"title": "package homepage",
"examples": [
"https://example.com"
]
},
"license": {
"type": "string",
"title": "package license",
"examples": [
"MIT"
]
},
"changelog": {
"type": "string",
"title": "package changelog",
"description": "see https://github.com/goreleaser/chglog for more details",
"examples": [
"changelog.yaml"
]
},
"disable_globbing": {
"type": "boolean",
"title": "whether to disable file globbing",
"default": false
},
"mtime": {
"type": "string",
"format": "date-time",
"title": "time to set into the files generated by nFPM"
},
"overrides": {
"additionalProperties": {
"$ref": "#/$defs/Overridables"
},
"type": "object",
"title": "overrides",
"description": "override some fields when packaging with a specific packager"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"name",
"arch",
"version"
]
},
"Content": {
"properties": {
"src": {
"type": "string"
},
"dst": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"symlink",
"ghost",
"config",
"config|noreplace",
"config|missingok",
"doc",
"license",
"licence",
"readme",
"dir",
"tree",
"config|tree",
"config|noreplace|tree",
"config|missingok|tree",
""
],
"default": ""
},
"packager": {
"type": "string"
},
"file_info": {
"$ref": "#/$defs/ContentFileInfo"
},
"expand": {
"type": "boolean"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"dst"
]
},
"ContentFileInfo": {
"properties": {
"owner": {
"type": "string"
},
"group": {
"type": "string"
},
"mode": {
"type": "integer"
},
"mtime": {
"type": "string",
"format": "date-time"
},
"lang": {
"type": "string",
"examples": [
"en"
]
}
},
"additionalProperties": false,
"type": "object"
},
"Contents": {
"items": {
"$ref": "#/$defs/Content"
},
"type": "array"
},
"Deb": {
"properties": {
"arch": {
"type": "string",
"title": "architecture in deb nomenclature"
},
"arch_variant": {
"type": "string",
"title": "target architecture variant in deb nomenclature",
"examples": [
"amd64v3"
]
},
"scripts": {
"$ref": "#/$defs/DebScripts",
"title": "scripts"
},
"triggers": {
"$ref": "#/$defs/DebTriggers",
"title": "triggers"
},
"breaks": {
"items": {
"type": "string"
},
"type": "array",
"title": "breaks"
},
"signature": {
"$ref": "#/$defs/DebSignature",
"title": "signature"
},
"compression": {
"type": "string",
"enum": [
"gzip",
"xz",
"zstd",
"none"
],
"title": "compression algorithm to be used",
"default": "gzip:-1"
},
"fields": {
"additionalProperties": {
"type": "string"
},
"type": "object",
"title": "fields"
},
"predepends": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "predepends directive"
}
},
"additionalProperties": false,
"type": "object"
},
"DebScripts": {
"properties": {
"rules": {
"type": "string",
"title": "rules"
},
"templates": {
"type": "string",
"title": "templates"
},
"config": {
"type": "string",
"title": "config"
}
},
"additionalProperties": false,
"type": "object"
},
"DebSignature": {
"properties": {
"key_file": {
"type": "string",
"title": "key file",
"examples": [
"key.gpg"
]
},
"key_id": {
"type": "string",
"title": "key id",
"examples": [
"bc8acdd415bd80b3"
]
},
"method": {
"type": "string",
"enum": [
"dpkg-sig",
"debsign"
],
"title": "method role",
"default": "debsign"
},
"type": {
"type": "string",
"enum": [
"origin",
"maint",
"archive"
],
"title": "signer role",
"default": "origin"
},
"signer": {
"type": "string",
"title": "signer"
}
},
"additionalProperties": false,
"type": "object"
},
"DebTriggers": {
"properties": {
"interest": {
"items": {
"type": "string"
},
"type": "array",
"title": "interest"
},
"interest_await": {
"items": {
"type": "string"
},
"type": "array",
"title": "interest await"
},
"interest_noawait": {
"items": {
"type": "string"
},
"type": "array",
"title": "interest noawait"
},
"activate": {
"items": {
"type": "string"
},
"type": "array",
"title": "activate"
},
"activate_await": {
"items": {
"type": "string"
},
"type": "array",
"title": "activate await"
},
"activate_noawait": {
"items": {
"type": "string"
},
"type": "array",
"title": "activate noawait"
}
},
"additionalProperties": false,
"type": "object"
},
"IPK": {
"properties": {
"abi_version": {
"type": "string",
"title": "abi version"
},
"alternatives": {
"items": {
"$ref": "#/$defs/IPKAlternative"
},
"type": "array",
"title": "alternatives"
},
"arch": {
"type": "string",
"title": "architecture in deb nomenclature"
},
"auto_installed": {
"type": "boolean",
"title": "auto installed",
"default": false
},
"essential": {
"type": "boolean",
"title": "whether package is essential",
"default": false
},
"fields": {
"additionalProperties": {
"type": "string"
},
"type": "object",
"title": "fields"
},
"predepends": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "predepends directive"
},
"tags": {
"items": {
"type": "string"
},
"type": "array",
"title": "tags"
}
},
"additionalProperties": false,
"type": "object"
},
"IPKAlternative": {
"properties": {
"priority": {
"type": "integer",
"title": "priority"
},
"target": {
"type": "string",
"title": "target"
},
"link_name": {
"type": "string",
"title": "link name"
}
},
"additionalProperties": false,
"type": "object"
},
"MSIX": {
"properties": {
"arch": {
"type": "string",
"title": "architecture in msix nomenclature"
},
"publisher": {
"type": "string",
"title": "publisher identity",
"examples": [
"CN=MyCompany, O=MyCompany, C=US"
]
},
"identity": {
"$ref": "#/$defs/MSIXIdentity",
"title": "package identity"
},
"properties": {
"$ref": "#/$defs/MSIXProperties",
"title": "package properties"
},
"applications": {
"items": {
"$ref": "#/$defs/MSIXApplication"
},
"type": "array",
"title": "applications in the package"
},
"dependencies": {
"$ref": "#/$defs/MSIXDependencies",
"title": "target device families"
},
"capabilities": {
"$ref": "#/$defs/MSIXCapabilities",
"title": "package capabilities"
},
"signature": {
"$ref": "#/$defs/MSIXSignature",
"title": "msix signature"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"publisher",
"applications"
]
},
"MSIXApplication": {
"properties": {
"id": {
"type": "string",
"title": "application ID"
},
"executable": {
"type": "string",
"title": "executable path in package"
},
"entry_point": {
"type": "string",
"title": "entry point",
"default": "Windows.FullTrustApplication"
},
"visual_elements": {
"$ref": "#/$defs/MSIXVisualElements",
"title": "visual elements"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"id",
"executable"
]
},
"MSIXCapabilities": {
"properties": {
"capabilities": {
"items": {
"type": "string"
},
"type": "array"
},
"device_capabilities": {
"items": {
"type": "string"
},
"type": "array"
},
"restricted": {
"items": {
"type": "string"
},
"type": "array"
}
},
"additionalProperties": false,
"type": "object"
},
"MSIXDependencies": {
"properties": {
"target_device_families": {
"items": {
"$ref": "#/$defs/MSIXTargetDeviceFamily"
},
"type": "array"
}
},
"additionalProperties": false,
"type": "object"
},
"MSIXIdentity": {
"properties": {
"resource_id": {
"type": "string",
"title": "resource identifier"
}
},
"additionalProperties": false,
"type": "object"
},
"MSIXProperties": {
"properties": {
"display_name": {
"type": "string",
"title": "display name"
},
"publisher_display_name": {
"type": "string",
"title": "publisher display name"
},
"logo": {
"type": "string",
"title": "package logo path"
}
},
"additionalProperties": false,
"type": "object"
},
"MSIXSignature": {
"properties": {
"pfx_file": {
"type": "string",
"title": "PFX certificate file"
}
},
"additionalProperties": false,
"type": "object"
},
"MSIXTargetDeviceFamily": {
"properties": {
"name": {
"type": "string",
"title": "device family name",
"examples": [
"Windows.Desktop"
]
},
"min_version": {
"type": "string",
"title": "minimum OS version",
"examples": [
"10.0.17763.0"
]
},
"max_version_tested": {
"type": "string",
"title": "max tested version",
"examples": [
"10.0.22621.0"
]
}
},
"additionalProperties": false,
"type": "object",
"required": [
"name",
"min_version",
"max_version_tested"
]
},
"MSIXVisualElements": {
"properties": {
"display_name": {
"type": "string"
},
"description": {
"type": "string"
},
"background_color": {
"type": "string",
"default": "transparent"
},
"square150x150_logo": {
"type": "string"
},
"square44x44_logo": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object"
},
"Overridables": {
"properties": {
"replaces": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "replaces directive"
},
"provides": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "provides directive"
},
"depends": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "depends directive"
},
"recommends": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "recommends directive"
},
"suggests": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "suggests directive"
},
"conflicts": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "conflicts directive"
},
"contents": {
"$ref": "#/$defs/Contents",
"title": "files to add to the package"
},
"umask": {
"type": "integer",
"title": "umask for file contents",
"examples": [
112
]
},
"scripts": {
"$ref": "#/$defs/Scripts",
"title": "scripts to execute"
},
"rpm": {
"$ref": "#/$defs/RPM",
"title": "rpm-specific settings"
},
"deb": {
"$ref": "#/$defs/Deb",
"title": "deb-specific settings"
},
"apk": {
"$ref": "#/$defs/APK",
"title": "apk-specific settings"
},
"archlinux": {
"$ref": "#/$defs/ArchLinux",
"title": "archlinux-specific settings"
},
"ipk": {
"$ref": "#/$defs/IPK",
"title": "ipk-specific settings"
},
"msix": {
"$ref": "#/$defs/MSIX",
"title": "msix-specific settings"
}
},
"additionalProperties": false,
"type": "object"
},
"RPM": {
"properties": {
"arch": {
"type": "string",
"title": "architecture in rpm nomenclature"
},
"buildhost": {
"type": "string",
"title": "host name of the build environment"
},
"scripts": {
"$ref": "#/$defs/RPMScripts",
"title": "rpm-specific scripts"
},
"requires": {
"$ref": "#/$defs/RPMRequires",
"title": "rpm-specific requires"
},
"group": {
"type": "string",
"title": "package group",
"examples": [
"Unspecified"
]
},
"summary": {
"type": "string",
"title": "package summary"
},
"compression": {
"type": "string",
"enum": [
"gzip",
"lzma",
"xz",
"zstd"
],
"title": "compression algorithm to be used",
"default": "gzip:-1"
},
"signature": {
"$ref": "#/$defs/RPMSignature",
"title": "rpm signature"
},
"packager": {
"type": "string",
"title": "organization that actually packaged the software"
},
"prefixes": {
"items": {
"type": "string"
},
"type": "array",
"title": "Prefixes for relocatable packages"
}
},
"additionalProperties": false,
"type": "object"
},
"RPMRequires": {
"properties": {
"post": {
"items": {
"type": "string",
"examples": [
"nfpm"
]
},
"type": "array",
"title": "post requires directive"
}
},
"additionalProperties": false,
"type": "object"
},
"RPMScripts": {
"properties": {
"pretrans": {
"type": "string",
"title": "pretrans script"
},
"posttrans": {
"type": "string",
"title": "posttrans script"
},
"verify": {
"type": "string",
"title": "verify script"
}
},
"additionalProperties": false,
"type": "object"
},
"RPMSignature": {
"properties": {
"key_file": {
"type": "string",
"title": "key file",
"examples": [
"key.gpg"
]
},
"key_id": {
"type": "string",
"title": "key id",
"examples": [
"bc8acdd415bd80b3"
]
}
},
"additionalProperties": false,
"type": "object"
},
"Scripts": {
"properties": {
"preinstall": {
"type": "string",
"title": "pre install"
},
"postinstall": {
"type": "string",
"title": "post install"
},
"preremove": {
"type": "string",
"title": "pre remove"
},
"postremove": {
"type": "string",
"title": "post remove"
}
},
"additionalProperties": false,
"type": "object"
}
},
"description": "nFPM configuration definition file"
}