The transition from gcc-aux to gcc5-aux in the Ada framework has been
blocked by the inability to build gtkada3 and, once resolved, GPS (due
to tight locking with compiler).
A few days ago, Adacore made their annual release of their main libre
products, include GPS. However, some products were tightly coupled with
the recent compilers, so in order to upgrade, the compiler had to be
switched and dependencies require many ports to be upgraded at once:
* lang/asis
* devel/gnatcoll
* devel/gps
* x11-toolkits/gtkada3
* www/aws
* www/aws-demos
While the version upgrades were modest in most cases (gps, gtkada3), the
amount of work put into each port was significant. There are too many
improvements to mention here. A few include the removal of dynamic
package lists and incorporating gnatcoll into gps to avoid building it
twice. A private "exp-run" was done all on all 50+ Ada ports to ensure
they still build.
Also, a new argument was added to Uses/ada.mk, "run", that pulls in the
GNAT compiler as a run depends. This was necessary for GPS that will
not launch correctly without the compiler in place.
Due to the unavailability of a public repository, this version uses
Adacores 2015 distribution of xmlada. It's probably a minor update
from the previous one.
The major change, however, is the creation of a custom makefile to build
and install xmlada. Why? because gnatmake will lose the ability to
build project files in the near future, so xmlada makefiles were changed
to use gprbuild to build and itself it. One problem: gprbuild needs
xmlada as a build dependency. (and it also needs gprbuild to build
itself!!) I could have chosen to keep using gnatmake, but I decided to
bite the bullet, fix it correctly now and not have to get stuck by it
by future versions of gnat that remove project management from gnatmake.
Having to support a bootstrap gprbuild is nonsense in my opinion, so
both will have to be built manually. Morever, the GPL 2015 distinfo
file removed all the vital *.gpr files which other packages' configure
script absolutely depends on. These had to be recreated from scratch
as well.
Noticeable changes:
- no more .lgpr files, these are incorporated in generated *.gpr now
- xmlada_input.gpr renamed to xmlada_input_sources.gpr as expected
since we had to create it anyway
- xmlada_shared.gpr no longer exists; it was incorporated into each
gpr that pulled it in
- RPATH hack no longer necessary
- symlinks of 5 libraries at $LOCALBASE/lib were removed (useless)
- rpaths are now correct and have $LOCALBASE/lib/xmlada/relocatable
as path (this was big fix made possible by new Makefile)
- xmlada seems to build a lot faster, fully jobs safe
- GNU configure not longer performed
- GNU make no longer a build dependency
I verified packages that depend on xmlada build as expected. I also
verified that the manually generated libraries look very similar in
size to the gnatmake generated libraries.
Since the library version changed, I'm also bumping ports directly
dependent on xmlada.
The OpenVMS support was removed on gcc5's GNAT so the GPL 2014 version
of ASIS won't build unless the references to OpenVMS are removed. Rather
than use EXTRA_PATCHES, just remove them unconditionally. This doesn't
cause any issue for gcc-aux-built ASIS and the ports that use it.
The ASIS source has to be matched with the compiler source of the compiler
that builds it. ASIS is always tricky because it's matched to annual
releases of GNAT GPL, and never to GNAT FSF. However, after disabling the
useless (and faulty) strong version check, ASIS 2013 seems to work okay
with gcc49. At least the two ports that use it seem to work ok.
Rather than specify gnat_util every time ASIS is a dependency, set it
as a library dependency for ASIS. LIB_DEPENDS doesn't work because it
is a static library, so just manually add libgnat_util.a to BUILD_DEPENDS
and RUN_DEPENDS, then adjust 3 ports accordingly.
This is ASIS, the Ada Semantic Interface Specification.
ASIS is tightly coupled with lang/gcc-aux and must be built with the same
sources. For this reason, ASIS will not work with other Ada compilers,
including GNAT GPL (lang/gnat).
ASIS is a dependency of several upcoming Ada ports.
Approved by: bapt (mentor)