Outdated documentation

This page is out of date. Please use the main navigation to find the latest documentation.

Table of Contents

Everything you always wanted to know about the gNewSense website!


In order to work as a webmaster for gNewSense you need to become a member of the gNewSense Web Team.

If you just want to edit the web pages for your particular package, not work as a general webmaster, then you need only become a developer for the corresponding project.

The whole www.gnewsense.org web site is stored in CVS on savannah.gnu.org. Most webmaster tasks are performed by checking out the CVS repository on your local machine, modifying them, and committing the result. Instructions on how to use CVS (you want the “Webpages repository”).

When a commit to CVS is done, the live www.gnu.org web site is not updated instantly. The cron job that does the updates currently runs at :10 and :40 past each hour.

Instead of having a single group of users who have edit permissions over the whole www.gnu.org CVS tree, a number of groups have been created and only have edit permissions on a specific directory tree. For instance, the Brave GNU World project members only have edit permissions on the http://www.gnu.org/brave-gnu-world/ directory. This has a number of advantages such as easily finding out who is in charge of which portion of the www.gnu.org web site. A www.gnu.org to Savannah projects map is updated every day and shows which directories are handled by which projects.

Some parts of the www.gnu.org web site do not yet have a matching project on Savannah. Don't hesitate to create a project for a given subdirectory if you plan to work on it with other webmasters. When creating the project, select the website only license. The /software/package directories have a special status since they must be bound to a project that have the same name on Savannah and are associated to a source CVS repository. You should try to get in touch with the package maintainer before creating a project in /software/package.

Since it would be very complicated for highly involved webmasters to become a member of each and every projects when they want to make some global changes, the special project www was created. Each member of the www project is granted edit permission over the whole www.gnu.org CVS repository.

If you want more information about Savannah, read the Administration Guide.

How to edit www.gnu.org/... ?

If you want to edit the pages you are responsible for or want to become responsible for a specific subdirectory, proceed as follows:

    * Go to the www.gnu.org projects map. If the directory you're interested in is already listed here, contact the people in charge to get write access. You don't have anything else to do. Anyone in charge of this directory will be able to grant you write access to the CVS respository.
    * If the directory you're interested in is not listed, logon Savannah and register a new project whose purpose is simply Edit the www.gnu.org/thedirectory/. Within 24h the project will be validated and you'll be able to checkout this portion of the web read/write.

If you want to understand more about www.gnu.org, CVS and Savannah, read the Organization chapter and the Savannah Administration Guide.

Since CVS is not able to handle symbolic links, a simple mechanism has been implemented on the machine hosting the www.gnu.org to allow webmasters to control the symbolic link from the CVS tree.

By adding special files (".symlinks") into the CVS tree that are interpreted as specifications 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.

The current directory is searched recursively for ".symlinks" files. Symbolic links that exist in directory where there is no .symlinks files will be ignored. Only directories containing a .symlinks file are handled.

Each symbolic link specification from the ".symlinks" file is honored, i.e. the symbolic link is created if it does not exist yet. If a symbolic link is found in the directory and is not listed in the ".symlinks" file, it is removed.

Special handling to comply to the GNU webmaster standard is also applied. If a subdirectory "foo/bar" has no "foo/bar/index.html" file and a file "foo/bar/bar.html" exists, then a symbolic link from "index.html" to "bar.html" is created even if it is not listed in the .symlinks file. In short, an implicit

               cd foo/bar ; ln -s bar.html index.html

is done.

Symbolic links that point outside the web site document root are ignored.

The ".symlinks" files obey to the following format.

Each line starting with a sharp sign ("#") is treated as a comment and ignored.

Lines that do not contain two strings separated by white space are silently ignored.

Here is an example of .symlinks file content:

               # Link foo.html to bar.html.
               # Stricly equivalent to ln -s foo.html bar.html
               foo.html bar.html

On each line the first file name must be a relative path name to an existing file. The file designated by this path must not be outside the document root. The second file name may not contain any slash, it is the name of the symbolic link to be created.

The actual command used to implement this feature is symlinks(1) and the sources can be found in gnudist.gnu.org:/usr/local/src/symlinks-1.1.tar.gz.

Style guidelines

Please read http://www.gnu.org/server/fsf-html-style-sheet.html before writing any HTML for www.gnu.org


