Subject: [bug#43639] [PATCH] [staging] gnu: groovy: Update to 3.0.5.

From: Julien Lepiller <[email-masked]>
Date: Sun, 27 Sep 2020 00:13:35 +0200

Hi Guix!

The following patch series updates groovy to 3.0.5. groovy-ant depends
on a newer version of ant/java8 than we have in master, so I had to
update it.  This lead me to change the recipe slightly, which
propagated to ant, so I thought I could as well update it as well. The
change to ant's recipe (and version) leads to ~500 rebuilds, so this is
going to staging.

The first three patches are required, but already pushed in master.

Then, I add asm-8 and 3 subpackages. Groovy requires a fork of antlr4,
not antlr4 itself, but this fork has a cyclic dependency on itself.

antlr4 has a runtime library and a binary that generates a parser. The
binary depends on the runtime library. In that fork, the runtime
requires the binary, to generate a parser. To break the cycle, I use an
old version of antlr4 (4.1), and fix the parser (it generates the
parser for a different runtime library after all). Then, I can use this
runtime to build the binary.

Now, the binary uses a runtime that doesn't fully work, so I rebuild
the runtime with it (so this time it generates the parser properly),
and use this runtime to rebuild the final binary.

Then, there's java-javaparser and the actual update of groovy. I
changed the way groovy subprojects are built, using a procedure
(groovy-subproject) that returns a package that builds the subproject.
I also added a few additional subprojects that didn't exist in the
previous version. Unfortunately, I'm missing the junit5 and jaxb
because of missing dependencies.