This patch brings the packaged dmd, druntime, phobos and tools up to
date with the latest stable release.
The v2.076.0 release includes some changes to how the library and tools
makefiles select the DMD with which to build: instead of the old `DMD`
variable pointing to the compiler executable, a new `DMD_DIR` variable
pointing to the compiler location is expected/preferred. The affected
parts' `make-parameters` have been updated accordingly, including the
addition of correct `DRUNTIME_PATH` and `PHOBOS_PATH` values for the
`tools` part.
The `dmd` part's `prepare:` script has also been removed: `git describe`
output is now preferred over the contents of the `VERSION` file, so the
latter no longer needs to be overwritten. (The latter is now checked to
be correct by the D release process, so should itself also be reliable.)
Besides the version update, the package has been returned to a `stable`
grade, meaning it is possible in principle to promote this version to
the `candidate` and `stable` channels of the snap store.
Besides the version update, the package has been switched to `devel`
grade, meaning it will only be available in the `edge` and `beta`
channels of the snap store.
Add prepare: scriptlet to ensure dmd VERSION file is correct
The VERSION file in the dmd source is used to set version information in
the compiler itself (i.e. the output of the `dmd --version` command) but
cannot be relied upon to match the actual git tag. See: https://issues.dlang.org/show_bug.cgi?id=15910
The `prepare:` scriptlet introduced in this patch overwrites the default
VERSION file in the dmd source with the results of `git describe`, with
the `v` prefix removed. This should ensure that the version reported by
the packaged compiler always matches the git tag. Note that this should
also make it easier to identify problems if the choice of git source is
incorrect in any way.
Besides being generally useful in terms of guaranteeing correct version
information for the compiler, this fixes the particular issue that the
VERSION file for dmd v2.074.1 source continues to contain `2.074.0` and
not the correct compiler version.
This point release fixes several regressions, as well as removing the
outdated backend license file. For a list of all fixes, see: https://dlang.org/changelog/2.074.1.html
Fix issues with PIC on distros where it is mandatory
By default programs use the static phobos library which when not fully
compiled with -fPIC leads to problems on some distros. Using the shared
phobos library workarounds this because it is fully compiled with PIC.
The problem was simply that the static druntime library was not compiled
with PIC. Before this commit, on distros where PIC is mandatory
snapcraft manages to build dmd, druntime and phobos successfully, but not
the tools repo. Now this is fixed.
Additionally, the 'PIC=1' parameter is noop on the tools repo, becuase
it is not handled by posix.mak. It is actually unnecessary because
the tools makefile allows dmd to pickup the dmd.conf file (not the
case for druntime and phobos build) which already has PIC enabled.