Project Plan For Linux Tools, version 1.0

Introduction

The Linux Tools project is a two-faceted project. Firstly, it develops tools and frameworks for writing tools for Linux developers. Secondly, it provides a place for Linux distributions to collaboratively overcome issues surrounding distribution packaging of Eclipse technology. The project will produce both best practices and tools related to packaging.

Release Deliverables

The Linux Tools project delivers tools as Eclipse plugins which are used primarily by Linux developers and packagers. The project also aims to deliver various scripts, techniques, and tarballs which ease the process of packaging Eclipse technology for Linux distributions.

Table of Contents

Release Milestones

0.12009-01-16

First release

Latest ChangeLog and specfile editor releases, first release of plugin building and packaging tools (RPM Stubby), resurrected OProfile plugin, initial eclipse.org release of autotools, libhover, valgrind, and systemtap editor plugins.

0.2RC2009-04-01

Release candidate build towards 0.2

initial cachegrind support improved OProfile privilege-escalation

0.22009-05-11

0.2 release

initial cachegrind support, improved OProfile privilege-escalation, pre- and post-build steps for autotool'd projects, compare support for RPM .spec files, mass BIRT chart interactivity, greatly improved test coverage, many bugfixes

0.32009-08-19

0.3 release

wiki-based help documentation, initial integration of SystemTapGUI contribution, integration of SystemTap editor and SystemTapGUI, more robust Valgrind interaction, manual control of OProfile daemon, 3.5 SDK packaging tools (eclipse-build)

0.42009-11-23

0.4 release

integration of GProf contribution, 3.5.1 SDK packaging tools (eclipse-build), plugin building scripts (package-build), SDK test running scripts, Systemtap-backed call graph functionality,

0.4.12009-12-21

0.4.1 bug-fix release

Bug fixes for 0.4.0: https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;target_milestone=0.4.1;product=Linux Tools;classification=Technology

0.52010-02-17

0.5 release

integration of LTTng contribution, further improvements to ease distro consumption of eclipse-build, integration of GCov contribution, initial release of man page viewer, initial release of SystemTap GUI dashboard

1.02010 Q3

1.0 release

SDK packaging tools: 3.5.x eclipse-build, SDK tests, plugin building scripts, testing scripts, scripts for running SDK tests against distro packages; Native development tools: Tracing tools, Systemtap integration, Autotools, libhover, ChangeLog, OProfile, Valgrind, GProf, LTTng

Table of Contents

Target Environments

For releases <= 0.2, the tools run with Eclipse 3.4.x (some may still require updating from 3.3 in places) and require Java 5.0. Some tools -- notable the autotools and profiling plugins -- require CDT >= 5.0.0 (6.0 for our 0.3 release and greater). For releases >= 0.3, the tools run with Eclipse 3.5.x and related dependencies.

The packaging tools not delivered as Eclipse plugins have varying requirements but generally require basic tools such as bash, sh, sed, awk, grep, etc.

Internationalization

The tools aim to have all strings externalized so as to facilitate internationalization. At present, no translations are provided. See bug #261255 and bug #261256.

Table of Contents

Compatibility with Previous Releases

Table of Contents

Themes and Priorities

The Linux Tools project differs in aims from many Eclipse projects. It enables adopters of Eclipse technology but often through help with consumption and not always through APIs. It also aims to be a place for collaboration among Linux distributions. The project also aims to bring Eclipse technology to Linux developers by providing tools targetted at Linux developers -- specifically those programming in C and C++.

Getting the Eclipse SDK into Linux distributions

