asdf-install

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)
asdf-install used to rely on *nix utilities to work, therefore didn't work on a different OS (e.g.: Windows). Using ports of the aforementioned utilities did not work.

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

In a hurry, have a look at: FirstStepsWithAsdfAndAsdfInstall

A tutorial for the "portable" (see below) version can be found at http://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:

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

  1. 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, http://www.cliki.net/mail-reader) which has a :package token containing the url to your download location
  • 
      : (package "http://www.example.com/lisp/mail-reader_0.1.tar.gz")
    
    
    Note we've added a space between the : and the ( - in an actual page this should be omitted.

    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

    
      : (package "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.)

    versions of asdf-installable software

    To get an idea of available versions of ASDF-installable software, check here

    :(search :term (package) :title "

    asdf-installable packages available on cliki

    ")

    ASDF-install package (obsolete) http://common-lisp.net/project/asdf-install/asdf-install_latest.tar.gz

    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
    +            ))))