New webmasters should read Information on how to be a webmaster on www.gnu.org and review the various Readme's.

CVS and timestamps

Each HTML file should contain a timestamp. Because we only recently switched to CVS, there are still two ways that timestamps are done. The preferred way is via CVS:

Updated: <!-- timestamp start --> $Date:$ <!-- timestamp end --> <HR>

If you are working in a file that is stored by CVS, and such a timestamp entry isn't in the file, please add it. If a file under CVS that you are working in still uses the


method for updates described below, please switch it to the



.emacs and timestamps

If the web directory you are working in isn't in CVS, please use this method, via your .emacs, to update the timestamp.

The file ~www/.emacs contains some suggestions for your own ~/.emacs. In particular, what we want is numbered backups and the "Last updated" field changed automatically on file write—this field is the date and user name between these two comments lines:

<!-- hhmts start --> 18 Apr 2000 tower <!-- hhmts end -->

An easy way to use them and get future updates is to add these lines to your own ~/.emacs:

(let ((www-emacs-file (expand-file-name "~www/.emacs"))) (if (file-exists-p www-emacs-file) (load-file www-emacs-file)))


Your umask on www.gnu.org is set to 000 as default, please don't change this.

Using the TAGS file

A file TAGS in directory ~www/html/ lists all the HTML files on this site. This files allow one to search or query replace all of the HTML files. See these instructions for more information.

Groups on files

All files in the html tree should have the group www, if a file does not (and is not writable by world), please ask someone to change it.

Update the What's New page!

When you add something significant to www.gnu.org, please add an entry to the news database in the CVS file:


This file is used to generate the whatsnew.html page, the home page and GNU's RSS news feed.

The organization of the whatsnew database is simple:

    * an optional asterisk, if present this means the item should be a GNUs Flash
    * the date of the news item
    * a carriage return
    * the HTML text of the news item, possibly spanning many lines
    * a blank line to end the entry

For example:

href="http://patron.fsf.org/sf2004seminar.html">two days of seminars at Stanford University</a> on the <abbr>GPL</abbr> and Free Software Licensing on August 24 and 25 of 2004.

6 July 2004 <a href="http://www.gnu.org/people/speakers.html#Stallman">Richard M. Stallman</a> put a short note on the <a href="http://www.gnu.org/licenses/license-list.html">license page</a> explaining why the <a href="http://www.opensource.org/licenses/rpl.php">Reciprocal Public License</a> is a non-free license.

Once you have edited the news database the files that depend on it will be regenerated within an hour. But you can do this manually by running the Makefile in the rss directory of the CVS:

cd rss make whatsnew.rss ../server/whatsnew.html ../home.shtml

Altenately, see the Makefile for convieniant targets.

Entries that can, should contain a <A href=" to the page (or section of a page (<A ... id="...")) that has the newly added text. (Multiple <A href=" are OK, if appropriate.)

Entries should be newest first, so repeat visitors to the page, see the new items first.

Update the Sitemap page?

When you add something very significant to www.gnu.org, please add an entry to /home/www/html/server/sitemap.html in the right section.

Entries that can, should contain a <a href=" to the page (or section of a page (<a ... id="...")) that has the newly added text. Multiple <a href=" are OK, if appropriate (HTML 3.2 and 2 use id= instead of id=).

Update GNUs Flashes on the home page http://www.gnu.org/

GNUs Flashes on the home page are controlled by the server/whatsnew.txt file. You should look at the entry for managing news in the the webmastering guidelines: /server/standards/README.webmastering.html.

Check your HTML!

/usr/local/bin/htmlchek can and should be used to do a syntax and some semantic checks on HTML files. You could also use weblint or other checkers which may or may not be better.

More webmaster tasks

The file /home/www/html/server/tasks.html has the tasks it be good to do to our site, www.gnu.org. The file /home/www/html/server/BUGS.html has a list of known bugs that should be fixed ASAP.

Archive of <webmaster@www.gnu.org>

You might want to review the archive of the mailing list <webmaster@www.gnu.org>. It has discussions about the design of this site, and the rationales for the design decisions. It's on the gnu.org machines (for example mail.gnu.org) at UMB as file /com/archive/webmaster files /com/archive/webmaster*.gz for the older messages.

If you don't have an account on those machines, and have been appointed a webmaster, please request an account from <accounts@gnu.org>.


