NOTE: The libwwww repository migrated to github. The content in this page is now deprecated.
Please see the updated instructions for retrieving libwww from github and getting it bootstrapped.
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.
CVS allows you to use the very latest version of libwww - as soon as a fix or a new feature is commited 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 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 checkout is read-only access which allows you to get the latest edits and to provide patches to be integrated into the code base. The instructions should work for both Unix and Windows, and may even work for Macs although I am not sure. A couple of notes:
Start by login as follows:
% cvs -d :pserver:firstname.lastname@example.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:email@example.com:/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. Now you are ready to getting boot strapped.
If you want to get a specific release using CVS tags then you can do this by using the the CVS "-r" option, for example
% cvs -d :pserver:firstname.lastname@example.org:/sources/public -z3 -r Release-5-2 checkout libwww
Check the CVS log walker for the current set of release tags. If you at some point want to revert to the latest untagged version then you should use the following command:
% cd libwww % cvs -z3 update -A
Only libwww collaborators who have intimate knowledge of the code base and have proven their ability to code libwww have CVS write access. If you are considering becoming a libwww contributor then make sure that you have read the libwww style guide as well as the list of things to do before committing changes to libwww.
Libwww collaborators can get read/write
access to the CVS repository using SSH. You setup CVS to use SSH as remote
shell by setting the
CVS_RSH env variable. Using bash or similar,
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
and you will be prompted for your SSH credentials. Again, if you want a specific revision then use something like this
% cvs -d dev.w3.org:/sources/public -r Release-5-2 checkout libwww
The Apache Group has some special notes on how to use SSH for Windows.
The big advantage of using CVS is that you easily can keep your version of the code base up to date with the latest edits and changes committed to CVS. Whenever something has been committed, a notification will be sent to the <email@example.com> mailing list (see here how to subscribe) as well as getting listed on the latest changes page.
Once you have checked out the libwww CVS tree (not a specific revision), you can get any updates committed to the tree by using the cvs update command like this
% cd libwww % cvs -z3 update -d % cd ..
It is important that you use the "-d" flag so that you get new directories as well as updated files. Now you MUST repeat the compilation bootstrapping procedure.
When compiling directly from the CVS repository there are a few steps you have to go through which are already done if compiling from a distribution package. Follow these three steps:
On both Windows and Unix you can generate the *.h files and the *.def files by running a Perl script provided by Eric Prud'hommeaux. Never mind that it gives a few warnings when it runs - they are all OK. It requires that you have a recent version of Perl on your machine. Run the script like this (note the explicit use of the Perl interpreter):
% cd libwww % perl config/winConfigure.pl
Windows people are now done and can jump directly to the instructions for how to compile libwww for Windows. On Unix, you need some more...
On Unix you MUST have the following GNU tools installed in order to continue. Check that you have the following programs with the correct version number:
Makefile.in's which are used by autoconf
Makefile's which are used by make.
Now generate the make files as follows - don't worry about the warnings produced by autoconf:
% aclocal; autoheader; automake; autoconf
Now you MUST run the configure script as described in the next section on installation instructions.
If when you run the above commands, you get one or more error messages including one that says:
macro "AM_PROG_LIBTOOL" not found in library
it may mean that libtool and automake are not installed under the same prefix. You will then have to run aclocal as:
aclocal -I /prefix/of/libtool/share/aclocal
If for some reason you have trouble running the configure script then try and run this command instead
% make distclean; aclocal; autoheader; automake; autoconf
Remember to subscribe to the <firstname.lastname@example.org> mailing list (findmail archives) for information of new features as well as discussions of problems and ideas.
Libwww uses GNU
Libtool in order to build shared libraries on a variety of systems. While
this is very nice for making usable binaries, it can be a pain when trying to
debug a program. For that reason, compilation of shared libraries can be
turned off by specifying the
--disable-shared option to
Congratulations - you are now ready to configure and compile libwww!