#!/usr/bin/make -f # Quoting Policy version 3.9.2.0, 2011-04-07 section 4.9: # /start quote # For some packages, notably ones where the same source tree is compiled in # different ways to produce two binary packages, the build target does not make # much sense. For these packages it is good enough to provide two (or more) # targets (build-a and build-b or whatever) for each of the ways of building the # package, and a build target that does nothing. The binary target will have to # build the package in each of the possible ways and make the binary package out # of each. # ... # When a package has a configuration and build routine which takes a long time, # or when the makefiles are poorly designed, or when build needs to run clean # first, it is a good idea to touch build when the build process is complete. # This will ensure that if debian/rules build is run again it will not rebuild # the whole program. # /end quote # Since that fits building I2P very well, we override the build target. # build: @echo 'The build target is disabled. Use the appropriate binary target.' DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) JAVA_HOME=/usr/lib/jvm/default-java I2P=$(CURDIR)/pkg-temp ROUTERVERSION=$(CURDIR)/router/java/src/net/i2p/router/RouterVersion.java export DEB_BUILD_HARDENING=1 # I2P's version will be displayed in the router console as "$I2PVERSION-$EXTRAPREFIX$DEBIANVERSION", eg. 0.8.12-0-deb1 #export EXTRAPREFIX := deb export JAVA_HOME I2P export DEBIANVERSION := $(shell dpkg-parsechangelog |awk -F' ' '/^Version:/{print $$2}' |sed 's/.*-\([.0-9A-Za-z~+]\{1,\}\)$$/\1/') # required for jbigi/jcpuid build export BITS := $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS) #export DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU) %: dh $@ --with systemd,bash-completion clean: createcopyright override_dh_auto_clean: -[ -r $(CURDIR)/debian/routerversion.java.bak ] && mv -f $(CURDIR)/debian/routerversion.java.bak $(ROUTERVERSION) dh_auto_clean ant distclean find $(CURDIR)/core \( -name '*\.so' -o -name '*\.o' \) -exec rm -f {} \; rm -rf $(CURDIR)/core/c/jcpuid/lib/ rm -f $(CURDIR)/installer/lib/wrapper/all/wrapper.jar rm -rf $(CURDIR)/debian/python-i2p rm -f $(CURDIR)/override.properties rm -f $(CURDIR)/apps/susidns/src/lib/standard.jar rm -f $(CURDIR)/apps/susidns/src/lib/jstl.jar rm -f $(CURDIR)/apps/susidns/src/lib/jstlel.jar debconf-updatepo override_dh_auto_build: override_dh_systemd_enable: # We purposely do not set I2P to start at boot. # This matches the behavior of the initscript # and the setting RUN_DAEMON=false in /etc/default/i2p binary-indep: build-indep build-indep: dh_prep mkdir -p $(CURDIR)/installer/lib/wrapper/all ln -sf /usr/share/java/wrapper.jar $(CURDIR)/installer/lib/wrapper/all/wrapper.jar if [ ! -e $(CURDIR)/debian/routerversion.java.bak ]; then \ cp $(ROUTERVERSION) $(CURDIR)/debian/routerversion.java.bak; \ fi ifeq "$(findstring deb,$(shell grep 'deb' $(ROUTERVERSION)))" "" sed -e "s/\(.*EXTRA\ =\ \)[^ ]*\"\(.*\)\"/\1\"-$$EXTRAPREFIX$$DEBIANVERSION\"/" < $(ROUTERVERSION) > $(ROUTERVERSION).tmp mv -f $(ROUTERVERSION).tmp $(ROUTERVERSION) else @echo "Already found deb in version, not doing anything" endif @# build options # @/bin/echo -e "javac.version=1.8" > $(CURDIR)/override.properties # @/bin/echo -e "javac.compilerargs=-bootclasspath $(JAVA_HOME)/jre/lib/rt.jar:$(JAVA_HOME)/jre/lib/jce.jar" >> $(CURDIR)/override.properties # @/bin/echo -e "javac.compilerargs=-source 1.8 -target 1.8" >> $(CURDIR)/override.properties # @/bin/echo -e "javac.compilerargs7=-bootclasspath $(JAVA_HOME)/jre/lib/rt.jar:$(JAVA_HOME)/jre/lib/jce.jar" >> $(CURDIR)/override.properties # @/bin/echo -e "javac.compilerargs7=" >> $(CURDIR)/override.properties @/bin/echo -e "build.built-by=debian" >> $(CURDIR)/override.properties @/bin/echo -e "build.reproducible=true" >> $(CURDIR)/override.properties @# debian and ubuntu: everywhere @/bin/echo -e "with-geoip-database=true" >> $(CURDIR)/override.properties @# ubuntu: in xenial @# debian: in jessie-backports stretch sid @/bin/echo -e "with-libjetty9-java=true" >> $(CURDIR)/override.properties mkdir -p $(CURDIR)/apps/jetty/jettylib ln -sf /usr/share/java/jetty9-continuation.jar $(CURDIR)/apps/jetty/jettylib/jetty-continuation.jar ln -sf /usr/share/java/jetty9-deploy.jar $(CURDIR)/apps/jetty/jettylib/jetty-deploy.jar ln -sf /usr/share/java/jetty9-http.jar $(CURDIR)/apps/jetty/jettylib/jetty-http.jar ln -sf /usr/share/java/jetty9-io.jar $(CURDIR)/apps/jetty/jettylib/jetty-io.jar ln -sf /usr/share/java/jetty9-rewrite.jar $(CURDIR)/apps/jetty/jettylib/jetty-rewrite-handler.jar ln -sf /usr/share/java/jetty9-security.jar $(CURDIR)/apps/jetty/jettylib/jetty-security.jar ln -sf /usr/share/java/jetty9-servlet.jar $(CURDIR)/apps/jetty/jettylib/jetty-servlet.jar ln -sf /usr/share/java/jetty9-servlets.jar $(CURDIR)/apps/jetty/jettylib/jetty-servlets.jar ln -sf /usr/share/java/jetty9-start.jar $(CURDIR)/apps/jetty/jettylib/jetty-start.jar ln -sf /usr/share/java/jetty9-util.jar $(CURDIR)/apps/jetty/jettylib/jetty-util.jar ln -sf /usr/share/java/jetty9-webapp.jar $(CURDIR)/apps/jetty/jettylib/jetty-webapp.jar ln -sf /usr/share/java/jetty9-xml.jar $(CURDIR)/apps/jetty/jettylib/jetty-xml.jar ln -sf /usr/share/java/jetty9-server.jar $(CURDIR)/apps/jetty/jettylib/org.mortbay.jetty.jar ln -sf /usr/share/java/jetty9-jmx.jar $(CURDIR)/apps/jetty/jettylib/org.mortbay.jmx.jar @# following two are from libservlet3.1-java which is a dependency of libjetty9-java ln -sf /usr/share/java/servlet-api-3.1.jar $(CURDIR)/apps/jetty/jettylib/javax.servlet.jar @# this is roughly the same as tomcat9-jsp-api.jar, we use this one ln -sf /usr/share/java/jsp-api-2.3.jar $(CURDIR)/apps/jetty/jettylib/jsp-api.jar @# debian and ubuntu: wheezy-backports, jessie+, xenial+ @/bin/echo -e "with-libtomcat9-java=true" >> $(CURDIR)/override.properties mkdir -p $(CURDIR)/apps/jetty/jettylib ln -sf /usr/share/java/tomcat9-api.jar $(CURDIR)/apps/jetty/jettylib/tomcat-api.jar ln -sf /usr/share/java/tomcat9-coyote.jar $(CURDIR)/apps/jetty/jettylib/tomcat-coyote.jar ln -sf /usr/share/java/tomcat9-el-api.jar $(CURDIR)/apps/jetty/jettylib/commons-el.jar ln -sf /usr/share/java/tomcat9-jasper.jar $(CURDIR)/apps/jetty/jettylib/jasper-runtime.jar ln -sf /usr/share/java/tomcat9-jasper-el.jar $(CURDIR)/apps/jetty/jettylib/jasper-el.jar ln -sf /usr/share/java/tomcat9-juli.jar $(CURDIR)/apps/jetty/jettylib/commons-logging.jar ln -sf /usr/share/java/tomcat9-util.jar $(CURDIR)/apps/jetty/jettylib/tomcat-util.jar ln -sf /usr/share/java/tomcat9-util-scan.jar $(CURDIR)/apps/jetty/jettylib/tomcat-util-scan.jar @# debian and ubuntu: stretch+, zesty+ @/bin/echo -e "with-libtaglibs-standard=true" >> $(CURDIR)/override.properties ln -sf /usr/share/java/taglibs-standard-spec.jar $(CURDIR)/apps/susidns/src/lib/jstl.jar ln -sf /usr/share/java/taglibs-standard-impl.jar $(CURDIR)/apps/susidns/src/lib/standard.jar ln -sf /usr/share/java/taglibs-standard-jstlel.jar $(CURDIR)/apps/susidns/src/lib/jstlel.jar @# debian and ubuntu: everywhere @#/bin/echo -e "with-glassfish-javaee=true" >> $(CURDIR)/override.properties @# glassfish-javaee.jar has ancient and conflicting classes, e.g. javax.mail @#ln -sf /usr/share/java/glassfish-javaee.jar $(CURDIR)/apps/susidns/src/lib/jstl.jar @#ln -sf /usr/share/java/glassfish-appserv-jstl.jar $(CURDIR)/apps/susidns/src/lib/standard.jar @# debian and ubuntu: everywhere @#/bin/echo -e "with-libjakarta-taglibs-standard-java=true" >> $(CURDIR)/override.properties @#ln -sf /usr/share/java/standard.jar $(CURDIR)/apps/susidns/src/lib/standard.jar @# debian and ubuntu: everywhere @#/bin/echo -e "with-libjstl1.1-java=true" >> $(CURDIR)/override.properties @#ln -sf /usr/share/java/jstl1.1.jar $(CURDIR)/apps/susidns/src/lib/jstl.jar @# debian and ubuntu: everywhere @/bin/echo -e "with-gettext-base=true" >> $(CURDIR)/override.properties @mkdir -p $(CURDIR)/core/java/build ln -sf /usr/share/java/libintl.jar $(CURDIR)/core/java/build/libintl.jar @# debian and ubuntu: everywhere @/bin/echo -e "with-libgetopt-java=true" >> $(CURDIR)/override.properties @mkdir -p $(CURDIR)/core/java/build ln -sf /usr/share/java/gnu-getopt.jar $(CURDIR)/core/java/build/gnu-getopt.jar @# debian: jessie+; ubuntu: trusty+ @/bin/echo -e "with-libjson-simple-java=true" >> $(CURDIR)/override.properties @mkdir -p $(CURDIR)/core/java/build ln -sf /usr/share/java/json-simple.jar $(CURDIR)/core/java/build/json-simple.jar @# debian: everywhere; ubuntu: trusty+ @/bin/echo -e "with-famfamfam-flag-png=true" >> $(CURDIR)/override.properties @# 2 MB of dependencies vs. 20 KB of copied source @# Requires 4.4 or higher. @# Debian: Not in wheezy/jessie @# Ubuntu: Only in wily and later @#/bin/echo -e "with-libhttpclient-java=true" >> $(CURDIR)/override.properties @#mkdir -p $(CURDIR)/core/java/build @#ln -sf /usr/share/java/httpclient.jar $(CURDIR)/core/java/build/httpclient.jar @#ln -sf /usr/share/java/httpcore.jar $(CURDIR)/core/java/build/httpcore.jar TZ=UTC JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8 ant preppkg-unix javadoc echo router.updateDisabled=true > $(I2P)/router.config mv $(I2P)/runplain.sh $(I2P)/i2prouter-nowrapper binary-arch: build-arch build-arch: # build jbigi cd $(CURDIR)/core/c/jbigi && ./build_jbigi.sh dynamic # build jcpuid cd $(CURDIR)/core/c/jcpuid && ./build.sh binary: binary-arch binary-indep createcopyright: @echo " *** Creating debian/copyright*** " @rm -f $(CURDIR)/debian/copyright @/bin/echo -e "This package was Debianized by kytv " >> $(CURDIR)/debian/copyright @/bin/echo -e "Sun, 23 Jan 2011 20:26:51 +0000" >> $(CURDIR)/debian/copyright @/bin/echo -e "\nIt was downloaded from https://geti2p.net" >> $(CURDIR)/debian/copyright @/bin/echo -e "\nI2P is tracked upstream using the Monotone VCS" >> $(CURDIR)/debian/copyright @/bin/echo -e "Complete information on fetching the source with monotone can be found" >> $(CURDIR)/debian/copyright @/bin/echo -e "at https://geti2p.net/newdevelopers#getting-the-i2p-code\n\n\n" >> $(CURDIR)/debian/copyright @/bin/cat $(CURDIR)/LICENSE.txt >> $(CURDIR)/debian/copyright @/bin/echo -e "\n\n The debian packaging has been released into the public domain." >> $(CURDIR)/debian/copyright override_dh_compress: dh_compress -X.xsl -X.xml override_dh_install: dh_install --list-missing dh_apparmor --profile-name=system_i2p -pi2p dh_apparmor --profile-name=usr.bin.i2prouter -pi2p override_dh_installchangelogs: dh_installchangelogs history.txt override_dh_installdocs: dh_installdocs -pi2p -plibjbigi-jni --link-doc=i2p-router dh_installdocs --remaining-packages override_dh_shlibdeps: dh_shlibdeps -llibjbigi-jni debian/libjbigi-jni/usr/lib/jni/*.so #override_dh_installinit: # dh_installinit -r get-orig-source: uscan --verbose --rename --destdir $(CURDIR)/.. --watchfile debian/watch --force-download