ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/schmorpforge/genpage
Revision: 1.3
Committed: Tue Apr 29 13:48:13 2008 UTC (16 years, 2 months ago) by elmex
Branch: MAIN
Changes since 1.2: +4 -1 lines
Log Message:
git-co support via the just written gitco.cgi script

File Contents

# Content
1 #!/usr/bin/perl
2
3 umask 022;
4
5 mkdir "software.schmorp.de", 0755;
6 mkdir "software.schmorp.de/pkg", 0755;
7 mkdir "software.schmorp.de/img", 0755;
8 system "rsync -av *.jpg software.schmorp.de/img/";
9
10 sub hdr($$) {
11 print <<EOF;
12 <?xml version='1.0' encoding='utf-8'?>
13 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
14 <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
15 <head>
16 <title>$_[0]</title>
17 <style type='text/css'>
18 body {
19 background: white;
20 color: black;
21 font-family: Arial, Helvetica, sans-serif;
22 font-size: 12pt;
23 }
24
25 .bg-ede { background: url(/img/ede.jpg) no-repeat; padding: 20px; width: 100%; height: 82px; }
26 .bg-perl { background: url(/img/perl.jpg) no-repeat; padding: 20px; width: 100%; height: 194px; }
27 .bg-bluete { background: url(/img/bluete.jpg) no-repeat; padding: 20px; width: 100%; height: 148px; }
28
29 a:link { color: #00f; }
30 a:visited { color: #008; }
31 a:hover { color: #800; }
32 a:active { color: #f00; }
33
34 img { display: block; }
35
36 tt { font-family: "Andale Mono", "Lettergothic", monospace; }
37
38 th { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; }
39 td { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; }
40
41 hr.footer { display: none; }
42 .footer { font-size: 8pt; border-top: 1px solid red; }
43 </style>
44 </head>
45 <body>
46 <p class='back'><a href='/'>Schmorpforge Software Repository</a></p>
47 <h1 class="$_[1]">$_[0]</h1>
48 <div style="text-align: center; float: right; margin-left: 1em; margin-bottom: 1em">
49 <a href="http://www.deliantra.net/">
50 <img src="http://www.deliantra.net/images/deliantra.png" border="0" alt="Deliantra Free MMORPG" style="display: inline"/>
51 <br />
52 The free as in beer, liberal, code &amp; content retro-style graphical MMORPG :)
53 </a>
54 </div>
55 EOF
56 }
57
58 sub ftr {
59 print <<EOF;
60 <hr class='footer'/>
61 <p class='footer'>
62 Contact for this page: <a href="mailto:schmorpforge\@schmorp.de">Marc Lehmann &lt;schmorpforge\@schmorp.de&gt;</a>.
63 </p>
64 </body>
65 </html>
66 EOF
67 }
68
69 $_ = <DATA>;
70 for (;defined $_;) {
71 my ($name, @args) = split /\s+/;
72
73 next unless $name;
74
75 my $desc = "";
76 $desc .= $_ while (defined ($_ = <DATA>) and !/^\S/);
77 $desc =~ s/^(.*?)\n\s*\n//s
78 or die "malformed desc in $name: $desc";
79
80 my $short = $1;
81
82 $index{$name} = "<tr><th id='$name'><a href='pkg/$name.html'>$name</a></th><td>$short</td></tr>";
83
84 open STDOUT, ">", "software.schmorp.de/pkg/$name.html"
85 or die "software.schmorp.de/pkg/$name.html: $!";
86
87 if (grep /cpan/, @args) {
88 hdr $name, "bg-perl";
89 } else {
90 hdr $name, "bg-ede";
91 }
92
93 print <<EOF;
94 <p class='short-desc'>$short</p>
95
96 <h2>Blurb</h2>
97 <p class='blurb'>$desc</p>
98 <h2>Availability</h2>
99 <ul>
100 <li><a href='http://cvs.schmorp.de/$name'>Browse CVS module '$name'</a></li>
101 EOF
102
103 my $modules = $name;
104 $modules = "$1" if grep /modules\((.*)\)/, @args;
105
106 print <<EOF;
107 <li>Anonymous CVS checkout:<br />
108 <tt>&#160;cvs -z3 -d :pserver:anonymous\@cvs.schmorp.de/schmorpforge co $modules</tt><p />
109
110 <small>
111
112 <p>The warning
113 <b>cvs checkout: warning: cannot write to history file /schmorpforge/CVSROOT/history: Permission denied</b>
114 is expected and harmless, just ignore it. It simply means you have no write access to the repository.
115 </p>
116
117 <p>The CVS server moved again on 2008-02-21, you can use the following
118 (untested) snippet to update your CVS checkout. Run it in the top level
119 checked out directory:</ br>
120
121 <pre>
122 find . -name CVS | xargs -I% find % -name Root |
123 xargs perl -i -pe 's%:pserver:anonymous\\\@cvs.schmorp.de:636/schmorpforge%:pserver:anonymous\\\@cvs.schmorp.de:/schmorpforge%'</pre>
124 </p>
125
126 </small>
127
128 </li>
129 EOF
130
131 print "<li><a href='http://dist.schmorp.de/$name/'>File Releases</a></li>\n"
132 if grep /dist/, @args;
133 print "<li><a href='http://www.cpan.org/modules/by-authors/Marc_Lehmann/'>File Releases (CPAN)</a></li>\n"
134 if grep /cpan/, @args;
135 for (@args) {
136 print "<li><a href='http://lists.schmorp.de/mailman/listinfo/" . ($1 || $name) . "'>Mailing List '" . ($1 || $name) . "'</a></li>\n"
137 if /list\((.*)\)/;
138 }
139
140 print "</ul>";
141
142 if (my @files = grep $_, map /(cvs-co|cvs-pod|git-co)\((\S+)\)/ && [$1, $2], @args) {
143 print "<h2>Additional Documents</h2><ul>";
144
145 for (@files) {
146 my ($type, $arg) = @$_;
147
148 if ($type eq "cvs-co") {
149 print "<li><a href='http://cvs.schmorp.de/$name/$arg'>$arg</a></li>";
150 } elsif ($type eq "cvs-pod") {
151 my ($file, $desc) = $arg =~ /(.*),(.*)/ ? ($1, $2) : ($arg, $arg);
152 $desc ||= "<b>Main Manual Page</b>";
153 print "<li><a href='http://pod.tst.eu/http://cvs.schmorp.de/$name/$file'>$desc</a></li>";
154 } elsif ($type eq 'git-co') {
155 my ($project, $file) = $arg =~ /^([^.]+).git\/(.*)$/ ? ($1, $2) : $arg;
156 print "<li><a href='http://git.ta-sa.org/res/gitco.cgi/$project/$file'>$file</a></li>";
157 }
158 }
159
160 print "</ul>";
161 }
162
163 ftr;
164 }
165
166 open STDOUT, ">software.schmorp.de/index.html";
167
168 hdr "Package Index", "bg-bluete";
169
170 print <<EOF;
171
172 <p>This page briefly documents the Schmorpforge Software Repository and
173 lists all projects available here.</p>
174
175 <ul>
176 <li>All CVS Repositories can be found <a href="http://cvs.schmorp.de/">here</a>.</li>
177 <li>Most Releases can be found <a href="http://dist.schmorp.de/">here</a> or via CPAN.</li>
178 <li>All Mailinglists can be found <a href="http://lists.schmorp.de/mailman/listinfo">here</a>.</li>
179 </ul>
180 <p>Projects listed on this page:</p>
181 <table>
182 EOF
183
184 print $index{$_} for sort { (lc $a) cmp (lc $b) } keys %index;
185
186 print "</table>";
187 ftr;
188
189 __DATA__
190 rxvt-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)
191 rxvt-unicode is a clone of the well known terminal emulator rxvt.
192
193 <p>If you have a problem, please have a look at the
194 <a href="http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.html">FAQ</a>
195 <em>first</em>.</p>
196
197 Its main features (many of them unique) over rxvt are:
198
199 <ul>
200 <li>Stores text in Unicode (either UCS-2 or UCS-4).</li>
201 <li>Uses locale-correct input, output and width: as long as your system supports the locale,
202 rxvt-unicode will display correctly.</li>
203 <li>Daemon mode: one daemon can open multiple windows on multiple displays, which
204 improves memory usage and startup time considerably.</li>
205 <li>Embedded perl, for endless customization and improvement opportunities, such as:
206 <ul>
207 <li>Tabbed terminal support.</li>
208 <li>Regex-driven customisable selection that can properly select shell arguments, urls etc.</li>
209 <li>Selection-transformation and option popup menus.</li>
210 <li>Automatically transforming the selection once made.</li>
211 <li>Incremental scrollback buffer search.</li>
212 <li>Automatic URL-underlining and launching.</li>
213 <li>Remote pastebin, digital clock, block graphics to ascii filter and
214 whatever you like to implement for yourself.</li>
215 </ul>
216 </li>
217 <li>Crash-free. At least I try, but rxvt-unicode certainly crashes much less often than
218 rxvt and its many clones, and reproducible bugs get fixed immediately.</li>
219 <li>Completely flicker-free.</li>
220 <li>Re-wraps long lines instead of splitting or cutting them on resizes.</li>
221 <li>Full combining character support (unlike xterm :).</li>
222 <li>Multiple fonts supported at the same time: No need to choose between
223 nice japanese and ugly latin, or no japanese and nice latin characters :).</li>
224 <li>Supports Xft and core fonts in any combination.</li>
225 <li>Can easily be embedded into other applications.</li>
226 <li>All documentation accessible through manpages.</li>
227 <li>Locale-independent XIM support.</li>
228 <li>Many small improvements, such as improved and corrected terminfo, improved secondary screen modes,
229 italic and bold font support, tinting and shading.</li>
230 <li>Encapsulation of privileged operations in a separate process (improves security).</li>
231 <li>Optimised for local <i>and</i> remote connections.</li>
232 </ul>
233
234 <br />
235 And its main <em>missing</em> features (which users request but are not (yet?) implemented) are:
236
237 <ul>
238 <li>Complex script support, such as arabic or tibetian - more info is needed. (use mlterm)</li>
239 <li>Right-to-Left rendering - more info is needed. (use mlterm)</li>
240 <li>IIIMF (Intranet/Internet Input Method Framework) support. (use scim)</li>
241 </ul>
242
243 <br />
244
245 There is an IRC channel for discussion on <a
246 href='irc://irc.freenode.net/rxvt-unicode'><tt>irc.freenode.net
247 #rxvt-unicode</tt></a>.
248
249 libptytty dist list(rxvt-unicode) cvs-pod(doc/libptytty.3.pod) cvs-co(Changes)
250 libptytty is an offspring of rxvt-unicode that handles pty/tty/utmp/wtmp/lastlog handling
251 in mostly OS-independent ways, so it's less of a hassle for you :)
252
253 Mailing list and contacts are the same as for rxvt-unicode, above.
254
255 gtkbfc cvs-co(README)
256 Gtk+ bash file chooser replacement.
257
258 <b>gtkbfc</b> is a hack that replaces the dreaded, slow and hard-to-use GTK+
259 file chooser by a rxvt-unicode window with a little script that lets you use
260 readline tab-completion to enter filenames.
261
262 Again, its a dire hack and will not work with all programs. It does work
263 for gimp, firefox, gedit at least, though.
264
265 CV cpan cvs-pod(bin/cv,) cvs-co(Changes)
266 Gtk2::CV is a perl module that implements an image viewer.
267
268 It comes with its own demo app, named <tt>cv</tt>, which is loosely
269 modeled after the classic <tt>xv</tt>, although it displays images much
270 faster than the great original. Stable releases are also found on CPAN.
271
272 kgsueme cpan list(kgsueme) cvs-co(Changes)
273 This perl module is about reverse engineering the
274 <a href="http://cvs.schmorp.de/kgsueme/doc/protocol.html">protocol</a>
275 (<a href="http://cvs.schmorp.de/kgsueme/doc/protocol.xml">xml source</a>)
276 of the popular <a href="http://kgs.kiseido.com">Kiseido Go Server</a>.
277
278 It features a sample Gtk+2 client (<a
279 href="http://kgsueme.schmorp.de/screenshot.jpg">screenshot</a>), a gtp
280 and a igs interface. It mostly focuses on documenting the protocol and
281 delivering a stable reference implementation which makes it easy to write
282 your own clients, bots and so on. It also contains Gtk2 modules for
283 KGS-independent rendering of beautiful Go boards. For a introduction to
284 the game of go, look <a href="http://playgo.to/interactive/">here</a>.
285
286 Net-Knuddels cvs-pod(Net/Knuddels.pm,)
287 This perl module provides an API for group communications using the
288 <a href="http://www.knuddels.de/">www.knuddels.de</a> protocol. It is outdated
289 and only provided as reference.
290
291 This module implements the knuddels.de chat protocol. Since it was created
292 the protocol changed in unknown ways, so this module no longer works. It is
293 provided as reference, though, in case the protocol didn't change much,
294 so one can learn about the protocol.
295 It could be used to write Knuddels clients, bots and even servers
296 (although the latter doesn't make much sense, the protocol is rather
297 ugly. If you want to implement your own group communication server, use
298 IRC instead).
299
300 Net-IRC3 dist cvs-pod(lib/Net/IRC3.pm,) cvs-co(Changes) cvs-co(samples/netirc3cl) cvs-co(samples/netirc3)
301 This module provides an alternative to the Net-IRC and Net-IRC2
302 modules. Its design rationale is offfering a 100% non-blocking
303 callback-based interface, RFC-compliant parsing and a lightweight
304 approach to modularity and reusability.
305
306 Net-IRC-Server cvs-pod(Net/IRC/Server.pm,)
307 This module provides a simple API for handling the IRC Protocol
308 aiming at implementing lightweight IRC-Servers.
309
310 PApp-SQL cpan cvs-pod(SQL.pm,)
311 Absolutely easy yet fast and powerful SQL access.
312
313 This module wraps the DBI prepare/bind/execute calls into a single "sql_exec" call,
314 complete with statement caching, so you get the efficiency of prepare, the safety
315 of using placeholders and the speed of bound result values in a simple call.
316
317 Example:
318
319 <pre>
320 my $st = sql_exec \my ($id, $name),
321 "select id, name from db where name like %",
322 "pfx%";
323 while ($st->fetch) {
324 print "$id $name\n";
325 }
326 </pre>
327
328 libcoro cvs-co(README) cvs-co(coro.h)
329 This C-library implements coroutines (cooperative multitasking) in a
330 portable fashion.
331
332 As long as your system implements the <tt>ucontext</tt> (Unix) or the
333 older <tt>sigaltstack</tt> interfaces it should work out of the box, with
334 minimal configuration (it consists of only a single <tt>.h</tt> and a
335 single <tt>.c</tt> file). It is known to run on a wide variety of unix
336 systems (SunOS, IRIX, GNU/Linux, HP-UX) and also on Windows, does not use
337 any assembly language and is architecture-independent.
338
339 cf.schmorp.de/server cvs-co(README) cvs-co(Changes) cvs-co(COPYING.Affero)
340 The <a href="http://www.deliantra.net/">Deliantra</a> game server.
341
342 Follow the link to <a href="http://www.deliantra.net/">Deliantra</a> for background info.
343
344 cf.schmorp.de/maps cvs-co(Changes) cvs-co(COPYING.Affero)
345 The <a href="http://www.deliantra.net/">Deliantra</a> game maps.
346
347 Follow the link to <a href="http://www.deliantra.net/">Deliantra</a> for background info.
348
349 cf.schmorp.de/arch cvs-co(Changes) cvs-co(COPYING.Affero)
350 The <a href="http://www.deliantra.net/">Deliantra</a> game resources.
351
352 Follow the link to <a href="http://www.deliantra.net/">Deliantra</a> for background info.
353
354 cf.schmorp.de/Deliantra-Client cvs-pod(bin/deliantra,) cvs-co(Changes)
355 A modern, fullscreen client for <a href="http://www.deliantra.net/">Deliantra</a>, written using Perl
356 and leveraging only OpenGL for display and thus being easily portable.
357 See its <a href="http://www.deliantra.net/client.html">homepage</a>.
358
359 To install it, you need <a href="http://www.libsdl.org">SDL</a>, <a href="http://www.libsdl.org/projects/SDL_mixer/">SDL_mixer</a>,
360 <a href="http://www.libsdl.org/projects/SDL_image/">SDL_image</a>, <a href="http://www.pango.org">PanGo</a> (with freetype2 and
361 cairo backends at the moment), and the BDB, AnyEvent, Pod::POM, EV and
362 <a href="http://software.schmorp.de/pkg/cf.schmorp.de/Deliantra.html">Deliantra</a> perl modules.
363
364 cf.schmorp.de/Deliantra
365 Perl module family for the <a href="http://www.deliantra.net/">Deliantra</a> game.
366
367 They can be used to read/write/cache archetypes, image packs and map files.
368 Follow the link to <a href="http://www.deliantra.net/">Deliantra</a> for background info.
369
370 cf.schmorp.de/gcrossedit cvs-pod(bin/gde,)
371 The <a href="http://www.deliantra.net/">Deliantra</a> editor, written in Perl + Gtk2.
372
373 The editor for the game Deliantra, written in Perl.
374 Follow the link to <a href="http://www.deliantra.net/">Deliantra</a> for background info.
375
376 cf.schmorp.de
377 <a href="http://www.deliantra.net/">Deliantra</a> server, archetypes, maps,
378 editor, client and support modules distribution.
379
380 Follow the link to <a href="http://www.deliantra.net/">Deliantra</a> for background info.
381
382 cfmaps
383 This is a collection of scripts that I use to create the <a
384 href="http://www.deliantra.net/">Deliantra</a> maps at <a
385 href="http://maps.deliantra.net/">maps.deliantra.net</a>.
386
387 They are not documented and somewhat specialised, but the scripts might
388 be of some use.
389
390 Faster cpan cvs-pod(Faster.pm,)
391 A perl module that makes perl run, well, faster, using a very primitive just in time compiler.
392
393 As the name implies, using this module makes your perl program run
394 faster. Actually, much slower initially, as it compiles every function
395 to C and later to a shared object, but then you can expect a performance
396 increase by 10-50%, depending on what your program does.
397
398 liblzf cvs-co(README) cvs-co(lzf.h)
399 LibLZF is a very small data compression library.
400
401 It consists of only two .c and two .h files and is very easy to
402 incorporate into your own programs. The compression algorithm is very,
403 very fast, yet still written in portable C. More info and the latest
404 release can be found at the <a href="http://liblzf.plan9.de">LibLZF
405 Homepage</a>.
406
407 root-tail cvs-co(README) cvs-co(Changes)
408 Full-featured program to print text directly to the X11 root window.
409
410 More info, screenshots, documentation and current releases can be found
411 at the <a href="http://root-tail.plan9.de">root-tail homepage</a>.
412
413 xcb cvs-co(README) cvs-co(Changes)
414 A fork of the unmaintained xcb (x cut buffers) program implementing better i18n.
415
416 lmainit cvs-co(NEWS)
417 A sysvinit replacement that can even be configured to be sysvinit-compliant.
418
419 See <a href="http://www.goof.com/pcg/marc/lmainit.html">its homepage</a> for more info.
420
421 Algorithm-FEC cpan cvs-pod(FEC.pm,) cvs-co(README.fec) cvs-co(Changes)
422 Perl module implementing forward error correction using Vandermonde matrices
423
424 AnyEvent cpan cvs-pod(lib/AnyEvent.pm,) cvs-co(Changes) cvs-pod(lib/AnyEvent/Impl/CoroEV.pm,AnyEvent::Impl::CoroEV) cvs-pod(lib/AnyEvent/Impl/CoroEvent.pm,AnyEvent::Impl::CoroEvent) cvs-pod(lib/AnyEvent/Impl/Coro.pm,AnyEvent::Impl::Coro) 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/POE.pm,AnyEvent::Impl::POE)
425 This module offers a simple API for I/O, timer, signal, child process
426 and completion events, independent of a specific event loop.
427
428 This module allows module authors to use those events internally without
429 forcing users of the module to use a specific event loop, without adding
430 noticable overhead. Currently supported event loops are EV, Coro::EV,
431 Event, Coro::Event, Glib/Gtk2, Tk, Qt, Event::Lib and POE (and thus also
432 WxWidgets and Prima). It contains a very fast (see benchmarks in the main
433 manual page) Pure Perl event loop and doesn't rely on XS, which ensures
434 that your program will always run even when no C-based event loop is
435 available.
436
437 AnyEvent-FastPing cpan cvs-pod(FastPing.pm,)
438 This module implements a very fast and relatively flexible
439 ping (ping as in icmp echo request).
440
441 This module allows you to quickly send ipv4 and ipv6 pings at a defined
442 rate to whole address ranges. It is fully event-driven (doesn't block
443 the perl interpreter) and can easily generate hundreds of thousands of
444 pings per second. Target specification is done by specifying one or
445 more address ranges, to which pings will be distributed according to a
446 least-load principle.
447
448 A command line utility (<tt>fastping</tt>) is included.
449
450 Audio-Play-MPG123 cpan cvs-pod(MPG123.pm,) cvs-co(Changes)
451 A Perl module implementing an interface to mpg123.
452
453 Compress-LZV1 cpan cvs-pod(LZV1.pm,) cvs-co(Changes)
454 A Perl module implementing the LZV1 compression algorithm. See
455 <tt>Compress::LZF</tt> for a better algorithm and module.
456
457 Convert-CD cvs-pod(lib/Convert/CD.pm,) cvs-pod(bin/cvtiso,cvtiso) cvs-co(doc/) cvs-co(Changes)
458 Unfinished Perl project implementing CD image formats. Extracting ISO images
459 already works.
460
461 Convert-Scalar cpan cvs-pod(Scalar.pm,) cvs-co(Changes)
462 Perl module to convert between different representations of Perl scalars.
463
464 Convert-UUlib cpan cvs-pod(UUlib.pm,) cvs-co(Changes)
465 Perl interface to the uulib library (a.k.a. uudeview/uuenview), which
466 allows easy decoding of multipart mime, uuencode and a whole lot of
467 differently encoded messages. You basically throw files at it, and
468 it extracts the files in them. This module is used by the popular <a
469 href="www.amavis.org">amavis virus scanner</a>.
470
471 Coro cpan cvs-pod(Coro.pm,) cvs-co(Changes)
472 A large Perl module family that implements cooperative multitasking in
473 Perl. It supports filehandle and event abstraction and also implements
474 continuations as well as the necessary directives to implement a slightly
475 limited call/cc in Perl.
476
477 Crypt-Twofish2 cpan cvs-pod(Twofish2.pm,) cvs-co(Changes)
478 A Perl module implementing the twofish encryption algorithm in Perl. It has
479 mostly been superceded by the Crypt::Twofish module. However, it supports
480 an easy and fast CBC mode natively.
481
482 Digest-Hashcash cpan cvs-pod(Hashcash.pm,) cvs-co(Changes)
483 Perl module to generate and parse <a href="http://www.hashcash.org">hashcashes</a>.
484 Follow the link to learn more. This module is currently faster than
485 the hashcash reference library.
486
487 EV cpan cvs-pod(EV.pm,) cvs-pod(../libev/ev.pod,libev-documentation) cvs-pod(EV/MakeMaker.pm) cvs-co(Changes)
488 A thin wrapper around <a href="/pkg/libev.html">libev</a>,
489 a high-performance event loop. Intended as a faster and less
490 buggy replacement for the Event perl module. Efficiently supports
491 very high number of timers, scalable operating system APIs such as
492 epoll, kqueue, solaris's ports, inotify, child/pid watchers and
493 much more.
494
495 A <a href="http://lists.schmorp.de/mailman/listinfo/libev">mailing
496 list</a> for discussion and support is now available.
497
498 EV-ADNS cpan cvs-pod(ADNS.pm,) cvs-co(Changes)
499 An asynchronous stub resolver that integrates efficiently into
500 the EV event loop. Uses adns/libadns as backend.
501
502 Net-SNMP-EV cpan cvs-pod(EV.pm,) cvs-co(Changes)
503 An adaptor that integrates the Net-SNMP Perl module into the EV event loop.
504 Loading it suffices to make background requests in EV programs.
505
506 libev cvs-co(README) cvs-pod(ev.pod) dist
507 A full-featured and high-performance (<a
508 href="http://libev.schmorp.de/bench.html">see benchmark</a>) event loop that
509 is loosely modelled after libevent, but without its limitations and bugs. It is
510 used, among others, in the <a href="http://savannah.gnu.org/projects/gvpe">GNU Virtual Private Ethernet</a> and
511 <a href="http://software.schmorp.de/pkg/rxvt-unicode.html">rxvt-unicode</a> packages, and in
512 the Deliantra MORPG Server and Client.
513
514 Features include child/pid watchers, periodic timers based on
515 wallclock (absolute) time (in addition to timers using relative
516 timeouts), as well as epoll/kqueue/event ports/inotify (for file watchers) support,
517 fast timer management, time jump detection and correction, and ease-of-use.
518 <p />
519 It can be used as a libevent replacement using its emulation API or
520 directly embedded into your programs without the need for complex
521 configuration support. A full-featured and well-documented
522 <a href="EV.html">perl interface</a> is also available.
523 <p />
524 A <a href="http://lists.schmorp.de/mailman/listinfo/libev">mailing
525 list</a> for discussion and support is now available.
526
527 libspf cvs-co(README)
528 Libspf is a C library that implements the <a
529 href="http://en.wikipedia.org/wiki/Sender_Policy_Framework"> Sender
530 Policy Framework</a>. It allows software to identify and reject forged
531 envelope-from addresses, a typical nuisance in e-mail spam. SPF is
532 defined in Experimental RFC 4408.
533
534 This is not the original home of libspf, but its author (apparently)
535 has vanished for a few years now, and this place took over as a central
536 place to collect patches and possibly make releases.
537 <p />
538 James Couzens, if you read this and want to take over, feel free to
539 contact <a href="mailto:libspf@schmorp.de">me</a>, I'd be thrilled :)
540
541 File-Rdiff cpan cvs-pod(Rdiff.pm,) cvs-co(Changes)
542 A Perl module that generates remote signatures and patches files using
543 librsync: basically your interface to librsync.
544
545 EV-Glib cpan cvs-pod(Glib.pm,) cvs-co(Changes)
546 This perl module embeds the default Glib mainloop into the EV event loop. This makes it
547 possible to use callbacks or modules using the Glib module (e.g. Gtk2 programs) within EV programs. Just
548 loading it suffices. See the <a href="/pkg/Glib-EV.html">Glib::EV</a> module for the reverse approach.
549
550 Glib-EV cpan cvs-pod(EV.pm,) cvs-co(Changes)
551 This perl module patches the default libglib main loop context to use the EV module. This makes
552 it possible to use callbacks or modules using the EV module within Glib and Gtk2 programs. Just
553 loading it suffices. See the <a href="/pkg/EV-Glib.html">EV::Glib</a> module for the reverse approach.
554
555 Glib-Event cpan cvs-pod(Event.pm,) cvs-co(Changes)
556 This perl module patches the default libglib main loop context to use the Event module. This makes
557 it possible to use callbacks or modules using the Event module within Glib and Gtk2 programs. Just
558 loading it suffices.
559
560 GPS
561 Undocumented, unreleased and unfinished-but-working interface to some GPS
562 devices in Perl.
563
564 Linux-DVB cpan cvs-pod(DVB.pm,) cvs-co(Changes)
565 A perl module that implements a very direct interface to the Linux DVB
566 API. Also contains utility functions to decode SI data.
567
568 Devel-FindRef cpan cvs-pod(FindRef.pm,) cvs-co(Changes)
569 A Perl module that tries to track down references to perl values. Can
570 be a great aid in debugging leak problems by showing where a value
571 is still being referenced.
572
573 BDB cpan cvs-pod(BDB.pm,) cvs-co(Changes)
574 A Perl module implementing an interface to BerkeleyDB versions 4.4 and later.
575 Unlike the BerkeleyDB and DB_File modules, this module has a much more
576 C-like interface exposing all the features of the underlying library
577 and also executes all database changes asynchronously using a thread pool.
578
579 IO-AIO cpan cvs-pod(AIO.pm,) cvs-co(Changes)
580 A Perl module that implements asynchronous I/O using pthreads. Apart
581 from AIO reading and writing, this module also allows asynchronous
582 <tt>stat</tt>, <tt>open</tt>, <tt>unlink</tt> (and more) calls,
583 which often are a substantial blocking problem. See also its (outdated)
584 brother <tt>Linux-AIO</tt>.
585
586 JSON-XS cpan cvs-pod(XS.pm,) cvs-co(Changes)
587 JSON::XS implements JSON (http://www.json.org) for Perl. Unlike other
588 modules, its primary goal is to encode to syntactically correct JSON and
589 flag invalid JSON while decoding. It ensures round-trip integrity of
590 datatypes while being intuitive to use. Currently being the fastest of the
591 JSON encoders available for Perl, it supports a variety of format options,
592 such as single-line, ASCII-only or pretty-printed and can be tuned for
593 speed or memory usage. It comes with a wealth of documentation describing
594 usage and implementation details.
595
596 Linux-AIO cpan cvs-pod(AIO.pm,) cvs-co(Changes)
597 A Perl module that implements asynchronous I/O using <tt>clone</tt>
598 on Linux. Apart from AIO reading and writing, this module also allows
599 asynchronous <tt>stat</tt>, <tt>open</tt> and <tt>close</tt> (and more)
600 calls, which often are a substantial problem. See also its (newer) brother
601 <tt>IO-AIO</tt>.
602
603 Linux-Inotify2 cpan cvs-pod(Inotify2.pm,) cvs-co(Changes)
604 A better/less buggy/more portable interface to the Linux Inotify
605 subsystem then what Linux::Inotify has to offer. Inotify lets you receive
606 file change, create, move etc. events for directories in files in a more
607 scalable fashion than dnotify, the older mechanism.
608
609 Linux-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)
610 A Perl module that helps implementing netblock block device servers and
611 set up NBD instances. A sample application allowing you to mount most CD
612 images is included.
613
614 Mozilla-Plugin
615 Undocumented, unreleased and unfinished-but-somewhat-working Perl plug-in
616 for Mozilla (Netscape, Opera, IE...), that allows embedding Tk, Gtk etc.
617 plugins directly in the browser.
618
619 Net-FCP cpan cvs-pod(FCP.pm,) cvs-co(Changes)
620 Perl module implementing the <a href="http://www.freenetproject.org">Freenet</a>
621 client protocol, including client-side Metadata handling and CHK Key generation.
622 Includes a mass downloader (similar to fuqid) as sample application.
623
624 Net-Whois-IP
625 Undocumented, unreleased and unfinished-but-somewhat-working Perl module
626 that tries to find the corresponding whois entry for a given IP, by querying
627 various registries.
628
629 OpenSSL
630 Undocumented, unreleased and unfinished-but-somewhat-working Perl module
631 interfacing to libssl.
632
633 PDL-Audio cpan cvs-pod(audio.pd,) cvs-co(Changes)
634 Perl module extending PDL with all sorts of audio functions for generating, analyzing,
635 loading and saving sounds. Ever so popular is the "birds" demo script :)
636
637 Tree-M cpan
638 Perl interface to the broken M-Tree library by these italian guys...
639
640 Video-Capture-V4l cpan cvs-co(README) cvs-co(Changes)
641 Full-featured interface to Video for Linux, including real-time grabbing
642 and jpeg compression, VPS etc. decoding and many sample scripts that
643 facilitate automatica sender search and detection, EPG decoding and
644 viewing and video grabbing.
645
646 XML-DB
647 Undocumented, unreleased and unfinished Perl module implementing an "XML
648 database", i.e. a tree-based database, on top of a conventional SQL
649 database.
650
651 basex
652 Very old, very portable ANSI-C program that implements something
653 that is similar to yencode. yencode is more "standard", so don't use this.
654
655 dinfo
656 Undocumented and working tools to extract the data from the D-Info CD.
657
658 syncmail
659 Unfinished, undocumented and not working.
660
661 thttpd
662 A personally hacked version of thttpd, suitable for lots of file
663 transfers (normal thttpd has problems with this).
664
665 wvsniff
666 Undocumented but nicely working wavelan sniffer that I wrote for use
667 with my cisco aironet card. If you get it working, praise yourself.
668
669 ermyth cvs-pod(doc/poddoc/documentation.pod) cvs-co(Changes)
670 This is a fork of Atheme IRC Services.
671
672 Ermyth IRC Services is a set of Services for IRC networks that allows
673 users to manage their channels in a secure and efficient way and
674 allows operators to manage various things about their networks.
675 Ermyth has been ported to C++ and goes its way using modern concepts
676 and the object oriented paradigm.
677
678 dhcpping cvs-pod(dhcping.pod,)
679 A version of dhcpping enhanced by <a href="mailto:marco@nethype.de">Marco Maisenhelder</a>
680 to support passing dhcp options. Intended to test dhcp server implementations.
681
682 AnyEvent-DNS cpan git-co(AnyEvent-DNS.git/Changes)
683 A non-blocking DNS resolver with AnyEvent using Net::DNS.
684
685 This Perl module is a simple wrapper around Net::DNS, which provides
686 a non-blocking interface to make DNS queries with Net::DNS.
687
688 AnyEvent-HTTPD cpan git-co(AnyEvent-HTTPD.git/Changes)
689 A simple and plain event based http web application server Perl module.
690
691 This is a very basic HTTP server that allows the user/programmer to install
692 hooks for URL paths to generate the output. It uses AnyEvent to be easily
693 embeddable into other applications. The main objective was to make it
694 easier to make simple HTTP frontends in Perl for Perl programs and Perl modules.
695
696 Object-Event cpan git-co(Object-Event.git/Changes)
697 A simple event callback API for Perl.
698
699 This is just a very simple event callback registration and call API
700 which new Perl classes can inherit. It's mainly used by Net::XMPP2.
701
702 Text-Edit cpan git-co(Text-Edit.git/Changes)
703 A Perl module which allows editing any text via an editor in a seperate process.
704
705 A utility Perl module that will start a terminal/editor for you and will
706 wait non-blocking for you to finish editing that file. Very useful to embed
707 content edititing in event based programs that have a AnyEvent compatible
708 event loop.
709
710 psycpp
711 A project that was aimed to implement a PSYC server in C++.
712
713 This is a mostly abandoned project at the moment, however, the repository
714 contains interesting C++ code that might be useful to someone, especially
715 the C++ JSON implementation might be of interest. The project is mostly
716 dead at the moment though...