Fennel wiki: Packaging

Packaged For:

Fennel is currently packaged & maintained on the following systems: (If you're aware of others, please add them herein!)

For Packagers:

Building Fennel:

Fennel can be distributed as a compiled binary, or as a single-file Lua script. It's up to the person packaging to decide which makes more sense in context, but the main advantage of the binary is that it does not depend on having Lua installed on the box, and in the context of a package manager this is usually not particularly relevant.

Dependencies:

One of the following: lua5.1, lua5.2, lua5.3, lua5.4, or luajit

Make Dependencies:

You will need the dev headers for whatever Lua implementation it depends on if you decide to build Fennel as a compiled binary instead of a Lua script. For a Lua script simply depending on a Lua implementation is enough.

As a compiled binary:

Simply invoke the following in your build form:

make fennel-bin

The Makefile lists the following lua libs and include directory; the defaults are Debian-specific, but overrides can be passed in as arguments to make.

STATIC_LUA_LIB ?= /usr/lib/x86_64-linux-gnu/liblua5.3.a
LUA_INCLUDE_DIR ?= /usr/include/lua5.3

For instance, on Alpine:

make fennel-bin STATIC_LUA_LIB=/usr/lib/liblua-5.3.so.0.0.0 LUA_INCLUDE_DIR=/usr/include/lua5.3

Otherwise compilation on glibc and musl libc systems is the same.

As a Lua script:

Simply invoke the following in your build form

make fennel LUA=lua5.3 # or whichever Lua executable you prefer

Installing:

The following files should be accounted for in the Fennel package:

You can run sudo make install to handle installing these three, though you might want to override DESTDIR or PREFIX.