Thread overview
Snap package for LDC 1.1.0 available to test
Feb 04, 2017
aberba
Feb 06, 2017
qznc
February 03, 2017
As of earlier today, a snap package for LDC 1.1.0 has been published in the 'edge' channel of the Ubuntu store.

Snap packages are a new format developed by Ubuntu to facilitate upstreams being able to provide the latest versions of their apps directly to users.  The format is also designed to provide effective confinement for apps, so that they can only access the parts of the host system that they need to.  While developed by Ubuntu, the format is gaining quite a bit of of cross-distro traction: see http://snapcraft.io/ for more information.

On Ubuntu 16.04 or later, or Debian Sid, it should be possible to install this package using the following commands:

    sudo apt install snapd   # in order to be able to install snap packages at all

    sudo snap install --classic --edge ldc2

The `--classic` flag is needed in order to accept the confinement choice of the ldc2 package, while the `--edge` flag is needed to search in the similarly-named package channel.  As the name suggests this is for 'bleeding edge' packages.

The package includes the ldc2 compiler plus its 'dmd-like' version ldmd2, as well as ldc-profdata and ldc-prune-cache.  You'll find the commands in /snap/bin/ : note that the latter three will (for now) be called ldc2.ldmd2, ldc2.ldc-profdata and ldc2.ldc-prune-cache (these names will hopefully be simplified in a future release).

It should be possible to use ldc2 and ldc2.ldmd2 in the same way that you would use their equivalents installed by any other package manager.  Please let me know of any issues you encounter in trying to use this!

In principle it should also be possible to install this snap on other distros that have support for snap packages (e.g. Arch, Gentoo, Fedora, OpenSUSE); however, it will require an up-to-date version of snapd (2.21 or later) which some distros may not yet have made available.  For instructions on how to install snapd on other distros, see:
http://snapcraft.io/docs/core/install

For information on 'classic' confinement, see:
https://insights.ubuntu.com/2017/01/09/how-to-snap-introducing-classic-confinement/

Finally, for the snap package definition, see:
https://github.com/ldc-developers/ldc2.snap

I would be happy to explain any aspects of the snap packaging process or syntax that anyone is interested in.

Finally, thanks to the LDC developers who eagerly embraced this project to create and distribute an LDC snap package, and for all the helpful advice and support they have offered throughout the process.

Please do let me know what your experience is trying the package!

Thanks & best wishes,

    -- Joe
February 04, 2017
On Friday, 3 February 2017 at 22:56:33 UTC, Joseph Rushton Wakeling wrote:
> As of earlier today, a snap package for LDC 1.1.0 has been published in the 'edge' channel of the Ubuntu store.
>
> [...]

There is now support for 14.04 too.

Although snaps are marketed by Canonical, I see flatpack to be more technically safe a superior. And that's what most free software devs commit.
February 04, 2017
On Saturday, 4 February 2017 at 14:56:21 UTC, aberba wrote:
> There is now support for 14.04 too.

Right now that may not work for people unless they enable the `proposed` repository.  There's a bug that currently prevents installation of `snapd` via the stable repos, but a fix for that has been prepared and I would guess it will probably be released next week.  I will post here when that's the case.

> Although snaps are marketed by Canonical, I see flatpack to be more technically safe a superior. And that's what most free software devs commit.

My impression is quite the opposite -- that snap packages right now offer more features (security included) and make fewer assumptions about the host system.  But, obviously, your call what you wish to work with.

However, since the snap package is available now ... if you are able to, could you possibly do me the favour of trying it out and confirming whether or not it works for you?

Thanks & best wishes,

    -- Joe
February 06, 2017
On Friday, 3 February 2017 at 22:56:33 UTC, Joseph Rushton Wakeling wrote:
> Please do let me know what your experience is trying the package!

Worked in my quick try. :)

Why does it not show up with `snap find`? Because it is "edge"?

February 06, 2017
On Monday, 6 February 2017 at 12:50:15 UTC, qznc wrote:
> Worked in my quick try. :)

Great, thanks for trying it out :-)

> Why does it not show up with `snap find`? Because it is "edge"?

Yes, I think so.  Off the top of my head I can't remember what the command is to find snaps in non-stable channels, but `snap find --help` ought to give you the info you need.