An open API service indexing awesome lists of open source software.

https://github.com/ralt/dh-quicklisp-buildapp

dh for quicklisp-based applications generating binaries
https://github.com/ralt/dh-quicklisp-buildapp

Last synced: 6 months ago
JSON representation

dh for quicklisp-based applications generating binaries

Awesome Lists containing this project

README

          

# 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