Most Linux distributions require all packages included therein to be built directly from source code. This theme encompasses the project goal of assisting distributions in their building and packaging of the Eclipse SDK as well as standardizing practices and any patches needed. It also aims to encourage and aid distributions in their attempts to drive unit test results down to zero.

  • Committed
    • No items.
  • Proposed
    • Create a formatter for spec files [287309] (target milestone: ---)
    • [eclipse-build] Make SWT's Makefile see Debian's default JDK location like it does for Fedora [291670] (target milestone: ---)
    • [eclipse-build] Ease usage of system-installed dependencies (JARs) [280688] (target milestone: ---)
    • [eclipse-build] Ensure eclipse-build can be used by Debian OOTB [286650] (target milestone: ---)
    • [eclipse-build] Ensure eclipse-build can be used by Fedora OOTB [286822] (target milestone: ---)
    • [eclipse-build] Document disk space requirements for eclipse-build [286827] (target milestone: ---)
    • [eclipse-build] Straighten out headless test running on Debian [291680] (target milestone: ---)
    • [eclipse-build] SWT's browser code can't see XULRunner libraries on Debian unstable [291758] (target milestone: ---)
    • [eclipse-build] Clean up spawning of separate JVM and eclipse binary processes [291776] (target milestone: ---)
    • [eclipse-build] do not install unused files [292472] (target milestone: ---)
    • [eclipse-build] all shell scripts should fail on error [292870] (target milestone: ---)
    • [eclipse-build] Install just platform [293731] (target milestone: ---)
    • [eclipse-build] Initialize .so files [294113] (target milestone: ---)
    • [eclipse-build] Put JDT and SDK bits into dropins [294114] (target milestone: ---)
    • [eclipse-build] Put SWT and RCP into independent installation locations [294115] (target milestone: ---)
    • Please rename the version string in fetched source tarball name [294249] (target milestone: ---)
    • [eclipse-build] 100% success with SDK tests [295095] (target milestone: ---)
    • [eclipse-build] 3 failures in org.eclipse.jdt.ui.tests (x86_64; Fedora 12; 0.4RC5) [295096] (target milestone: ---)
    • [eclipse-build] 3 failures, 1 error in org.eclipse.jdt.ui.tests LeakTestSuite (x86_64; Fedora 12; 0.4RC5) [295097] (target milestone: ---)
    • [eclipse-build] 2 failures in org.eclipse.pde.ui.tests (x86_64; Fedora 12; 0.4RC5) [295098] (target milestone: ---)
    • [eclipse-build] 26 failures, 2 errors in org.eclipse.pde.build.tests (x86_64; Fedora 12; 0.4RC5) [295099] (target milestone: ---)
    • [eclipse-build] 1 error in org.eclipse.team.tests.core (x86_64; Fedora 12; 0.4RC5) [295100] (target milestone: ---)
    • [eclipse-build] 12 failures in org.eclipse.ui.parts.tests (x86_64; Fedora 12; 0.4RC5) [295101] (target milestone: ---)
    • [eclipse-build] 39 failures, 7 errors in org.eclipse.ui.tests (x86_64; Fedora 12; 0.4RC5) [295102] (target milestone: ---)
    • [eclipse-build] 1 failure in org.eclipse.jface.tests (x86_64; Fedora 12; 0.4RC5) [295103] (target milestone: ---)
    • [eclipse-build] Run org.eclipse.equinox.p2.tests [295129] (target milestone: ---)
    • [eclipse-build] Run org.eclipse.equinox.p2.tests.ui [295130] (target milestone: ---)
    • [eclipse-build] Run org.eclipse.team.tests.cvs.core [295131] (target milestone: ---)
    • [eclipse-build] Do we need to run org.eclipse.update.tests.core? [295132] (target milestone: ---)
    • [eclipse-build] Do we need to run org.eclipse.releng.tests? [295133] (target milestone: ---)
    • [eclipse-build] Investigate running org.eclipse.ui.tests.performance [295134] (target milestone: ---)
    • [eclipse-build] Build and run org.eclipse.jdt.compiler.tool.tests [295135] (target milestone: ---)
    • eclipse-build does not respect CC, CFLAGS and LDFLAGS [298531] (target milestone: ---)
    • Rpm editor should support different layouts [299994] (target milestone: ---)
    • [eclipse-build] Re-generate eclipse-build-generatedScripts.tar.bz2 and eclipse-build-additionalArchs.tar.bz2 [302647] (target milestone: ---)
    • Support running SDK tests against _installed_ SDK [249205] (target milestone: ---)
    • The SDK source contains binary files [303447] (target milestone: ---)

Getting plugins into Linux distributions

