#!/usr/bin/perl
umask 022;
mkdir "software.schmorp.de", 0755;
mkdir "software.schmorp.de/pkg", 0755;
mkdir "software.schmorp.de/img", 0755;
system "rsync -av *.jpg software.schmorp.de/img/";
sub hdr($$) {
print < Schmorpforge Ta-Sa Software Repository$_[0]
EOF
}
sub ftr {
print < ";
open STDOUT, ">", "software.schmorp.de/pkg/$name.html"
or die "software.schmorp.de/pkg/$name.html: $!";
if (grep /cpan/, @args) {
hdr $name, "bg-perl";
} else {
hdr $name, "bg-ede";
}
print <$name $short
$desc
The warning cvs checkout: warning: cannot write to history file /schmorpforge/CVSROOT/history: Permission denied is expected and harmless, just ignore it. It simply means you have no write access to the repository.
The CVS server moved again on 2008-02-21, you can use the following (untested) snippet to update your CVS checkout. Run it in the top level checked out directory: br>
find . -name CVS | xargs -I% find % -name Root | xargs perl -i -pe 's%:pserver:anonymous\\\@cvs.schmorp.de:636/schmorpforge%:pserver:anonymous\\\@cvs.schmorp.de:/schmorpforge%'
Projects listed on this page:
If you have a problem, please have a look at the FAQ first.
Its main features (many of them unique) over rxvt are:my $st = sql_exec \my ($id, $name), "select id, name from db where name like %", "pfx%"; while ($st->fetch) { print "$id $name\n"; }libcoro cvs-co(README) cvs-co(coro.h) This C-library implements coroutines (cooperative multitasking) in a portable fashion. As long as your system implements the ucontext (Unix) or the older sigaltstack interfaces it should work out of the box, with minimal configuration (it consists of only a single .h and a single .c file). It is known to run on a wide variety of unix systems (SunOS, IRIX, GNU/Linux, HP-UX) and also on Windows, does not use any assembly language and is architecture-independent. deliantra/server cvs-co(README) cvs-co(Changes) cvs-co(COPYING.Affero) The Deliantra game server. Follow the link to Deliantra for background info. deliantra/maps cvs-co(Changes) cvs-co(COPYING.Affero) The Deliantra game maps. Follow the link to Deliantra for background info. deliantra/arch cvs-co(Changes) cvs-co(COPYING.Affero) The Deliantra game resources. Follow the link to Deliantra for background info. deliantra/Deliantra-Client cvs-pod(bin/deliantra,) cvs-co(Changes) A modern, fullscreen client for Deliantra, written using Perl and leveraging only OpenGL for display and thus being easily portable. See its homepage. To install it, you need SDL, SDL_mixer, SDL_image, PanGo (with freetype2 and cairo backends at the moment), and the BDB, AnyEvent, Pod::POM, EV and Deliantra perl modules. deliantra/Deliantra Perl module family for the Deliantra game. They can be used to read/write/cache archetypes, image packs and map files. Follow the link to Deliantra for background info. deliantra/gcrossedit cvs-pod(bin/gde,) The Deliantra editor, written in Perl + Gtk2. The editor for the game Deliantra, written in Perl. Follow the link to Deliantra for background info. deliantra Deliantra server, archetypes, maps, editor, client and support modules distribution. Follow the link to Deliantra for background info. cfmaps This is a collection of scripts that I use to create the Deliantra maps at maps.deliantra.net. They are not documented and somewhat specialised, but the scripts might be of some use. Faster cpan cvs-pod(Faster.pm,) A perl module that makes perl run, well, faster, using a very primitive just in time compiler. As the name implies, using this module makes your perl program run faster. Actually, much slower initially, as it compiles every function to C and later to a shared object, but then you can expect a performance increase by 10-50%, depending on what your program does. liblzf cvs-co(README) cvs-co(lzf.h) LibLZF is a very small data compression library. It consists of only two .c and two .h files and is very easy to incorporate into your own programs. The compression algorithm is very, very fast, yet still written in portable C. More info and the latest release can be found at the LibLZF Homepage. root-tail cvs-co(README) cvs-co(Changes) Full-featured program to print text directly to the X11 root window. More info, screenshots, documentation and current releases can be found at the root-tail homepage. xcb cvs-co(README) cvs-co(Changes) A fork of the unmaintained xcb (x cut buffers) program implementing better i18n. lmainit cvs-co(NEWS) A sysvinit replacement that can even be configured to be sysvinit-compliant. See its homepage for more info. Algorithm-FEC cpan cvs-pod(FEC.pm,) cvs-co(README.fec) cvs-co(Changes) Perl module implementing forward error correction using Vandermonde matrices AnyEvent cpan cvs-pod(lib/AnyEvent.pm,) cvs-co(Changes) cvs-pod(lib/AnyEvent/Util.pm,AnyEvent::Util) cvs-pod(lib/AnyEvent/Handle.pm,AnyEvent::Handle) cvs-pod(lib/AnyEvent/Socket.pm,AnyEvent::Socket) cvs-pod(lib/AnyEvent/DNS.pm,AnyEvent::DNS) cvs-pod(lib/AnyEvent/Impl/EV.pm,AnyEvent::Impl::EV) cvs-pod(lib/AnyEvent/Impl/Event.pm,AnyEvent::Impl::Event) cvs-pod(lib/AnyEvent/Impl/Glib.pm,AnyEvent::Impl::Glib) cvs-pod(lib/AnyEvent/Impl/Tk.pm,AnyEvent::Impl::Tk) cvs-pod(lib/AnyEvent/Impl/Perl.pm,AnyEvent::Impl::Perl) cvs-pod(lib/AnyEvent/Impl/Qt.pm,AnyEvent::Impl::Qt) cvs-pod(lib/AnyEvent/Impl/EventLib.pm,AnyEvent::Impl::EventLib) cvs-pod(lib/AnyEvent/Impl/POE.pm,AnyEvent::Impl::POE) This module offers a simple API for I/O, timer, signal, child process and completion events, independent of a specific event loop. This module allows module authors to use those events internally without forcing users of the module to use a specific event loop, without adding noticable overhead. Currently supported event loops are EV, Event, Glib/Gtk2, Tk, Qt, Event::Lib and POE (and thus also WxWidgets and Prima). It contains a very fast (see benchmarks in the main manual page) Pure Perl event loop and doesn't rely on XS, which ensures that your program will always run even when no C-based event loop is available. In addition to the event core (which might be all you need), AnyEvent comes with an optional, fully asynchronous, pure-perl DNS resolver library supporting UDP, TCP and EDNS0, with many utility functions to "just resolve" stuff without having to instantiate even a resolver object (and including an equivalent of C
Libeio is a full-featured asynchronous I/O library for C, modelled in similar style and spirit as libev. Features include: asynchronous read, write, open, close, stat, unlink, fdatasync, mknod, readdir etc. (basically the full POSIX API). sendfile (native on solaris, linux, hp-ux, freebsd, emulated everywehere else), readahead (emulated where not available).
It is fully event-library agnostic and can easily be integrated into any event-library (or used standalone, even in polling mode). It is very portable and relies only on POSIX threads.
Its code, documentation, integration and portability quality is currently below that of libev, but should soon be ready for use in production environments.
libspf cvs-co(README) Libspf is a C library that implements the Sender Policy Framework. It allows software to identify and reject forged envelope-from addresses, a typical nuisance in e-mail spam. SPF is defined in Experimental RFC 4408. This is not the original home of libspf, but its author (apparently) has vanished for a few years now, and this place took over as a central place to collect patches and possibly make releases. James Couzens, if you read this and want to take over, feel free to contact me, I'd be thrilled :) File-Rdiff cpan cvs-pod(Rdiff.pm,) cvs-co(Changes) A Perl module that generates remote signatures and patches files using librsync: basically your interface to librsync. EV-Glib cpan cvs-pod(Glib.pm,) cvs-co(Changes) This perl module embeds the default Glib mainloop into the EV event loop. This makes it possible to use callbacks or modules using the Glib module (e.g. Gtk2 programs) within EV programs. Just loading it suffices. See the Glib::EV module for the reverse approach. Glib-EV cpan cvs-pod(EV.pm,) cvs-co(Changes) This perl module patches the default libglib main loop context to use the EV module. This makes it possible to use callbacks or modules using the EV module within Glib and Gtk2 programs. Just loading it suffices. See the EV::Glib module for the reverse approach. Glib-Event cpan cvs-pod(Event.pm,) cvs-co(Changes) This perl module patches the default libglib main loop context to use the Event module. This makes it possible to use callbacks or modules using the Event module within Glib and Gtk2 programs. Just loading it suffices. GPS Undocumented, unreleased and unfinished-but-working interface to some GPS devices in Perl. Linux-DVB cpan cvs-pod(DVB.pm,) cvs-co(Changes) A perl module that implements a very direct interface to the Linux DVB API. Also contains utility functions to decode SI data. Devel-FindRef cpan cvs-pod(FindRef.pm,) cvs-co(Changes) A Perl module that tries to track down references to perl values. Can be a great aid in debugging leak problems by showing where a value is still being referenced. BDB cpan cvs-pod(BDB.pm,) cvs-co(Changes) A Perl module implementing an interface to BerkeleyDB versions 4.4 and later. Unlike the BerkeleyDB and DB_File modules, this module has a much more C-like interface exposing all the features of the underlying library and also executes all database changes asynchronously using a thread pool. IO-AIO cpan cvs-pod(AIO.pm,) cvs-co(Changes) A Perl module that implements asynchronous I/O using pthreads. Apart from AIO reading and writing, this module also allows asynchronous stat, open, unlink (and more) calls, which often are a substantial blocking problem. See also its (outdated) brother Linux-AIO. JSON-XS cpan cvs-pod(XS.pm,) cvs-co(Changes) JSON::XS implements JSON (http://www.json.org) for Perl. Unlike other modules, its primary goal is to encode to syntactically correct JSON and flag invalid JSON while decoding. It ensures round-trip integrity of datatypes while being intuitive to use. Currently being the fastest of the JSON encoders available for Perl, it supports a variety of format options, such as single-line, ASCII-only or pretty-printed and can be tuned for speed or memory usage. It comes with a wealth of documentation describing usage and implementation details. Linux-AIO cpan cvs-pod(AIO.pm,) cvs-co(Changes) A Perl module that implements asynchronous I/O using clone on Linux. Apart from AIO reading and writing, this module also allows asynchronous stat, open and close (and more) calls, which often are a substantial problem. See also its (newer) brother IO-AIO. Linux-Inotify2 cpan cvs-pod(Inotify2.pm,) cvs-co(Changes) A better/less buggy/more portable interface to the Linux Inotify subsystem then what Linux::Inotify has to offer. Inotify lets you receive file change, create, move etc. events for directories in files in a more scalable fashion than dnotify, the older mechanism. 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) A Perl module that helps implementing netblock block device servers and set up NBD instances. A sample application allowing you to mount most CD images is included. Mozilla-Plugin Undocumented, unreleased and unfinished-but-somewhat-working Perl plug-in for Mozilla (Netscape, Opera, IE...), that allows embedding Tk, Gtk etc. plugins directly in the browser. Net-FCP cpan cvs-pod(FCP.pm,) cvs-co(Changes) Perl module implementing the Freenet client protocol, including client-side Metadata handling and CHK Key generation. Includes a mass downloader (similar to fuqid) as sample application. Net-Whois-IP Undocumented, unreleased and unfinished-but-somewhat-working Perl module that tries to find the corresponding whois entry for a given IP, by querying various registries. OpenSSL Undocumented, unreleased and unfinished-but-somewhat-working Perl module interfacing to libssl. PDL-Audio cpan cvs-pod(audio.pd,) cvs-co(Changes) Perl module extending PDL with all sorts of audio functions for generating, analyzing, loading and saving sounds. Ever so popular is the "birds" demo script :) Tree-M cpan Perl interface to the broken M-Tree library by these italian guys... Video-Capture-V4l cpan cvs-co(README) cvs-co(Changes) Full-featured interface to Video for Linux, including real-time grabbing and jpeg compression, VPS etc. decoding and many sample scripts that facilitate automatica sender search and detection, EPG decoding and viewing and video grabbing. XML-DB Undocumented, unreleased and unfinished Perl module implementing an "XML database", i.e. a tree-based database, on top of a conventional SQL database. basex Very old, very portable ANSI-C program that implements something that is similar to yencode. yencode is more "standard", so don't use this. dinfo Undocumented and working tools to extract the data from the D-Info CD. syncmail Unfinished, undocumented and not working. thttpd A personally hacked version of thttpd, suitable for lots of file transfers (normal thttpd has problems with this). wvsniff Undocumented but nicely working wavelan sniffer that I wrote for use with my cisco aironet card. If you get it working, praise yourself. ermyth cvs-pod(doc/poddoc/documentation.pod) cvs-co(Changes) This is a fork of Atheme IRC Services. Ermyth IRC Services is a set of Services for IRC networks that allows users to manage their channels in a secure and efficient way and allows operators to manage various things about their networks. Ermyth has been ported to C++ and goes its way using modern concepts and the object oriented paradigm. dhcpping cvs-pod(dhcping.pod,) A version of dhcpping enhanced by Marco Maisenhelder to support passing dhcp options. Intended to test dhcp server implementations. AnyEvent-HTTPD cpan-elmex git-pod(lib/AnyEvent/HTTPD.pm,) git-co(Changes) A simple and plain event based http web application server Perl module. This is a very basic HTTP server that allows the user/programmer to install hooks for URL paths to generate the output. It uses AnyEvent to be easily embeddable into other applications. The main objective was to make it easier to make simple HTTP frontends in Perl for Perl programs and Perl modules. Object-Event cpan-elmex git-pod(lib/Object/Event.pm,) git-co(Changes) A simple event callback API for Perl. This is just a very simple event callback registration and call API which new Perl classes can inherit. It's mainly used by Net::XMPP2. AnyEvent-EditText cpan-elmex git-pod(lib/AnyEvent/EditText.pm,) git-co(Changes) A Perl module which allows editing any text via an editor in a seperate process. A utility Perl module that will start a terminal/editor for you and will wait non-blocking for you to finish editing that file. Very useful to embed content edititing in event based programs that have a AnyEvent compatible event loop. psycpp A project that was aimed to implement a PSYC server in C++. This is a mostly abandoned project at the moment, however, the repository contains interesting C++ code that might be useful to someone, especially the C++ JSON implementation might be of interest. The project is mostly dead at the moment though... gtm git-co(README) GT.M Database GT.M is a a vetted, industrial strength, transaction processing application platform consisting of a database engine optimized for high TP throughput and a compiler for the M (aka MUMPS) programming language.