summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Enge <andreas@enge.fr>2014-05-11 10:43:51 +0200
committerAndreas Enge <andreas@enge.fr>2014-05-11 12:27:37 +0200
commitaf8a56b8a292bb06ac48779e9f0494519617e7d0 (patch)
tree526334605f7dd516960e14e22820dbf57c57ffc6
parentf3bde2ff9f19a542ccceea40e3750e1e478f245e (diff)
downloadguix-af8a56b8a292bb06ac48779e9f0494519617e7d0.tar.gz
doc: Add a section on perl modules in the packaging guidelines.
* doc/guix.texi (Perl modules): New section explaining the naming of perl
    modules.
-rw-r--r--doc/guix.texi20
1 files changed, 17 insertions, 3 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 2aacf5d9b6..82e713c0c9 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -11,7 +11,7 @@
 
 @copying
 Copyright @copyright{} 2012, 2013, 2014 Ludovic Courtès@*
-Copyright @copyright{} 2013 Andreas Enge@*
+Copyright @copyright{} 2013, 2014 Andreas Enge@*
 Copyright @copyright{} 2013 Nikita Karetnikov
 
 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?
 * Version Numbers::      When the name is not enough.
 * Python Modules::       Taming the snake.
+* Perl Modules::         Little pearls.
 @end menu
 
 @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
 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
-@ref{Python Modules} for special rules concerning modules for
-the Python language.
+@pxref{Python Modules} and @ref{Perl Modules} for special rules concerning
+modules for the Python and Perl languages.
 
 
 @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}.
 
 
+@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}.