This makes those files a bit easier to read. Also, for what it's worth,
it brings us one baby step closer to handling spaces in store paths.
Also, I optimized handling of many transitive deps with read. Probably,
not very beneficial, but nice to enforce the pkg-per-line structure.
Doing so let me find much dubious code and fix it.
Two misc notes:
- `propagated-user-env-packages` also needed to be adjusted as
sometimes it is copied to/from the propagated input files.
- `local fd` should ensure that file descriptors aren't clobbered
during recursion.
This makes several adjustments around what is linked into JRE.
* system giflib, libjpeg, zlib are now used unconditionally;
* libstdc++ is linked dynamically.
For full version:
* GTK+ and GNOME libraries are linked;
* Extra X11 libraries are linked;
* CUPS is linked;
* libmagic (file) is linked.
For minimal version:
* All X11 support is removed;
* Sound support is removed.
* Fonts and their support are not lined.
jre8_headless is added as a minimal build.
Overall this adds support for all things GUI into the default Java build and
removes them from the minimal build.
* openjdk: Keep {include,man} in $out/lib/opendjk.
This is a standard layout that some JDK consumers expect.
* openjdk/8: Improve clarity of some symlink commands with terminating slash.
The most complex problems were from dealing with switches reverted in
the meantime (gcc5, gmp6, ncurses6).
It's likely that darwin is (still) broken nontrivially.