Next: , Previous: , Up: Packaging Guidelines   [Contents][Index]

16.4.2 Package Naming

A package actually has two names associated with it. First, there is the name of the Scheme variable, the one following define-public. By this name, the package can be made known in the Scheme code, for instance as input to another package. Second, there is the string in the name field of a package definition. This name is used by package management commands such as guix package and guix build.

Both are usually the same and correspond to the lowercase conversion of the project name chosen upstream, with underscores replaced with hyphens. For instance, GNUnet is available as gnunet, and SDL_net as sdl-net.

A noteworthy exception to this rule is when the project name is only a single character, or if an older maintained project with the same name already exists—regardless of whether it has already been packaged for Guix. Use common sense to make such names unambiguous and meaningful. For example, Guix’s package for the shell called “s” upstream is s-shell and not s. Feel free to ask your fellow hackers for inspiration.

We do not add lib prefixes for library packages, unless these are already part of the official project name. But see Python Modules and Perl Modules for special rules concerning modules for the Python and Perl languages.

Font package names are handled differently, see Fonts.