Packaging CL libs and apps for debian

Faré fahree at gmail.com
Wed Apr 23 19:00:40 UTC 2014


On Wed, Apr 23, 2014 at 5:11 AM, Dimitri Fontaine <dim at tapoueh.org> wrote:
> Hi,
>
> I'm maintaining pgloader (https://github.com/dimitri/pgloader) and have
> picked Common Lisp for the version of it. Of course, I'm using a bunch
> of CL libs, and those are really easy to install in a Quicklisp
> development environment.
>
> Now comes the time to package the application for debian (and others),
> and I'm looking into what it takes to be doing that. Apparently the best
> way to doing it would be to package each dependency not already in
> debian separately, then Depends: on them somehow.
>
> I've been reading the Common Lisp in Debian Manual at the following
> address and I've created a couple of packages modelled after cl-puri
> (which looked like the easier to duplicate):
>
>   http://pkg-common-lisp.alioth.debian.org/clid/clid.html/ch-clc.html
>   http://pgsql.tapoueh.org/cl-debian/
>
> Now, I'm confused as to how to validate such a packaging. My reading of
> the manual is that using sbcl, I should be able to (require :package)
> once it's been provided with apt-get install. It's not the case here
> either for cl-puri or my own cl-drakma packages:
>
>   Distributor ID: Debian
>   Description:    Debian GNU/Linux 7.1 (wheezy)
>   Release:        7.1
>   Codename:       wheezy
>
>   $ dpkg -l cl-puri cl-drakma
>   ...
>   ii  cl-drakma      1.3.8-1      all          Common Lisp HTTP client
>   ii  cl-puri        1.5.5-1      all          Common Lisp Portable URI Library
>
>   $ sbcl --eval '(require :puri)'
>   ...
>   debugger invoked on a SB-INT:EXTENSION-FAILURE in thread
>   #<THREAD "main thread" RUNNING {1002978E23}>:
>     Don't know how to REQUIRE PURI.
>   ...
>
>   $ sbcl --eval '(require :drakma)'
>   ...
>   debugger invoked on a SB-INT:EXTENSION-FAILURE in thread
>   #<THREAD "main thread" RUNNING {1002978E33}>:
>     Don't know how to REQUIRE DRAKMA.
>   ...
>
> So, a couple of questions:
>
>   - what is the best way to package pgloader in debian, where I want to
>     ship a self-contained binary image (/usr/bin/pgloader)?
>
>   - if I am to package about 20 CL libs, how do I make sure that they
>     work the way they are supposed to be working?
>
Dear Dim,

which version of ASDF are you using?
There is a bug in ASDF 3.0.2 (as currently used by SBCL),
which causes it to fail to properly default XDG_DATA_DIRS to
/usr/local/share:/usr/share
and thus to not see Debian-installed software.
It's fixed in ASDF 3.0.3, or 3.1.0.x.

Also, I recommend asdf:load-system over require, because
it's both more portable and doing the right thing wrt upgrade.

I seem to have very limited clout with the SBCL developers,
and refrained from insisting that they upgrade to 3.0.3,
reserving whatever little influence I have for release 3.1.1
that I've been hoping to happen for months.
But if your voice may have more influence than mine.
3.0.3 has been stable for over 6 months now.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Sure, we must render unto Caesar what is due to Caesar. But what is that?
Any and all specie he coined that we possess, or 23 stab wounds?



More information about the pkg-common-lisp-devel mailing list