Getting plugins into Linux distributions relates to the project's goal of making it easier to build and package Eclipse plugins for Linux distributions. At present it includes shell scripts and best practice documentation. In the future, we aim to provide Eclipse plugins to help packagers.

  • Committed
    • No items.
  • Proposed
    • Create a formatter for spec files [287309] (target milestone: ---)
    • [eclipse-build] Make SWT's Makefile see Debian's default JDK location like it does for Fedora [291670] (target milestone: ---)
    • [eclipse-build] Ease usage of system-installed dependencies (JARs) [280688] (target milestone: ---)
    • [eclipse-build] Ensure eclipse-build can be used by Debian OOTB [286650] (target milestone: ---)
    • [eclipse-build] Ensure eclipse-build can be used by Fedora OOTB [286822] (target milestone: ---)
    • [eclipse-build] Document disk space requirements for eclipse-build [286827] (target milestone: ---)
    • [eclipse-build] Straighten out headless test running on Debian [291680] (target milestone: ---)
    • [eclipse-build] SWT's browser code can't see XULRunner libraries on Debian unstable [291758] (target milestone: ---)
    • [eclipse-build] Clean up spawning of separate JVM and eclipse binary processes [291776] (target milestone: ---)
    • [eclipse-build] do not install unused files [292472] (target milestone: ---)
    • [eclipse-build] all shell scripts should fail on error [292870] (target milestone: ---)
    • [eclipse-build] Install just platform [293731] (target milestone: ---)
    • [eclipse-build] Initialize .so files [294113] (target milestone: ---)
    • [eclipse-build] Put JDT and SDK bits into dropins [294114] (target milestone: ---)
    • [eclipse-build] Put SWT and RCP into independent installation locations [294115] (target milestone: ---)
    • Please rename the version string in fetched source tarball name [294249] (target milestone: ---)
    • [eclipse-build] 100% success with SDK tests [295095] (target milestone: ---)
    • [eclipse-build] 3 failures in org.eclipse.jdt.ui.tests (x86_64; Fedora 12; 0.4RC5) [295096] (target milestone: ---)
    • [eclipse-build] 3 failures, 1 error in org.eclipse.jdt.ui.tests LeakTestSuite (x86_64; Fedora 12; 0.4RC5) [295097] (target milestone: ---)
    • [eclipse-build] 2 failures in org.eclipse.pde.ui.tests (x86_64; Fedora 12; 0.4RC5) [295098] (target milestone: ---)
    • [eclipse-build] 26 failures, 2 errors in org.eclipse.pde.build.tests (x86_64; Fedora 12; 0.4RC5) [295099] (target milestone: ---)
    • [eclipse-build] 1 error in org.eclipse.team.tests.core (x86_64; Fedora 12; 0.4RC5) [295100] (target milestone: ---)
    • [eclipse-build] 12 failures in org.eclipse.ui.parts.tests (x86_64; Fedora 12; 0.4RC5) [295101] (target milestone: ---)
    • [eclipse-build] 39 failures, 7 errors in org.eclipse.ui.tests (x86_64; Fedora 12; 0.4RC5) [295102] (target milestone: ---)
    • [eclipse-build] 1 failure in org.eclipse.jface.tests (x86_64; Fedora 12; 0.4RC5) [295103] (target milestone: ---)
    • [eclipse-build] Run org.eclipse.equinox.p2.tests [295129] (target milestone: ---)
    • [eclipse-build] Run org.eclipse.equinox.p2.tests.ui [295130] (target milestone: ---)
    • [eclipse-build] Run org.eclipse.team.tests.cvs.core [295131] (target milestone: ---)
    • [eclipse-build] Do we need to run org.eclipse.update.tests.core? [295132] (target milestone: ---)
    • [eclipse-build] Do we need to run org.eclipse.releng.tests? [295133] (target milestone: ---)
    • [eclipse-build] Investigate running org.eclipse.ui.tests.performance [295134] (target milestone: ---)
    • [eclipse-build] Build and run org.eclipse.jdt.compiler.tool.tests [295135] (target milestone: ---)
    • eclipse-build does not respect CC, CFLAGS and LDFLAGS [298531] (target milestone: ---)
    • Rpm editor should support different layouts [299994] (target milestone: ---)
    • [eclipse-build] Re-generate eclipse-build-generatedScripts.tar.bz2 and eclipse-build-additionalArchs.tar.bz2 [302647] (target milestone: ---)
    • Support running SDK tests against _installed_ SDK [249205] (target milestone: ---)
    • The SDK source contains binary files [303447] (target milestone: ---)

