Package naming conventions: Difference between revisions

From NixOS Wiki
imported>MichaelCTS
m note how table was generated
Patka (talk | contribs)
m Correctly close code tag
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
An attempt to document the unofficial naming conventions used for packages in the nixpkgs repository
When looking through the available Nix packages, one might find some naming conventions.
 
{| class="wikitable"
{| class="wikitable"  
|-
|-
! Suffix
! Suffix
! Use
! Use
|-
|-
| -bin
| <code>-bin</code>
| Binaries that aren't compiled by nix
|The binary is copied from upstream, not build from source using Nix. A <code>-bin</code> version is only available if a source-based version already exists, and there exists a meaninful difference between the two. An example is the Hashicorp Vault package that doesn't include the web UI, but the <code>-bin</code> version does.
|-
|-
| -fresh
| <code>-unwrapped</code>
|
|Some packages provide options for customization that don't affect the main build, and is thus done in the <code>-unwrapped</code> package. The package is then wrapped to provide customization without having to recompile the package. This is an implementation detail, you generally don't want to directly use an <code>-unwrapped</code> version.
|-
| -still
|
|-
| -wrapped
| Provides configuration options to the -unwrapped derivation
|-
| -unwrapped
| Indicator that there is a wrapped version
|}
|}
<!-- Tabe generated with https://www.tablesgenerator.com/mediawiki_tables -->

Latest revision as of 19:02, 8 April 2024

When looking through the available Nix packages, one might find some naming conventions.

Suffix Use
-bin The binary is copied from upstream, not build from source using Nix. A -bin version is only available if a source-based version already exists, and there exists a meaninful difference between the two. An example is the Hashicorp Vault package that doesn't include the web UI, but the -bin version does.
-unwrapped Some packages provide options for customization that don't affect the main build, and is thus done in the -unwrapped package. The package is then wrapped to provide customization without having to recompile the package. This is an implementation detail, you generally don't want to directly use an -unwrapped version.