[CM] question on audio distributions, CCRMA or Agnula, others?

rm@fabula.de rm@fabula.de
Wed, 2 Mar 2005 21:46:06 +0100


On Wed, Mar 02, 2005 at 11:01:32AM -0800, Fernando Lopez-Lezcano wrote:
>
> 
> That is true for a user that installs in his/her/its home directory (or
> somewhere else where he has write access) and has complete control of
> the software. 
> 
> It is not possible to do that on a packaged version of cm/clm/cmn (at
> least the way I package it), the user of the software is typically not
> the installer (root) and will not have write access to the packaged
> binaries. 
> 
> Planet CCRMA has had Common Lisp based packages for cm/clm/cmn since
> 2001. The packaging approach I have used lately is to load the prebuilt
> systems at runtime on top of a clean lisp image (this is for cm 2.4.x,
> clm2/clm3 and cmn). Maybe this could be used as "inspiration" for other
> packagers. The current package structure is like this (this is after
> several iterations over the years on how to package the stuff):

Hmm, the way ASDF is set up on Debian each user has her own spool area
for compiled fasls. So the source is installed in a central palce
(/usr/share/common-lisp/sources/...) but the compiled fasls go into
userspecific cache directories:

 /var/cache/common-lisp-controller/$USER/$IMPLEMENTATION/$PACKAGE 

Once there used to be a fasl-cache for the whole system (and the 
common lisp controller was required to keep that cache up to date but
it turned out that that approach was more of a security headache then
a performance improvement). 

A "hypothetical" cm.deb would put all source files (including the 
ASDF package description) into /usr/share/common-lisp/sources/cm/
and then create a link from the asdf file into //usr/share/common-lisp/systems.
After that a simple (asdf:oos 'asdf:load-op :cm) would load Common Music
(allways with the most up-to-date fasls - even after an update of the
Lisp implementation). 

> clm -> source code only, common to all lisps
> clm-cmucl -> requires "clm" and "cmucl", packages all cmucl binaries
> clm-sbcl -> requires "clm" and "sbcl", packages all sbcl binaries
> clm-xxx for other supported versions of lisp

Distributing binary lisp files is a nightmare - at least for the 
Open Source Lisps i know ....



 Cheers RalfD