W3C libwww

Getting Libwww from the CVS Repository

Using CVS allows you to follow the development of libwww closely and to contribute much easier. The following requires that you are familiar with CVS - if not then look at Cyclic's pages on CVS or the excellent information provided by Pascal.Molli.

Libwww Releases

First of all, using CVS allows you to use the very latest version of libwww - as soon as a fix or a new feature is commit'ed to the CVS repository then you can update your working version and you will have it right away.

The purpose of "releases" is to say that now we believe that the code is stable with a well defined set of features. Until now, we have been giving out distribution files every time we announced a release. This will not change, but you can use the CVS repository in exactly the same way - often with much less overhead than dealing with a distribution package.

Every release is marked in the CVS repository using tags, so that it is possible to retrieve a complete release using the CVS -r option (note that -r is "sticky"). Check out the online CVS log walker for the current set of release tags. We were less strict tagging all the files in early releases so don't go too far back in the past if you expect to be able to compile the code!

Anonymous CVS Checkout

This is read-only access which means that you can check out the code but not commit any changes. However, it allows you to make up-to-date patches which are much easier for the libwww maintainers to integrate. The instructions should work for both Unix and Windows. Before you can check out the sources, you need to be running CVS 1.9 or later, and login by running the following command:

% cvs -d :pserver:anonymous@dev.w3.org:/sources/public login

after which you type "anonymous" as password. To get the latest version from the CVS repository, run this command:

% cvs -d :pserver:anonymous@dev.w3.org:/sources/public -z3 checkout libwww

After which you will get all the code coming at you, you'd better have at least 10MBytes available on your machine. If you want to get a specific release using CVS tags then you need to add a -r option, for example

% cvs -d :pserver:anonymous@dev.w3.org:/sources/public -z3 -r Release-5-1m checkout libwww

Check the CVS log walker for the current set of release tags.

SSH Based CVS Checkout

This is read/write access to the CVS repository which means that you must have SSH access to the repository. You setup CVS to using SSH as remote shell by setting the CVS_RSH env variable. Using bash, it looks like this:

% export CVS_RSH=/usr/local/bin/ssh

When you are using SSH, you don't need to do a CVS login. Instead you can just go ahead checking out libwww like this

% cvs -d dev.w3.org:/sources/public checkout libwww

Again, if you want a specific revision then use something like this

% cvs -d dev.w3.org:/sources/public -r Release-5-1m checkout libwww

The Apache Group has some special notes on how to use SSH for Windows.

Getting Bootstrapped

When you get libwww from CVS there are some files (header files, make files, and Windows def filed) that have to be generated before you can compile it. You can either do

Easy Way

If you really only want to generate the header files and the Windows def files then you can run this Perl script provided by Eric Prud'hommeaux - it of course requires that you have Perl on your machine! On Windows this should be enough if you are using the MSVC makefiles. On Unix, you need some more...

More Complex Way

On Unix, these files are generated by software that you MUST have on your platform - luckily they are all free! If you are The list is

GNU automake
Automake is a tool for automatically generating Makefile.in's which are used by autoconf
GNU autoconf
A tool for automatically generating Makefile's which are used by make
GNU libtool
A tool for automatically handling generation of shared libraries
W3C www
The Line Mode Browser. This is used to generate the header files and so if you have already done that using the easy way then you don't need it the first time in order to get bootrstrapped.

I also strongly recommend that you are using GNU make and GCC. Many OS specific make's don't have the libwww make files.

After having checked out the libwww code, you should now run the following two commands

% automake
% autoconf

Compiling libwww

Now you have a set of files equivalent to what you normally get in a distribution file. You are now ready to compile the software


Henrik Frystyk Nielsen,
@(#) $Id: cvs.html,v 1.5 1998/06/02 20:53:05 frystyk Exp $