Re: openjdk-9-jdk rebuild: Second pass
On Tue, Jul 04, 2017 at 10:28:27AM +0100, Chris West wrote: > > > 16% are broken due to probably intentional changes in Java 9, e.g. > > > * modules changing accessiblity of things (~90 packages) > > I now believe that the accessibility checks are being turned off by default. > This was one of the conditions of the first JCP vote failing. So it's possible > that many of these will go away with a new (possibly as-yet unreleased) > openjdk > build. I have been unable to find a relevant upstream commit, although > there's plenty it could be in, e.g. > http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/f8b19df2115a [two weeks ago] > > Discussion: > http://mail.openjdk.java.net/pipermail/jigsaw-dev/2017-May/012673.html > http://openjdk.java.net/projects/jigsaw/spec/minutes/2017-05-22 > > https://londonjavacommunity.wordpress.com/2017/06/28/our-yes-vote-on-the-2nd-go-around-for-jsr-376-java-platform-module-system/ > > Agreement on relaxing Strong encapsulation as a default (means fewer > > apps will break out of the box, but get a warning instead). > http://zulu.org/forum/thread/discussion-on-zulu-9-pre-release-13/ says that is has landed, so will be picked up by an update of the openjdk-9 package to build >=176 (2017-06-29).
Re: openjdk-9-jdk rebuild: Second pass
Thank a lot for the rebuilds and the detailed analysis Chris! This gives a clear direction for our transition plan. Le 2/07/2017 à 22:06, Chris West a écrit : > * I totally hacked up[1] maven-compiler-plugin to do the same. I've updated maven-compiler-plugin to the latest version, so we can now build projects with Java 9 code. But that didn't solve the language level issue. For the source/target tweak I modified plexus-compiler, it might be more general and fix more packages than the patch you used. > Of 1261 packages compiled, 57% failed. Good start, let's do better :) > 23% think javadoc(1) doesn't exist: http://bugs.debian.org/bug=866929 >I definitely think this should be fixed in the toolchain; as the >above bug. This is caused by the removal of the 'jre' directory in Java 9 and the subsequent modification of the java.home property. This is easy to fix. > 18% still are trying to use old -source/-target: > https://paste.debian.net/974407/ >Perhaps some cases ant doesn't catch it, as it doesn't look >like a Debian build environment? It looks like my Ant fix doesn't work for packages defining the ant.build.javac.source and ant.build.javac.target properties (typically in debian/ant.properties). I'll look into this. > 11% (plus probably a lot of the above 23%) are failing doclint after >otherwise compiling successfully. doclint should be disabled, >but isn't: http://bugs.debian.org/866908 > >Hopefully everyone agrees we should fix this in the toolchain, as the >above bug. Yes, doclint must die :) > 7% are broken because invalid ASCII in the code is now an error; >it appears that it was only a warning on Java 8. This is now fixed for the packages built with javahelper and jh_build (#866845). > And, on a more positive note: > > 16% are broken due to probably intentional changes in Java 9, e.g. > * introduction of java.lang.Module > * modules changing accessiblity of things (~90 packages) > * _ becoming a keyword (~15 packages) > * apparent generics changes causing new casting problems(?) This is the interesting part, I'll dive into this once the obvious toolchain fixes are done. Emmanuel Bourg
Re: openjdk-9-jdk rebuild: Second pass
On Tue, Jul 04, 2017 at 09:42:23AM +0200, Emmanuel Bourg wrote: > > 7% are broken because invalid ASCII in the code is now an error; > >it appears that it was only a warning on Java 8. > > This is now fixed for the packages built with javahelper and jh_build > (#866845). I wonder if these can all be fixed by fiddling the version, and whether doing so would be a good idea. For -source of 1.8(?), the error is a warning. It's not to do with the version of javac in use, as I previously claimed. Doing so is probably harder than fixing the locale everywhere, though. Changing the -source argument will also allow us to have libraries use _ as an identifier, for now, so that may be an easier fix? Also, I've been told that, with future Java releaseses, old -source values will continue to be dropped; so Java 10 will drop -source 1.6, and Java 11 will drop -source 1.7, etc. > > 16% are broken due to probably intentional changes in Java 9, e.g. > > * modules changing accessiblity of things (~90 packages) I now believe that the accessibility checks are being turned off by default. This was one of the conditions of the first JCP vote failing. So it's possible that many of these will go away with a new (possibly as-yet unreleased) openjdk build. I have been unable to find a relevant upstream commit, although there's plenty it could be in, e.g. http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/f8b19df2115a [two weeks ago] Discussion: http://mail.openjdk.java.net/pipermail/jigsaw-dev/2017-May/012673.html http://openjdk.java.net/projects/jigsaw/spec/minutes/2017-05-22 https://londonjavacommunity.wordpress.com/2017/06/28/our-yes-vote-on-the-2nd-go-around-for-jsr-376-java-platform-module-system/ > Agreement on relaxing Strong encapsulation as a default (means fewer > apps will break out of the box, but get a warning instead). Chris.
openjdk-9-jdk rebuild: Second pass
Progress! * Better tools[2], better scripts[3], better machine -> more packages. * Emmanuel fixed maven/guice (#866411), and hacked ant (1.9.9-4) to fixup the -source and -target versions. (Thanks!) * I totally hacked up[1] maven-compiler-plugin to do the same. Of 1261 packages compiled, 57% failed. Of those failures: 23% think javadoc(1) doesn't exist: http://bugs.debian.org/bug=866929 I definitely think this should be fixed in the toolchain; as the above bug. 18% still are trying to use old -source/-target: https://paste.debian.net/974407/ Perhaps some cases ant doesn't catch it, as it doesn't look like a Debian build environment? e.g. svnkit: https://sources.debian.net/src/svnkit/1.8.14-1/debian/rules/#L9 https://paste.debian.net/974409/ If we can't fix enough of these in ant/maven, we might have to fix them in javac... 11% (plus probably a lot of the above 23%) are failing doclint after otherwise compiling successfully. doclint should be disabled, but isn't: http://bugs.debian.org/866908 Hopefully everyone agrees we should fix this in the toolchain, as the above bug. 7% are broken because invalid ASCII in the code is now an error; it appears that it was only a warning on Java 8. e.g. https://reproducible.debian.net/naga has: [...] warning: unmappable character for encoding ASCII ... which is now: [...] error: unmappable character (0xC3) for encoding US-ASCII Logs: https://rbuild.fau.xxx/2017-07-02/ascii/ Maybe many of these may be fixed by defaulting the encoding, where not specified, to UTF-8? Not t many to fix otherwise... And, on a more positive note: 16% are broken due to probably intentional changes in Java 9, e.g. * introduction of java.lang.Module * modules changing accessiblity of things (~90 packages) * _ becoming a keyword (~15 packages) * apparent generics changes causing new casting problems(?) These are in the `modules`, `keyword` and `cast` directories of the build logs: https://rbuild.fau.xxx/2017-07-02/ 6% are broken due to tests or dependencies missing. I don't know why these are failing on my build env, but not on jenkins, and I suggest you ignore them. They are in `deps` and `tests` in https://rbuild.fau.xxx/2017-07-02/ This leaves just 19% of these packages (135) with random failures for which I haven't bothered to find a classification: https://rbuild.fau.xxx/2017-07-02/unknown/ Chris. 1: https://github.com/FauxFaux/debjdk9/blob/master/compiler-plugin.patch 2: https://paste.debian.net/974394/ 3: https://github.com/FauxFaux/debjdk9