doc: Add a section on perl modules in the packaging guidelines.

* doc/guix.texi (Perl modules): New section explaining the naming of perl
    modules.
This commit is contained in:
Andreas Enge 2014-05-11 10:43:51 +02:00
parent f3bde2ff9f
commit af8a56b8a2
1 changed files with 17 additions and 3 deletions

View File

@ -11,7 +11,7 @@
@copying @copying
Copyright @copyright{} 2012, 2013, 2014 Ludovic Courtès@* Copyright @copyright{} 2012, 2013, 2014 Ludovic Courtès@*
Copyright @copyright{} 2013 Andreas Enge@* Copyright @copyright{} 2013, 2014 Andreas Enge@*
Copyright @copyright{} 2013 Nikita Karetnikov Copyright @copyright{} 2013 Nikita Karetnikov
Permission is granted to copy, distribute and/or modify this document Permission is granted to copy, distribute and/or modify this document
@ -2751,6 +2751,7 @@ needed is to review and apply the patch.
* Package Naming:: What's in a name? * Package Naming:: What's in a name?
* Version Numbers:: When the name is not enough. * Version Numbers:: When the name is not enough.
* Python Modules:: Taming the snake. * Python Modules:: Taming the snake.
* Perl Modules:: Little pearls.
@end menu @end menu
@node Software Freedom @node Software Freedom
@ -2796,8 +2797,8 @@ Both are usually the same and correspond to the lowercase conversion of the
project name chosen upstream. For instance, the GNUnet project is packaged project name chosen upstream. For instance, the GNUnet project is packaged
as @code{gnunet}. We do not add @code{lib} prefixes for library packages, as @code{gnunet}. We do not add @code{lib} prefixes for library packages,
unless these are already part of the official project name. But see unless these are already part of the official project name. But see
@ref{Python Modules} for special rules concerning modules for @pxref{Python Modules} and @ref{Perl Modules} for special rules concerning
the Python language. modules for the Python and Perl languages.
@node Version Numbers @node Version Numbers
@ -2859,6 +2860,19 @@ for instance, the module python-dateutil is packaged under the names
@code{python-dateutil} and @code{python2-dateutil}. @code{python-dateutil} and @code{python2-dateutil}.
@node Perl Modules
@subsection Perl Modules
Perl programs standing for themselves are named as any other package,
using the lowercase upstream name.
For Perl packages containing a single class, we use the lowercase class name,
replace all occurrences of @code{::} by dashes and prepend the prefix
@code{perl-}.
So the class @code{XML::Parser} becomes @code{perl-xml-parser}.
Modules containing several classes keep their lowercase upstream name and
are also prepended by @code{perl-}. Such modules tend to have the word
@code{perl} somewhere in their name, which gets dropped in favor of the
prefix. For instance, @code{libwww-perl} becomes @code{perl-libwww}.