line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package CPAN::Porters; |
2
|
1
|
|
|
1
|
|
951
|
use strict; |
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
44
|
|
3
|
1
|
|
|
1
|
|
5
|
use warnings; |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
129
|
|
4
|
|
|
|
|
|
|
|
5
|
|
|
|
|
|
|
our $VERSION = '0.03'; |
6
|
|
|
|
|
|
|
|
7
|
|
|
|
|
|
|
1; |
8
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
|
10
|
|
|
|
|
|
|
=head1 NAME |
11
|
|
|
|
|
|
|
|
12
|
|
|
|
|
|
|
CPAN::Porters - resource for people maintaining packages of CPAN modules in various distributions |
13
|
|
|
|
|
|
|
|
14
|
|
|
|
|
|
|
=head1 SYNOPSIS |
15
|
|
|
|
|
|
|
|
16
|
|
|
|
|
|
|
CPAN modules can be either installed from source (downloaded directly from CPAN) |
17
|
|
|
|
|
|
|
or they can be installed with the package mangement system of your distribution. |
18
|
|
|
|
|
|
|
|
19
|
|
|
|
|
|
|
CPAN::Porters is a resource for people who are maintaining those packages in the |
20
|
|
|
|
|
|
|
various distributions. |
21
|
|
|
|
|
|
|
|
22
|
|
|
|
|
|
|
=head1 Reasoning |
23
|
|
|
|
|
|
|
|
24
|
|
|
|
|
|
|
When developing an application we usually don't want to build our own machine. Neither |
25
|
|
|
|
|
|
|
compile our own kernel. In most of the cases we won't want to compile and install |
26
|
|
|
|
|
|
|
our own version of a database engine nor Apache or any other 3rd party tool. |
27
|
|
|
|
|
|
|
So my assumption is that we won't want to install our CPAN dependencies either. |
28
|
|
|
|
|
|
|
Again - in the standard case. |
29
|
|
|
|
|
|
|
|
30
|
|
|
|
|
|
|
For people just using an application written in Perl it is even more important that they |
31
|
|
|
|
|
|
|
should not deal with all these packages. Most of us know how much people suffer when they |
32
|
|
|
|
|
|
|
need to install 10s of modules and their dependencies from CPAN. Especially for modules |
33
|
|
|
|
|
|
|
with dependencies outside of CPAN. |
34
|
|
|
|
|
|
|
|
35
|
|
|
|
|
|
|
While CPAN.pm, CPANPLUS.pm have improved a lot they still cannot deal with cases when one |
36
|
|
|
|
|
|
|
of the dependencies fails to install cleanly. |
37
|
|
|
|
|
|
|
|
38
|
|
|
|
|
|
|
In addition while we usually want to work with recent versions of modules from CPAN, |
39
|
|
|
|
|
|
|
we usually don't want to get the bleeding edge. Espcially not in applications. |
40
|
|
|
|
|
|
|
|
41
|
|
|
|
|
|
|
=head1 General resources |
42
|
|
|
|
|
|
|
|
43
|
|
|
|
|
|
|
L Statistics about CPAN modules in the various distributions |
44
|
|
|
|
|
|
|
|
45
|
|
|
|
|
|
|
=head2 Related mailing lists |
46
|
|
|
|
|
|
|
|
47
|
|
|
|
|
|
|
Module Authors: L |
48
|
|
|
|
|
|
|
|
49
|
|
|
|
|
|
|
Perl QA L and the mailing list L |
50
|
|
|
|
|
|
|
|
51
|
|
|
|
|
|
|
CPAN Testers L |
52
|
|
|
|
|
|
|
|
53
|
|
|
|
|
|
|
CPAN Discuss http://lists.cpan.org/showlist.cgi?name=cpan-discuss |
54
|
|
|
|
|
|
|
|
55
|
|
|
|
|
|
|
|
56
|
|
|
|
|
|
|
=head1 Guidelines for inclusion |
57
|
|
|
|
|
|
|
|
58
|
|
|
|
|
|
|
In addition to the guidelines of each distribution on which module to include, |
59
|
|
|
|
|
|
|
when to upgrade etc. we would like to setup our own guidelines to help people |
60
|
|
|
|
|
|
|
decide what to include, what would be the priorites, when to upgrade a module |
61
|
|
|
|
|
|
|
etc. |
62
|
|
|
|
|
|
|
|
63
|
|
|
|
|
|
|
A few guidelines on how to select and prioritize modules: |
64
|
|
|
|
|
|
|
|
65
|
|
|
|
|
|
|
=over 4 |
66
|
|
|
|
|
|
|
|
67
|
|
|
|
|
|
|
=item * Modules that are dependencies of another module by a different module author. |
68
|
|
|
|
|
|
|
|
69
|
|
|
|
|
|
|
=item * Modules that require compilation |
70
|
|
|
|
|
|
|
|
71
|
|
|
|
|
|
|
=item * Modules that require files not on CPAN |
72
|
|
|
|
|
|
|
|
73
|
|
|
|
|
|
|
Such modules are especially difficult to install with CPAN.pm or CPANPLUS as they require |
74
|
|
|
|
|
|
|
files outside the scope of CPAN. Making sure such modules and their dependencies can be |
75
|
|
|
|
|
|
|
installed with the standard packaging system gets extra points. |
76
|
|
|
|
|
|
|
|
77
|
|
|
|
|
|
|
=item * Web development frameworks |
78
|
|
|
|
|
|
|
|
79
|
|
|
|
|
|
|
=item * Modules required by some of the big open source Perl applications. |
80
|
|
|
|
|
|
|
|
81
|
|
|
|
|
|
|
For a good listing see the journal entry of brian d foy |
82
|
|
|
|
|
|
|
L |
83
|
|
|
|
|
|
|
|
84
|
|
|
|
|
|
|
=back |
85
|
|
|
|
|
|
|
|
86
|
|
|
|
|
|
|
Requirements for inclusion or upgrade |
87
|
|
|
|
|
|
|
|
88
|
|
|
|
|
|
|
=over 4 |
89
|
|
|
|
|
|
|
|
90
|
|
|
|
|
|
|
=item * The module already has all its prereq in the system |
91
|
|
|
|
|
|
|
|
92
|
|
|
|
|
|
|
=item * The module passes all its tests with its prereqs currently in the system on the system |
93
|
|
|
|
|
|
|
|
94
|
|
|
|
|
|
|
=item * The tests of all the currently available dependent modules in the system pass with this new version |
95
|
|
|
|
|
|
|
|
96
|
|
|
|
|
|
|
=item * A broader requirement would be that the version has no failing test reports on any other system, |
97
|
|
|
|
|
|
|
though this requirement might be too harsh and unnecessary |
98
|
|
|
|
|
|
|
|
99
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
=back |
101
|
|
|
|
|
|
|
|
102
|
|
|
|
|
|
|
|
103
|
|
|
|
|
|
|
=head1 Guidelines for module authors |
104
|
|
|
|
|
|
|
|
105
|
|
|
|
|
|
|
In order to make packaging of CPAN modules for the various distros easier |
106
|
|
|
|
|
|
|
module authors should create and package their module adhering to some |
107
|
|
|
|
|
|
|
standards. Following is a wishlist created by the Debian Perl module maintainers: |
108
|
|
|
|
|
|
|
L |
109
|
|
|
|
|
|
|
|
110
|
|
|
|
|
|
|
=over 4 |
111
|
|
|
|
|
|
|
|
112
|
|
|
|
|
|
|
=item * Sane version numbering |
113
|
|
|
|
|
|
|
|
114
|
|
|
|
|
|
|
While having the version in a uniform way might be nice, |
115
|
|
|
|
|
|
|
it would be already helpful if one module used a consistent scheme. |
116
|
|
|
|
|
|
|
|
117
|
|
|
|
|
|
|
That is stick try to stick to the whatever version numbering scheme you |
118
|
|
|
|
|
|
|
have started. |
119
|
|
|
|
|
|
|
|
120
|
|
|
|
|
|
|
"We have way too many modules where we have to do {d,u}versionmangling |
121
|
|
|
|
|
|
|
because they switch from x.yyyy to x.yy and |
122
|
|
|
|
|
|
|
x.yy.zz or stuff like that (and we try to add 00$ or strip it or |
123
|
|
|
|
|
|
|
divide .xxxx into .xx.yy or something like that)." |
124
|
|
|
|
|
|
|
|
125
|
|
|
|
|
|
|
TODO: list a few reasonable scheme here: |
126
|
|
|
|
|
|
|
|
127
|
|
|
|
|
|
|
\d+\.\d\d(_\d\d)? |
128
|
|
|
|
|
|
|
|
129
|
|
|
|
|
|
|
=item * Copyrights/licensing |
130
|
|
|
|
|
|
|
|
131
|
|
|
|
|
|
|
Ideally each and every file in given CPAN distribution should have |
132
|
|
|
|
|
|
|
clearly stated copyright and license information. AUTHORS/CHANGES (if |
133
|
|
|
|
|
|
|
properly filled) can be used as a source of guessing, but I think |
134
|
|
|
|
|
|
|
guessing about legal stuff is nothing we want daily. |
135
|
|
|
|
|
|
|
|
136
|
|
|
|
|
|
|
=item * No interactive prompting during installation |
137
|
|
|
|
|
|
|
|
138
|
|
|
|
|
|
|
No interactive prompting from Makefile.PL or other parts of the build |
139
|
|
|
|
|
|
|
system without corresponding (and documented!) ways of setting the same |
140
|
|
|
|
|
|
|
parameters automatically. |
141
|
|
|
|
|
|
|
|
142
|
|
|
|
|
|
|
=item * No network access during build |
143
|
|
|
|
|
|
|
|
144
|
|
|
|
|
|
|
no network access needed for building and testing (or an |
145
|
|
|
|
|
|
|
easy and documented way to turn network tests off). |
146
|
|
|
|
|
|
|
|
147
|
|
|
|
|
|
|
=item * Use standar packaging systems |
148
|
|
|
|
|
|
|
|
149
|
|
|
|
|
|
|
Please use one of the standard Perl module build packages if at all |
150
|
|
|
|
|
|
|
possible. (This probably goes without saying.) |
151
|
|
|
|
|
|
|
|
152
|
|
|
|
|
|
|
=item * Structured POD |
153
|
|
|
|
|
|
|
|
154
|
|
|
|
|
|
|
POD documentation for modules should be structured as described in the |
155
|
|
|
|
|
|
|
pod2man man page. In particular, the NAME section and its content is |
156
|
|
|
|
|
|
|
mandatory. Otherwise, one doesn't get a valid man page. |
157
|
|
|
|
|
|
|
|
158
|
|
|
|
|
|
|
Make sure your POD documentation makes sense when translated with |
159
|
|
|
|
|
|
|
pod2man. I went several times, i.e., over all of PDF::API2's manpages |
160
|
|
|
|
|
|
|
because they used "=head1 PDF::API2::Some::Thing" instead of "=head1 NAME". |
161
|
|
|
|
|
|
|
Those bugs take a _lot_ of time to properly patch! |
162
|
|
|
|
|
|
|
|
163
|
|
|
|
|
|
|
POD is not just to be used by perldoc. |
164
|
|
|
|
|
|
|
|
165
|
|
|
|
|
|
|
=item * Don't ship Makefiles |
166
|
|
|
|
|
|
|
|
167
|
|
|
|
|
|
|
Please don't ship generated Makefiles etc. |
168
|
|
|
|
|
|
|
|
169
|
|
|
|
|
|
|
=item * Testing |
170
|
|
|
|
|
|
|
|
171
|
|
|
|
|
|
|
Don't use conditions in tests that test for the existence of author |
172
|
|
|
|
|
|
|
specfic files or settings (" unless -d '.svn'" or "unless $username eq |
173
|
|
|
|
|
|
|
'timbo'") |
174
|
|
|
|
|
|
|
|
175
|
|
|
|
|
|
|
Specifically, don't do this unless that's being used as a criteria for |
176
|
|
|
|
|
|
|
skipping a test that's really meaningless outside of the author's |
177
|
|
|
|
|
|
|
environment. (I do have a few tests in modules that depend on local |
178
|
|
|
|
|
|
|
infrastructure to run and hence are skipped if they're not run by me.) |
179
|
|
|
|
|
|
|
|
180
|
|
|
|
|
|
|
=back |
181
|
|
|
|
|
|
|
|
182
|
|
|
|
|
|
|
|
183
|
|
|
|
|
|
|
=head1 Distributions |
184
|
|
|
|
|
|
|
|
185
|
|
|
|
|
|
|
For our purposes a distribution is one if the Linux (or BSD) distributions with |
186
|
|
|
|
|
|
|
its own rpm or deb (...) based packaging system. It can also be some stand-alone |
187
|
|
|
|
|
|
|
Perl package such as the ActivePerl of ActiveState or Vanilla and Strawberry Perl. |
188
|
|
|
|
|
|
|
|
189
|
|
|
|
|
|
|
=head2 Debian |
190
|
|
|
|
|
|
|
|
191
|
|
|
|
|
|
|
Perl Packages - the return |
192
|
|
|
|
|
|
|
L |
193
|
|
|
|
|
|
|
|
194
|
|
|
|
|
|
|
Building Debian Packages of Perl modules: |
195
|
|
|
|
|
|
|
L |
196
|
|
|
|
|
|
|
|
197
|
|
|
|
|
|
|
Debian New Maintainers' Guide L |
198
|
|
|
|
|
|
|
|
199
|
|
|
|
|
|
|
Debian Perl mailing list: L |
200
|
|
|
|
|
|
|
|
201
|
|
|
|
|
|
|
L |
202
|
|
|
|
|
|
|
|
203
|
|
|
|
|
|
|
The Debian Perl Policy |
204
|
|
|
|
|
|
|
L |
205
|
|
|
|
|
|
|
|
206
|
|
|
|
|
|
|
The latest versions of CPAN modules built for Debian. |
207
|
|
|
|
|
|
|
This site is not related to the official Debian packages. It can be |
208
|
|
|
|
|
|
|
good for people who want the latest versions of CPAN modules in |
209
|
|
|
|
|
|
|
.deb format. L |
210
|
|
|
|
|
|
|
|
211
|
|
|
|
|
|
|
Debian Package serach tool will help finding out if a module is |
212
|
|
|
|
|
|
|
already in included: L |
213
|
|
|
|
|
|
|
|
214
|
|
|
|
|
|
|
Wiki about the Debian Perl Group: |
215
|
|
|
|
|
|
|
L |
216
|
|
|
|
|
|
|
|
217
|
|
|
|
|
|
|
L |
218
|
|
|
|
|
|
|
|
219
|
|
|
|
|
|
|
|
220
|
|
|
|
|
|
|
=head2 Ubuntu |
221
|
|
|
|
|
|
|
|
222
|
|
|
|
|
|
|
My current understanding is that the best way to get CPAN modules into Ubuntu is to get them |
223
|
|
|
|
|
|
|
into Debian unstable and then sync them into Ubuntu universe. |
224
|
|
|
|
|
|
|
|
225
|
|
|
|
|
|
|
Look at Gutsy Gibson (7.10) development forum L |
226
|
|
|
|
|
|
|
and more specifically at Requesting New Packages for Inclusion in Gutsy Universe |
227
|
|
|
|
|
|
|
L |
228
|
|
|
|
|
|
|
|
229
|
|
|
|
|
|
|
=head2 Fedora |
230
|
|
|
|
|
|
|
|
231
|
|
|
|
|
|
|
More details needed. |
232
|
|
|
|
|
|
|
|
233
|
|
|
|
|
|
|
For now look at |
234
|
|
|
|
|
|
|
L and |
235
|
|
|
|
|
|
|
|
236
|
|
|
|
|
|
|
L |
237
|
|
|
|
|
|
|
|
238
|
|
|
|
|
|
|
L |
239
|
|
|
|
|
|
|
|
240
|
|
|
|
|
|
|
L |
241
|
|
|
|
|
|
|
|
242
|
|
|
|
|
|
|
And the wish-list so far: |
243
|
|
|
|
|
|
|
|
244
|
|
|
|
|
|
|
=over 4 |
245
|
|
|
|
|
|
|
|
246
|
|
|
|
|
|
|
=item * Clearly and properly copyright your works. |
247
|
|
|
|
|
|
|
|
248
|
|
|
|
|
|
|
=item * Always apply a widely used and commonly acknowledged license to your works. |
249
|
|
|
|
|
|
|
|
250
|
|
|
|
|
|
|
=back |
251
|
|
|
|
|
|
|
|
252
|
|
|
|
|
|
|
=head2 RedHat |
253
|
|
|
|
|
|
|
|
254
|
|
|
|
|
|
|
=head2 Mandriva |
255
|
|
|
|
|
|
|
|
256
|
|
|
|
|
|
|
L |
257
|
|
|
|
|
|
|
|
258
|
|
|
|
|
|
|
L |
259
|
|
|
|
|
|
|
|
260
|
|
|
|
|
|
|
=head2 SuSE |
261
|
|
|
|
|
|
|
|
262
|
|
|
|
|
|
|
|
263
|
|
|
|
|
|
|
=head2 OpenSUSE |
264
|
|
|
|
|
|
|
|
265
|
|
|
|
|
|
|
L |
266
|
|
|
|
|
|
|
|
267
|
|
|
|
|
|
|
=head2 Gentoo |
268
|
|
|
|
|
|
|
|
269
|
|
|
|
|
|
|
As in Gentoo the standard way is to install everything from source and they have some way to |
270
|
|
|
|
|
|
|
channel all CPAN via their system for Gentoo this whole issue is probably not relevant. |
271
|
|
|
|
|
|
|
|
272
|
|
|
|
|
|
|
=head2 FreeBSD |
273
|
|
|
|
|
|
|
|
274
|
|
|
|
|
|
|
L |
275
|
|
|
|
|
|
|
|
276
|
|
|
|
|
|
|
=head2 NetBSD |
277
|
|
|
|
|
|
|
|
278
|
|
|
|
|
|
|
L |
279
|
|
|
|
|
|
|
|
280
|
|
|
|
|
|
|
=head2 OpenBSD |
281
|
|
|
|
|
|
|
|
282
|
|
|
|
|
|
|
L |
283
|
|
|
|
|
|
|
|
284
|
|
|
|
|
|
|
=head2 ActivePerl |
285
|
|
|
|
|
|
|
|
286
|
|
|
|
|
|
|
ActivePerl is distribute by ActiveState L Its list of packages |
287
|
|
|
|
|
|
|
far exceeds of any of the other distributions listed here. It is based on the automatic build |
288
|
|
|
|
|
|
|
system of ActiveState. |
289
|
|
|
|
|
|
|
|
290
|
|
|
|
|
|
|
=head2 Strawberry and Vanilla |
291
|
|
|
|
|
|
|
|
292
|
|
|
|
|
|
|
L |
293
|
|
|
|
|
|
|
|
294
|
|
|
|
|
|
|
=head2 Sun Solaris |
295
|
|
|
|
|
|
|
|
296
|
|
|
|
|
|
|
=head2 IBM AIX |
297
|
|
|
|
|
|
|
|
298
|
|
|
|
|
|
|
=head2 HP-UX |
299
|
|
|
|
|
|
|
|
300
|
|
|
|
|
|
|
|
301
|
|
|
|
|
|
|
=head1 TODO |
302
|
|
|
|
|
|
|
|
303
|
|
|
|
|
|
|
=over 4 |
304
|
|
|
|
|
|
|
|
305
|
|
|
|
|
|
|
=item * Collect the basic information for the main distributions |
306
|
|
|
|
|
|
|
|
307
|
|
|
|
|
|
|
=back |
308
|
|
|
|
|
|
|
|
309
|
|
|
|
|
|
|
=head1 SEE ALSO |
310
|
|
|
|
|
|
|
|
311
|
|
|
|
|
|
|
L |
312
|
|
|
|
|
|
|
|
313
|
|
|
|
|
|
|
L |
314
|
|
|
|
|
|
|
|
315
|
|
|
|
|
|
|
PIG has moved here: L |
316
|
|
|
|
|
|
|
|
317
|
|
|
|
|
|
|
cpan2dist is a script from L |
318
|
|
|
|
|
|
|
|
319
|
|
|
|
|
|
|
=head1 AUTHOR |
320
|
|
|
|
|
|
|
|
321
|
|
|
|
|
|
|
This document is maintained by Gabor Szabo |
322
|
|
|
|
|
|
|
|
323
|
|
|
|
|
|
|
=cut |
324
|
|
|
|
|
|
|
|