Improved snap package for LDC

Joseph Rushton Wakeling via digitalmars-d-ldc digitalmars-d-ldc at puremagic.com
Fri Jan 20 13:51:03 PST 2017


Hello folks,

As you may recall, last year I did some work towards a snap 
package for LDC:
https://forum.dlang.org/thread/ffmpwmhjefzzogcljmyf@forum.dlang.org

At the time there were two key points of concern: first, the need 
to bundle gcc, libc etc. into the package along with LDC, and 
second, the fact that snap confinement prevented LDC from 
accessing libraries installed elsewhere on the host system 
(meaning it could only compile programs that did not link against 
any external libraries).

Recently, however, the snappy developers introduced a new 
'classic' confinement option, which is explicitly designed to 
allow the packaged program to access resources of the host Linux 
system on which it is installed.  With this available it has been 
possible to rework the LDC snap package to something much 
simpler, which AFAICT works just like a 'normal' LDC install 
(i.e. it can compile and link anything, and uses the host 
system's gcc etc. for linking).

The updated package definition is available here:
https://github.com/WebDrake/ldc2.snap/pull/2

... so I'd like to invite people to give it some level of review 
(particularly the license and the package description) and, if 
you like, to try out building and installing it.

Building it should be easy for anyone using Ubuntu 16.04 or 
later: just check out the `classic-snap` git branch from the 
repo, `sudo apt install snapcraft`, and then just type 
`snapcraft` at the command prompt.  It will check out the LDC 
source from github, install necessary build dependencies, and 
should deliver a snap package which you can install with the 
command:

     snap install --classic --dangerous ldc2_1.1.0-beta6_amd64.snap

where --classic is to give permission for classic confinement, 
and --dangerous is in order to give permission to install a 
self-built package ('dangerous' in the sense that it comes with 
no digital signature to verify its origin).

(Note, the package name might be different if you're building on 
a 32-bit system.  Let me know what happens if you try!)

Assuming nobody finds any showstoppers, I'd like to proceed to 
submit this to the official Ubuntu snap store.  On this note, I 
have a question: would there be any interest in doing this 
officially as part of the LDC project?  Any initial distribution 
would be in the 'edge' or 'devel' distribution channels, which 
are designed for early testing.

Anyway, let me know what you think!

Thanks & best wishes,

     -- Joe


More information about the digitalmars-d-ldc mailing list