Information for Webmasters
Introduction
The technologies and programs used to maintain the FSFE web page should already be familiar to many developers and authors and might be of interest to those that have not yet discovered them.
Translators and occasional volunteers will most likely only get in touch with
- Savannah – for CVS (see below) services and access permission management
- XHTML – from which the static pages are generated every five minutes
- Concurrent Version System (CVS) – for co-ordination and synchronisation
Volunteers interested in getting deeper into the maintenance should also be familiar with
Understanding how the web pages are built
The web pages of www.fsfeurope.org are maintaned as a set of XML files. The web server generates the HTML pages from these XML files automatically every five minutes. Consequently, all editing of the pages is done in the XML files, and the HTML is never edited directly.
Every page on www.fsfeurope.org is named pagename.language.html (language being the two-letter iso-639 code of the language, like "en" for English or "de" for German). The source files are named pagename.language.xhtml.
Some pages have a dynamic part: apart from the fixed texts taken from the XHTML file, they include information from one or several XML files. Whenever such a page is built, the build system takes the translated XML files where available, and falls back to the English version of those XML files that have not yet been translated. This way, such pages can end up with parts of the text being translated and other parts still showing in English. Examples of such pages include the start page, the news page, and the events page.
Registering at Savannah
The source files for the web pages are stored on Savannah, a server hosted by the Free Software Foundation, our sister organisation in North America. To get write access to these files, you need to create an account on that server and request write permission from the FSFE project.
Registering a new account
First you must register a new account. Choose a login name, a password, fille in your real name and your e-mail address, and click the Submit button.
Now you will receive an e-mail from Savannah. In order to complete your registration, visit the URL mentionend there. Accounts not confirmed after two days are deleted from the database.
After confirming your account, you can log in at https://savannah.gnu.org/ with your login name and your password.
Creating an SSH key
While you can use the password to log into the web portal on Savannah, you must have an SSH key to gain CVS write access. This has to be done on every machine from where you will access the CVS repository.
To create and register an SSH key, please follow the instructions given in the Savannah FAQ.
Joining the FSFE project
There are a lot of projects hosted on Savannah, and CVS access is granted on a per-project basis. To get access to the FSFE web page source files, you have to become a member of the FSFE project.
Choose Group Membership in the top tabs. Now you can enter "FSFE" into the search box of Request for Inclusion, activate the FSFE checkbox and enter a comment.
The administrators of the FSFE project will then get a mail with your request and the comment you gave and can approve your membership in the project. After that you should see "Free Software Foundation Europe" in the Groups I'm Contributor of after you login at Savannah.
Checking out the repository initially
First you should make sure that your ~/.bashrc file contains a line saying
export CVS_RSH=ssh
then create a directory for the repository and execute
$ cvs -z3 -d username@cvs.savannah.gnu.org:/web/fsfe co .
in that directory. Now you are asked for your SSH passphrase. Enter it and confirm. If everything is alright, now the website should be checked out.
Working with the repository
After you checked out the repository the first time, you should execute
$ cvs update -d
in the fsfe directory every time before you work on a specific file.
If you want to add new files or directories to the repository you have to execute
$ cvs add filename
To post your changes to the server, no matter be it a new file or a modification in an existing file, execute
$ cvs commit filename
and your default editor will open to allow for some description of your changes.
You can download a detailed manual for CVS at the CVS home page.
If you want to keep track with all commits that are done to the web page sources, you can subscribe to the CVS notification mailing list and you will get a mail for every change posted to the source tree.
Responsible handling of write access
If you have write access to the web pages, please subscribe to the Webmasters mailing list.
Please bear in mind that all your changes will become effective and visible automatically, without any further action of anybody. Consequently, there are a few things we would request you to do whenever you commit changes or new files:
-
The FSFE is held responsible for the content of the web pages. Please do not commit modifications that change the meaning of the text without approval from a core team member of the FSFE. (This is not necessary for translations of already existing content.)
-
If you are posting translations, and there is any chance that others can proofread it, use that chance. You can use the Translators mailing list to ask for proofreading. Whether you are translating files or proofreading them, you are encouraged to spell-check files using some automated tools, such as GNU aspell, ispell, or your favourite spell-checker. For example, to use GNU aspell on a Debian GNU/Linux system, just install the packages aspell and aspell-XX> (where "XX" is your language code), then run the command
aspell -H -d language -c file.xhtml
where "language" is the name of the dictionary for your language; the -d option can be omitted if your UNIX locale is the same as the language of the dictionary).
-
Make sure that all files are proper XML. There is a script named /fsfe/tools/validate.pl that helps finding errors in the markup. Improper XML breaks the automatic build process of the web pages and blocks updates for the complete FSFE website. If you suspect the build process to broken, you can view the log of the last build run on our status pages.
The validate.pl script requires the XML::LibXML Perl module; if this is not installed on your system, you can validate files using your favourite XML validator. For example you can use the command line xmllint utility from the libxml2 project.
If you are using the Debian GNU/Linux distribution, install the libxml2-utils package; run the command
xmllint --noout file.xhtml
where file specifies the file you want checked, and watch for possible error messages.
-
Make sure the encoding of the file is consistent with the content of the "encoding" attribute declared in the first line of the file. For example, if your file is encoded as "iso-8859-1" (also known as "latin-1" encoding), the first line of the file should read
<?xml version="1.0" encoding="iso-8859-1" ?>
Another valid encoding is the unicode, or "UTF-8" encoding. If you want to change the encoding of a file, you can use the standard iconv utility, as in the following example (which converts a file from the "latin1" to the "utf-8" encoding):
iconv -f LATIN1 -t UTF8 inputfile > outputfile
Please coordinate with other people who also have CVS commit access to make sure that translations and fixes contributed by people without commit access are committed properly after they have been proofread. Of course, please check these files before you commit them like you check your own files.
Further information
Given that the FSFE webpage has a European/global level and user-chosen local levels that supplement them for information that is country-specific, the layout has a certain complexity that is hidden entirely from the user of the page.
Unless you only wish to translate pages (see below), please make sure you have taken a look at the structural reference.
Also, there is a Texinfo documentation file Webmastering FSF Europe by Jonas Öberg, who implemented the build system for the page. Please read it to know more about how the web pages works.
To top
