ASDF-install is OBSOLETE. DO NOT USE ASDF-INSTALL, EVER. DO NOT ASK AROUND ABOUT HOW TO GET IT RUNNING. IT IS O-B-S-O-L-E-T-E. Not working. Not maintained. Please use quicklisp instead. Maybe clbuild for more advanced stuff.
asdf-install used to be a program for downloading and installing lisp packages. You could call it an ASDF-extension. It:
- used to download lisp libraries (defined by ASDF Systems or mk-defsystem systems) from the net using CLiki :package links and installs them in the local Lisp
- used to chase dependencies
- used to use PGP signatures to verify the provenance of the downloaded code (requires GPG)
Please check the ASDF-Install bugs and ASDF-Install enhancement requests pages to add your thoughts about what isn't working and what might work better! You might also want to see the ASDF-Install FAQ.
Tutorial
A tutorial for the "portable" (see below) version can be found at https://common-lisp.net/project/asdf-install/tutorial/index.html. There is also information on GPG for ASDF-Install developers and on ASDF-Install and GPG here on the CLiki.
Variants
Depending on how you count there are currently two or three variants of ASDF-INSTALL:
- a contrib module in SBCL, from 0.8.3 onwards. It requires GNU Tar and GNU PG to be installed, but has no dependencies on any Lisp code that isn't already part of SBCL.
- A port to CMUCL, CLISP, LispWorks, Allegro, OpenMCL and MCL which also includes a little tutorial (see above) is available from https://common-lisp.net/project/asdf-install/.
- This port has been integrated into OpenMCL, i.e. up from 0.14.1 asdf-install is part of the OpenMCL distribution.
Using asdf-install
* (require 'asdf) * (require 'asdf-install) ;; works on SBCL, may require more work on other Lisps * (asdf-install:install 'cliki)
Loading a package installed by asdf-install
(asdf:oos 'asdf:load-op :vecto) ;; loads vecto
Making your package downloadable with asdf-install
- Make a gzipped tarball of the ASDF system, arranged to unpack into a
subdirectory systemname_version.
tar -cvzf systemname_version.tar.gz systemname_version/
If your package is called `mail-reader', version 0.1, the tarball would be called mail-reader_0.1.tar.gz and unpack into mail-reader_0.1/. It is OK if there are directories nested below the systemname_version directory but all the *.asd files must reside in the toplevel directory. - Because cCLan download links can be edited by anyone, we require that all
packages are accompanied by detached PGP signatures. Using gpg, this can be
done with the command
gpg -b -a mail-reader_0.1.tar.gz
which will generate mail-reader_0.1.tar.gz.asc. If you need more help with this step, see GPG for ASDF-Install developers. - Upload the package and signature file to a web server.
- Create a page on cliki with the same name as the package (in this example,
mail-reader) which has a package link containing the url
to your download location
_P(http://www.example.com/lisp/mail-reader_0.1.tar.gz)
If you want to have the package added to cclan proper (optional, but nice if you want it mirrored or don't have suitable web space), contact a cclan node maintainer using cclan-list to arrange upload. Then you can write the package token as
_P(mail-reader_0.1.tar.gz)
and asdf-install will use a user-configurable cclan mirror.
Note that the name of the cliki page must match the system name as known to asdf. The name of the tar file is non-critical, though: for example if you regularly put new versions out and don't want to update cliki every time, you can use a symlink. The .asc file name, however, must correspond with the tar file name - so in that case you'd need two symlinks.
There is a script (asdf-packaging-tools) to automate the packaging process for ASDF-INSTALL.
Downloading ASDF-installable tarballs manually
To download tarballs directly (without using ASDF-Install itself) you can use following shell script (downlads package to file package-name.tar.gz in current directory).
#!/bin/sh # You can configure your CClan mirror site here. CCLAN=http://www-jcsu.jesus.cam.ac.uk/ftp/pub/cclan/ PACKAGE="$1" shift exec wget \ --no-cookies --header "Cookie: CCLAN-SITE=$CCLAN" \ -O $PACKAGE.tar.gz "${@}" \ "http://cliki.net/$PACKAGE?download"
GnuPG and asdf-install
Users should read ASDF-Install and GPG. Developers should read GPG for ASDF-Install developers.
asdf-installable packages and lisp implementations
(To get an idea of which ASDF-installable packages will work in your Lisp, check here.)ECL asdf-install requires
--- C:/clisp/asdf-install/load-asdf-install.lisp 2006-03-22 01:05:39.000000000 +1000 +++ load-asdf-install.lisp 2006-08-09 15:44:42.671875000 +1000 @@ -55,13 +55,19 @@ :host (pathname-host directory) :device (pathname-device directory) :directory (append (pathname-directory directory) - (list :wild-inferiors)))) + (list :wild-inferiors)) + :name :wild + :type :wild + :version :wild)) ("**;*.*" ,(make-pathname :host (pathname-host directory) :device (pathname-device directory) :directory (append (pathname-directory directory) - (list :wild-inferiors)))))) + (list :wild-inferiors)) + :name :wild + :type :wild + ))))