Thursday, January 26, 2012

Fedora Eclipse Build: Introduction

It has been almost a month, since I stared my work for Red Hat.

I am taking care of Eclipse Build, which is even more complicated than regular Eclipse build (yes, Kim, that *is* possible).

The first and the most important assumption of Linux Eclipse Build is: no binaries allowed.

Some people call that kind of builds liberating. That is the last word that I'd use now ;-).

I will describe nuances that I have met during preparing Eclipse Juno for Fedora 17 in the following posts, but right now I'd like to mention just the first issue I have met:

If you want to build Eclipse, you need a builder, namely, a PDE Build. It looks like a chicken an egg problem, and the only solution is to build the builder using ant and OpenJDK. There is only one problem with that (OK, one serious problem and a lot of smaller ones that I will skip for now): Eclipse Java Compiler is not consistent with OpenJDK javac, or, stating it more clearly, JDT code cannot be compiled with javac.

That's not a big technical problem, as patching the source code before the build and making it javac compatible (and JDT incompatible) is not a very difficult thing, but it is open a rather serious question.

How does it come to the situation, where you cannot build Eclipse from scratch, but you have to use binaries to build Eclipse? Isn't it a bit against open-source philosophy? Today need we just Eclipse Compiler, which cannot be built (unless customized) from source. Tomorrow may we depend on something far less open.

Would not it make sense to put a requirement on Eclipse that some core plugins must compile with OpenJDK? I do not expect here mirroring all OpenJDK bugs in Eclipse compiler, but at least allowing for true open source build of it...

Here is a bug for those of you who are interested in the cause of the javac problem when building JDT.

In the next post: do Orbit users get what they expect?

EDIT: here is the link to the patch that makes JDT compile with OpenJDK.

7 comments:

  1. Great post. I look forward to the rest of the series :-)

    ReplyDelete
  2. I'm curious. Do you plan on building all of Eclipse with OpenJDK, or do you plan on building the EJC and then using that to build eclipse?

    ReplyDelete
    Replies
    1. We are first building something similar to Kim's base builder.
      (Some) details are described here .http://wiki.eclipse.org/Linux_Tools_Project/Eclipse_Build/Inner_Workings#Bootstrapping_Eclipse.

      Delete
  3. Didn't know that Oracles javac or OpenJDK does not compile Eclipse JDT. Thats bad IMHO.

    ReplyDelete
  4. I find it worrying, but it looks like the Eclipse JDT is not alone.
    Last week I had to patch felix gogo command (that's one of Eclipse dependencies), too.

    ReplyDelete
  5. @Chris: JDT tried to fix the issue and is awaiting your feedback in https://bugs.eclipse.org/bugs/show_bug.cgi?id=369628

    ReplyDelete
  6. Thanks for the reminder. I'm already at FOSSDEM and I am not really able to check that right now, but I should do that next week.

    ReplyDelete