F21 System Wide Change: Headless Java

Aleksandar Kurtakov akurtako at redhat.com
Wed Nov 20 18:39:48 UTC 2013

----- Original Message -----
> From: "Toshio Kuratomi" <a.badger at gmail.com>
> To: "Development discussions related to Fedora" <devel at lists.fedoraproject.org>
> Sent: Wednesday, November 20, 2013 7:53:15 PM
> Subject: Re: F21 System Wide Change: Headless Java
> On Wed, Nov 20, 2013 at 12:27:38PM -0500, Aleksandar Kurtakov wrote:
> > I start to think this conversation goes nowhere. The whole split is
> > superficial and most java developers are used to get full jvm if they
> > require java.  This would probably change with Java 8 introducing Profiles
> > [1]. And any proper packaging should be modeled after this one. Inventing
> > even more new names/provided/etc. now would just increase the mess we
> > already have.  I remember seeing servlets using awt/ImageIO for image
> > processing on tomcat version running on headless server - and it was
> > leading just to jvm crash. That was in Java 5 times but illustrates the
> > problem. This was easily fixable by adding -Djava.awt.headless=true to
> > Tomcat startup scripts, what I want to point with that is that simply
> > moving a package require java-headless from full java has to be carefully
> > thought on per package base with some changes done to the packages if
> > needed to ensure no such bad examples start to pop out. Java means full
> > JVM so we would better not confuse this with any java-x11(what about
> > wayland coming?) or similar naming at least for now. Also headless(through
> > the java.awt.headless option) is known and well recognized option in Java
> > community while x11 would mean nothing to many Java developers. This keeps
> > us closer to common terms and not deviate needlessly.
> > 
> And nothing changes the term "java" 's meaning for developers or users...
> The several proposals only add the new term, java-x11 for packagers and
> even there, they allow for deprecation, they do not break backwards compat.
> Third parties can continue to use Requires: java.  Unaudited code in Fedora
> will continue to use Requires: java.  Only when someone has spent the time
> to check whether a package will work with headless and determined that it
> will not will the package change its Require: to java-x11 (or similar) to
> record for future maintainers and other interested parties that the package
> cannot be used without the full jvm.

The thing is this is pointless. If the people that would do most of this auditing (Java SIG) do not agree with such scenario the result would be that old Require:java will be kept whenever full java jvm is used as this keeps compatibility, ease of cooperation with other distros and so on. I for one would not introduce requires to some virtual provide that would break compatibility with other JVMs in my packages even after auditing it. And we end up with one more unused virtual provide on top of all the other which were added with such good intentions and end up just clutter the situation. If you look at openjdk spec you'll see provides like - jre, java-fonts, jndi, java-sasl and so on and they are simply not used. 
They were introduced for various reasons but their usage is the same today - none. Let's not make the same mistake one more time.

Alexander Kurtakov
Red Hat Eclipse team

> -Toshio
> --
> devel mailing list
> devel at lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/devel
> Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

More information about the devel mailing list