CGI scripts =========== check-pkg CGI script that performs the same checks as upload-pkg, but does not actually perform the upload. upload-pkg CGI script to upload a Cabal package to the database. It is installed in a subdirectory so that it can be protected by HTTP authentication. package CGI script to describe an individual package, from the package's .cabal file. The output may contain references to the package script for prerequisite packages. Auxiliary programs ================== post-upload-hook Shell script invoked by upload-pkg after the package is added. pkg-list Program to generate the package listing, invoked by post-upload-hook, which sends its output to archive/pkg-list.html. This output page contains references to the package script. Installing this on another system for testing ============================================= * Copy darcs.haskell.org:/srv/www/hackage.haskell.org/public_html/packages/{archive,hackage.css,hackage.html,upload.html} to a directory called "packages" directly under the document root for your web server. (It can be elsewhere, but you'd have to change more.) * Make archive and everything under it writable by the web server process (UID www-data for apache). * Set up a directory for CGI scripts, with a subdirectory "protected". There'll be no password protection on upload-pkg, but that's not needed for testing. * Pick a bin directory writable by you to hold post-upload-hook and pkg-list. * Modify the paths at the head of your copy of Makefile, post-upload-hook and Locations.hs to suit. * To track the state of hackage packages in Distributions, you need to fill the files /srv/www/hackage.haskell.org/public_html/packages/tmp/distromap-$distro.txt At the moment, only Debian is supported. You can fetch the files via wget http://people.debian.org/~nomeata/cabalDebianMap.txt -O \ /srv/www/hackage.haskell.org/public_html/packages/archive/distromap-Debian.txt and use the "splitDistroMap" program to put the information in the right per-package files. These two commands are called regularly when the documentation is updated.