It's about three months until Java 9 is supposed to be released. Debian contains around 1,200 packages that build against Java 8. I have been trying to build them with Java 9.

It's not been going well.

The first attempt found an 87% failure rate, the majority of which were either:

toolchain issues (which are for Debian to fix) (e.g. maven/guice needing new cglib).

-source and -target being old, unsupported values.

This is too bad to get an idea of what's actually broken, so I gave up.

The second attempt has gone better, only 57% failures. This had a number of issues fixed, but there's still a large number of problems masked by toolchain failures.

However, some real Java 9 breakages are coming to the fore!

90 packages are hitting module-based accessibility rules, although maybe many of these are bugs in gradle . These are the kind of bug that it may be hard to fix in your own software, so it's slightly worrying to see so many of them.

. These are the kind of bug that it may be hard to fix in your own software, so it's slightly worrying to see so many of them. 15 packages are using underscore or enum as a keyword, which hopefully should be easy to fix everywhere.

9 packages have new compile failures around casting, which may be compiler improvements, or bugs. Exciting!

Oh, and 135 packages have an unknown problem, so maybe there's a whole other class of bug I've missed.

This is (obviously) an ongoing project, but I thought I'd write up what I'd seen so far.

Also, I wanted to mention how cool it was to hack up a dashboard for your ghetto make/Docker build process in ghetto shell, although slightly less ghetto than the previous shell.