ldc2.snap:1.20

Last commit made on 2020-09-08
Get this branch:
git clone -b 1.20 https://git.launchpad.net/ldc2.snap

Branch merges

Branch information

Name:
1.20
Repository:
lp:ldc2.snap

Recent commits

d12c4a0... by Joseph Wakeling

Merge switch to upstream package sources from 1.19 branch into 1.20

We now have much simpler upgrades: the aggregate diff between 1.19 and
1.20 is now just a tweak of the version number.

c54610a... by Joseph Wakeling

Remove custom LICENSE and ldc2.conf files

These should now be provided by the upstream package, so we do not need
to maintain local copies.

c245378... by Joseph Wakeling

Switch to using upstream prebuilt binaries for snap package

This is a major (major major MAJOR) change in the package design which
carries 3 major benefits:

  * it GREATLY simplifies the snap package design itself, taking
    advantage of the existing release packages that are designed
    for cross-distro, multi-arch support and reducing snap build
    times from hours to seconds

  * it allows us to support ARM64 as an install target

  * it precisely matches functionality between upstream releases
    and the snap package

There are however also some major costs:

  * it removes our ability to support i386 install targets, as
    upstream does not supply i386 builds

  * it assumes that the upstream build settings will match the
    needs of the snap package

If this approach is too heavy-handed then it might be possible to make a
compromise such as downloading only prebuilt LLVM and still building the
actual compiler and tool executables.

1d4de8b... by Joseph Wakeling

Set source-depth to 1 to speed up git checkouts

There seems to be no reason to check out the full git history here and
setting `source-depth: 1` for all git-sourced parts will both speed up
builds and reduce the volume of unnecessary data downloads.

3ba3004... by Joseph Wakeling

Update ddocYear test workaround for LDC 1.20.x

DMD 2.088.x introduced a nasty bug where the expected year in compiler
test output was hardcoded. DMD 2.090.x "fixed" this by updating the
hardcoded year from 2019 to 2020. This patch correspondingly tweaks our
own workaround introduced in d80460670e77175ae0e42ec578b1727726b313db,
which should be possible to remove with LDC 1.21+ (the upstream bug was
fixed properly in DMD 2.091.x).

e27c2c7... by Joseph Wakeling

Update to LDC 1.20.1 stable release

`ldc2.conf` has been updated to bring it in line with the upstream LDC
build, adding a separate section for 32-bit config and dropping the now
unneeded `--no-warn-mismatch`.

https://github.com/ldc-developers/ldc/releases/tag/v1.20.1

b3f10bc... by Joseph Wakeling

Update to LDC 1.19.0 stable release

https://github.com/ldc-developers/ldc/releases/tag/v1.19.0

4d11707... by Joseph Wakeling

Drop unnecessary ctest-setup part

There is no need for this to be a standalone part, as all it does is to
install a couple of build-packages. These can be moved to `ldc`, which
is the only real user, and highlighted as being ctest requirements.

e5cd17d... by Joseph Wakeling

Update ldc2.conf to better match upstream 1.18.0 binary package

This brings the config file in line with upstream standards. It should
be backwards compatible, while adding support for some extra settings,
such as WebAssembly builds.

The only differences from upstream are the import paths, which are set
to `include/d` instead of `import` (accepting the default install path
of the build system), and the library paths, which are set to `lib64`
and `lib32` instead of `lib` and `lib32` (making the paths consistent
for both amd64 and i386 package builds).

13b2550... by Joseph Wakeling

Add license metadata to snapcraft.yaml

This will allow the package to display license info in the snap store
and on the command-line `snap info` results.

The license spec is provided in SPDX format <https://spdx.org> with the
following components:

  * BSD-3-Clause (for LDC itself)

  * BSL-1.0 (DMD/druntime/phobos)

  * Zlib (zlib, statically compiled into phobos)

  * Apache-2.0 AND NCSA (LLVM)

  * Artistic-1.0 OR GPL-2.0+ (GDC artefacts)

Note that snapcraft and snapd only support SPDX 2.x license identifiers,
so we must use `GPL-2.0+` instead of the more recent `GPL-2.0-or-later`.
See:
https://forum.snapcraft.io/t/keeping-up-with-spdx-license-identifier-updates/7095