Package naming conventions: Difference between revisions

From NixOS Wiki
imported>MichaelCTS
m note how table was generated
Patka (talk | contribs)
Fleshed out the bin and unwrapped suffix. wrapped doesn't exist and is removed. still and fresh are exlusively libreoffice upstream names so have also been removed.
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
Line 7: Line 6:
|-
|-
| -bin
| -bin
| Binaries that aren't compiled by nix
|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.
|-
| -fresh
|
|-
| -still
|
|-
| -wrapped
| Provides configuration options to the -unwrapped derivation
|-
|-
| -unwrapped
| -unwrapped
| Indicator that there is a wrapped version
|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.
|}
|}
<!-- Tabe generated with https://www.tablesgenerator.com/mediawiki_tables -->

Revision as of 13:30, 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.