Ebuilds Notes

From Elvanör's Technical Wiki
Jump to navigation Jump to search

Eclipse 3.3

  • The Ant script creates a .tar.gz file at the end. We need to unpack it to perform further modifications.
  • To create this .tar.gz, stuff is copied from the build directory. We need to remove this copying in the main build.xml file, as we will later create the symlinks to our system jars.
  • The Javadoc is ran by the build file buildDoc.xml in plugins/org.eclipse.platform.doc.isv. You could disable it here, or if you want to produce the javadoc, you need to add some classpath entries. Note that the warnings about multiple sources for comments is an upstream problem.
  • OSGi Manifests: if you have a header spanning several lines, it is *imperative* that you start newlines with a space!! Else this is considered to be another header. Also end your manifest files with some blank lines.
  • Eclipse imperatively expects the Ant jar to be "exploded", eg in folder form. So we must keep a org.apache.ant folder with inside a manifest and a lib dir. We will symlink to the system jars in lib/. Keep the manifest bundle classpath up-to-date with the actual symlinks, else errors appear on the log (Eclipse tries to find jars that are not present).
  • In 3.3, the help system has been switched to the Jetty container. Tomcat is no longer needed (except for external plugins still not migrated to the new system). In 3.4, Tomcat is removed entirely.
  • The build system is somehow generic. If a particular plugin/component needs to do some special things, there is a file named customBuildCallbacks.xml, that contains some specific tasks to be done. Apart from that, the other tasks don't vary a lot from component to component. The "@dot" task takes care of the compiling. "gather.bin.parts" seems to create the component hierarchy structure (copies needed files into a destination folder, that will be packaged into a jar at some point).
  • In the current Eclipse plugin, the C part of Eclipse (the loader) is extracted from org.eclipse.platform. Then it gets patched (to set proper CFLAGS etc). The loader is responsible for setting the correct Gecko directory (for the internal browser), so this may interfere somehow.
  • Printing support is achieved through SWT, and more precisely through the Cairo GTK support in SWT.
  • Eclipse Tasks:
    • Get reviews.
  • Future Improvements:
    • Unbundle lucene-analysis, jetty and tomcat-jasper.
    • Do something about ant tasks (optional)

OSGi

  • To launch the OSGi console, type eclipse-3.4 -console -noExit.
  • To see the list of bundles, type ss. The ones that have status "INSTALLED" have a problem; type diag #bundleNumber to obtain more information.
  • In OSGi version range syntax, "[" means greater or equal, "(" means strictly greater. The same applies to "]" and ")".

Eclipse dependencies

  • SWT. SWT is the graphical library used by Eclipse, it delegates rendering to native systems (GTK on Linux).
  • Eclipse-ecj. This seems to be a Java compiler, Eclipse needs to be built with it. There is an Ant task that pulls this package, so Eclipse only depends on the Ant task.
  • ICU4J is also needed.

ant-contrib

  • The latest release uses Apache Ivy, but is not compatible with the newer (2.0 and later) versions unfortunately.

Upstream Actions