[RFR]: 8187004: No valid toolchains defined for BSD

Greg Lewis glewis at eyesbeyond.com
Wed Sep 6 04:39:34 UTC 2017

On Thu, Aug 31, 2017 at 12:14:10PM +0200, dalibor topic wrote:
> (CC:ing bsd-port-dev, where this conversation should have moved to a 
> while ago ...)
> On 31.08.2017 10:53, John Paul Adrian Glaubitz wrote:
> > There is an active community maintaining OpenJDK on BSD. The problem is
> > just that they are doing it downstream instead of working together with
> > upstream due to lack of communication. I think that is a problem that can
> > be fixed though.
> >
> > I will try to get these people join the upstream mailing list.
> As far as I know, most of the people who actively maintain the BSD ports 
> in various BSD distributions are already Committers on the BSD port Project:
> Per http://openjdk.java.net/census#bsd-port
> Greg Lewis (Project Lead, FreeBSD) & Jung-uk Kim (FreeBSD)
> Christos Zoulas (NetBSD)
> Kurt Miller (OpenBSD)
> The FreeBSD Foundation is an OCTLA signatory: 
> http://openjdk.java.net/groups/conformance/JckAccess/jck-access.html
> Unfortunately, no one has produced a build of the OpenJDK BSD port that 
> passes the JCK yet, as far as I know.

This is accurate.  We haven't attempted to pass the JCK for any port more
recent than Java 5 IIRC.  At that point we did get a port that had passed,
but that required a lot of work which was sponsored at the time by the
FreeBSD Foundation.  I'm not aware of anyone attempting it since.

> The challenge in the past has been that the time the individual BSD Port 
> developers have generously been able to spend on keeping the BSD port up 
> and running (Greg just updated the JDK 8 forest with latest changes, 
> while Kurt fixed a set of compilation issues this month - thanks!) [0] 
> was not sufficient to simultaneously let them make enough progress on 
> integrating their port into mainline JDK. Maybe the BSD porters are 
> interested in having more individuals help with the various tasks around 
> that - but it's also worth keeping in mind that the set of individuals 
> who speak up wanting to help out with the port on bsd-port-dev is less 
> than a handful per year.
> One of the conditions for getting a port into JDK mainline has been that 
> it should actually pass the JCK for the current version. I think that's 
> a low enough bar that should remain in place for JDK 9 and beyond.

FWIW, I agree that is a completely reasonable bar to meet.  Unfortunately
with the lack of time of the people involved it has been difficult to meet
this.  I expect this will again require a funded effort to again have
someone be able to devote enough time to actually meet this bar.  The
points below only serve to reinforce that.  In "funded effort" I'm
including making it part of somebodies paid job to get the port passing
the JCK and ensure it continues to do so as needed.

That said, if there are people with lots of time to volunteer to do this
I'd love to hear from you.  Until then, we're happy to accept patches into
the bsd-port repo from registered contributors.

> Here's a slightly updated version of what I wrote about getting BSD 
> ports into mainline back in 2014 as part of a conversation with Greg 
> about it:
> In general, ports should come in through the 'next release' project, 
> i.e. JDK9/10 currently, as that is where most of the development 
> happens, and so that's the best place to review and integrate the 
> changes going forward. Well, JDK 10, really, at this stage of JDK 9 
> development.
> * At this point in time, I'd be very pessimistic about adding new ports 
> further back to the JDK 8 Updates Project or earlier, as they are more 
> focused on bug fixes and stability, rather than adding features.
> * For a port to get into mainline, it needs to have a JEP, and the JEP 
> needs to be funded. Basically, someone needs to sign up to do all the 
> necessary work.
> See http://openjdk.java.net/jeps/175 for the JEP for the PowerPC64 
> AIX/Linux port JEP, for an example, of what a JEP for a port should look 
> like. See http://openjdk.java.net/jeps/1 for details,
> and http://cr.openjdk.java.net/~mr/jep/jep-2.0-02.html for the revision 
> of the JEP process.
> * All source code changes need to be reviewed by the respective 
> reviewers for mainline, as usual. This typically implies for a port's 
> integration that it's a non-trivial effort on the side of Reviewers from 
> Oracle and other port maintainers to ensure that changes proposed for 
> review actually get timely reviews. Depending on how much there is to 
> review, you'd want to get a plan in place that lets everyone plan their 
> involvement in the review process accordingly, rather than just posting 
> a bunch of patches for review on several mailing lists and hoping for 
> the best.
> * Each port is slightly different - some touch only a few files, others 
> bring in new subsystems for graphics, native code, programming 
> languages, CPUs, core libraries, etc.
> So while in some cases integrating a port can be rather straightforward, 
> because it touches only a limited set of files, in other cases it can be 
> a complicated undertaking that requires several synchronization points, 
> planning, and efficient execution from many parties to pull it off in 
> time for a JDK release feature freeze. I.e. if you want to get a new 
> port into mainline you'd need to get started early in a JDK release cycle.
> * Testing is very important - a port should not introduce regressions, 
> for example. It should also pass the JCK for the current release. The 
> JDK mainline has rather strict rules about reviews, and processes to 
> follow, which makes it an inconvenient place to finish off an unfinished 
> port - that's what the porting projects are for.
> * Once a port get into the mainline JDK project, it's expected to be 
> kept up to date by its maintainers - which  means keeping up with the 
> regular stream of changes - for example, the integration of Jigsaw into 
> JDK 9 resulted in some build system changes (because of modules), and it 
> would be up to each port's maintainers to make sure that they keep their 
> port in sync in tree.
> cheers,
> dalibor topic
> [0] 
> http://mail.openjdk.java.net/pipermail/bsd-port-dev/2017-August/thread.html
> -- 
> <http://www.oracle.com> Dalibor Topic | Principal Product Manager
> Phone: +494089091214 <tel:+494089091214> | Mobile: +491737185961
> <tel:+491737185961>
> ORACLE Deutschland B.V. & Co. KG | Kühnehöfe 5 | 22761 Hamburg
> ORACLE Deutschland B.V. & Co. KG
> Hauptverwaltung: Riesstr. 25, D-80992 München
> Registergericht: Amtsgericht München, HRA 95603
> Komplementärin: ORACLE Deutschland Verwaltung B.V.
> Hertogswetering 163/167, 3543 AS Utrecht, Niederlande
> Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697
> Geschäftsführer: Alexander van der Ven, Jan Schultheiss, Val Maher
> <http://www.oracle.com/commitment> Oracle is committed to developing
> practices and products that help protect the environment

Greg Lewis                          Email   : glewis at eyesbeyond.com
Eyes Beyond                         Web     : http://www.eyesbeyond.com
Information Technology              FreeBSD : glewis at FreeBSD.org

More information about the build-dev mailing list