diff --git a/apps/i2ptunnel/java/build.xml b/apps/i2ptunnel/java/build.xml index 9d35edadf..86e507837 100644 --- a/apps/i2ptunnel/java/build.xml +++ b/apps/i2ptunnel/java/build.xml @@ -348,7 +348,6 @@ - diff --git a/apps/jetty/build.xml b/apps/jetty/build.xml index af45a9e76..d62abb8ad 100644 --- a/apps/jetty/build.xml +++ b/apps/jetty/build.xml @@ -3,7 +3,7 @@ - + - - + + - - - - - - - @@ -210,9 +195,26 @@ + + + + + + + + + + + @@ -250,8 +252,8 @@ - - + + @@ -286,7 +288,7 @@ - + @@ -490,13 +492,13 @@ - + - + - + - diff --git a/apps/susidns/src/build.xml b/apps/susidns/src/build.xml index b89a51b20..652b32d44 100644 --- a/apps/susidns/src/build.xml +++ b/apps/susidns/src/build.xml @@ -78,7 +78,6 @@ - diff --git a/build.properties b/build.properties index 3c095fcf4..4a84d219c 100644 --- a/build.properties +++ b/build.properties @@ -147,11 +147,9 @@ require.gettext=true #build.reproducible=true # Don't include geoip files, we will use geoip-database package #with-geoip-database=true -# Don't include jetty files, we will use libjetty9-java package. Requires with-libtomcat8-java=true. -#with-libjetty9-java=true +# Don't include jetty files, we will use libjetty9-java package. Requires with-libtomcat9-java=true. +#with-libjetty12-java=true # Don't include tomcat files, we will use libtomcat8-java package -#with-libtomcat8-java=true -# Don't include tomcat files, we will use libtomcat9-java package #with-libtomcat9-java=true # Don't include jstl.jar and standard.jar, we will use libtaglibs-standard-* packages #with-libtaglibs-standard=true diff --git a/build.xml b/build.xml index 231a058d2..28bab9cba 100644 --- a/build.xml +++ b/build.xml @@ -2773,26 +2773,12 @@ - - - - - - - - - - - - - - diff --git a/debian-alt/doc/launchpad.txt b/debian-alt/doc/launchpad.txt index d21393d63..640734629 100644 --- a/debian-alt/doc/launchpad.txt +++ b/debian-alt/doc/launchpad.txt @@ -14,9 +14,11 @@ Versions are as follows: Min version Max version Uses src pkg Copied to Debian ----------- ----------- ------------ ---------------- +jammy questing bionic buster, bullseye, bookworm, trixie, sid + +Unsupported (No Java 17): bionic -- bionic -- focal -- bionic -- -jammy questing bionic buster, bullseye, bookworm, trixie, sid Unsupported (Java 7): precise saucy precise wheezy diff --git a/debian/apparmor/i2p b/debian/apparmor/i2p index 16c6b1223..f10b8a268 100644 --- a/debian/apparmor/i2p +++ b/debian/apparmor/i2p @@ -63,20 +63,19 @@ /usr/share/java/eclipse-jdt-core-*.jar r, /usr/share/java/libintl.jar r, /usr/share/java/libintl-*.jar r, - /usr/share/java/glassfish-appserv-jstl.jar r, /usr/share/maven-repo/jstl/jstl/1.2/jstl-1.2.jar r, /usr/share/java/gnu-getopt.jar r, /usr/share/java/gnu-getopt-*.jar r, - /usr/share/java/jetty9-*.jar r, + /usr/share/java/jetty12-*.jar r, /usr/share/java/json-simple.jar r, /usr/share/java/json-simple-*.jar r, /usr/share/java/jsp-api.jar r, /usr/share/java/jsp-api-*.jar r, /usr/share/java/servlet-api.jar r, /usr/share/java/servlet-api-*.jar r, + /usr/share/java/slf4j-*.jar r, /usr/share/java/standard.jar r, /usr/share/java/standard-*.jar r, - /usr/share/java/tomcat8-*.jar r, /usr/share/java/tomcat9-*.jar r, /usr/share/java/taglibs-standard-*.jar r, /usr/share/flags/countries/16x11/* r, diff --git a/debian/control b/debian/control index 8ab3f1107..b59380cc4 100644 --- a/debian/control +++ b/debian/control @@ -11,7 +11,8 @@ Build-Depends: debhelper (>= 9.20160709) ,ant (>= 1.9.8) ,debconf ,default-jdk - ,libjetty9-java (>= 9.4) + ,libjetty12-java + ,libslf4j2-java ,libjsp-api-java ,libservlet-api-java ,libtaglibs-standard-jstlel-java @@ -80,12 +81,13 @@ Architecture: all Section: net Priority: optional Depends: ${misc:Depends}, ${java:Depends}, ${shlibs:Depends}, - default-jre-headless | java11-runtime-headless | openjdk-21-jre-headless | openjdk-17-jre-headless | openjdk-11-jre-headless | java21-runtime-headless | java17-runtime-headless, + default-jre-headless | openjdk-21-jre-headless | openjdk-17-jre-headless | java21-runtime-headless | java17-runtime-headless, geoip-database, gettext-base, libgetopt-java, libjson-simple-java (>= 2),libjson-simple-java (<< 3), - libjetty9-java (>= 9.4), + libjetty12-java, + libslf4j2-java, libjsp-api-java, libservlet-api-java, libtaglibs-standard-jstlel-java, diff --git a/debian/i2p-router.install b/debian/i2p-router.install index a90ecde7c..dce92cab8 100644 --- a/debian/i2p-router.install +++ b/debian/i2p-router.install @@ -32,24 +32,25 @@ pkg-temp/lib/streaming.jar usr/share/i2p/lib pkg-temp/lib/systray.jar usr/share/i2p/lib -# uncomment if not building with libjetty9-java +# uncomment if not building with libjetty12-java # ubuntu: in trusty vivid wily xenial # debian: in wheezy jessie stretch sid -#pkg-temp/lib/jetty-continuation.jar usr/share/i2p/lib #pkg-temp/lib/jetty-deploy.jar usr/share/i2p/lib #pkg-temp/lib/jetty-http.jar usr/share/i2p/lib #pkg-temp/lib/jetty-io.jar usr/share/i2p/lib #pkg-temp/lib/jetty-rewrite-handler.jar usr/share/i2p/lib #pkg-temp/lib/jetty-security.jar usr/share/i2p/lib -#pkg-temp/lib/jetty-servlet.jar usr/share/i2p/lib -#pkg-temp/lib/jetty-servlets.jar usr/share/i2p/lib +# debian package does NOT contain the ee8 jars +pkg-temp/lib/jetty-servlet.jar usr/share/i2p/lib +pkg-temp/lib/jetty-servlets.jar usr/share/i2p/lib #pkg-temp/lib/jetty-start.jar usr/share/i2p/lib #pkg-temp/lib/jetty-util.jar usr/share/i2p/lib -#pkg-temp/lib/jetty-webapp.jar usr/share/i2p/lib +# debian package does NOT contain the ee8 jars +pkg-temp/lib/jetty-webapp.jar usr/share/i2p/lib #pkg-temp/lib/jetty-xml.jar usr/share/i2p/lib #pkg-temp/lib/org.mortbay.jetty.jar usr/share/i2p/lib #pkg-temp/lib/org.mortbay.jmx.jar usr/share/i2p/lib -# following two are from libservlet3.0-java which is a dependency of libjetty9-java +# following two are from libservlet-api-java which is a dependency of libjetty12-java #pkg-temp/lib/javax.servlet.jar usr/share/i2p/lib diff --git a/debian/i2p-router.links b/debian/i2p-router.links index cdb5fa598..d511f1875 100644 --- a/debian/i2p-router.links +++ b/debian/i2p-router.links @@ -9,31 +9,36 @@ usr/share/common-licenses/BSD usr/share/doc/i2p-router/licenses/LICENSE-BSD.txt -# comment out if not building with libjetty9-java -# ubuntu: in trusty vivid wily xenial -# debian: in wheezy jessie stretch sid -usr/share/java/jetty9-apache-jsp.jar usr/share/i2p/lib/jetty-apache-jsp.jar -usr/share/java/jetty9-continuation.jar usr/share/i2p/lib/jetty-continuation.jar -usr/share/java/jetty9-deploy.jar usr/share/i2p/lib/jetty-deploy.jar -usr/share/java/jetty9-http.jar usr/share/i2p/lib/jetty-http.jar -usr/share/java/jetty9-io.jar usr/share/i2p/lib/jetty-io.jar +# comment out if not building with libjetty12-java +# ubuntu: NO +# debian: in trixie sid +usr/share/java/jetty12-apache-jsp.jar usr/share/i2p/lib/jetty-apache-jsp.jar +usr/share/java/jetty12-deploy.jar usr/share/i2p/lib/jetty-deploy.jar +usr/share/java/jetty12-ee.jar usr/share/i2p/lib/ee.jar +usr/share/java/jetty12-http.jar usr/share/i2p/lib/jetty-http.jar +usr/share/java/jetty12-io.jar usr/share/i2p/lib/jetty-io.jar # legacy name in lib/ -usr/share/java/jetty9-rewrite.jar usr/share/i2p/lib/jetty-rewrite-handler.jar -usr/share/java/jetty9-security.jar usr/share/i2p/lib/jetty-security.jar -usr/share/java/jetty9-servlet.jar usr/share/i2p/lib/jetty-servlet.jar -usr/share/java/jetty9-servlets.jar usr/share/i2p/lib/jetty-servlets.jar -usr/share/java/jetty9-start.jar usr/share/i2p/lib/jetty-start.jar -usr/share/java/jetty9-util.jar usr/share/i2p/lib/jetty-util.jar -usr/share/java/jetty9-webapp.jar usr/share/i2p/lib/jetty-webapp.jar -usr/share/java/jetty9-xml.jar usr/share/i2p/lib/jetty-xml.jar +usr/share/java/jetty12-rewrite.jar usr/share/i2p/lib/jetty-rewrite-handler.jar +usr/share/java/jetty12-security.jar usr/share/i2p/lib/jetty-security.jar +# debian package does NOT contain the ee8 jars +#usr/share/java/jetty12-ee8-servlet.jar usr/share/i2p/lib/jetty-servlet.jar +#usr/share/java/jetty12-ee8-servlets.jar usr/share/i2p/lib/jetty-servlets.jar +usr/share/java/jetty12-session.jar usr/share/i2p/lib/jetty-session.jar +usr/share/java/jetty12-start.jar usr/share/i2p/lib/jetty-start.jar +usr/share/java/jetty12-util.jar usr/share/i2p/lib/jetty-util.jar +# debian package does NOT contain the ee8 jars +#usr/share/java/jetty12-ee8-webapp.jar usr/share/i2p/lib/jetty-webapp.jar +usr/share/java/jetty12-xml.jar usr/share/i2p/lib/jetty-xml.jar # legacy name in lib/ -usr/share/java/jetty9-server.jar usr/share/i2p/lib/org.mortbay.jetty.jar +usr/share/java/jetty12-server.jar usr/share/i2p/lib/org.mortbay.jetty.jar # legacy name in lib/ -usr/share/java/jetty9-jmx.jar usr/share/i2p/lib/org.mortbay.jmx.jar +usr/share/java/jetty12-jmx.jar usr/share/i2p/lib/org.mortbay.jmx.jar # legacy name in lib/ usr/share/java/servlet-api.jar usr/share/i2p/lib/javax.servlet.jar # combined into javax.servlet.jar in non-package builds usr/share/java/jsp-api.jar usr/share/i2p/lib/jsp-api.jar +# the libslf4j-java package does NOT provide a non-versioned file +usr/share/java/slf4j-api-2.0.17.jar usr/share/i2p/lib/slf4j-api.jar # comment out if not building with libtomcat9-java diff --git a/debian/patches/0002-jetty-compatibility.patch b/debian/patches/0002-jetty-compatibility.patch deleted file mode 100644 index fc1d8e264..000000000 --- a/debian/patches/0002-jetty-compatibility.patch +++ /dev/null @@ -1,85 +0,0 @@ ---- a/apps/jetty/java/src/net/i2p/jetty/JettyXmlConfigurationParser.java -+++ b/apps/jetty/java/src/net/i2p/jetty/JettyXmlConfigurationParser.java -@@ -43,9 +43,9 @@ - private static XmlParser initParser() - { - XmlParser parser = new XmlParser(); -- URL config60 = Loader.getResource(XmlConfiguration.class, "org/eclipse/jetty/xml/configure_6_0.dtd"); -- URL config76 = Loader.getResource(XmlConfiguration.class,"org/eclipse/jetty/xml/configure_7_6.dtd"); -- URL config90 = Loader.getResource(XmlConfiguration.class,"org/eclipse/jetty/xml/configure_9_0.dtd"); -+ URL config60 = Loader.getResource("org/eclipse/jetty/xml/configure_6_0.dtd"); -+ URL config76 = Loader.getResource("org/eclipse/jetty/xml/configure_7_6.dtd"); -+ URL config90 = Loader.getResource("org/eclipse/jetty/xml/configure_9_0.dtd"); - parser.redirectEntity("configure.dtd",config90); - parser.redirectEntity("configure_1_0.dtd",config60); - parser.redirectEntity("configure_1_1.dtd",config60); ---- a/apps/jetty/java/src/net/i2p/servlet/I2PDefaultServlet.java -+++ b/apps/jetty/java/src/net/i2p/servlet/I2PDefaultServlet.java -@@ -135,7 +135,6 @@ - * - * Get the resource list as a HTML directory listing. - */ -- @Override - protected void sendDirectory(HttpServletRequest request, - HttpServletResponse response, - Resource resource, ---- a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java -+++ b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java -@@ -49,6 +50,7 @@ - import org.eclipse.jetty.security.HashLoginService; - import org.eclipse.jetty.security.ConstraintMapping; - import org.eclipse.jetty.security.ConstraintSecurityHandler; -+import org.eclipse.jetty.security.UserStore; - import org.eclipse.jetty.security.authentication.BasicAuthenticator; - import org.eclipse.jetty.security.authentication.DigestAuthenticator; - import org.eclipse.jetty.security.authentication.LoginAuthenticator; -@@ -994,6 +998,8 @@ - String rlm = isBasic ? PROMETHEUS_REALM : JETTY_REALM; - HashLoginService realm = new CustomHashLoginService(rlm, context.getContextPath(), - ctx.logManager().getLog(RouterConsoleRunner.class)); -+ UserStore userStore = new UserStore(); -+ realm.setUserStore(userStore); - sec.setLoginService(realm); - LoginAuthenticator auth = isBasic ? basicAuthenticator : authenticator; - sec.setAuthenticator(auth); -@@ -1003,7 +1007,7 @@ - String pw = e.getValue(); - // for basic, the password will be the md5 hash itself - Credential cred = Credential.getCredential(isBasic ? pw : MD5_CREDENTIAL_TYPE + pw); -- realm.putUser(user, cred, role); -+ userStore.addUser(user, cred, role); - Constraint constraint = new Constraint(user, JETTY_ROLE); - constraint.setAuthenticate(true); - ConstraintMapping cm = new ConstraintMapping(); -@@ -1023,7 +1027,7 @@ - try { - // each char truncated to 8 bytes - String user2 = new String(b2, "ISO-8859-1"); -- realm.putUser(user2, cred, role); -+ userStore.addUser(user2, cred, role); - constraint = new Constraint(user2, JETTY_ROLE); - constraint.setAuthenticate(true); - cm = new ConstraintMapping(); -@@ -1034,7 +1038,7 @@ - // each UTF-8 byte as a char - // this is what chrome does - String user3 = new String(b1, "ISO-8859-1"); -- realm.putUser(user3, cred, role); -+ userStore.addUser(user3, cred, role); - constraint = new Constraint(user3, JETTY_ROLE); - constraint.setAuthenticate(true); - cm = new ConstraintMapping(); ---- a/apps/routerconsole/java/src/net/i2p/router/web/LocaleWebAppHandler.java -+++ b/apps/routerconsole/java/src/net/i2p/router/web/LocaleWebAppHandler.java -@@ -87,9 +87,9 @@ - String testPath = pathInContext.substring(0, len - 4) + '_' + lang + ".jsp"; - // Do we have a servlet for the new path that isn't the catchall *.jsp? - @SuppressWarnings("rawtypes") -- Map.Entry servlet = _wac.getServletHandler().getHolderEntry(testPath); -+ org.eclipse.jetty.http.pathmap.MappedResource servlet = _wac.getServletHandler().getMappedServlet(testPath); - if (servlet != null) { -- String servletPath = (String) servlet.getKey(); -+ String servletPath = servlet.getPathSpec().getDeclaration(); - if (servletPath != null && !servletPath.startsWith("*")) { - // success!! - //System.err.println("Servlet is: " + servletPath); diff --git a/debian/patches/series b/debian/patches/series index 3871843af..ee287837a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ 0001-path-substitution.patch -0002-jetty-compatibility.patch 0003-json-simple-3.patch diff --git a/debian/rules b/debian/rules index 3777f1209..b8226289e 100755 --- a/debian/rules +++ b/debian/rules @@ -100,28 +100,34 @@ endif @# 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 + @# ubuntu: NO + @# debian: in trixie sid + @# this also implies with-libslf4j2-java + @/bin/echo -e "with-libjetty12-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 + ln -sf /usr/share/java/jetty12-deploy.jar $(CURDIR)/apps/jetty/jettylib/jetty-deploy.jar + ln -sf /usr/share/java/jetty12-ee.jar $(CURDIR)/apps/jetty/jettylib/jetty-ee.jar + ln -sf /usr/share/java/jetty12-http.jar $(CURDIR)/apps/jetty/jettylib/jetty-http.jar + ln -sf /usr/share/java/jetty12-io.jar $(CURDIR)/apps/jetty/jettylib/jetty-io.jar + ln -sf /usr/share/java/jetty12-rewrite.jar $(CURDIR)/apps/jetty/jettylib/jetty-rewrite-handler.jar + ln -sf /usr/share/java/jetty12-security.jar $(CURDIR)/apps/jetty/jettylib/jetty-security.jar + @# debian package does NOT contain the ee8 jars + @#ln -sf /usr/share/java/jetty12-servlet.jar $(CURDIR)/apps/jetty/jettylib/jetty-ee8-servlet.jar + @#ln -sf /usr/share/java/jetty12-servlets.jar $(CURDIR)/apps/jetty/jettylib/jetty-ee8-servlets.jar + ln -sf /usr/share/java/jetty12-session.jar $(CURDIR)/apps/jetty/jettylib/jetty-session.jar + ln -sf /usr/share/java/jetty12-start.jar $(CURDIR)/apps/jetty/jettylib/jetty-start.jar + ln -sf /usr/share/java/jetty12-util.jar $(CURDIR)/apps/jetty/jettylib/jetty-util.jar + @# debian package does NOT contain the ee8 jars + @#ln -sf /usr/share/java/jetty12-webapp.jar $(CURDIR)/apps/jetty/jettylib/jetty-ee8-webapp.jar + ln -sf /usr/share/java/jetty12-xml.jar $(CURDIR)/apps/jetty/jettylib/jetty-xml.jar + ln -sf /usr/share/java/jetty12-server.jar $(CURDIR)/apps/jetty/jettylib/org.mortbay.jetty.jar + ln -sf /usr/share/java/jetty12-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 + @# the libslf4j-java package does NOT provide a non-versioned file + ln -sf /usr/share/java/slf4j-api-2.0.17.jar $(CURDIR)/apps/jetty/jettylib/slf4j-api.jar @# debian and ubuntu: buster, disco @/bin/echo -e "with-libtomcat9-java=true" >> $(CURDIR)/override.properties