unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: Perl modules
@ 2014-05-11  8:56 Andreas Enge
  2014-05-11  9:20 ` John Darrington
  2014-05-11  9:54 ` Ludovic Courtès
  0 siblings, 2 replies; 12+ messages in thread
From: Andreas Enge @ 2014-05-11  8:56 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 373 bytes --]

On Sat, Dec 07, 2013 at 09:24:42PM +0100, Andreas Enge wrote:
> All very reasonable. Let us go for this (and I should add a section to the
> packaging guidelines later on).

Months later, here is a proposed patch in British English. Do we have a rule
on which spelling to use? British is what I learnt at school.
(I feel like starting a bikeshed discussion ;-).)

Andreas


[-- Attachment #2: 0001-doc-Add-a-section-on-perl-modules-in-the-packaging-g.patch --]
[-- Type: text/plain, Size: 2200 bytes --]

From 97a3ac573edcb3046ee9655497a97bdf750090ee Mon Sep 17 00:00:00 2001
From: Andreas Enge <andreas@enge.fr>
Date: Sun, 11 May 2014 10:43:51 +0200
Subject: [PATCH] doc: Add a section on perl modules in the packaging
 guidelines.

* doc/guix.texi (Perl modules): New section explaining the naming of perl
    modules.
---
 doc/guix.texi | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 2aacf5d..de50ae5 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -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.
+@ref{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 favour of the
+prefix. For instance, @code{libwww-perl} becomes @code{perl-libwww}.
 
 
 
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread
* Perl modules
@ 2013-12-06 22:17 Andreas Enge
  2013-12-06 22:56 ` Ludovic Courtès
  0 siblings, 1 reply; 12+ messages in thread
From: Andreas Enge @ 2013-12-06 22:17 UTC (permalink / raw)
  To: guix-devel

Hello,

it looks like I have stumbled upon an enormous dependency tree:

For kdelibs, I would like soprano;
for soprano, I would like redland;
for redland, I need rasqal;
for some tests of rasqal to work, I need perl-xml-dom;
for perl-xml-dom, I need libwww-perl;
for libwww-perl, I need a lot of packages:
Warning: prerequisite Encode::Locale 0 not found.
Warning: prerequisite File::Listing 6 not found.
Warning: prerequisite HTML::Entities 0 not found.
Warning: prerequisite HTML::HeadParser 0 not found.
Warning: prerequisite HTTP::Cookies 6 not found.
Warning: prerequisite HTTP::Daemon 6 not found.
Warning: prerequisite HTTP::Date 6 not found.
Warning: prerequisite HTTP::Negotiate 6 not found.
Warning: prerequisite HTTP::Request 6 not found.
Warning: prerequisite HTTP::Request::Common 6 not found.
Warning: prerequisite HTTP::Response 6 not found.
Warning: prerequisite HTTP::Status 6 not found.
Warning: prerequisite LWP::MediaTypes 6 not found.
Warning: prerequisite Net::HTTP 6.04 not found.
Warning: prerequisite URI 1.10 not found.
Warning: prerequisite URI::Escape 0 not found.
Warning: prerequisite WWW::RobotRules 6 not found.

This leads me to the question: How should the packages containing perl
modules be named, and in which files should they be defined?

So far, there are the following packages in xml.scm:
perl-xml-parser containing XML-Parser
perl-xml-parser-perlsax containing libxml-perl
perl-xml-simple containing XML-Simple

The second one is definitely a misnomer; I was looking for
XML::Parser::PerlSAX, and a search led me to the documentation page
  http://search.cpan.org/~kmacleod/libxml-perl-0.08/lib/XML/Parser/PerlSAX.pm
which is just one of the modules of libxml-perl
  http://search.cpan.org/~kmacleod/libxml-perl-0.08/

If we follow our standard naming scheme, then the packages should be called
xml-parser, libxml-perl and xml-simple. Notice that two of them do not
contain the word "perl". Should we add "perl" in front then, similarly to
what we do with python modules? How about libxml-perl? Do we keep it as such,
or should we then call it perl-libxml-perl for consistency?

Concerning the files, maybe all perl modules should go into perl.scm?

Your opinions are welcome.

Andreas

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2014-08-11 16:38 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-11  8:56 Perl modules Andreas Enge
2014-05-11  9:20 ` John Darrington
2014-05-11  9:34   ` Andreas Enge
2014-05-11  9:54 ` Ludovic Courtès
2014-05-11 10:30   ` Andreas Enge
2014-05-11 11:31     ` Ludovic Courtès
2014-05-11 11:41       ` Andreas Enge
2014-05-11 19:16         ` Ludovic Courtès
2014-08-11 16:37           ` bug#17468: " Ludovic Courtès
  -- strict thread matches above, loose matches on Subject: below --
2013-12-06 22:17 Andreas Enge
2013-12-06 22:56 ` Ludovic Courtès
2013-12-07 20:24   ` Andreas Enge

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).