The natural history of a software application, its life story, was for a long time known only to those behind the walls of the company who owned it. If one moves from working entirely with commercial software, to the world of free and open source software, it is quickly evident that projects evolve out in the open, where any major change in their direction or personnel is public knowledge. If an application is "forked," or split off into two projects with two distinct teams, then that too is announced far and wide.
Pronto (http://www.muhri.net/pronto), an MUA (Mail User Agent) written entirely in Perl, is the result of such a fork. It is the descendant of CSCMail (http://www.cscmail.net), whose author decided earlier this year to initiate a rewrite of CSCMail in C, the lingua franca of Unix computing. The balance of the CSCMail team, (everyone except its principal author,) remained dedicated to the Perl version, and Pronto was born as a fork of CSCMail. The readme file included with Pronto's source code provides some of the flavor of the event:
- "...several of us did not think it was time for CSCMail to make the leap [to] C and just enjoy hacking in Perl. So, we continued development of CSCMail in Perl, and just called it Pronto to distinguish the [Perl} effort from the current efforts of the developers of CscMail."
Getting ProntoA familiar hallmark of good Unix and Linux applications is that they are initially somewhat tricky to set up, but once properly installed, they run very reliably. If they ever they need to be reconfigured or reinstalled, a return "refresher" trip to the documentation is often required; it's easy to forget the setup details of an application that never requires any fussing once it's installed. Pronto has this characteristic, although much of the trickiness of its installation has been alleviated by a clever Perl install script. A "manual" installation from the source code tar ball is possible, but since Pronto brings together three of its host's major software systems, Perl, MySQL, and Gnome, it has some unusual software prerequisites, and the Installer, as it's termed, will automatically retrieve almost all that is needed to meet these prerequisites.
Debian users who are following "Woody," the current "unstable" or developmental tree, can simply "apt-get pronto" and be off and running. Also, there are debs in Woody for the MySQL and PostgreSQL Perl modules. Users of other distributions may find packaged versions of Pronto, but this author can only vouch for Debian's. Unfortunately, the gnome-perl bindings required by Pronto are not available in deb format, but for the typical Debian user, getting and installing these will present no difficulty.
The Installer requires an active Internet connection, since it downloads the needed software on the fly, including Pronto itself. The installer script can be kept anywhere in the file system, because it will always create its "build" directory in /root/prontobuild/; as root superuser, start the Installer like this:
First the gnome-perl bindings are downloaded and installed, since it is unlikely these are already on the host, even if it has a fairly complete Gnome desktop already installed. (Again, Pronto does not require Gnome.) Then the host's Perl installation is examined for the needed Perl modules, and if any are missing they are downloaded and installed. Lastly Pronto itself, either in tar ball or rpm format, is downloaded and installed; if tar ball is chosen there is an opportunity to set Pronto's installation prefix: for instance, /usr/local/.
# perl ProntoInstaller.pl
There is one glitch in the installation process, but it is easily circumvented. Pronto needs the HTML::Parser Perl module, but this module has had a recent rewrite and needs to query the user during its build about some new experimental Unicode support. The Installer will hang at this point and display a message, "Waiting for user input," but it is easy to get back on track. First issue a 'Ctrl-C' to halt the Installer, and then manually install HTML::Parser by doing the following (say "no" to the query when it pops up):
Then restart the Installer. It will note HTML::Parser's presence and move through the rest of the installation. As of ver. 2.2.2 (2.2.1 is the current) this detour will be rectified.
# cd /root/prontobuild/HTML-Parser-3.13/
# perl Makefile.PL
# make install
HTML WidgetsPronto's message viewing pane can be either a plain text widget, or one of three possible HTML widgets. All four widgets will display message quoting in color, with different colors for different quoting "depths." The default HTML widget, GtkXmHTML, built automatically by the Installer, will display clicked URLs in a user-defined Web browser such as Netscape. One of Pronto's nicer features, its "minibrowser," requires either of the other two HTML widgets, GtkHTML or CscHTML. The minibrowser is a scaled down HTML file viewer, which some users will prefer for viewing URLs found in e-mail messages rather than launching a full scale browser such as Netscape. GtkHTML can be installed by revisiting the /root/prontobuild/ directory, CDing to the gnome-perl/GtkHTML/ subdirectory, and issuing the commands used above to install the HTML-Parser module. CscHTML can be downloaded from its home page at http://www.cscmail.net/cschtml. Interestingly enough, the author found that the older CscHTML widget rendered some HTML better than GtkHTML, but by all accounts the latter is the more advanced of the two.