ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/schmorpforge/genpage
(Generate patch)

Comparing cvsroot/schmorpforge/genpage (file contents):
Revision 1.75 by root, Tue Nov 16 02:04:40 2010 UTC vs.
Revision 1.98 by root, Thu Apr 12 14:45:59 2012 UTC

6mkdir "software.schmorp.de/pkg", 0755; 6mkdir "software.schmorp.de/pkg", 0755;
7mkdir "software.schmorp.de/img", 0755; 7mkdir "software.schmorp.de/img", 0755;
8system "rsync -av *.jpg software.schmorp.de/img/"; 8system "rsync -av *.jpg software.schmorp.de/img/";
9 9
10our %IRC = ( 10our %IRC = (
11 anyevent => ["irc.perl.org", "#anyevent", "http://mibbit.com/chat/#anyevent\@irc.perl.org"], 11# anyevent => ["irc.perl.org", "#anyevent", "http://mibbit.com/chat/#anyevent\@irc.perl.org"],
12# freenode => ["irc.freenode.org", "#schmorp", "http://webchat.freenode.net/?randomnick=1&channels=schmorp&prompt=1", ", users <tt>schmorp</tt> and <tt>elmex</tt>"], 12# freenode => ["irc.freenode.org", "#schmorp", "http://webchat.freenode.net/?randomnick=1&channels=schmorp&prompt=1", ", users <tt>schmorp</tt> and <tt>elmex</tt>"],
13 freenode => ["irc.schmorp.de", "#schmorpforge", "http://chat.schmorp.de/?channels=schmorpforge", ", users <tt>schmorp</tt> and <tt>elmex</tt>"], 13 anyevent => ["irc.schmorp.de", "#schmorpforge", "http://chat.schmorp.de/?channels=schmorpforge", ", users <tt>schmorp</tt> and <tt>elmex</tt>"],
14 schmorp => ["irc.schmorp.de", "#schmorpforge", "http://chat.schmorp.de/?channels=schmorpforge", ", users <tt>schmorp</tt> and <tt>elmex</tt>"],
14 rxvt => ["irc.freenode.org", "#rxvt-unicode", "http://webchat.freenode.net/?randomnick=1&channels=rxvt-unicode&prompt=1", ""], 15 rxvt => ["irc.freenode.org", "#rxvt-unicode", "http://webchat.freenode.net/?randomnick=1&channels=rxvt-unicode&prompt=1", ""],
15 rxvtdev => ["irc.freenode.org", "#rxvt-unicode-dev", "http://webchat.freenode.net/?randomnick=1&channels=rxvt-unicode-dev&prompt=1", " <b>(no support, development only)</b>"], 16 rxvtdev => ["irc.freenode.org", "#rxvt-unicode-dev", "http://webchat.freenode.net/?randomnick=1&channels=rxvt-unicode-dev&prompt=1", " <b>(no support, development only)</b>"],
16); 17);
17 18
18sub hdr($$) { 19sub hdr($$) {
26 body { 27 body {
27 background: white; 28 background: white;
28 color: black; 29 color: black;
29 font-family: Arial, Helvetica, sans-serif; 30 font-family: Arial, Helvetica, sans-serif;
30 font-size: 12pt; 31 font-size: 12pt;
32 margin: 0;
33 padding: 0;
31 } 34 }
32 35
33 .bg-ede { background: url(/img/ede.jpg) no-repeat; padding: 20px; width: 100%; height: 82px; } 36 .bg-ede { background: url(/img/ede.jpg) no-repeat; padding: 20px; width: 100%; height: 82px; }
34 .bg-perl { background: url(/img/perl.jpg) no-repeat; padding: 20px; width: 100%; height: 194px; } 37 .bg-perl { background: url(/img/perl.jpg) no-repeat; padding: 20px; width: 100%; height: 194px; }
35 .bg-bluete { background: url(/img/bluete.jpg) no-repeat; padding: 20px; width: 100%; height: 148px; } 38 .bg-bluete { background: url(/img/bluete.jpg) no-repeat; padding: 20px; width: 100%; height: 148px; }
48 color: #034; 51 color: #034;
49 } 52 }
50 .short-desc { 53 .short-desc {
51 font-weight: bold; 54 font-weight: bold;
52 padding: 3px 3px 3px 8px; 55 padding: 3px 3px 3px 8px;
53 margin: 1em 1px 1px 13px; 56 margin: 0 1px 0 13px;
54 } 57 }
55 h2 { 58 h2 {
56 color: #069; 59 color: #069;
57 font-weight: bold; 60 font-weight: bold;
58 border: solid red; 61 border: solid red;
59 border-width: 0 0 0 12px; 62 border-width: 0 0 0 12px;
60 padding: 3px 3px 3px 8px; 63 padding: 3px 3px 3px 8px;
61 margin: 1em 1px 1px 1px; 64 margin: 0 1px 0 1px;
62 } 65 }
63 p { 66 p {
64 padding: 3px 3px 3px 8px; 67 padding: 3px 3px 3px 8px;
65 margin: 1em 1px 1px 13px; 68 margin: 0 1px 0 13px;
66 } 69 }
67 h3 { color: #034; } 70 h3 { color: #034; }
68 h4 { color: #034; } 71 h4 { color: #034; }
69 72
70 img { display: block; } 73 img { display: block; }
103 } 106 }
104 107
105 .overview th { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; } 108 .overview th { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; }
106 .overview td { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; } 109 .overview td { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; }
107 110
108 hr.footer { display: none; } 111 hr { display: none; }
109 .footer { font-size: 8pt; border-top: 1px solid red; } 112 .footer { font-size: 8pt; border-top: 1px solid red; }
113
114 .section { margin: 0; padding: 0.5em 4px 0.5em 4px; }
115 .section-topnav { background: #f0ef8b; padding: 0px 4px 1px 4px; }
116 .section-header { background: white ; padding-top: 0; }
117 .section-footer { background: #f0ef8b; }
118 .section-overview { background: white ; }
119
120 .section-short-desc { background: white ; }
121 .section-blurb { background: white ; }
122 .section-resources { background: white ; }
123 .section-documents { background: white ; }
124 .section-about { background: white ; }
125
110 </style> 126 </style>
111</head> 127</head>
112<body> 128<body>
129<div class='section section-topnav'>
113<p class='back'><a href='/'>Schmorpforge Ta-Sa Software Repository</a></p> 130<p class='back'><a href='/'>Schmorpforge Ta-Sa Software Repository</a></p>
131</div>
132<div class='section section-header'>
114<h1 class="$_[1]">$_[0]</h1> 133<h1 class="$_[1]">$_[0]</h1>
115<div style="text-align: center; float: right; margin-left: 1em; margin-bottom: 1em"> 134<div style="text-align: center; float: right; margin-left: 1em; margin-bottom: 1em">
116<!-- 135<!--
117 <a title="Mach mit!" href="http://www.piratenpartei.de/navigation/politik/unsere-ziele"> 136 <a title="Mach mit!" href="http://www.piratenpartei.de/unsere_ziele">
118 <img src="http://res.tst.eu/denke_selbst.gif" alt="Werde Pirat!" width="468" height="60" border="0" /> 137 <img src="http://res.tst.eu/denke_selbst.gif" alt="Werde Pirat!" width="468" height="60" border="0" />
119 </a> 138 </a>
120 <br /> 139 <br />
121--> 140-->
122 <a href="http://www.piratenpartei.de/navigation/politik/unsere-ziele"> 141 <a href="http://www.piratenpartei.de/unsere_ziele">
123 <img src="http://res.tst.eu/piraten1.png" alt="Piratenpartei" width="468" height="60" border="0" /> 142 <img src="http://res.tst.eu/piraten1.png" alt="Piratenpartei" width="468" height="60" border="0" />
124 </a> 143 </a>
125 <br /> 144 <br />
126 <a href="http://www.deliantra.net/"> 145 <a href="http://www.deliantra.net/">
127 <img src="http://www.deliantra.net/images/deliantra.png" border="0" alt="Deliantra Free MMORPG" style="display: inline"/> 146 <img src="http://www.deliantra.net/images/deliantra.png" border="0" alt="Deliantra Free MMORPG" style="display: inline"/>
128 <br /> 147 <br />
129 The free as in beer, liberal, code &amp; content retro-style graphical MMORPG :) 148 The free as in beer, liberal, code &amp; content retro-style graphical MMORPG :)
130 </a> 149 </a>
131</div> 150</div>
151</div>
132EOF 152EOF
133} 153}
134 154
135sub ftr { 155sub ftr {
136 print <<EOF; 156 print <<EOF;
157<div class='section section-footer'>
137<hr class='footer'/> 158<hr class='footer'/>
138<p class='footer'> 159<p class='footer'>
139 Contact for this page: <a href="mailto:schmorpforge\@schmorp.de">Marc Lehmann &lt;schmorpforge\@schmorp.de&gt;</a>. 160 Contact for this page: <a href="mailto:schmorpforge\@schmorp.de">Marc Lehmann &lt;schmorpforge\@schmorp.de&gt;</a>.
140</p> 161</p>
162</div>
141</body> 163</body>
142</html> 164</html>
143EOF 165EOF
144} 166}
145 167
154 $desc =~ s/^(.*?)\n\s*\n//s 176 $desc =~ s/^(.*?)\n\s*\n//s
155 or die "malformed desc in $name: $desc"; 177 or die "malformed desc in $name: $desc";
156 178
157 my $short = $1; 179 my $short = $1;
158 180
181 (my $id = $name) =~ y%/%-%;
159 $index{$name} = "<tr><th id='$name'><a href='pkg/$name.html'>$name</a></th><td>$short</td></tr>"; 182 $index{$name} = "<tr><th id='$id'><a href='pkg/$name.html'>$name</a></th><td>$short</td></tr>";
160 183
161 open STDOUT, ">", "software.schmorp.de/pkg/$name.html" 184 open STDOUT, ">", "software.schmorp.de/pkg/$name.html"
162 or die "software.schmorp.de/pkg/$name.html: $!"; 185 or die "software.schmorp.de/pkg/$name.html: $!";
163 186
164 my $bg = (grep /cpan/, @args) ? "bg-perl" : "bg-ede"; 187 my $bg = (grep /cpan/, @args) ? "bg-perl" : "bg-ede";
165 hdr $name, $bg; 188 hdr $name, $bg;
166 189
167 print <<EOF; 190 print <<EOF;
191<div class='section section-short-desc'>
168<h2>$name</h1> 192<h2>$name</h2>
169<p class='short-desc'>$short</p> 193<p class='short-desc'>$short</p>
194</div>
170 195
196<div class='section section-blurb'>
171<h2>Blurb</h2> 197<h2>Blurb</h2>
172<p class='blurb'>$desc</p> 198<p class='blurb'>$desc</p>
199</div>
200
201<div class='section section-resources'>
173<h2>Resources</h2> 202<h2>Resources</h2>
174<table class='resources'> 203<table class='resources'>
175EOF 204EOF
176 if (grep /git/, @args) { 205 if (grep /git/, @args) {
177 print <<EOF; 206 print <<EOF;
218 } 247 }
219 248
220 my @irc; 249 my @irc;
221 250
222 print "<tr><td><tt class='icon'>FILE</tt></td><td class='rr'><a href='http://dist.schmorp.de/$name/'>File Releases</a></td></tr>\n" 251 print "<tr><td><tt class='icon'>FILE</tt></td><td class='rr'><a href='http://dist.schmorp.de/$name/'>File Releases</a></td></tr>\n"
252 if grep /dist(?!-)/, @args;
253 print "<tr><td><tt class='icon'>FILE</tt></td><td class='rr'><a href='http://ftp.gnu.org/gnu/$name/'>File Releases</a></td></tr>\n"
223 if grep /dist/, @args; 254 if grep /dist-gnu/, @args;
224 print "<tr><td><tt class='icon'>CPAN</tt></td><td class='rr'><a href='http://www.cpan.org/modules/by-authors/Marc_Lehmann/'>File Releases (CPAN)</a></td></tr>\n" 255 print "<tr><td><tt class='icon'>CPAN</tt></td><td class='rr'><a href='http://www.cpan.org/modules/by-authors/Marc_Lehmann/'>File Releases (CPAN)</a></td></tr>\n"
225 if grep /cpan$/, @args; 256 if grep /cpan$/, @args;
226 print "<tr><td><tt class='icon'>CPAN</tt></td><td class='rr'><a href='http://www.cpan.org/modules/by-authors/id/E/EL/ELMEX/'>File Releases (CPAN)</a></td></tr>\n" 257 print "<tr><td><tt class='icon'>CPAN</tt></td><td class='rr'><a href='http://www.cpan.org/modules/by-authors/id/E/EL/ELMEX/'>File Releases (CPAN)</a></td></tr>\n"
227 if grep /cpan-elmex/, @args; 258 if grep /cpan-elmex/, @args;
228 for (@args) { 259 for (@args) {
231 } 262 }
232 if (/irc\((.*?)\)/) { 263 if (/irc\((.*?)\)/) {
233 push @irc, $1; 264 push @irc, $1;
234 } 265 }
235 } 266 }
236 push @irc, "freenode" unless @irc; 267 push @irc, "schmorp" unless @irc;
237 for (@irc) { 268 for (@irc) {
238 my ($server, $channel, $url, $comment) = @{ $IRC{$_} or die }; 269 my ($server, $channel, $url, $comment) = @{ $IRC{$_} or die };
239 print "<tr><td><tt class='icon'>IRC</tt></td><td class='rr'>Server <a href='$url'><tt><b>$server</b></tt>, channel <tt>$channel</tt></a>$comment <b>(say hi and <i>wait a few minutes or hours</i>)</b></td></tr>\n"; 270 print "<tr><td><tt class='icon'>IRC</tt></td><td class='rr'>Server <a href='$url'><tt><b>$server</b></tt>, channel <tt>$channel</tt></a>$comment <b>(say hi and <i>wait a few minutes or hours</i>)</b></td></tr>\n";
240 } 271 }
241 272
242 print "</table>"; 273 print "</table>";
243 274
244 if (my @files = grep $_, map /(cvs-co|cvs-pod|git-pod|git-co)\((\S+)\)/ && [$1, $2], @args) { 275 if (my @files = grep $_, map /(cvs-co|cvs-pod|git-pod|git-co)\((\S+)\)/ && [$1, $2], @args) {
245 print "<h2>Additional Documents</h2><table class='resources'>"; 276 print "</div><div class='section section-documents'><h2>Additional Documents</h2><table class='resources'>";
246 277
247 for (@files) { 278 for (@files) {
248 my ($type, $arg) = @$_; 279 my ($type, $arg) = @$_;
249 280
250 if ($type eq "cvs-co") { 281 if ($type eq "cvs-co") {
266 } 297 }
267 } 298 }
268 299
269 print "</table>"; 300 print "</table>";
270 } 301 }
302 print "</div>";
271 303
272 ftr; 304 ftr;
273} 305}
274 306
275open STDOUT, ">software.schmorp.de/index.html"; 307open STDOUT, ">software.schmorp.de/index.html";
276 308
277hdr "Project List", "bg-bluete"; 309hdr "Project List", "bg-bluete";
278 310
279print <<EOF; 311print <<EOF;
280 312
313<div class='section section-about'>
281<h2>About</h2> 314<h2>About</h2>
282<p class='blurb'>This page briefly documents the Schmorpforge Ta-Sa Software Repository and 315<p class='blurb'>This page briefly documents the Schmorpforge Ta-Sa Software Repository and
283lists all projects available here.</p> 316lists all projects available here.</p>
317</div>
284 318
319<div class='section section-resources'>
285<table class='resources'> 320<table class='resources'>
286<tr><td><tt class='icon'>CVS</tt></td><td class='rr'>All CVS modules can be browsed <a href="http://cvs.schmorp.de/">here</a></td></tr> 321<tr><td><tt class='icon'>CVS</tt></td><td class='rr'>All CVS modules can be browsed <a href="http://cvs.schmorp.de/">here</a></td></tr>
287<tr><td><tt class='icon'>GIT</tt></td><td class='rr'>All GIT repositories can be found <a href="http://git.ta-sa.org/">here</a></td></tr> 322<tr><td><tt class='icon'>GIT</tt></td><td class='rr'>All GIT repositories can be found <a href="http://git.ta-sa.org/">here</a></td></tr>
288<tr><td><tt class='icon'>FILE</tt></td><td class='rr'>All file releases can be found <a href="http://dist.schmorp.de/">here</a> or on CPAN (for Perl modules)</td></tr> 323<tr><td><tt class='icon'>FILE</tt></td><td class='rr'>Most file releases can be found <a href="http://dist.schmorp.de/">here</a> or on CPAN (for Perl modules)</td></tr>
289<tr><td><tt class='icon'>LIST</tt></td><td class='rr'>All mailinglists can be found <a href="http://lists.schmorp.de/mailman/listinfo">here</a></td></tr> 324<tr><td><tt class='icon'>LIST</tt></td><td class='rr'>All mailinglists can be found <a href="http://lists.schmorp.de/mailman/listinfo">here</a></td></tr>
290<!--<tr><td><tt class='icon'>WIKI</tt></td><td class='rr'>The Wiki can be found <a href="http://wiki.schmorp.de/">here</a></td></tr>--> 325<!--<tr><td><tt class='icon'>WIKI</tt></td><td class='rr'>The Wiki can be found <a href="http://wiki.schmorp.de/">here</a></td></tr>-->
291 326
292<!--<tr><td><tt class='icon'>IRC</tt></td><td class='rr'>Server <a href='http://webchat.freenode.net/?randomnick=1&amp;channels=schmorp&amp;prompt=1'><tt><b>irc.freenode.net</b></tt>, channel <tt>#schmorp</tt></a>, users <tt>schmorp</tt> and <tt>elmex</tt> <b>(say hi and <i>wait a few minutes or hours</i>)</b><br/>Other project-specific IRC servers are listed on their respective project page.</td></tr>--> 327<!--<tr><td><tt class='icon'>IRC</tt></td><td class='rr'>Server <a href='http://webchat.freenode.net/?randomnick=1&amp;channels=schmorp&amp;prompt=1'><tt><b>irc.freenode.net</b></tt>, channel <tt>#schmorp</tt></a>, users <tt>schmorp</tt> and <tt>elmex</tt> <b>(say hi and <i>wait a few minutes or hours</i>)</b><br/>Other project-specific IRC servers are listed on their respective project page.</td></tr>-->
293<tr><td><tt class='icon'>IRC</tt></td><td class='rr'>Server <a href='http://chat.schmorp.de/?channels=schmorpforge'><tt><b>irc.schmorp.de</b></tt>, channel <tt>#schmorpforge</tt></a>, users <tt>schmorp</tt> and <tt>elmex</tt> <b>(say hi and <i>wait a few minutes or hours</i>)</b><br/>Other project-specific IRC servers are listed on their respective project page.</td></tr> 328<tr><td><tt class='icon'>IRC</tt></td><td class='rr'>Server <a href='http://chat.schmorp.de/?channels=schmorpforge'><tt><b>irc.schmorp.de</b></tt>, channel <tt>#schmorpforge</tt></a>, users <tt>schmorp</tt> and <tt>elmex</tt> <b>(say hi and <i>wait a few minutes or hours</i>)</b><br/>Other project-specific IRC servers are listed on their respective project page.</td></tr>
294EOF
295
296print <<EOF;
297</table> 329</table>
330</div>
298 331
332<div class='section section-overview'>
299<h2>Project List</h2> 333<h2>Project List</h2>
300<table class='overview'> 334<table class='overview'>
301EOF 335EOF
302 336
303print $index{$_} for sort { (lc $a) cmp (lc $b) } keys %index; 337print $index{$_} for sort { (lc $a) cmp (lc $b) } keys %index;
304 338
305print "</table>"; 339print "</table></div>";
306ftr; 340ftr;
307 341
308__DATA__ 342__DATA__
309rxvt-unicode dist list(rxvt-unicode) cvs-pod(doc/rxvt.1.pod,) cvs-pod(doc/rxvt.7.pod,FAQ) cvs-pod(src/urxvt.pm,Perl) cvs-co(Changes) irc(rxvt) irc(rxvtdev) 343rxvt-unicode dist list(rxvt-unicode) cvs-pod(doc/rxvt.1.pod,) cvs-pod(doc/rxvt.7.pod,FAQ) cvs-pod(src/urxvt.pm,Perl) cvs-co(Changes) irc(rxvt) irc(rxvtdev)
310 rxvt-unicode is a fork of the well known terminal emulator rxvt. 344 rxvt-unicode is a fork of the well known terminal emulator rxvt.
405 delivering a stable reference implementation which makes it easy to write 439 delivering a stable reference implementation which makes it easy to write
406 your own clients, bots and so on. It also contains Gtk2 modules for 440 your own clients, bots and so on. It also contains Gtk2 modules for
407 KGS-independent rendering of beautiful Go boards. For a introduction to 441 KGS-independent rendering of beautiful Go boards. For a introduction to
408 the game of go, look <a href="http://playgo.to/interactive/">here</a>. 442 the game of go, look <a href="http://playgo.to/interactive/">here</a>.
409 443
444App-Staticperl cpan cvs-pod(bin/staticperl,) cvs-co(Changes)
445 Perl, libc, 100 modules - all in one self-contained 500kb executable.
446
447 App::Staticperl installs a helper script that allows you to install a
448 statically linked (or linkable) perl distribution, install additional
449 modules, and create new perl interpreters with just the selection of
450 modules you need. It is also possible to just create the C source files
451 needed to embed this custom interpreter into your own programs.<p />
452
453 Two pre-built perl binaries (for Linux on x86 or amd64) which
454 include some highly subjective package selections are available as
455 <a href="http://staticperl.schmorp.de/smallperl.html">smallperl</a>
456 and
457 <a href="http://staticperl.schmorp.de/bigperl.html">bigperl</a>.
458
410Net-Knuddels cvs-pod(Net/Knuddels.pm,) 459Net-Knuddels cvs-pod(Net/Knuddels.pm,)
411 This perl module provides an API for group communications using the 460 This perl module provides an API for group communications using the
412 <a href="http://www.knuddels.de/">www.knuddels.de</a> protocol. It is outdated 461 <a href="http://www.knuddels.de/">www.knuddels.de</a> protocol. It is outdated
413 and only provided as reference. 462 and only provided as reference.
414 463
433 482
434 Much effort was invested into these guards behaving "sensibly" in the 483 Much effort was invested into these guards behaving "sensibly" in the
435 presence of thrown exceptions, errors and other adverse conditions, as 484 presence of thrown exceptions, errors and other adverse conditions, as
436 well as into good performance. 485 well as into good performance.
437 486
487OpenCL cpan cvs-pod(OpenCL.pm,) cvs-co(Changes)
488 An interface to OpenCL (the Open Computing Language) for Perl.
489
490 Perlized (not C-ish) OpenCL interface.
491
438common-sense cpan cvs-pod(sense.pm,) cvs-co(Changes) 492common-sense cpan cvs-pod(sense.pm,) cvs-co(Changes)
439 This module implements some sane defaults for Perl programs, as defined 493 This module implements some sane defaults for Perl programs, as defined
440 by two typical (or not so typical - use your common sense) specimens of 494 by two typical (or not so typical - use your common sense) specimens of
441 Perl coders. 495 Perl coders.
442 496
559 See <a href="http://home.schmorp.de/marc/lmainit.html">its homepage</a> for more info. 613 See <a href="http://home.schmorp.de/marc/lmainit.html">its homepage</a> for more info.
560 614
561Algorithm-FEC cpan cvs-pod(FEC.pm,) cvs-co(README.fec) cvs-co(Changes) 615Algorithm-FEC cpan cvs-pod(FEC.pm,) cvs-co(README.fec) cvs-co(Changes)
562 Perl module implementing forward error correction using Vandermonde matrices 616 Perl module implementing forward error correction using Vandermonde matrices
563 617
564AnyEvent cpan cvs-pod(lib/AnyEvent.pm,) cvs-pod(lib/AnyEvent/Intro.pod,Introduction/Tutorial) cvs-pod(lib/AE.pm,AE) cvs-co(Changes) cvs-pod(lib/AnyEvent/Util.pm,AnyEvent::Util) cvs-pod(lib/AnyEvent/Handle.pm,AnyEvent::Handle) cvs-pod(lib/AnyEvent/Socket.pm,AnyEvent::Socket) cvs-pod(lib/AnyEvent/DNS.pm,AnyEvent::DNS) cvs-pod(lib/AnyEvent/Impl/EV.pm,AnyEvent::Impl::EV) cvs-pod(lib/AnyEvent/Impl/Event.pm,AnyEvent::Impl::Event) cvs-pod(lib/AnyEvent/Impl/Glib.pm,AnyEvent::Impl::Glib) cvs-pod(lib/AnyEvent/Impl/Tk.pm,AnyEvent::Impl::Tk) cvs-pod(lib/AnyEvent/Impl/Perl.pm,AnyEvent::Impl::Perl) cvs-pod(lib/AnyEvent/Impl/Qt.pm,AnyEvent::Impl::Qt) cvs-pod(lib/AnyEvent/Impl/EventLib.pm,AnyEvent::Impl::EventLib) cvs-pod(lib/AnyEvent/Impl/Irssi.pm,AnyEvent::Impl::Irssi) cvs-pod(lib/AnyEvent/Impl/IOAsync.pm,AnyEvent::Impl::IOAsync) cvs-pod(lib/AnyEvent/Impl/POE.pm,AnyEvent::Impl::POE) list(anyevent) irc(anyevent) 618AnyEvent cpan cvs-pod(lib/AnyEvent.pm,) cvs-pod(lib/AnyEvent/Intro.pod,Introduction/Tutorial) cvs-pod(lib/AE.pm,AE) cvs-co(Changes) cvs-pod(lib/AnyEvent/IO.pm,AnyEvent::IO) cvs-pod(lib/AnyEvent/Util.pm,AnyEvent::Util) cvs-pod(lib/AnyEvent/Handle.pm,AnyEvent::Handle) cvs-pod(lib/AnyEvent/Socket.pm,AnyEvent::Socket) cvs-pod(lib/AnyEvent/DNS.pm,AnyEvent::DNS) cvs-pod(lib/AnyEvent/Impl/EV.pm,AnyEvent::Impl::EV) cvs-pod(lib/AnyEvent/Impl/Event.pm,AnyEvent::Impl::Event) cvs-pod(lib/AnyEvent/Impl/Glib.pm,AnyEvent::Impl::Glib) cvs-pod(lib/AnyEvent/Impl/Tk.pm,AnyEvent::Impl::Tk) cvs-pod(lib/AnyEvent/Impl/Perl.pm,AnyEvent::Impl::Perl) cvs-pod(lib/AnyEvent/Impl/Qt.pm,AnyEvent::Impl::Qt) cvs-pod(lib/AnyEvent/Impl/EventLib.pm,AnyEvent::Impl::EventLib) cvs-pod(lib/AnyEvent/Impl/Irssi.pm,AnyEvent::Impl::Irssi) cvs-pod(lib/AnyEvent/Impl/IOAsync.pm,AnyEvent::Impl::IOAsync) cvs-pod(lib/AnyEvent/Impl/POE.pm,AnyEvent::Impl::POE) list(anyevent) irc(anyevent)
565 This module offers a simple API for I/O, timer, signal, child process 619 This module offers a simple API for I/O, timer, signal, child process
566 and completion events, independent of a specific event loop. 620 and completion events, independent of a specific event loop.
567 621
568 <p>This module allows module authors to use those events internally 622 <p>This module allows module authors to use those events internally
569 without forcing users of the module to use a specific event loop, without 623 without forcing users of the module to use a specific event loop, without
623 A perl module implementing a Freenet Client Protocol 2.0 client. 677 A perl module implementing a Freenet Client Protocol 2.0 client.
624 678
625AnyEvent-GPSD cpan cvs-pod(GPSD.pm,) list(anyevent) irc(anyevent) 679AnyEvent-GPSD cpan cvs-pod(GPSD.pm,) list(anyevent) irc(anyevent)
626 A perl module implementing an AnyEvent client for the (pre-xml) GPSD protocol. 680 A perl module implementing an AnyEvent client for the (pre-xml) GPSD protocol.
627 681
628AnyEvent-Porttracker cpan cvs-pod(Porttracker.pm,) cvs-pos(Porttracker/protocol.pod,) list(anyevent) irc(anyevent) 682AnyEvent-Porttracker cpan cvs-pod(Porttracker.pm,) cvs-pod(Porttracker/protocol.pod,api-protocol) list(anyevent) irc(anyevent)
629 A perl module implementing a client for the Porttracker/PortIQ API protocol. 683 A perl module implementing a client for the Porttracker/PortIQ API protocol.
630 684
631AnyEvent-SNMP cpan cvs-pod(SNMP.pm,) list(anyevent) irc(anyevent) 685AnyEvent-SNMP cpan cvs-pod(SNMP.pm,) list(anyevent) irc(anyevent)
632 A perl module that transparently integrates Net::SNMP into AnyEvent. 686 A perl module that transparently integrates Net::SNMP into AnyEvent.
633 687
658 The caller is responsible for authentication management, cookies (if 712 The caller is responsible for authentication management, cookies (if
659 the simplistic implementation in this module doesn't suffice), referer 713 the simplistic implementation in this module doesn't suffice), referer
660 and other high-level protocol details for which this module offers only 714 and other high-level protocol details for which this module offers only
661 limited support. 715 limited support.
662 716
663AnyEvent-MP cpan cvs-pod(MP.pm,) cvs-pod(MP/Intro.pod,Introduction/Tutorial) cvs-co(Changes) list(anyevent) irc(anyevent) 717AnyEvent-MP cpan cvs-pod(MP.pm,) cvs-pod(MP/Intro.pod,Introduction/Tutorial) cvs-pod(bin/aemp,Config-Uility) cvs-pod(MP/Kernel.pm) cvs-pod(MP/Global.pm) cvs-pod(MP/Transport.pm) cvs-pod(MP/DataConn.pm) cvs-pod(MP/LogCatcher.pm) cvs-co(Changes) list(anyevent) irc(anyevent)
664 This Perl module (-family) implements a simple message passing framework for Perl. 718 This Perl module (-family) implements a simple message passing framework for Perl.
665 719
666 Despite its simplicity, you can securely message other processes running 720 Despite its simplicity, you can securely message other processes running
667 on the same or other hosts. 721 on the same or other hosts.
668 722
805 An adaptor that integrates the Net-SNMP Perl module into the EV event loop. 859 An adaptor that integrates the Net-SNMP Perl module into the EV event loop.
806 Loading it suffices to make background requests in EV programs. 860 Loading it suffices to make background requests in EV programs.
807 861
808libev cvs-co(README) cvs-pod(ev.pod) dist list(libev) 862libev cvs-co(README) cvs-pod(ev.pod) dist list(libev)
809 A full-featured and high-performance (<a 863 A full-featured and high-performance (<a
810 href="http://libev.schmorp.de/bench.html">see benchmark</a>) event loop that 864 href="http://libev.schmorp.de/bench.html">see benchmark</a>)
811 is loosely modelled after libevent, but without its limitations and bugs. It is 865 event loop that is loosely modelled after libevent, but without
812 used, among others, in the <a href="http://savannah.gnu.org/projects/gvpe">GNU Virtual Private Ethernet</a> and 866 its limitations and bugs. It is used in
813 <a href="http://software.schmorp.de/pkg/rxvt-unicode.html">rxvt-unicode</a> packages, and in 867 <a href="/pkg/gvpe.html">GNU Virtual Private Ethernet</a>,
814 the Deliantra MORPG Server and Client. 868 <a href="/pkg/rxvt-unicode.html">rxvt-unicode</a>, <a
869 href="http://people.redhat.com/sgrubb/audit/">auditd</a>, the
870 <a href="http://www.deliantra.,net">Deliantra MORPG</a> Server and Client,
871 and many other programs.
815 872
816 Features include child/pid watchers, periodic timers based on wallclock 873 Features include child/pid watchers, periodic timers based on wallclock
817 (absolute) time (in addition to timers using relative timeouts), as well 874 (absolute) time (in addition to timers using relative timeouts), as well
818 as epoll/kqueue/event ports/inotify/eventfd/signalfd support, fast timer 875 as epoll/kqueue/event ports/inotify/eventfd/signalfd support, fast timer
819 management, time jump detection and correction, and ease-of-use. 876 management, time jump detection and correction, and ease-of-use.
824 configuration support. A full-featured and well-documented 881 configuration support. A full-featured and well-documented
825 <a href="EV.html">perl interface</a> is also available. 882 <a href="EV.html">perl interface</a> is also available.
826 <p /> 883 <p />
827 A <a href="http://lists.schmorp.de/mailman/listinfo/libev">mailing 884 A <a href="http://lists.schmorp.de/mailman/listinfo/libev">mailing
828 list</a> for discussion and support is now available. 885 list</a> for discussion and support is now available.
886
887libecb cvs-co(README) cvs-pod(ecb.pod) cvs-co(ecb.h) dist list(libev)
888 The e compiler builtins header/library.
889
890 This project delivers you many gcc builtins, attributes and a number of
891 generally useful low-level functions, such as popcount, expect, prefetch,
892 noinline, assume, unreachable and so on.
893
894gvpe dist-gnu
895 GVPE creates a virtual ethernet network with multiple nodes using a
896 variety of transport protocols. Participating nodes do not need to trust
897 each other.
898
899 GVPE creates a virtual ethernet (broadcasts supported, any protocol that
900 works with a normal ethernet should work with GVPE) by creating encrypted
901 host-to-host tunnels between multiple endpoints.
902 <p />
903 Unlike other virtual private "network" solutions which merely create a
904 single tunnel, GVPE creates a real network with multiple endpoints.
905 <p />
906 It is designed to be very simple and robust (cipher selection done at
907 compiletime etc.), and easy to setup (only a single config file shared
908 unmodified between all hosts).
909 <p />
910 VPN hosts can neither sniff nor fake packets, that is, you can use
911 MAC-based filtering to ensure authenticity of packets even from member
912 nodes.
913 <p />
914 GVPE can also be used to tunnel into some vpn network using a variety of
915 protocols (raw IP, UDP, TCP, HTTPS-proxy-connect, ICMP and DNS). It is,
916 however, primarily designed to sit on the gateway machines of company
917 branches to connect them together.
829 918
830libeio dist cvs-pod(eio.pod,) cvs-co(eio.h) cvs-co(demo.c) cvs-co(Changes) list(libev) 919libeio dist cvs-pod(eio.pod,) cvs-co(eio.h) cvs-co(demo.c) cvs-co(Changes) list(libev)
831 Event-based fully asynchronous I/O library for C (used by IO::AIO). 920 Event-based fully asynchronous I/O library for C (used by IO::AIO).
832 Currently in BETA! 921 Currently in BETA!
833 922
952Linux-NBD cpan cvs-pod(lib/Linux/NBD.pm) cvs-pod(lib/Linux/NBD/Client.pm) cvs-pod(lib/Linux/NBD/Server.pm) cvs-co(Changes) 1041Linux-NBD cpan cvs-pod(lib/Linux/NBD.pm) cvs-pod(lib/Linux/NBD/Client.pm) cvs-pod(lib/Linux/NBD/Server.pm) cvs-co(Changes)
953 A Perl module that helps implementing netblock block device servers and 1042 A Perl module that helps implementing netblock block device servers and
954 set up NBD instances. A sample application allowing you to mount most CD 1043 set up NBD instances. A sample application allowing you to mount most CD
955 images is included. 1044 images is included.
956 1045
1046Linux-Clone cpan cvs-pod(Clone.pm) cvs-co(Changes)
1047 A Perl interface to the clone(2) and unshare(2) syscalls.
1048
1049Urlader cpan cvs-pod(Urlader.pm) cvs-co(Changes)
1050 A self-unpacking archive that can be used for program deployment and upgrades.
1051
1052 Much like PAR, this module provides a simple way to build (silently) self-extracting
1053 executables that can contain perl, modules and shared libraries. Unlike PAR it is not
1054 restricted to perl programs, works transparently, without any magic and can cache
1055 unpacked archives for extra speed. Also unlike PAR, it leaves you out in the cold
1056 on the problem of how to atcually gather your files into the distribution.
1057
957Mozilla-Plugin 1058Mozilla-Plugin
958 Undocumented, unreleased and unfinished-but-somewhat-working Perl plug-in 1059 Undocumented, unreleased and unfinished-but-somewhat-working Perl plug-in
959 for Mozilla (Netscape, Opera, IE...), that allows embedding Tk, Gtk etc. 1060 for Mozilla (Netscape, Opera, IE...), that allows embedding Tk, Gtk etc.
960 plugins directly in the browser. 1061 plugins directly in the browser.
961 1062

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines