Web Server Utility Sources
(This page needs updating. Please update it.)
To maintain the GNU project web server, we use a lot of different free software. Most of them are already available on the Internet, but we also have some software which has been developed by GNU volunteers and has never been released as GNU software, because they are somewhat specific to our needs. Still, we feel that those programs should also be made available so that others can make use of them. This page is a list of such programs.
CVS Tree
We recommend storing the scripts in the usual www CVS tree. This allows easier sharing between GNU machines that maintain a full or partial image of the www.gnu.org web. See the Savannah CVS page, the “Webpages repository” information.
rotate-log
- Author: Noah Friedman
- Current version: 1.12
This is a shell script with the purpose of rotating accounting logs and to optionally compress old log files. A somewhat more limited script similar in operation to this is included in most Debian GNU/Linux distributions.
diffmon
- Source code (15kbyte)
- Example configuration file
- Author: Noah Friedman
- Current version: 1.19
This is another shell script with the purpose of making diff's of files when they change and to send an email informing about the change to a list of recipients. This script is used to keep administrators aware of changes to the configuration of the webserver and other servers. It is also used to inform editors of translations of GNU web pages into other languages about changes to the original English document.
webref
- Author: Tim Bedding
- Current version: 1.0
This is a program made in Emacs LISP that is used to check references in HTML documents. It takes the file input.txt as input which contains a list of HTML documents and outputs te file output.txt. The output file contains information of documents which can not be reached at all and documents which can only be reached by following more than two links. We use this to make sure that all important documents can be reached fairly easy from the main page.
new-software
- Source code
- Author: Jonas Oberg
- Current version: 1.0
This shell script creates a webpage with a list of the last 25 software releases and their ChangeLog on the FSF's FTP server.
symlinks
- Source code
- Author: Loic Dachary
- Current version: 1.1
The primary goal is to cope with the inability of CVS to deal with symbolic files. By adding special files (".symlinks") into the CVS tree that are interpreted as specficiations to build symbolic links. The "symlinks" script can be run immediately after a "cvs update" to fix the symbolic links according to the specifications included in the ".symlinks" files.
More information about .symlinks files can be found in the Symbolic Links section of the GNU Webmaster Guidelines.
This script is not used on the live web site. Instead, the .symlinks files are transformed into RewriteRule directives.
savannahusers
- Source code
- Author: Loic Dachary
- Current version: 1.1
It is convenient to use Savannah (savannah.gnu.org) to manage accounts on a machine that is completly unrelated to Savannah itself. For instance, the project http://savannah.gnu.org/projects/fsffr/ lists all the users who should have a shell account on the france.fsfeu-rope.org machine.
A cron job on the target machine (france.fsfeurope.org in this case) can fetch the list of users from Savannah and update the password files accordingly. Adding a user to the machine can then simply be done by adding the user as a developer of the project.
By default savannahusers only use a limited range of uid (10000 to 20000) to avoid interferences with existing users.
Complete information about this script can be found in the manual page.
LINC
- Source code
- Author: Wacław Jacek
LINC stands for “LINC Is Not Checklink”. It scans the website (or any other website) for broken links, generating reports. It runs on Thursdays on fencepost from user wwj's cron; output goes to /home/w/wwj/linc/reports.
planetrss.pl
- Source code
- Author: Shailesh Ghadge
This perl scripts fetches & saves 'n' feeds from planet.gnu.org using RSS feed link http://planet.gnu.org/rss20.xml in html format where it is then included in the homepage. Each feed is truncated to 'm' characters.
update-license.php
- Source code
- Author: James Turner
This script can be ran from the webroot to traverse through english html files replacing the old "Verbatim coping" text with the new CC license.

![[image of the typing GNU webmaster]](/graphics/gnu-type-sm.jpg)