NBPackagingPlan

Planning for NetBeans Binary Packaging

Contents


Main steps

Create build scripts

Create scripts to build deb/rpm packages for desired Linux distributions and include the scripts in the current build system.

Resources:

  • 5 eng/days to develop scripts
  • 3 eng/days to set up all supported Linux distributions/architectures to build and test native packages (QE and RE help is required)
  • several eng/days to adjust current build system to run scripts (RE help is required), testing

List of possible distributions

  1. Ubuntu 10.10 ("Maverick Meerkat") i386/AMD64
  2. Ubuntu 10.04 LTS ("Lucid Lynx") i386/AMD64
  3. Ubuntu 9.10 ("Karmic Koala") i386/AMD64
  4. Ubuntu 9.04 ("Jaunty Jackalope") i386/AMD64
  5. Ubuntu 8.04 LTS ("Hardy Heron") i386/AMD64
  6. Debian 6.0 ("Squeeze") i386/AMD64
  7. Debian 5.0 ("Lenny") i386/AMD64
  8. Debian 4.0 ("Etch") i386/AMD64
  9. Fedora 13 ("Goddard") i386/AMD64
  10. Fedora 12 ("Constantine") i386/AMD64
  11. Fedora 11 ("Leonidas") i386/AMD64
  12. Fedora 9 ("Sulphur") / 10 ("Cambridge") i386/AMD64
  13. Red Hat Enterprise Linux 5 ("RHEL5") / Oracle Enterprise Linux 5 ("OEL5") / CentOS 5 i386 | AMD64
  14. Red Hat Enterprise Linux 4 ("RHEL4") / Oracle Enterprise Linux 4 ("OEL4") / CentOS 4 i386

Create NetBeans Linux software repositories for Ubuntu/Fedora

NetBeans Linux software repositories will make it easier to download and stay up-to-date with current releases of NetBeans IDE. The repositories will contain "NetBeans 6.x.x" and "NetBeans Dev" binary and meta packages for supported Linux distributions. Currently there are two approaches:

  • First: create binary package for "full" NetBeans bundle only.
    In this case repository will contain the following packages:
Package Name Template and Example Description and how to install via apt-get
netbeans-latest_6.x.x~Ubuntu~<distro>_all.deb
Ex: netbeans-latest_6.8.0~Ubuntu~lucid_all.deb
metapackage, contains link to the latest NetBeans release.
Ex: "apt-get install netbeans-latest"
netbeans-6.x.x_<build_date>~Ubuntu~<distro>_all.deb
Ex: netbeans-6.8_200912041610~Ubuntu~lucid_all.deb 
binary package, installs NetBeans 6.x.x full bundle
Ex: "apt-get install netbeans-6.8"
netbeans-dev_<build_date>~Ubuntu~<distro>_all.deb
Ex: netbeans-dev_200912031610~Ubuntu~<distro>_all.deb
binary package, installs NetBeans Dev full bundle which was built on 200912031610
Ex: "apt-get install netbeans-dev"


  • Second: create binary packages for all clusters of NetBeans and several metapackages that will install various bundles (javase, java, php, ruby, etc)
    In this case repository will contain the following packages:
Package Name Template and Example Description and how to install via apt-get
netbeans-latest_6.x.x~Ubuntu~<distro>_all.deb
Ex: netbeans-latest_6.8.0~Ubuntu~lucid_all.deb
metapackage, contains link to the latest NetBeans release.
Ex: "apt-get install netbeans-latest"
netbeans-<bundle>-6.x.x_<build_date>~Ubuntu~<distro>_all.deb
Ex: netbeans-full-6.8_200912041610~Ubuntu~lucid_all.deb 
Ex: netbeans-php-6.8_200912041610~Ubuntu~lucid_all.deb
metapackage, installs NetBeans 6.x.x "bundle"
Ex: "apt-get install netbeans-full-6.8" 
Ex: "apt-get install netbeans-php-6.8"
libnb-<cluster>-java-6.x.x_<build_date>~Ubuntu~<distro>_all.deb
Ex: libnb-profiler-java-6.8_200912041610~Ubuntu~lucid_all.deb 
binary package, installs <cluster> from NetBeans 6.x.x
Ex: "apt-get install libnb-profiler-java-6.8"
netbeans-<bundle>-dev_<build_date>~Ubuntu~<distro>_all.deb
Ex: netbeans-full-dev_200912031610~Ubuntu~<distro>_all.deb 
Ex: netbeans-cpp-dev_200912031610~Ubuntu~<distro>_all.deb
metapackage, installs NetBeans Dev <bundle> which was built on 200912031610
Ex: "apt-get install netbeans-full-dev" 
Ex: "apt-get install netbeans-cpp-dev"
libnb-<cluster>-java-dev_<build_date>~Ubuntu~<distro>_all.deb
Ex: libnb-profiler-java-dev_200912041610~Ubuntu~lucid_all.deb 
binary package, installs <cluster> from NetBeans Dev
Ex: "apt-get install libnb-profiler-java-dev"


Resources:

  • A webserver with enough amount of free disk space
  • 2-5 eng/days and RE help to set up the server and the repositories

Example (apt repository for VirtualBox): http://download.virtualbox.org/virtualbox/debian

Repository size estimation

Raw count of the repository size for full NetBeans bundle:

<tar.gz size of NB binaries> * (<number of NB releases> + 1(dev)) * <number of OS distros>

Ex for Ubuntu:
<tar.gz size of NB binaries> ~ 240MB (using 6.9RC1 full bundle for example)

<number of NB releases> = 2 (6.8 and 6.9RC1)

<number of OS distros> = 6 ( intrepid, jaunty, karmic, lucid, maverick, lenny)

Total: 240 * 3 * 6 = 4,3 GB

Create d/l page for binary native packages

D/l page should contain the following information:

  • step-by-step GUI instructions how to configure the system to use NetBeans Linux software repositories
  • instructions for command line configuration of the NetBeans Linux software repositories
  • netbeans-repo-setup.sh - shell script that will automatically perform the operations described in the above instructions
  • instructions how to install NetBeans bundles after repositories configuration
  • links to the binary packages (optional)

Resources:

  • 3-5 eng/days to create instructions, scripts and set up the page
  • todo

Example: http://www.virtualbox.org/wiki/Linux_Downloads

Testing

TODO

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