How to maintain Netbeans
========================

1. Update libnb-platform18-java first.

    Due to historical and practical reasons the platform modules are packaged
    separately. libnb-platform18-java is easier to maintain and less error
    prone which reduces the maintenance work as a whole. src:netbeans builds
    exactly the same modules but depends on binary packages from
    libnb-platform18-java in the end. You can simply copy&paste the patches
    from libnb-platform18-java and be done with it.

    Download the sources for libnb-platform18-java from:
    https://netbeans.org/downloads/zip.html
    Run the orig-tar.sh script on *-platform-src.zip and create a DFSG
    compliant tarball.

2. Download the sources for Netbeans from:
    https://netbeans.org/downloads/zip.html
    Run the orig-tar.sh script on *-src.zip and create a DFSG compliant
    tarball. For instance call it like that

    ./debian/orig-tar.sh 8.1 ../tarballs/netbeans-8.1-201510222201-src.zip


3. Refresh all Netbeans patches as necessary.

    The patches are labeled netbeans-platform-* for platform specific patches
    and netbeans-[module|or_another_descriptive_phrase] for src:netbeans
    specific patches that work around various issues with the build system
    because we have to replace all embedded jar files with system jar files and
    because we only build the core features and not everything. All other
    patches are Debian specific because of either outdated or too recent
    dependencies.

4. You can empty the binaries-list files with this command to avoid that the
   build system starts to download jar files from the internet.

    find . -type f -name "binaries-list" -exec sh -c '> {}' \;

5. Fix build failures by disabling modules in nbbuild/cluster.properties or by
   adding new build-dependencies to debian/control.

6. Update debian/linked-jars accordingly. In most cases it is sufficient to
   update version numbers. A quick look at netbeans-empty-binaries-list.patch
   will tell you what kind of version the build system expects.


TODO:

    * It would be nice to support HTML5/Javascript and Maven out-of-the box.
