Tasks
Stuff that needs doing. Tasks with no "owner" are open. To "claim" a task, edit this page and add your name as "owner", and email your thoughts to the amanda-hackers list. Other hackers will be happy to help. If you have other tasks, please add them here, following the pattern below.
Perlification
There is no shortage of stuff to rewrite in Perl. This is just a sampling of the "low-hanging fruit".
Update amtoc
amtoc is already in Perl, but it parses logfiles directly. Update it to be more readable, to use Amanda::DB::Catalog to read the logfile, and to produce correct output. It will need new unit tests.
Rewrite amlabel
amlabel is fairly simple: use the changer to load the correct tape, check for an existing label, and write a new label. It will need new unit tests.
Rewrite amtape
amtape is basically a user-friendly interface to the tape changer, and should be easy to rewrite in Perl. It will need new unit tests.
Write Amanda-Holding
The holding module (in server-src/holding.[ch]) needs to be interfaced to Perl, after which amcleanupdisk can be rewritten in Perl. The new module should come complete with POD and unit tests.
Build Process
More portable Perl extension building
The current build process uses the -I flags from perl to find perl.h, but then uses Libtool to do the final linking. This seems to work on most platforms, but there may be a better way. The problem with using MakeMaker, Module::Install or Module::Build is that they assume that the compiler which built perl is still available. This is not the case on platforms like Solaris. A "hybrid" solution -- which tests the native-perl method, and falls back to the current Libtool method -- may be best.
Simplify Perl Automake rules
The Makefile.am stanza to build a perl extension from a SWIG input file is too long. Ideally, this could be expressed in a few lines giving only the source file and binary dependencies of the extension.
Translation
Amanda is (mostly) internationalized, and ready to have translations plugged in. Add a task here for each new locale.
I18n for Perl
To his shame, Dustin has been furiously writing un-internationalized Perl. This means that, at the moment, Perl applications won't respect any translations. Clearly, that should change!
German Translation
German is as good a first translation as any, and will work the kinks out of the translation process, paving the way for other locales.