Update of /project/clhp/cvsroot/clhp In directory common-lisp.net:/tmp/cvs-serv18166
Modified Files: ChangeLog INSTALL TODO Log Message: Updateed and tested the INSTALL installation
Date: Wed Nov 12 23:21:34 2003 Author: aventimiglia
Index: clhp/ChangeLog diff -u clhp/ChangeLog:1.24 clhp/ChangeLog:1.25 --- clhp/ChangeLog:1.24 Wed Nov 12 22:17:29 2003 +++ clhp/ChangeLog Wed Nov 12 23:21:34 2003 @@ -1,5 +1,8 @@ 2003-11-12 Anthony Ventimiglia ant@afghan.dogpound
+ * INSTALL: Commented out LIBDIR since it does not need to be used + for new installation, rewrote for new installation + * Makefile: Modifying Makefile to build with new mod_clhp interface, but staying with the Makefile approach.
@@ -288,9 +291,9 @@ 2003-09-17 16:21 aventimiglia@common-lisp.net
* clhp.lisp: Wrote a nice little reader macro to make cvs - versioning automatic, the $Date: 2003/11/13 03:17:29 $ keyword is parsed to make a 8 + versioning automatic, the $Date: 2003/11/13 04:21:34 $ keyword is parsed to make a 8 digit number YYYYMMDD with the suffix "cvs" addedd, so a CVS - release with a $Date: 2003/11/13 03:17:29 $ of 2003/09/15 ends up with a + release with a $Date: 2003/11/13 04:21:34 $ of 2003/09/15 ends up with a *CLHP-VERSION* of "20030915cvs"
2003-09-17 14:47 aventimiglia@common-lisp.net @@ -299,4 +302,4 @@ that will aide in compiling lisp in a mkae freindly way by passing a non-zero exit code when compilation fails
-$Id: ChangeLog,v 1.24 2003/11/13 03:17:29 aventimiglia Exp $ \ No newline at end of file +$Id: ChangeLog,v 1.25 2003/11/13 04:21:34 aventimiglia Exp $ \ No newline at end of file
Index: clhp/INSTALL diff -u clhp/INSTALL:1.4 clhp/INSTALL:1.5 --- clhp/INSTALL:1.4 Wed Nov 12 22:17:29 2003 +++ clhp/INSTALL Wed Nov 12 23:21:34 2003 @@ -1,4 +1,4 @@ -$Id: INSTALL,v 1.4 2003/11/13 03:17:29 aventimiglia Exp $ -*- outline -*- +$Id: INSTALL,v 1.5 2003/11/13 04:21:34 aventimiglia Exp $ -*- outline -*-
If you find anything about this documentation unclear, or you would like to contribute to the documentation or the CLHP project, please @@ -19,6 +19,9 @@
You should have dynamic module support, I guess it can be installed without it, but that will require rebuilding the entire server. + + you need the apxs program to build the module, on some + distributions, this will be in the apache-dev package * Installation ** Getting the Latest source *** ftp @@ -37,22 +40,30 @@ list, so you can stay up to date on what's going on with development. ** Edit Makefile variables Open the top level Makefile in a text editor and edit the SRCDIR, - LIBDIR, COREDIR, LISP, and INSTALL variables. For a typical + COREDIR, LISP, APXS and INSTALL variables. For a typical installation of cmucl, these should be correct. +*** COREDIR + If you change the default, you also have to change the LISP_CORE + #define in mod_clhp.c to reflect this. ** Compiling the libraries and building the CLHP core image at the command line run:
$ make + $ make module
This will compile the CL-CGI and CLHP packages, then build a custom by loading your existing lisp, loading the CLHP and CGI packages and saving the new core as "clhp.core". + ** Installing Be root (or have write permissions to wherever you are installing *** Installing the package fasl files and custom core To install the CL-CGI and CLHP libraries and the clhp core use:
# make install + # make module-install + +---------- IGNORE THE FOLLOWING two sections *** Installing the minimum, core-only
Since you have a custom core, you really don't need to install the @@ -66,77 +77,7 @@ and compiled packages, use:
# make install-source -** Setting up Linux binfmt_misc to run fasl files -*** Kernel requirements - In order to do this, you must have binfmt_misc support compiled - into your kernel, you can edit the CONFIG_BINFMT_MISC line in - your kernel configuration file /usr/src/linux/.config to read - the following: - - CONFIG_BINFMT_MISC=m - - The following instructions assume you have compiled binfmt_misc - as a module. If you compile it directly into the kernel, you can - delete the modprobe commands. -*** Enabling binfmt_misc - If you had to rebuild your kernel, you will obviously have to - reboot before you can contimue. - - To set up Linux to run CMUCL fasl files, execute the following - commands as root: - - # modprobe binfmt_misc - # mount -t binfmt_misc none /proc/sys/fs/binfmt_misc - # echo ":clcgi:E::clcgi::/usr/local/bin/runclcgi:" > \ - /proc/sys/fs/binfmt_misc/register - - This tells the kernel to use the /usr/local/bin/runclcgi shell - script to execute any files with a .clcgi extension. - - Now if you know a little about cmucl, you know that by default - it assigns the .x86f extension to compiled fasl files. I decided - to use the .clcgi extension for compiled files that require the - CL-CGI and CLHP enabled core. So if you already have your kernel - set up to run .x86f files, this new format will not interfere. - - For convenience, the cl-cgi package has an external function - COMPILE-CGI, which will save the binaries with the .clcgi - extension. This save you the trouble of having to rename your - compiled fasl files. - - ! I believe the binfmt_misc interface may be different on - earlier kernels, if you are having trouble, read binfmt_misc.txt - in the Documentation of your kernel sources. -*** Testing binfmt_misc setup. - Ok now you should be ready to see if all this works. I've - included a small program to test if the binfmt_misc support is - working. run: - - $ make tests - - This will compile config/binfmt-test.clcgi, a simple program - that will test your setup. If you've been following up to this - point, and have registered the clcgi file with the binfmt_misc - kernel interface, try it now, you should get the following - results: - - $ config/binfmt-test.clcgi - binfmt_misc is working - $ -*** Enabling binfmt_misc at bootup. - Now it would probably be a good idea to enable the binfmt_misc - support so it configures automatically at boottime. I'm - developing on Gentoo Linux, the way I've enabled it is by adding - the followin lines to /etc/conf.d/local.start: - - /sbin/modprobe binfmt_misc - mount -t binfmt_misc none /proc/sys/fs/binfmt_misc - echo ":clcgi:E::clcgi::/usr/local/bin/runclcgi:" > \ - /proc/sys/fs/binfmt_misc/register - - Other systems may have other ways to do this, if anyone would - like to send specific instructions for other Systems, I'd be - happy to include them here. +---------- END IGNORE ** Configuring Apache To set up Apache, there are really only two things we need to configure, first, we need to make Apache aware that the .clcgi @@ -144,58 +85,20 @@ lists all the AddHandler directives in you Apache configuration file, and add the following line:
- AddHandler cgi-script .clcgi + AddHandler clhp-handler .clhp + + If you'd like index.clhp to be + automatically used with an empty URL, add index.clhp to the + DirectoryIndex Directive:
- Now decide what directory you would like to enable to execute the - .clcgi and add make sure the "ExecCGI" Option is listed. On my - home computer I have a virtual host setup at http://clhp.dogpound/ - with the following configuration setting up the Virtual host: - - <VirtualHost clhp.dogpound> - ServerName clhp.dogpound - DocumentRoot /home/ant/public_html/clhp - Options +ExecCGI - DirectoryIndex index.clcgi index.html - </VirtualHost> - - While I eventually plan on writing an Apache module for clhp, I'd - also like to learn to exploit mod_rewrite to my advantage. I'd - appreciate any contributions in either of these departments. + DirectoryIndex index.clhp index.html index.htm index.shtml index.cgi + + After all this you'll need to restart apache to update the configuration. + * Testing your installation - Ok the moment of truth is drawing near, I've included some examples - in the examples/ directory (where else) that we'll use to test the - set-up. To build the example programs, you must first have installed - the minimal requirements as per the above instructions. - - Edit examples Makefile, and make sure all the Variables are correct - then from the top level source directory, do the following, using - the path to your clhp directory (in my example its - /home/ant/public_html/clhp) for INSTALL_PATH: - - $ cd examples - $ make - $ INSTALL_PATH=/home/ant/public_html/clhp make install - - Now fire up your browser and point it to the location of these test - files. In my example, the first is test.clcgi, which just tests the - CGI package: - - $ lynx http://clhp.dogpound/test.clcgi - - And the second which is full blown CLHP, clhp-test.clcgi is a ateway - that loads the content of index.clhp as its source. - - $ lynx http://clhp.dogpound/clhp-test.clcgi - - Take a look at index.clhp and clhp-test.lisp and you'll see how clhp works. -* Working with CLHP -** Compiling lisp files. - Ok I mentioned somewhere above that I was going to put a - COMPILE-CGI function. Well that's not done at the time of this - writing, so for now, you'll have to compile and rename the fasl - files. - - -* New installation notes -** Apache configuration - AddHandler clhp-handler .clhp \ No newline at end of file + There's a test file, examples/index.clhp copy it somewhere where + apache can see it, fire up the browser and it you should see a test + page. + + Take a look at index.clhp +
Index: clhp/TODO diff -u clhp/TODO:1.11 clhp/TODO:1.12 --- clhp/TODO:1.11 Wed Nov 12 22:17:29 2003 +++ clhp/TODO Wed Nov 12 23:21:34 2003 @@ -1,6 +1,9 @@ -$Id: TODO,v 1.11 2003/11/13 03:17:29 aventimiglia Exp $ -*- outline -*- +$Id: TODO,v 1.12 2003/11/13 04:21:34 aventimiglia Exp $ -*- outline -*-
* Rewrite docs for new mod_clhp handler + +* mod_clhp should check if the requested doc is actually there + Right now Lisp does it.
* Test suite ** Convert all this to new deal with single package.