Skip to content

ralt/dh-quicklisp-buildapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

dh-quicklisp-buildapp

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.

Installation

$ 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

Instructions

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.

buildapp

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.

Roadmap

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!

License

MIT license.

About me

My keybase: https://keybase.io/fmargaine

About

dh for quicklisp-based applications generating binaries

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages