pkgs/README: Add meta.sourceProvenance requirement

This commit is contained in:
Gavin John
2025-07-15 11:38:26 -04:00
parent 885fd34de3
commit 0f8e03415b

View File

@@ -501,6 +501,8 @@ The `meta` attribute set should always be placed last in the derivativion and an
* `meta.license` must be set and match the upstream license. * `meta.license` must be set and match the upstream license.
* If there is no upstream license, `meta.license` should default to `lib.licenses.unfree`. * If there is no upstream license, `meta.license` should default to `lib.licenses.unfree`.
* If in doubt, try to contact the upstream developers for clarification. * If in doubt, try to contact the upstream developers for clarification.
* `meta.sourceProvenance` must be set if the package is not built from source.
* If you are repackaging a `.deb`, `.rpm`, `.whl`, or any other format provided by your upstream, this should almost always be set to `lib.sourceTypes.binaryNativeCode`.
* `meta.mainProgram` must be set to the name of the executable which facilitates the primary function or purpose of the package, if there is such an executable in `$bin/bin/` (or `$out/bin/`, if there is no `"bin"` output). * `meta.mainProgram` must be set to the name of the executable which facilitates the primary function or purpose of the package, if there is such an executable in `$bin/bin/` (or `$out/bin/`, if there is no `"bin"` output).
* Packages that only have a single executable in the applicable directory above should set `meta.mainProgram`. * Packages that only have a single executable in the applicable directory above should set `meta.mainProgram`.
For example, the package `ripgrep` only has a single executable `rg` under `$out/bin/`, so `ripgrep.meta.mainProgram` is set to `"rg"`. For example, the package `ripgrep` only has a single executable `rg` under `$out/bin/`, so `ripgrep.meta.mainProgram` is set to `"rg"`.