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

Fernando Lopez-Lezcano nando@ccrma.Stanford.EDU
02 Mar 2005 14:05:41 -0800

On Wed, 2005-03-02 at 12:46, rm@fabula.de wrote:
> 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 ....

I see, a completely different way of doing things, different from most
other packages (which include binaries). This leads to replicated fasls
on all home user directories, but of course, whether it is a waste or
not depends on available space, how many users and so on and so forth. 

I have had no problem (so far) while distributing things this way, but
the packages are dependency locked to a particular version of the base
lisp, and that may not be possible in your case. I did have problems a
while back while trying to distribute images with everything built in.
So I guess what I posted is not very useful :-[

-- Fernando