Improve ChangeLog plugin

Many open source projects use GNU-style ChangeLog files to manage their changes. These plugins help writing ChangeLogs and provide an editor for ChangeLog files. Although these plugins are largely mature, we should continue to fix any bugs and increase their robustness.

  • Committed
    • No items.
  • Proposed
    • Colourization wrong if no file specified. [179547] (target milestone: ---)
    • filename colour spills into change description [179546] (target milestone: ---)
    • ChangeLog should link with Quick Fix [179550] (target milestone: ---)
    • Need ChangeLog icon [214248] (target milestone: ---)
    • Improve and create JUnit tests for Changelog GNU formatter [224801] (target milestone: ---)
    • ChangeLogAction should refresh in a thread [256180] (target milestone: ---)
    • Content Assist to stub out a new Changelog entry [259262] (target milestone: ---)
    • Removed methods are not listed in the changelog [299974] (target milestone: ---)

Make OProfile easy to use from within Eclipse

OProfile is a very commonly used Linux profiling tool. The project aims to deliver seamless OProfile-based profiling of CDT projects, integrated into the workbench.

  • Committed
    • No items.
  • Proposed
    • overlapping bitmasks makes invalid event unit masks [261917] (target milestone: ---)
    • Find better way to do non-root opcontrol invocation across distros [265646] (target milestone: ---)
    • oprofile view tree filtering [273332] (target milestone: ---)
    • [opxml] reduce opxml's reliance on internal oprofile data structures [273337] (target milestone: ---)
    • [opxml] Clean up and document opxml code [273870] (target milestone: ---)
    • add indicator of no samples from previous profile to oprofile view [274361] (target milestone: ---)
    • cancelling 1st root password prompt does not abort launch [274574] (target milestone: ---)
    • OProfile sessions should be exportable [277591] (target milestone: ---)
    • No profiling data generated - wrong image filter? [296228] (target milestone: ---)
    • OProfile fails when project name contains a space [303000] (target milestone: ---)
    • Colourize hot spots in code [249181] (target milestone: ---)
    • [opxml] profiling binary with only shared library samples shows no results [267969] (target milestone: ---)
    • Unify user interaction of profiling tools [273872] (target milestone: ---)
    • Use p2 to install native fragments [260431] (target milestone: ---)

Improve RPM specfile editor and related plugins

We should continue to add features to and improve the robustness of the RPM specfile editor and its related plugins.

  • Committed
    • No items.
  • Proposed
    • Figure out SCM type and add its URL if we have it [260872] (target milestone: ---)
    • If a feature has fragments, rpmstubby should put it in libdir [260876] (target milestone: ---)
    • For SVN repos, rpm stubby-generated fetch script shouldn't use for loop [260878] (target milestone: ---)
    • Create RCP app. of .spec editor [273903] (target milestone: ---)
    • Extend RPM Stubby to work with non-.rpm packages [273906] (target milestone: ---)
    • Add support for adding/removing BuildRequires/Requires to the form editor [277851] (target milestone: ---)
    • Add menu for building RPMs [279648] (target milestone: ---)
    • The RPM Editor's double click strategy is a bit mad [294555] (target milestone: ---)
    • Provide ability to download Sources with url [299193] (target milestone: ---)
    • Integrate with man page viewer [299861] (target milestone: ---)
    • declared "release" variable with no value set causes a stackoverflow exception in eclipse when the Release: tag references the variable. [300355] (target milestone: ---)
    • Add tabs for build/install sections to the form editor [277852] (target milestone: ---)

Integrate the GNU Autotools into the Eclipse workbench

