Ubuntu/Debian Packages for NetBeans 5.5

Supported OS

  • Main target is upcomming version of Ubuntu 7.04 Feisty to be released in April 2007

External dependencies

List of possible external dependencies:

  • Sun JDK 5.0 or newer if available. We will declare dependency on Sun JDK 5.0 package sun-java5-jdk.
  • GlassFish application server. It is optional dependency but it would be good to know if GlassFish will be available as package and if
 yes then test integration of NetBeans IDE and GlassFish.
  • Tomcat 5.5.17 is currently available as package tomcat5.5. Currently tomcat is embedded in NetBeans.
  • Ant 1.6.5 is available as package ant.
  • JavaHelp 2.0_04
  • JGoodies Forms
  • Java Secure Channel

For Tomcat, Ant, JavaHelp, JGoodies Forms and Java Secure Channel we need to decide if we can keep embedded versions inside our own packages or if we need to depend on existing packages. With NetBeans 5.5 for Ubuntu Feisty we want to keep the embedded versions of these libraries, if not requested otherwise by the Ubuntu multiverse repository maintainer. This will be confirmed soon.


Current plan is to create 2 packages: Platform and IDE to simplify things. For next version we can consider more modular packaging probably copying clusters. We will produce only binary packages not source packages for NetBeans 5.5. Again source packages will be probably provided in future.

Current status

This part describes packaging details.

There are 2 packages:

  • netbeans5.5-platform version 5.5-1
  • netbeans5.5 version 5.5-1

Selected items from control file:

Package: netbeans5.5-platform
Architecture: all
Section: libs
Depends: sun-java5-bin | sun-java6-bin

Package: netbeans5.5
Architecture: all
Depends: sun-java5-jdk | sun-java6-jdk, netbeans5.5-platform (=5.5-1)
Suggests: sun-java5-source, sun-java6-source

Installation location: Data are stored into /usr/share/netbeans/5.5. Package naming now allows multiple NetBeans versions installed simultaneously so it it necessary to separate data from different versions somehow. In addition IDE launcher is installed as /usr/bin/netbeans and man page is installed as /usr/share/man/man1/netbeans.1.gz. Menu item is installed into /usr/share/applications/netbeans.desktop.

Alternatives: Linux allows to support multiple versions of the same program. For NetBeans alternatives are set for launcher and man page. (I will check if it is possible also for menu item or NetBeans icon.) Then it is possible to use update-alternatives to change selected program version. (There is symbolic link /usr/bin/netbeans pointing to /etc/alternatives/netbeans. /etc/alternatives/netbeans is again symbolic link pointing to actual launcher /usr/share/netbeans/5.5/bin/netbeans.

Project: Project for building packages is in CVS in main trunk under /installer/packages/ubuntu/netbeans-5.5. Description how to build packages is in file !ProgrammingNotes.txt.

Marek Slama

Why not follow the Installation Proposal?

The Installation Proposal is deeply discussed solution (ARC, Sun Studio, etc.) to packaging problems and any attempt to provide native package shall follow it or declare what is wrong.

There were few questions about suitability of the Installation Proposal so here they are together with answers resolving them:

  • symlinks - currently proposed solution does not solve symlinks or sharing of bits with other installed packages - Fine Installation Proposal suggests to use symlinks to JARs provided by other packages, but that is not necessary condition and can be done incrementally in future. Installation Proposal can be used with or without symlinks.
  • linbnb prefix is not favoured - Fine Installation Proposal does not prescribe the names, just the behavior - e.g. each cluster package shall contain the cluster number (platform6) to allow co-existence of multiple versions of the same cluster (platform6 and platform7).
  • reading /etc/netbeans.conf - the netbeans launcher shall read config file from /etc/ location. The ZIP installation shall not read /etc/netbeans.conf. That is ok as these installation are independent and shall not share much of data.
  • harness cluster would be strange package name - that is a reason to call it netbeans-devel, which would be consistent with other linux libraries as they also separate packages to those need in runtime and those needed for developing against given library.

( JesseGlick: probably apisupport/* (other than apisupport/harness) should be in a new cluster nbdev*; then the netbeans-devel package could contain the harness and nbdev* clusters. Please do not exclude the harness cluster from the netbeans package if apisupport/project is included!)

( JesseGlick: what is linbnb?)

None of these problems contradict the recommendations Installation Proposal and thus we should fix the most incorrect issues with current packaging:

What is wrong with current solution?

  • Marketing name shall not be part of a package name that others depend on. E.g. netbeans netbeans5.5-platform is wrong
  • Location of files shall not include marketing name if others can depend on it e.g. /usr/share/netbeans/5.5/platform6/**/* is wrong

Instead we have to:

  • rename the platform package to non-marketing name - for example netbeans-platform6 will do. Such a package shall have revision 5.5 and in next version 5.5.1 - this will help people understand that this is the platform that is part of NetBeans IDE 5.5 (or 5.5.1)
  • remove marketing name from files locations - use /usr/share/netbeans/platform6. Together with this is makes sense to also move other clusters to /usr/share/netbeans/ide7/,

/usr/share/netbeans/nb5.5/, /usr/share/netbeans/harness/ as is the original plan in Installation Proposal

Jaroslav Tulach

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo