Skip to content
dh for quicklisp-based applications generating binaries
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
usr Fix packages depending on :quicklisp Dec 5, 2015


This dh utility lets you compile your quicklisp-based Common Lisp code into a buildapp binary in a .deb with almost no effort.

For the "almost no effort" part to work, dh-quicklisp-buildapp is quite opinionated.


$ wget # Validate it with the .dsc
$ sudo dpkg -i dh-quicklisp-buildapp_0.2_all.deb
$ sudo apt-get -f install # Install missing dependencies if necessary


Setup your debian/ folder with at minimum:

  • A control file
  • A changelog file
  • A compat file
  • A rules file

The control file should have your source and package information. The changelog should have the changelog of your application. See dch for more information. The compat file should have just the 9 number in it.

The rules file just needs this:

#!/usr/bin/make -f

        dh $@ --with=quicklisp_buildapp

(Note that a tab character is needed.)

When you run dpkg-buildpackage in your source's root folder, for each package defined in the control file, it will get the system named $package, and use the main function of it as the entrypoint.

It will fetch the latest quicklisp and then use buildapp to generate the binary that will be put in the .deb file.


If a buildapp or package.buildapp file exists, it will be parsed in the following way:

  • Each line defines a binary
  • Each line is 3 items separated by space: the binary name, the system's name, and the entrypoint name.

This lets you put multiple binaries in the same package.

All the .asd must be in the root folder.


Eventually, dh-quicklisp-buildapp will support customizations such as:

  • Specify the dist-url of quicklisp
  • For each package, specify where the system's asd is
  • For each package, specify the entrypoint
  • For each package, specify the system's name

Patches welcome!


MIT license.

About me

My keybase:

You can’t perform that action at this time.