This set of plugins allows projects that are built using the GNU Autotools (automake, autoconf, etc.) to be developed using the CDT. It relies upon the CDT build mechanisms. This code was submitted in September 2008 and is currently undergoing parallel IP review. Goals include managing new file addition to targets, small wizards to ease creation of various build targets, and tools to export an "autotooled" build.

  • Committed
    • Make targets in autotools projects use wrong paths for target invocation in subdirectories [269974] (target milestone: 0.4)
  • Proposed
    • New Makefile.am (wizard) [249188] (target milestone: ---)
    • New configure.ac wizard [249189] (target milestone: ---)
    • NPE on console [278185] (target milestone: ---)
    • Editor exception opening Makefile.am [280581] (target milestone: ---)
    • Configure view background *and* text black [281391] (target milestone: ---)
    • glib, gdk, dbus (, others?) header files not found when building gnome-terminal [281393] (target milestone: ---)
    • Write unit tests for autotools plugins [281700] (target milestone: ---)
    • Use PackageKit to install packages for missing pkg-config modules [281702] (target milestone: ---)
    • [autoconf editor] Create model node for pkg-config elements [281703] (target milestone: ---)
    • Binaries category in Project Explorer missing after restart of Eclipse [281878] (target milestone: ---)
    • Adding a make target needs too much time [283392] (target milestone: ---)
    • Include path discovery doesn't find C++ header path [289581] (target milestone: ---)
    • Converting an C autotools based project into a C++ lost changes such as build configurations [289834] (target milestone: ---)
    • "configure: WARNING: you should use --build, --host, --target" Always Shown [293994] (target milestone: ---)
    • autoreconf started from build directory [303613] (target milestone: ---)
    • Fail to add non-existing variables to configure flags [303616] (target milestone: ---)
    • No F2 support for Autoconf editor hover if outline node selected [249190] (target milestone: ---)
    • Allow a manual restart of configure, automake, ... once flags such as CPPFLAGS change [281813] (target milestone: ---)

Provide library hover help framework for C/C++ libraries

This set of plugins provides a framework to provide editor hover help for various popular libraries a developer may need for C/C++ development. A new library can add hover help for its interfaces simply by creating a special xml file and using the libhover extension. Ideally, library maintainers would create the information from existing doc files and add it to their packages. Goals include providing hover help for many popular C libraries, allowing selection of hover help per project, and promoting library providers to create these plugins as part of their own build process.

  • Committed
    • No items.
  • Proposed
    • Universal libhover file format [282190] (target milestone: ---)
    • Parse media wiki for hover help (crowdsource code documentation) [301579] (target milestone: ---)

Provide an editor for Systemtap scripts

This plugin offers an editor for Systemtap scripts. Syntax highlighting and completion are initial items that will be delivered. Also see Phil Muldoon's blog entry introducing the project.

  • Committed
    • No items.
  • Proposed
    • Externalize bundleName and bundleProvider in plugin/feature.properties [282039] (target milestone: ---)
    • [callgraph] Recover partial data from SystemTap crash [295735] (target milestone: ---)
    • [callgraph] Auto-resize canvas [288985] (target milestone: ---)

Make valgrind tools easy to use from within Eclipse

Valgrind is a set of tools very commonly used to diagnose memory-related issues among other things. We intend to make using valgrind tools from within Eclipse very simple. Integrating the output of the valgrind tools into the IDE will be a focus as will be simplicity.

  • Committed
    • No items.
  • Proposed
    • Investigate CDT Debug integration [269687] (target milestone: ---)
    • Add filtering option to output [269732] (target milestone: ---)
    • Investigate modifying existing launch configurations for use with Profiling tools [273336] (target milestone: ---)
    • Callgrind support [273873] (target milestone: ---)
    • BIRT charting for callgrind [273874] (target milestone: ---)
    • helgrind support [273876] (target milestone: ---)
    • Create a template for suppression file editor [289274] (target milestone: ---)

Integrate Linux tracing functioning within Eclipse

Tracing frameworks such as SystemTap and LTTng enable users to solve complex problems through data analysis. We aim to provide a framework for working with tracing toolkits and provide an exemplary implementation for LTTng.

  • Committed
  • Proposed

Table of Contents

Appendix

Table of Contents

view raw xml of project plan
from project meta-data key "projectplanurl"