On Tue, 16 Jan 2024 22:29:05 -0500 Richard Stallman <r...@gnu.org> wrote: > > Often it is also because it requires a lot of work. A good > > example of that is most Java packages that require to workaround > > very distro unfriendly java build systems. > > As a long term thing, it would be nice to do something to fix those > build systems. When I designed the GNU specs for build systems, the > idea was that every package should be buildable using `./configure' > and `make all'. They could work differently inside, but that > interface should be universal. Here I didn't look into it yet so maybe there are better workarounds than modifying the build system (here Maven), like finding ways to make it find its dependencies somehow, or configuring it to find its dependencies.
If that turns out not to be possible, it should be relatively easy to get funding from NLnet to do that kind of work, especially when it is related to Guix as Guix provides lots of guarantees (it has reproducible builds, its compilers are more or less bootstrapped from source, etc). > Could you tell me the nams of 4 or 5 Java packages it would be good > to make buildable in a reasonable way? Those suggestions would make > it easier to recroit people to work on this. In Parabola we only have issues with the Maven build system so far (I don't think we have packages using even more problematic build systems like Gradle etc). My original plan was just to upgrade log4j but I ended up in a dependency hell. For instance log4j depends at some point on junit which depends on other java packages, etc. The work is pretty simple to do though. With the current system, opentest4j is a good example on how to avoid using the Maven build system in Parabola. The problem is that it's time consuming because packagers often have to find the dependencies of packages and make packages for that. Beside extra dependencies to find, some packages (like junit) have multiple directories in their source code so to build it the packager needs to find the right order for building all that (which directory to build first). This is usually done by running builds and looking at errors and improving the order step by step. I've some work in progress in the GNUtoo/java/* branch inside abslibre (the Parabola packages definition repository). But at the end if someone finds a better way to build something like junit in Parabola without having to figure the build order of its directories, the work could become way faster to do and make Java maintainable again in Parabola. Denis.
pgp5ro8coXiLv.pgp
Description: OpenPGP digital signature