For a description of scripts/software that is used on www.gnu.org, please read http://www.gnu.org/server/source/source.html. Be sure to read that before trying to write any scripts that work with the website, such as programs that automatically updated pages.

Cron Jobs

(This cron information is no longer especially useful, since webmasters no longe have shell access to www.gnu.org and so none of these directories or files are accessible.)

The cron daemon as user www runs /usr/www/bin/web-backup, which sets up the file that mirror sites pick up, and also runs /home/www/bin/nightly, which (among other stuff, maybe) creates /home/www/html/TAGS, useful for making global changes to all the html files via the GNU Emacs command tags-query-replace, or searching all the html files via tags-search.

Also creates files /home/www/html/TAGS.LG, that list those translations in language LG, for the use of each translation team.

See these instructions for more information.

The crontab file is in /home/www/crontab and you should modify that file and install it into cron instead of modifying the system crontab. Use the command crontab -u www -e to do this.

Adding FTP mirrors

To change the ftp mirror list:

   1. Update the file prep/FTP in your CVS checkout
   2. Run make -f Makefile, also in prep/
   3. cvs commit FTP ftp.html 

At some later time, a cron job may do this automatically.

The FTP-related files in /gd/gnuorg on fencepost.gnu.org are no longer current. Everything is in CVS.

Audio and video files

A 22Gb disk partition was allocated to audio and video files on the machine audio-video.gnu.org. In order to add new files in this repository, one should be registered as a member of the GNU and FSF audio video project.

Uploading a file can be done using rsync over ssh:

rsync --rsh=ssh file.vob audio-video.gnu.org:/audio-video/video

The access methods offered to users are:

    * rsync

          rsync -av audio-video.gnu.org::audio-video .

    * http


Adding an event

For now, edit the /events.tmp.html file. When replication works again, follow the instructions below.

Webmasters should not usually add and remove events to our events page, they should only update the events.input-html file for formatting changes, etc. The actual addition and removal of events is handled by fp:/gd/gnuorg/!EventAndTravelInfo/announce-events.plx and gnudist:~www/bin/auto-event-handle.

However, from time to time, the webmasters might get an email to add an event in error. There are two types of events webmasters might get:

    * Events of a type that fp:/gd/gnuorg/EventAndTravelInfo/announce-events.plx can already handle. Check the POD of the script itself for information on whom to forward messages to. The short version: you should normally forward a message to the person who is speaking, except in the case of RMS---those go to <rms-assist@gnu.org>.
    * Events of a type that are not supported yet. In that case, you should always ask webmaster-escalate.

In a pinch, someone from the FSF staff might ask the webmasters to add an event in a hurry. In these cases, you can, if you want, figure out how to edit the relevant file in fp:/gd/gnuorg/!EventAndTravelInfo/. If you can't figure that out, you can add the event to events.input-html above the AUTO section. However, if you do the latter, please take responsibility for the event and remove it when it has passed.

Creating Pages under www.gnu.org/software

Usually a package's maintainer(s) take care of their own web pages. Here are some tips, though (maybe for maintainers themselves).

    * Style guidelines
      Please read http://www.gnu.org/server/fsf-html-style-sheet.html before writing any HTML for www.gnu.org
    * Content
      When writing a page for a certain program, we want to have some basic information on such a page. See the boilerplate.
          o A description on what the program does
          o Where to download the program in question
          o Where to report bugs
          o List of FAQs and documentation if they are available 
      For example, we think the FAQ ought to be included in the web pages for the program. Installation instructions would be nice, though not essential. And we would like to put the program's documentation or manual in the web pages too.
    * Documentation should be available online. For info about a script to do generate many formats from Texinfo, and other information too, see the maintainer information.

Updating ThankGNU pages

You'll will be seeing tickets in the webmaster queue that have ThankGNU' in the title and originate from `sysadmin at gnu.org'.

Each ticket will have a name that needs to be added to appropriate year page under http://www.gnu.org/thankgnus/ . For e.g. if the ThankGNU corresponds to the year 2006, go to http://www.gnu.org/thankgnus/2006supporters.html page. Please add the name there, in the appropriate place based on the amount of the contribution and in the alphabetical ordering, and then resolve the ticket.


Main/WebmasterGuidelines (last edited 2013-09-04 22:00:42 by FelipeLopez)