First thoughts on OpenJDK Community Bylaws

I am not really sure what to think about the proposed OpenJDK Community Bylaws. There are some very obvious issues in there:

  • The governance board is responsible for sufficient infrastructure for the members, but doesn’t have any resources for that.
  • There is a direct tie to the JCP and the platform JSRs, but those are currently published under license terms that are GPL-incompatible (See Moving Java forward through the JCP?).
  • Members are those that assign all rights to Oracle. (See Trusting companies with your code… and Oracle tries to destroy free java – now what?).
  • It doesn’t define the minimum (GPL) copyright, trademark and patent grants as used by the project (although it does mention it should be open-source).
  • The board consists of Oracle and IBM appointees, with only a minority for independent candidates (the second and third largest corporate contributors, Red Hat and Google are not even mentioned.)

I have posted a longer analysis to the mailinglist.

Hope those blockers can be fixed, but there is a long way to go IMHO.

New GPG key

Finally created a new GPG key using gnupg. The old one was a DSA/1024 bits one and 8 years old. The new one is a RSA/2048 bits one. I will use the new one in the future to sign any release tarballs I might create.

pub   2048R/57816A6A 2011-01-29
      Key fingerprint = 47CC 0331 081B 8BC6 D0FD  4DA0 8370 665B 5781 6A6A

It currently is only signed by my old key (0x95ABF50C), so if you trusted that really was me, then you can be pretty sure the new one is also me. But it would be good to get some more people to confirm the transition. So if you happen to come to Fosdem next weekend and run into me, please exchange GPG key details to confirm each others identity. Full public key available from my homepage and on the various keyservers (gpg --recv-key 57816A6A) .

Who knew IPv6 would be this easy?

Obvious, with only hours till we run out of ipv4 addresses, I am a little late to the party, but it was ridiculously easy to get an IPv6 tunnel going so that I will be able to happily connect to all those new IPv6-only hosts in the future. It literally took just 5 minutes.

  • On Fedora make sure you also run the network scripts on startup (it seems to default to NetworkManager only these days): chkconfig networking on.
  • Look up your ISP IPv6 tunnel setup procedure (or if they haven’t one yet, look for a public one like Sixxs, Freenet6 or Hurricane Electric).
  • Punch in the ipv4 tunnel address and the ipv6 addresses provided into /etc/sysconfig/network-scripts/ifcfg-sit1.
  • Add NETWORKING_IPV6=yes and IPV6_DEFAULTDEV=sit1 to /etc/sysconfig/network.
  • Restart networking: service networking restart.
  • Done! You can now happily explore the IPv6 space: traceroute6 fedoraproject.org. And check http://test-ipv6.com/ to see your are ready for World IPv6 day.

Example /etc/sysconfig/network-scripts/ifcfg-sit1 file:

DEVICE=sit1
BOOTPROTO=none
ONBOOT=yes
IPV6INIT=yes
IPV6TUNNELIPV4=198.51.100.241
IPV6ADDR=2001:db8:10:a8c::2

Apparently things are even easier with 6to4 if you have a direct IPv4 address, but the above works even behind a NAT. The above doesn’t use all the fancy IPv6 features yet like providing automatic configuration for all your devices in your network. Such a tunnel will automagically provide you with at least 2^64 IPv6 addresses, and most likely you get a whole IPv6 /48 network meaning you will be getting 2^16 * 2^64 addresses (yes, that is 2^48 times more addresses than there are currently IPv4 addresses in the world!). But it is a nice start to make sure the future transition will be smooth.

See also /usr/share/doc/initscripts-*/ipv6-tunnel.howto and/or /usr/share/doc/initscripts-*/ipv6-6to4.howto for more information, including setting up all the fancy routing stuff on your local network if you want.

Free Java @ Fosdem Talk Schedule

FOSDEM, the Free and Open Source Software Developers' European Meeting

Saturday 5, Sunday 6 February 2011, Fosdem, Brussels, Belgium. Room AW1.125. Updated! Now with even more talks!

Saturday

When

What

Who

13:00-13:10

Welcome to Java Sans Frontières

Tom Marble

13:10-14:00

State of OpenJDK

Mark Reinhold, Joe Darcy

14:00-14:30

IcedRobot, the GNUlization of Android

David Fu, Mario Torre

14:30-15:00

break + group picture

15:00-15:20

Why Linux distributions hate Java

Thierry Carrez

15:20-15:40

The Java Packaging Nightmare

Torsten Werner

15:40-16:00

Guide to packaging for developers

Stanislav Ochotnicky

16:00-16:25

break

16:25-16:30

What makes IcedTea tick?

Mark Wielaard

16:30-17:00

What in the world is this ‘IcedTea-Web’ project?

Deepak Bhole

17:00-17:30

The Free javaws Implementation in IcedTea

Omair Majid

17:30-18:00

break

18:00-18:30

