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 https://github.com/ralt/dh-quicklisp-buildapp/releases/download/0.2/dh-quicklisp-buildapp_0.2_all.deb # 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
controlfile - A
changelogfile - A
compatfile - A
rulesfile
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.
My keybase: https://keybase.io/fmargaine