ASDF-Install

asdf-install is a development application for downloading and installing lisp packages. You could call it an ASDF-extension. It: 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 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.
  2. 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.

  3. Upload the package and signature file to a web server.

  4. 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.

(To get an idea of which ASDF-installable packages will work in your Lisp, check here.)

asdf-installable packages available on cliki

Download ASDF package from 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
+            ))))

Pages in this topic: Anaphora   asdf-config   CL-Librarian   cm   common-lisp-controller   Current recommended libraries   Objective-CL   org-davep-newsrc   Osicat   resolver   SLIME   Wilbur  


Also linked from: affi   array-operations   asdf   ASDF-Binary-Locations   ASDF-Install and GPG   ASDF-Install-Tester   ASDF-Install-Tester Bugs   ASDF-Install-Tester How-to   ASDF-Install-Tester Organization   asdf-install-tester-packages-list   ASDF-Upgrade   Basic-English-Grammar   cCLan   cclan-get   cgn   Chemboy   cirCLe   cirCLe Task List   CL-AJAX   cl-blog   cl-cairo2   cl-jpeg   cl-menusystem   CL-MPD   cl-numlib   cl-octave   CL-Selenium   cl-sparsematrix   cl-store   CL-Yacc   CLAWK   CLiki Bugs   Closer to MOP   closer-mop   Community   conduit-packages   development   diff   docudown   dynamic-classes   Edi Weitz   ffa   Gabor Melis   GPG for ASDF-Install developers   hello-lisp   HT-AJAX   ISBN   iterate   Joshua Taylor   Kevin Reid   Levenshtein   McCLIM   minpack   mk-defsystem   newsrc.lisp   NIO   periodic-table   Peter Scott   plokami   Portable-Threads   PorterStemmer   Practical Common Lisp   sb-sha1   SNMP   Soundex   spartns   Terminfo   text-query   The Proper Way to Do Things   UCW   yacc  

CLiki pages can be edited by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively