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

Comparing cvsroot/schmorpforge/genpage (file contents):
Revision 1.74 by root, Tue Nov 16 02:03:54 2010 UTC vs.
Revision 1.83 by root, Thu Feb 17 04:35:58 2011 UTC

26 body { 26 body {
27 background: white; 27 background: white;
28 color: black; 28 color: black;
29 font-family: Arial, Helvetica, sans-serif; 29 font-family: Arial, Helvetica, sans-serif;
30 font-size: 12pt; 30 font-size: 12pt;
31 margin: 0;
32 padding: 0;
31 } 33 }
32 34
33 .bg-ede { background: url(/img/ede.jpg) no-repeat; padding: 20px; width: 100%; height: 82px; } 35 .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; } 36 .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; } 37 .bg-bluete { background: url(/img/bluete.jpg) no-repeat; padding: 20px; width: 100%; height: 148px; }
48 color: #034; 50 color: #034;
49 } 51 }
50 .short-desc { 52 .short-desc {
51 font-weight: bold; 53 font-weight: bold;
52 padding: 3px 3px 3px 8px; 54 padding: 3px 3px 3px 8px;
53 margin: 1em 1px 1px 13px; 55 margin: 0 1px 0 13px;
54 } 56 }
55 h2 { 57 h2 {
56 color: #069; 58 color: #069;
57 font-weight: bold; 59 font-weight: bold;
58 border: solid red; 60 border: solid red;
59 border-width: 0 0 0 12px; 61 border-width: 0 0 0 12px;
60 padding: 3px 3px 3px 8px; 62 padding: 3px 3px 3px 8px;
61 margin: 1em 1px 1px 1px; 63 margin: 0 1px 0 1px;
62 } 64 }
63 p { 65 p {
64 padding: 3px 3px 3px 8px; 66 padding: 3px 3px 3px 8px;
65 margin: 1em 1px 1px 13px; 67 margin: 0 1px 0 13px;
66 } 68 }
67 h3 { color: #034; } 69 h3 { color: #034; }
68 h4 { color: #034; } 70 h4 { color: #034; }
69 71
70 img { display: block; } 72 img { display: block; }
105 .overview th { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; } 107 .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; } 108 .overview td { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; }
107 109
108 hr.footer { display: none; } 110 hr.footer { display: none; }
109 .footer { font-size: 8pt; border-top: 1px solid red; } 111 .footer { font-size: 8pt; border-top: 1px solid red; }
112
113 .section { margin: 0 0 0 0; padding: 0.5em 4px 0.5em 4px; }
114 .section-header { background: white; }
115 .section-footer { background: white; }
116 .section-overview { background: white; }
117
118 .section-short-desc { background: white; }
119 .section-blurb { background: white; }
120 .section-resources { background: white; }
121 .section-documents { background: white; }
122 .section-about { background: white; }
123
110 </style> 124 </style>
111</head> 125</head>
112<body> 126<body>
127<div class='section section-header'>
113<p class='back'><a href='/'>Schmorpforge Ta-Sa Software Repository</a></p> 128<p class='back'><a href='/'>Schmorpforge Ta-Sa Software Repository</a></p>
114<h1 class="$_[1]">$_[0]</h1> 129<h1 class="$_[1]">$_[0]</h1>
115<div style="text-align: center; float: right; margin-left: 1em; margin-bottom: 1em"> 130<div style="text-align: center; float: right; margin-left: 1em; margin-bottom: 1em">
116<!-- 131<!--
117 <a title="Mach mit!" href="http://www.piratenpartei.de/navigation/politik/unsere-ziele"> 132 <a title="Mach mit!" href="http://www.piratenpartei.de/navigation/politik/unsere-ziele">
127 <img src="http://www.deliantra.net/images/deliantra.png" border="0" alt="Deliantra Free MMORPG" style="display: inline"/> 142 <img src="http://www.deliantra.net/images/deliantra.png" border="0" alt="Deliantra Free MMORPG" style="display: inline"/>
128 <br /> 143 <br />
129 The free as in beer, liberal, code &amp; content retro-style graphical MMORPG :) 144 The free as in beer, liberal, code &amp; content retro-style graphical MMORPG :)
130 </a> 145 </a>
131</div> 146</div>
147</div>
132EOF 148EOF
133} 149}
134 150
135sub ftr { 151sub ftr {
136 print <<EOF; 152 print <<EOF;
153<div class='section section-footer'>
137<hr class='footer'/> 154<hr class='footer'/>
138<p class='footer'> 155<p class='footer'>
139 Contact for this page: <a href="mailto:schmorpforge\@schmorp.de">Marc Lehmann &lt;schmorpforge\@schmorp.de&gt;</a>. 156 Contact for this page: <a href="mailto:schmorpforge\@schmorp.de">Marc Lehmann &lt;schmorpforge\@schmorp.de&gt;</a>.
140</p> 157</p>
158</div>
141</body> 159</body>
142</html> 160</html>
143EOF 161EOF
144} 162}
145 163
154 $desc =~ s/^(.*?)\n\s*\n//s 172 $desc =~ s/^(.*?)\n\s*\n//s
155 or die "malformed desc in $name: $desc"; 173 or die "malformed desc in $name: $desc";
156 174
157 my $short = $1; 175 my $short = $1;
158 176
177 (my $id = $name) =~ y%/%-%;
159 $index{$name} = "<tr><th id='$name'><a href='pkg/$name.html'>$name</a></th><td>$short</td></tr>"; 178 $index{$name} = "<tr><th id='$id'><a href='pkg/$name.html'>$name</a></th><td>$short</td></tr>";
160 179
161 open STDOUT, ">", "software.schmorp.de/pkg/$name.html" 180 open STDOUT, ">", "software.schmorp.de/pkg/$name.html"
162 or die "software.schmorp.de/pkg/$name.html: $!"; 181 or die "software.schmorp.de/pkg/$name.html: $!";
163 182
164 my $bg = (grep /cpan/, @args) ? "bg-perl" : "bg-ede"; 183 my $bg = (grep /cpan/, @args) ? "bg-perl" : "bg-ede";
165 hdr $name, $bg; 184 hdr $name, $bg;
166 185
167 print <<EOF; 186 print <<EOF;
187<div class='section section-short-desc'>
168<h2>$name</h1> 188<h2>$name</h2>
169<p class='short-desc'>$short</p> 189<p class='short-desc'>$short</p>
190</div>
170 191
192<div class='section section-blurb'>
171<h2>Blurb</h2> 193<h2>Blurb</h2>
172<p class='blurb'>$desc</p> 194<p class='blurb'>$desc</p>
195</div>
196
197<div class='section section-resources'>
173<h2>Resources</h2> 198<h2>Resources</h2>
174<table class='resources'> 199<table class='resources'>
175EOF 200EOF
176 if (grep /git/, @args) { 201 if (grep /git/, @args) {
177 print <<EOF; 202 print <<EOF;
218 } 243 }
219 244
220 my @irc; 245 my @irc;
221 246
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" 247 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"
248 if grep /dist(?!-)/, @args;
249 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; 250 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" 251 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; 252 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" 253 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; 254 if grep /cpan-elmex/, @args;
228 for (@args) { 255 for (@args) {
240 } 267 }
241 268
242 print "</table>"; 269 print "</table>";
243 270
244 if (my @files = grep $_, map /(cvs-co|cvs-pod|git-pod|git-co)\((\S+)\)/ && [$1, $2], @args) { 271 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'>"; 272 print "</div><div class='section section-documents'><h2>Additional Documents</h2><table class='resources'>";
246 273
247 for (@files) { 274 for (@files) {
248 my ($type, $arg) = @$_; 275 my ($type, $arg) = @$_;
249 276
250 if ($type eq "cvs-co") { 277 if ($type eq "cvs-co") {
266 } 293 }
267 } 294 }
268 295
269 print "</table>"; 296 print "</table>";
270 } 297 }
298 print "</div>";
271 299
272 ftr; 300 ftr;
273} 301}
274 302
275open STDOUT, ">software.schmorp.de/index.html"; 303open STDOUT, ">software.schmorp.de/index.html";
276 304
277hdr "Project List", "bg-bluete"; 305hdr "Project List", "bg-bluete";
278 306
279print <<EOF; 307print <<EOF;
280 308
309<div class='section section-about'>
281<h2>About</h2> 310<h2>About</h2>
282<p class='blurb'>This page briefly documents the Schmorpforge Ta-Sa Software Repository and 311<p class='blurb'>This page briefly documents the Schmorpforge Ta-Sa Software Repository and
283lists all projects available here.</p> 312lists all projects available here.</p>
313</div>
284 314
315<div class='section section-resources'>
285<table class='resources'> 316<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> 317<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> 318<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> 319<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> 320<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>--> 321<!--<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 322
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>--> 323<!--<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> 324<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> 325</table>
326</div>
298 327
328<div class='section section-overview'>
299<h2>Project List</h2> 329<h2>Project List</h2>
300<table class='overview'> 330<table class='overview'>
301EOF 331EOF
302 332
303print $index{$_} for sort { (lc $a) cmp (lc $b) } keys %index; 333print $index{$_} for sort { (lc $a) cmp (lc $b) } keys %index;
304 334
305print "</table>"; 335print "</table></div>";
306ftr; 336ftr;
307 337
308__DATA__ 338__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) 339rxvt-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. 340 rxvt-unicode is a fork of the well known terminal emulator rxvt.
405 delivering a stable reference implementation which makes it easy to write 435 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 436 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 437 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>. 438 the game of go, look <a href="http://playgo.to/interactive/">here</a>.
409 439
440App-Staticperl cpan cvs-pod(bin/staticperl,) cvs-co(Changes)
441 Perl, libc, 100 modules - all in one self-contained 500kb executable.
442
443 App::Staticperl installs a helper script that allows you to install a
444 statically linked (or linkable) perl distribution, install additional
445 modules, and create new perl interpreters with just the selection of
446 modules you need. It is also possible to just create the C source files
447 needed to embed this custom interpreter into your own programs.<p />
448
449 Two pre-built perl binaries (for Linux on x86 or amd64) which
450 include some highly subjective package selections are available as
451 <a href="http://staticperl.schmorp.de/smallperl.html">smallperl</a>
452 and
453 <a href="http://staticperl.schmorp.de/bigperl.html">bigperl</a>.
454
410Net-Knuddels cvs-pod(Net/Knuddels.pm,) 455Net-Knuddels cvs-pod(Net/Knuddels.pm,)
411 This perl module provides an API for group communications using the 456 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 457 <a href="http://www.knuddels.de/">www.knuddels.de</a> protocol. It is outdated
413 and only provided as reference. 458 and only provided as reference.
414 459
623 A perl module implementing a Freenet Client Protocol 2.0 client. 668 A perl module implementing a Freenet Client Protocol 2.0 client.
624 669
625AnyEvent-GPSD cpan cvs-pod(GPSD.pm,) list(anyevent) irc(anyevent) 670AnyEvent-GPSD cpan cvs-pod(GPSD.pm,) list(anyevent) irc(anyevent)
626 A perl module implementing an AnyEvent client for the (pre-xml) GPSD protocol. 671 A perl module implementing an AnyEvent client for the (pre-xml) GPSD protocol.
627 672
628AnyEvent-Porttracker cpan cvs-pod(Porttracker.pm,) list(anyevent) irc(anyevent) 673AnyEvent-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. 674 A perl module implementing a client for the Porttracker/PortIQ API protocol.
630 675
631AnyEvent-SNMP cpan cvs-pod(SNMP.pm,) list(anyevent) irc(anyevent) 676AnyEvent-SNMP cpan cvs-pod(SNMP.pm,) list(anyevent) irc(anyevent)
632 A perl module that transparently integrates Net::SNMP into AnyEvent. 677 A perl module that transparently integrates Net::SNMP into AnyEvent.
633 678
807 852
808libev cvs-co(README) cvs-pod(ev.pod) dist list(libev) 853libev cvs-co(README) cvs-pod(ev.pod) dist list(libev)
809 A full-featured and high-performance (<a 854 A full-featured and high-performance (<a
810 href="http://libev.schmorp.de/bench.html">see benchmark</a>) event loop that 855 href="http://libev.schmorp.de/bench.html">see benchmark</a>) event loop that
811 is loosely modelled after libevent, but without its limitations and bugs. It is 856 is loosely modelled after libevent, but without its limitations and bugs. It is
812 used, among others, in the <a href="http://savannah.gnu.org/projects/gvpe">GNU Virtual Private Ethernet</a> and 857 used, among others, in the <a href="gvpe.html">GNU Virtual Private Ethernet</a> and
813 <a href="http://software.schmorp.de/pkg/rxvt-unicode.html">rxvt-unicode</a> packages, and in 858 <a href="rxvt-unicode.html">rxvt-unicode</a> packages, and in
814 the Deliantra MORPG Server and Client. 859 the Deliantra MORPG Server and Client.
815 860
816 Features include child/pid watchers, periodic timers based on wallclock 861 Features include child/pid watchers, periodic timers based on wallclock
817 (absolute) time (in addition to timers using relative timeouts), as well 862 (absolute) time (in addition to timers using relative timeouts), as well
818 as epoll/kqueue/event ports/inotify/eventfd/signalfd support, fast timer 863 as epoll/kqueue/event ports/inotify/eventfd/signalfd support, fast timer
824 configuration support. A full-featured and well-documented 869 configuration support. A full-featured and well-documented
825 <a href="EV.html">perl interface</a> is also available. 870 <a href="EV.html">perl interface</a> is also available.
826 <p /> 871 <p />
827 A <a href="http://lists.schmorp.de/mailman/listinfo/libev">mailing 872 A <a href="http://lists.schmorp.de/mailman/listinfo/libev">mailing
828 list</a> for discussion and support is now available. 873 list</a> for discussion and support is now available.
874
875gvpe dist-gnu
876 GVPE creates a virtual ethernet network with multiple nodes using a
877 variety of transport protocols. Participating nodes do not need to trust
878 each other.
879
880 GVPE creates a virtual ethernet (broadcasts supported, any protocol that
881 works with a normal ethernet should work with GVPE) by creating encrypted
882 host-to-host tunnels between multiple endpoints.
883 <p />
884 Unlike other virtual private "network" solutions which merely create a
885 single tunnel, GVPE creates a real network with multiple endpoints.
886 <p />
887 It is designed to be very simple and robust (cipher selection done at
888 compiletime etc.), and easy to setup (only a single config file shared
889 unmodified between all hosts).
890 <p />
891 VPN hosts can neither sniff nor fake packets, that is, you can use
892 MAC-based filtering to ensure authenticity of packets even from member
893 nodes.
894 <p />
895 GVPE can also be used to tunnel into some vpn network using a variety of
896 protocols (raw IP, UDP, TCP, HTTPS-proxy-connect, ICMP and DNS). It is,
897 however, primarily designed to sit on the gateway machines of company
898 branches to connect them together.
829 899
830libeio dist cvs-pod(eio.pod,) cvs-co(eio.h) cvs-co(demo.c) cvs-co(Changes) list(libev) 900libeio 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). 901 Event-based fully asynchronous I/O library for C (used by IO::AIO).
832 Currently in BETA! 902 Currently in BETA!
833 903

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines