Apache Software Foundation | Jakarta Project | Apache Tomcat
Setting up your CVS work environment

First of all set up your CVSROOT environment variable and log in onto our CVS server. When prompted for a password, you can enter anoncvs:

if you're using CSH/TCSH
[user@host] ~ $ setenv CVSROOT :pserver:anoncvs@apache.org:/home/cvspublic
[user@host] ~ $
if you're using SH/BASH
[user@host] ~ $ CVSROOT=":pserver:anoncvs@apache.org:/home/cvspublic
[user@host] ~ $ export CVSROOT
[user@host] ~ $
and then log in on the CVS server
[user@host] ~ $ cvs login
(Logging in to anoncvs@cvs.apache.org)
CVS password: anoncvs
[user@host] ~ $

You then have to check out the sources of the WebApp module, those reside in the jakarta-tomcat-connectors repository, under the webapp directory. To check the sources out, do:

[user@host] ~ $ cvs checkout jakarta-tomcat-connectors/webapp
cvs server: Updating jakarta-tomcat-connectors/webapp
U jakarta-tomcat-connectors/webapp/.cvsignore
[...]
U jakarta-tomcat-connectors/webapp/support/wa_version.m4
cvs server: Updating webapplib
[user@host] ~ $
and let's move them into a more accessible location
[user@host] ~ $ mv jakarta-tomcat-connectors/webapp webapp
[user@host] ~ $ rm -rf jakarta-tomcat-connectors
[user@host] ~ $
then it's always better to clean up the checked out structure
[user@host] ~ $ cd webapp
[user@host] ~/webapp $ cvs update -APd
cvs server: Updating .
cvs server: Updating apache-1.3
[...]
cvs server: Updating support
cvs server: Updating webapplib
[user@host] ~/webapp $ cd ..
[user@host] ~ $


Dealing with the Apache Portable Runtime sources

Perfect. Now, if you're building the WebApp module for Apache 2.0, you won't need to check out the Apache Portable Runtime library, since it is already included into the web server distribution. If, instead, you are building the WebApp module for Apache 1.3, you need to obtain a copy of APR, and you can do that checking out a copy of their CVS repository (namedly, apr):

[user@host] ~ $ cvs checkout apr
cvs server: Updating apr
U apr/.cvsignore
[...]
U apr/user/win32/groupinfo.c
U apr/user/win32/userinfo.c
[user@host] ~ $ mv apr jakarta-tomcat-connectors/webapp
and let's clean up this directory structure as well
[user@host] ~ $ cd apr
[user@host] ~/apr $ cvs update -APd
cvs server: Updating .
cvs server: Updating atomic
[...]
cvs server: Updating user/unix
cvs server: Updating user/win32
[user@host] ~/apr $ cd ..
[user@host] ~ $


All that AutoConf magic

Great, now, for semplicity's sake we can move the APR directory in the WebApp module directory, as it is in all pre-rolled source distribution tarballs, and create the configure script. Please note that WebApp requires GNU AutoConf version 2.52 or greater to build the configure script from its M4 sources, if you don't have this version, you can easily download a nigtly source distribution, which includes a pre-built configure script.

let's move APR within the WebApp module directory
[user@host] ~ $ mv apr webapp
[user@host] ~ $
and create the configure script for both of them
[user@host] ~ $ cd webapp
[user@host] ~/webapp $ ./support/buildconf.sh
--- Checking "autoconf" version
autoconf version 2.52 detected.
[...]
Creating configure ...
--- All done
[user@host] ~/webapp $ cd ..
[user@host] ~ $

Please note that if you didn't move the APR directory inside the WebApp module directory, the buildconf.sh script will nag about not finding the APR sources, you just have to generate APR's configure as well, and then, when you're going to run the configure script for the WebApp module, you'll have to specify the --with-apr=directory parameter on the command line, of course replacing directory with the path of where you checked out the APR sources, right?

[user@host] ~/webapp $ ./support/buildconf.sh
[...]
--- Cannot run APR "buildconf" script
If you need to build the WebApp module for Apache 1.3
you will have to download the APR library sources from
http://apr.apache.org/ and run its "buildconf" script
[...]
Creating configure ...
--- All done
[user@host] ~/webapp $ cd ..
[user@host] ~ $ cd apr
[user@host] ~/apr $ ./buildconf
buildconf: checking installation...
buildconf: autoconf version 2.52 (ok)
[...]
Creating include/arch/unix/apr_private.h.in ...
Creating configure ...
[user@host] ~/apr $ cd ..
[user@host] ~ $


Whoha, that's IT?

That's it, now you basically have a full WebApp module source distribution (well, apart from this documentation, which gets generated when we roll the sources tarballs). Now you're ready to go and try out the incredible wonders (and bugs) of the very latest sources of the WebApp module.