Lessons open sourcing Java taught me

Simon Phipps

18:30-19:00

The Rise and Fall and Rise of Java

Steve O’Grady

evening

../LibreDinner

 

Sunday

When

What

Who

09:30-10:00

The Free Java Jigsaw Puzzle

Tom Marble

10:00-10:30

The Modular Java Platform

Mark Reinhold

10:30-11:15

Project Coin – Language Evolution in the Open

Joe Darcy

11:15-11:30

break

11:30-12:00

Observing HotSpot with SystemTap

Mark Wielaard

12:00-12:30

JamVM Gets a New Flavour: Porting JamVM to OpenJDK

Robert Lougher

12:30-13:00

IndyDroid – JSR 292 on Android

Rémi Forax

13:00-13:30

lunch and keysigning

13:30-14:00

Azul’s Foray into Open Source

Cliff Click

14:00-14:30

Free Java – Reasons to be cheerful!

Ben Evans, Martijn Verburg

14:30-15:00

PHP.reboot a dynamic language as fast as Java (almost!)

Rémi Forax

15:00-15:30

break

15:30-16:00

Rhino and RingoJS – server-side JavaScript on the JVM

Hannes Wallnöfer

16:00-16:30

AltosUI – Rocket Telemetry Ground Station

Bdale Garbee

16:30-16:55

Low latency in Gervill and JavaSound

Karl Helgason

16:55-17:00

Garbage Collection (wrap-up)

Tom Marble

Free Java @ FOSDEM 2011 – CFP extended to 17 December!

We already have some awesome proposals… but we want MORE!
So we’re giving you a little more time to get those talk proposals in.

We have reserved some slots for quick lightning talks (5 min), these can be done spontaneously at the event, but please do let us know if you are attending and will likely want to do one, even if you are not 100% sure yet. That way we can better schedule the time slots.

If you don’t want to give a talk, but want to support speakers attending the Free Java devroom at FOSDEM 2011, please see our sponsoring campaign: http://pledgie.com/campaigns/14110

Original announcement with adjusted dates follows:

Join us at FOSDEM 2011 to be a part of our sessions where we’ll discuss the state of Free Java!

Our theme is “Java Sans Frontières”

  • Why Free Java technology is awesome
  • Standing on the Shoulders of Free Java
  • The future of Free Java

The Call For Participation is OPEN NOW, but closes on 17th December…
So send in a talk proposal today and join us in Brussels 5-6 February!

Why FOSDEM?

  • Engage in scintillating discussions with smart hackers over world famous Belgian Beer
  • Join the Web of Trust by getting your strong new key signed
  • Indulge in exquisite chocolate
  • Visit historic Brussels within walking distance

Why the Free Java DevJam?

  • This is the most significant non-commercial, neutral environment for Java developers to meet
  • Learn how to get involved in technical Free Java projects
  • We will not shy away from politics (especially this year)!
  • We will get together for an awesome Dinner
  • You will meet historic hackers in the evolution of Free Java

Please join the freejava-devroom@lists.fosdem.org list for general discussion about the event.

To submit a formal Talk Proposal follow the guidelines at
http://wiki.debian.org/Java/DevJam/2011/Fosdem/CallForParticipation

Respectfully,

Moving Java forward through the JCP?

Mark Reinhold recently pointed out that he, Joe Darcy and Brian Goetz had submitted their OpenJDK work on features for JDK7 and JDK8 to the JCP for standardization. Normally I am somewhat sceptical about the JCP. I don’t believe the JCP fosters a truly open process and discourages Free Software implementations. But Mark, Joe and Brian seem to be proving me wrong. Of course that shouldn’t have surprised me, since they have shown themselves to do everything in the open and actively involve the community in all their OpenJDK work. All their code has been published under the GPL for everyone’s free use.

The JSRs mention that the code for the Reference Implementation will be developed within the OpenJDK Community. Mark has kept the JDK7 planning page and features page public and up to date. And all (prototype) code of the various proposed JSR components is already available under the GPL. People who have been following the various OpenJDK mailinglists know that they have also already announced that they will keep using the existing OpenJDK repositories for developing the Reference Implementation and they look forward to continued collaboration with the community through those same open public mailinglists.

So these might well be the most open, public and free java platform JSRs out there. Now the Free Software implementation defined through the community in OpenJDK comes first, and then gets standardized through the JCP. That seems a very good thing.

There are however still some small issues that in my humble opinion make this standardization effort less effective than could be. That mainly comes from some of the legalese included in these JSR proposals. The legal language used seems to not have caught up with the new OpenJDK reality yet. This might lead to the schizophrenic situation that the community that helps and takes advantage of the fact that we now collaborate in the open might not actually be able to use the results of this standardization process to check their own implementations are according to the official specification because the current terms seem incompatible with the terms of the GNU General Public License used for OpenJDK, IcedTea and other community derivatives of the code that implements the reference implementation.

