Classic snap for D reference compiler DMD

Joseph Rushton Wakeling joseph.wakeling at
Sun Jan 29 18:48:39 UTC 2017

Hello all,

Following successes snapping LDC (the LLVM-based D compiler) and DUB (a build 
and package manager for D projects), I decided to turn my attention to the D 
programming language's reference compiler, DMD.

This is in principle a rather trickier project: while LDC uses a very nice and 
simple cmake build system, which requires little manual intervention, building 
DMD actually involves building code from 3 different git repos, each of which 
relies on the output of its predecessors.

Anyway, everyone here has obviously been very good at teaching me the tricks of 
the snapcraft trade (for which, thank you!), because in practice this was very, 
very easy, and the results are here:

... where as you can see a combination of `after:`, `make-parameters:` and the 
occasional `organize:` and `stage:` were all that was necessary to get things 
working right.

Nevertheless, I have a few questions, so here goes.

First: the dmd install includes manpages, which wind up being placed in 
`/snap/dmd/current/man`, but the host system `man` command can't find them (not 
a big surprise).  Any advice on whether it would be possible to get this working?

Second: the `source-tag:` settings for the 3 parts should all match.  Is there 
any way of defining a common value that they can all use (to make sure that in 
future there is less risk of accidentally failing to update one of them)?

Thanks and best wishes,

     -- Joe

More information about the Snapcraft mailing list