dh-clojure

dh-clojure is a new debhelper plugin/buildsystem aimed at streamlining building and maintaining Clojure packages in Debian.

It currently supports building Leiningen packages.

Motivation

Without dh-clojure, packaging and maintaining Clojure packages involves crafting an intricate patch on the upstream project.clj files to adjust dependency artifact versions, strip unwanted plugins and add the :local-repo key.

With every new upstream release, this patch needs to be rebased by hand, leading to large amounts of tedious, manual work that's prone to errors.

Status

dh-clojure is functional for most simple libraries, but needs additional work to handle some corner cases.

Packages

A few packages have been transitioned to dh-clojure. As we transition more packages, we expect to find more bugs and corner cases to handle.

The table below tracks this progress:

package

version

project adjustments

notes

typesafe-config-clojure

1.0.4-3

no

usj-name override

ring-codec-clojure

1.3.0-2

yes

medley-clojure

1.10.0-2

yes

comidi-clojure

1.1.3-2

no

tools-reader-clojure

1.6.0-2

yes

bogus version string in project.clj, needs patch to override

ring-json-clojure

0.5.1-1

yes

compojure-clojure

1.7.2-2

yes

ring-mock-clojure

0.6.2-2

yes

kitchensink-clojure

3.5.7-3

yes

raynes-fs-clojure

1.6.312-2

yes

prismatic-schema-clojure

1.6.312-2

yes

less-awful-ssl-clojure

1.0.8-1

no

puppetlabs-i18n-clojure

n/a

n/a

:eval-in-leiningen interferes with project adjustments

trapperkeeper-clojure

n/a

n/a

i18n plugin is breaking build