forked from I2P_Developers/i2p.i2p
Debian: Create jammy build to deal with Jetty API change (Gitlab #496)
Jetty made a breaking API change to PathSpec in 9.4.30, so focal (with 9.4.26) is not compatible with jammy+ and buster+ (9.4.45+). Symptom is failure to load translated help pages in console. Fix is to make focal only for focal; create jammy build for jammy+ and buster+. Update build docs. Does not affect non-package builds, where we bundle Jetty 9.3.x.
This commit is contained in:
@ -86,31 +86,19 @@ done
|
||||
# If you remove, you must do: reprepro clearvanished
|
||||
|
||||
|
||||
# No longer supported
|
||||
# To copy precise to wheezy:
|
||||
# Note that syntax is reprepro copysrc TO FROM package!
|
||||
# No longer supported
|
||||
reprepro -v copysrc wheezy precise i2p
|
||||
|
||||
# To copy trusty to jessie:
|
||||
# Note that syntax is reprepro copysrc TO FROM package!
|
||||
# No longer supported
|
||||
reprepro -v copysrc jessie trusty i2p
|
||||
|
||||
# To copy trusty to stretch:
|
||||
# Note that syntax is reprepro copysrc TO FROM package!
|
||||
# WARNING bionic (now with jetty 9.4) is no longer compatible with stretch (with jetty 9.2)
|
||||
# WARNING xenial is not compatible with stretch,
|
||||
# see https://www.reddit.com/r/i2p/comments/bnvcn4/i2p_router_console_inaccessible_to_firefox_on/
|
||||
# No longer supported
|
||||
reprepro -v copysrc stretch trusty i2p
|
||||
|
||||
# To copy focal to all debian repos:
|
||||
|
||||
# To copy jammy to all debian repos:
|
||||
# Note that syntax is reprepro copysrc TO FROM package!
|
||||
reprepro -v copysrc sid focal i2p
|
||||
reprepro -v copysrc trixie focal i2p
|
||||
reprepro -v copysrc bookworm focal i2p
|
||||
reprepro -v copysrc bullseye focal i2p
|
||||
reprepro -v copysrc buster focal i2p
|
||||
reprepro -v copysrc sid jammy i2p
|
||||
reprepro -v copysrc trixie jammy i2p
|
||||
reprepro -v copysrc bookworm jammy i2p
|
||||
reprepro -v copysrc bullseye jammy i2p
|
||||
reprepro -v copysrc buster jammy i2p
|
||||
|
||||
# check status
|
||||
reprepro ls i2p
|
||||
|
@ -15,8 +15,8 @@ Versions are as follows:
|
||||
Min version Max version Uses src pkg Copied to Debian
|
||||
----------- ----------- ------------ ----------------
|
||||
bionic -- bionic --
|
||||
focal oracular except lunar bionic buster, bullseye, bookworm, trixie, sid
|
||||
lunar -- bionic -- (OBSOLETE)
|
||||
focal -- bionic --
|
||||
jammy plucky bionic buster, bullseye, bookworm, trixie, sid
|
||||
|
||||
Unsupported (Java 7):
|
||||
precise saucy precise wheezy
|
||||
@ -26,6 +26,17 @@ Unsupported (ant < 1.9.8)
|
||||
xenial yakkety xenial --
|
||||
|
||||
|
||||
NOTE
|
||||
----
|
||||
Due to an API change for Jetty PathSpec in jetty-9.4.30.v20200611,
|
||||
focal is NOT binary-compatible with jammy or higher, or buster or higher.
|
||||
Copying the source on launchpad with the 'rebuild the copied sources'
|
||||
doesn't work because of a duplicate name.
|
||||
So focal must be built separately, and jammy must be used
|
||||
to copy to more-recent versions and all Debian versions.
|
||||
|
||||
|
||||
|
||||
Prep (first time only)
|
||||
----------------------
|
||||
|
||||
|
@ -1,3 +1,9 @@
|
||||
i2p (2.7.1-1~focal+1) focal; urgency=medium
|
||||
|
||||
* TEST TEST TEST
|
||||
|
||||
-- zzz on i2p (key signing) <zzz@i2pmail.org> Sun, 19 Jan 2025 12:12:12 +0000
|
||||
|
||||
i2p (2.7.0-1~ubuntu1) focal; urgency=medium
|
||||
|
||||
* New upstream version 2.7.0
|
||||
|
1211
debian-alt/jammy/changelog
Normal file
1211
debian-alt/jammy/changelog
Normal file
File diff suppressed because it is too large
Load Diff
2
debian-alt/jammy/patches/series
Normal file
2
debian-alt/jammy/patches/series
Normal file
@ -0,0 +1,2 @@
|
||||
0001-path-substitution.patch
|
||||
0002-jetty-compatibility.patch
|
197
debian-alt/jammy/rules
Executable file
197
debian-alt/jammy/rules
Executable file
@ -0,0 +1,197 @@
|
||||
#!/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.release=11" > $(CURDIR)/override.properties
|
||||
@/bin/echo -e "build.built-by=launchpad" >> $(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 formerly from libservlet3.1-java, now in their own packages
|
||||
ln -sf /usr/share/java/servlet-api.jar $(CURDIR)/apps/jetty/jettylib/javax.servlet.jar
|
||||
@# this is roughly the same as tomcat8-jsp-api.jar, we use this one
|
||||
ln -sf /usr/share/java/jsp-api.jar $(CURDIR)/apps/jetty/jettylib/jsp-api.jar
|
||||
|
||||
@# debian and ubuntu: buster, disco
|
||||
@/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-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
|
||||
|
||||
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 <killyourtv@i2pmail.org>" >> $(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 --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
|
Reference in New Issue
Block a user