[clhp-cvs] CVS update: clhp/ChangeLog clhp/INSTALL clhp/TODO
Anthony Ventimiglia
aventimiglia at common-lisp.net
Thu Nov 13 04:21:35 UTC 2003
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 at 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 at 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 at 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.
More information about the Clhp-cvs
mailing list