ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/schmorpforge/genpage
Revision: 1.19
Committed: Sun May 11 13:10:06 2008 UTC (16 years, 1 month ago) by root
Branch: MAIN
Changes since 1.18: +1 -1 lines
Log Message:
*** empty log message ***

File Contents

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