Firstly the proposed specification license is tightly coupled with (passing) the TCK (which has its own problems, see the last point below) and contains restrictions, specifically on sub and super setting, which are incompatible with the GPL. But since most of the specification, like those for the full class library are also published under the GPL (just do a yum install java-1.6.0-openjdk-javadoc), such restrictions on the official final specification license are counter productive and conflict with the actual implementation license used for OpenJDK. Secondly the proposed reference implementation license is still proprietary. As I pointed out before, this prevents anybody comparing pure OpenJDK, IcedTea or other derived binaries with the “official” reference implementation binaries. This again is counter productive for the community that actually produces these GPLed binaries. Mark Reinhold used to publish binaries of the Jigsaw work in progress under free terms on dl.openjdk.java.net, which would be a much better fit. Finally the proposed TCK license contains (field of use) restrictions. These were unworkable for OpenJDK6 and so a special Community TCK License Agreement had to be created. It would be nice if such special case TCK license terms weren’t necessary and OpenJDK7 derivatives could have a TCK license without GPL-incompatible restrictions from the start.

If these legal nitpicks could be fixed, then these platform JSRs look pretty sweet. Without these legal terms fixed however we could end up with a somewhat schizophrenic split community. Where those who collaborate on the open, free, GPLed implementation that is being standardized aren’t actually allowed to use the finalized specification, reference implementation and compatibility testsuite to check their own work.

Java Hotspot MIPS port

LIU Qi from Longsoon wrote up some OpenJDK MIPS port related information on the IcedTea wiki: http://icedtea.classpath.org/wiki/MIPSPort. Go check it out if you own some MIPS hardware and want to help out.

CFP Now Open: Free Java @ FOSDEM 2011

Join us at FOSDEM 2011 to be a part of our sessions where we’ll discuss the state of Free Java!

Our theme is “Java Sans Frontières”

  • Why Free Java technology is awesome
  • Standing on the Shoulders of Free Java
  • The future of Free Java

The Call For Participation is OPEN NOW, but closes on 3rd December…
So send in a talk proposal today and join us in Brussels 5-6 February!

Why FOSDEM?

  • Engage in scintillating discussions with smart hackers over world famous Belgian Beer
  • Join the Web of Trust by getting your strong new key signed
  • Indulge in exquisite chocolate
  • Visit historic Brussels within walking distance

Why the Free Java DevJam?

  • This is the most significant non-commercial, neutral environment for Java developers to meet
  • Learn how to get involved in technical Free Java projects
  • We will not shy away from politics (especially this year)!
  • We will get together for an awesome Dinner
  • You will meet historic hackers in the evolution of Free Java

Please join the freejava-devroom@lists.fosdem.org list for general discussion about the event.

To submit a formal Talk Proposal follow the guidelines at
http://wiki.debian.org/Java/DevJam/2011/Fosdem/CallForParticipation

Respectfully,

Doug Lea on leaving the JCP and the way forward

Doug Lea posted why he is not seeking another term on the JCP Executive Committee:

I believe that the JCP is no longer a credible specification and standards body, and there is no remaining useful role for an independent advocate for the academic and research community on the EC.

Some have argued that JCP was never a credible standards body. I once disagreed: Sun initially placed in the JSPA and Process documents enough rules to ensure that the JCP could foster innovation, quality, and diversity, […] However, some of these rules, and violations of rules, have been found to be the source of stalemates and lost technical ground. […]

For the core Java platform (which these days roughly corresponds to Java SE), the only existing vehicle for which I can foresee a useful role for the academic and research community is OpenJDK. OpenJDK is a shared-source, not shared-spec body, so is superficially not an alternative at all. But at this point, a Linux-style model for collaboratively developed common source is likely to be more effective in meeting upcoming challenges than is the JCP.

I admit that I was one of those people who argued that the JCP always has been hostile towards Free Software communities. Which is why I personally always concentrated on just producing Free Software implementations and routed around the JCP whenever I could. But it is sad to see even people like Doug Lea loosing the faith. He was brave enough to at least try.

I do agree concentrating on a shared Free Software implementation distributed under the GPL is the best way forward for Java. If we can really turn such a project into a collaboratively developed common source base on which everybody is free to build innovative platforms. Hopefully OpenJDK, with a little help from IcedTea, GNU Classpath and friends, will be that project.

GDB Python integration

The GDB Python integration is really awesome. But whenever I want to point people at it I never know what a good overview is to link them to. So I created a little PythonGdbTutorial page on the GDB wiki that has just a one sentence summary and links to all the articles Tom Tromey wrote about the cool stuff that is now possible. Like implementing new gdb commands, convenience functions, filtering backtraces, pretty printers, scripting gdb itself and even writing a whole new GUI, all in python of course.

Update: Phil Muldoon pointed out that the online GDB manual is also completely up to date now. See the GDB Python chapter.