[RFR]: 8187004: No valid toolchains defined for BSD
dalibor topic
dalibor.topic at oracle.com
Thu Aug 31 10:14:10 UTC 2017
(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.
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.
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
More information about the bsd-port-dev
mailing list