#!/usr/bin/make -f export JAVA_HOME=/usr/lib/jvm/default-java export TZ=UTC # Included clusters pkg-nb := netbeans base-apisupport := apisupport3 base-ide := ide14 base-java := java5 base-nb := nb base-platform := platform18 pkg-apisupport := libnb-$(base-apisupport)-java pkg-ide := libnb-$(base-ide)-java pkg-java := libnb-$(base-java)-java NBDIR := /usr/share/netbeans export JAVADIR := /usr/share/java JH_JAR := jhall.jar JSEARCH_JAR := jsearch.jar NB_JH_JAR := jhall-2.0_05.jar NB_JSEARCH_JAR := jsearch-2.0_05.jar NB_INSTALL_DIR := usr/share/netbeans INSTALL := dh_install -p LINK := dh_link -p DEB_UPSTREAM_VERSION = $(shell dpkg-parsechangelog | \ grep -e '^Version' | \ perl -pi -e 's/^Version:\s+(.*)\+dfsg\d+-\d+.*$$/$$1/') BUILDSTAMP := $(shell date --utc --date="`dpkg-parsechangelog -SDate`" "+%Y%m%d") BUILD_DATE := $(shell dpkg-parsechangelog --show-field=Date) # Defined function to be used to create symlinks define symlink mkdir -p $(dir $(2)) ln -sf $(1) $(2) endef %: dh $@ --parallel --with javahelper override_dh_auto_build: # w3c-sgml-lib: needed for xml validation, otherwise FTBFS mkdir -p nbbuild/external/xhtml1-dtds ln -sf /usr/share/xml/w3c-sgml-lib/schema/dtd/REC-xhtml1-20020801/xhtml* nbbuild/external/xhtml1-dtds ln -sf /usr/share/xml/w3c-sgml-lib/schema/dtd/REC-xhtml-modularization-20100729/xhtml* nbbuild/external/xhtml1-dtds # link Debian's system jars $(shell awk 'NF==4 {printf("ln -sf %s %s/%s;\n",$$1,$$2,$$4)}' debian/linked-jars) # ReproducibleBuilds TimestampsInZip # https://wiki.debian.org/ReproducibleBuilds/TimestampsInZip find '$(CURDIR)' -newermt '$(BUILD_DATE)' -print0 | \ xargs -0r touch --no-dereference --date='$(BUILD_DATE)' ################################################################ # Build the IDE. DISPLAY must be unset to avoid build failures. unset DISPLAY; ant \ -Dbuildstamp=$(BUILDSTAMP) \ -Dhg.id=debian-$(DEB_UPSTREAM_VERSION) \ -Dpermit.jdk8.builds=true \ -Dbuild.compiler.deprecation=false \ -Dbuild.compiler.debug=false \ -Dext.binaries.downloaded=true \ -Dverify.checkout=false \ -Dcluster.config=basic \ -f nbbuild/build.xml build-nozip # Convert the *.icns hicolor icon into a png icon icns2png -x -s 128x128 -d 32 ide.branding/release/netbeans.icns override_dh_auto_install: # recreate links $(shell awk 'NF==4 {printf("ln -sf %s nbbuild/netbeans/%s/%s;\n",$$1,$$3,$$4)}' debian/linked-jars) # Install libraries mh_installjar -plibnb-absolutelayout-java -l debian/pom/AbsoluteLayout.xml \ nbbuild/netbeans/java/modules/ext/AbsoluteLayout.jar mh_installpom -plibnb-absolutelayout-java debian/pom/AbsoluteLayout.xml # # Install IDE package files echo > nbbuild/netbeans/ide/.noautoupdate echo > nbbuild/netbeans/ide/.lastModified $(INSTALL)$(pkg-ide) nbbuild/netbeans/ide/* $(NB_INSTALL_DIR)/$(base-ide) $(INSTALL)$(pkg-ide) nbbuild/netbeans/ide/.noautoupdate $(NB_INSTALL_DIR)/$(base-ide) $(INSTALL)$(pkg-ide) nbbuild/netbeans/ide/.lastModified $(NB_INSTALL_DIR)/$(base-ide) # See netbeans-slf4j.dummy.patch for further information $(LINK)$(pkg-ide) usr/share/java/slf4j-api.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/slf4j-dummy.jar # Symlink IDE modules to corresponding system jar files $(LINK)$(pkg-ide) usr/share/java/org.eclipse.jgit.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/org-eclipse-jgit.jar $(LINK)$(pkg-ide) usr/share/java/org.eclipse.jgit.java7.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/org-eclipse-jgit-java7.jar $(LINK)$(pkg-ide) usr/share/java/sqljet.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/sqljet.jar $(LINK)$(pkg-ide) usr/share/java/svnClientAdapter.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/svnClientAdapter-main.jar $(LINK)$(pkg-ide) usr/share/java/svn-javahl.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/svnjavahl.jar $(LINK)$(pkg-ide) usr/share/java/svnkit-javahl16.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/svnkit-javahl16.jar $(LINK)$(pkg-ide) usr/share/java/trilead-ssh2.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/trilead.ssh2.jar $(LINK)$(pkg-ide) usr/share/java/jsch.agentproxy.usocket-jna.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/jsch-agentproxy-usocket-jna.jar $(LINK)$(pkg-ide) usr/share/java/htmlparser.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/html5-parser.jar $(LINK)$(pkg-ide) usr/share/java/jsch.agentproxy.sshagent.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/jsch-agentproxy-sshagent.jar $(LINK)$(pkg-ide) usr/share/java/jsch.agentproxy.pageant.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/jsch-agentproxy-pageant.jar $(LINK)$(pkg-ide) usr/share/java/jsch.agentproxy.core.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/jsch-agentproxy-core.jar # Make hostinfo.sh executable to silence Lintian warning about script-not-exectuable find . -type f -name "hostinfo.sh" -exec chmod a+x {} \; # Install Java package files echo > nbbuild/netbeans/java/.noautoupdate echo > nbbuild/netbeans/java/.lastModified $(INSTALL)$(pkg-java) nbbuild/netbeans/extide/* $(NB_INSTALL_DIR)/$(base-java) $(INSTALL)$(pkg-java) nbbuild/netbeans/java/* $(NB_INSTALL_DIR)/$(base-java) $(INSTALL)$(pkg-java) nbbuild/netbeans/java/.noautoupdate $(NB_INSTALL_DIR)/$(base-java) $(INSTALL)$(pkg-java) nbbuild/netbeans/java/.lastModified $(NB_INSTALL_DIR)/$(base-java) # Link in Ant libraries and binaries -rmdir debian/$(pkg-java)/$(NB_INSTALL_DIR)/$(base-java)/ant/lib $(LINK)$(pkg-java) usr/share/ant/bin $(NB_INSTALL_DIR)/$(base-java)/ant/bin $(LINK)$(pkg-java) usr/share/ant/etc $(NB_INSTALL_DIR)/$(base-java)/ant/etc $(LINK)$(pkg-java) usr/share/ant/lib $(NB_INSTALL_DIR)/$(base-java)/ant/lib # Link in AbsoluteLayout jar -rm debian/$(pkg-java)/$(NB_INSTALL_DIR)/$(base-java)/modules/ext/AbsoluteLayout.jar $(LINK)$(pkg-java) usr/share/java/AbsoluteLayout.jar $(NB_INSTALL_DIR)/$(base-java)/modules/ext/AbsoluteLayout.jar # Install API support package files echo > nbbuild/netbeans/apisupport/.noautoupdate echo > nbbuild/netbeans/apisupport/.lastModified $(INSTALL)$(pkg-apisupport) nbbuild/netbeans/apisupport/* $(NB_INSTALL_DIR)/$(base-apisupport) $(INSTALL)$(pkg-apisupport) nbbuild/netbeans/apisupport/.noautoupdate $(NB_INSTALL_DIR)/$(base-apisupport) $(INSTALL)$(pkg-apisupport) nbbuild/netbeans/apisupport/.lastModified $(NB_INSTALL_DIR)/$(base-apisupport) # Install Netbeans package files echo > nbbuild/netbeans/nb/.noautoupdate $(INSTALL)$(pkg-nb) nbbuild/netbeans/nb/* $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/nb $(INSTALL)$(pkg-nb) nbbuild/netbeans/nb/.lastModified $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/nb $(INSTALL)$(pkg-nb) nbbuild/netbeans/nb/.noautoupdate $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/nb $(INSTALL)$(pkg-nb) nbbuild/netbeans/bin/* $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/bin $(INSTALL)$(pkg-nb) nbbuild/netbeans/CREDITS.html usr/share/$(pkg-nb) $(INSTALL)$(pkg-nb) nbbuild/netbeans/README.html usr/share/$(pkg-nb) $(INSTALL)$(pkg-nb) nbbuild/netbeans/netbeans.css usr/share/$(pkg-nb) # Install 128x128 netbeans icon to hicolor directory mv netbeans_128x128x32.png netbeans.png $(INSTALL)$(pkg-nb) netbeans.png usr/share/icons/hicolor/128x128/apps $(LINK)$(pkg-nb) $(NB_INSTALL_DIR)/$(base-platform) $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/platform $(LINK)$(pkg-nb) $(NB_INSTALL_DIR)/harness $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/harness $(LINK)$(pkg-nb) $(NB_INSTALL_DIR)/$(base-apisupport) $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/apisupport $(LINK)$(pkg-nb) $(NB_INSTALL_DIR)/$(base-ide) $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/ide $(LINK)$(pkg-nb) $(NB_INSTALL_DIR)/$(base-java) $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/java # Symlink netbeans icon to the appropriate hicolor directory $(LINK)$(pkg-nb) $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/nb/netbeans.png \ /usr/share/icons/hicolor/32x32/apps/netbeans.png # Create file marker to avoid displaying license dialog at first IDE start echo > debian/license_accepted $(INSTALL)$(pkg-nb) debian/license_accepted $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/nb/var # Install file productid used by autoupdate to report installation type $(INSTALL)$(pkg-nb) debian/productid $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/nb/config # Install netbeans.conf $(INSTALL)$(pkg-nb) nbbuild/netbeans/etc/netbeans.conf etc $(LINK)$(pkg-nb) etc/netbeans.conf $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/etc/netbeans.conf # Install netbeans.xpm icon $(INSTALL)$(pkg-nb) debian/icons/netbeans.xpm usr/share/pixmaps # Install netbeans.clusters $(INSTALL)$(pkg-nb) nbbuild/netbeans/etc/netbeans.clusters etc $(LINK)$(pkg-nb) etc/netbeans.clusters $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/etc/netbeans.clusters # Install netbeans.import which is a required file when importing settings # from an older version of Netbeans (see also #808908) $(INSTALL)$(pkg-nb) nbbuild/netbeans/etc/netbeans.import etc $(LINK)$(pkg-nb) etc/netbeans.import $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/etc/netbeans.import # Install launcher $(INSTALL)$(pkg-nb) nbbuild/netbeans/bin/netbeans usr/bin # Install desktop file $(INSTALL)$(pkg-nb) debian/netbeans.desktop usr/share/applications override_dh_auto_clean: $(call symlink, $(JAVADIR)/$(JH_JAR), javahelp/external/$(NB_JH_JAR)) $(call symlink, $(JAVADIR)/$(JSEARCH_JAR), apisupport.harness/external/$(NB_JSEARCH_JAR)) ant -Dpermit.jdk8.builds=true -f nbbuild/build.xml clean mh_clean # remove all the symlinks to jar files we created find . -name "*.jar" -type l -delete $(RM) -r nbbuild/external/xhtml1-dtds $(RM) nbbuild/nbproject/private/scan-cache-standard.ser $(RM) debian/license_accepted $(RM) swingapp/src/org/netbeans/modules/swingapp/resources/CRUDShellApp.zip $(RM) swingapp/src/org/netbeans/modules/swingapp/resources/BasicShellApp.zip override_jh_depends: # Skipping jh_depends run - since we use symlinks to /usr/share/java then # jh_depends gets it wrong. get-orig-source: uscan --verbose --download-current-version --force-download