Hi all,
Tomcat 8 has seen it's first alpha release in August and I took the
opportunity to package it. I started from a copy of the tomcat7 package
and I now have a working package ready for review:
http://anonscm.debian.org/gitweb/?p=pkg-java/tomcat8.git
Besides the trivial tomcat7->tomcat8 renaming stuff there are a few
items needing attention:
1. The tomcat jars in /usr/share/java have been renamed to avoid
conflicts with other versions of Tomcat. There are two bugs related to
this issue for tomcat6/7, #685298 and #718946. The jars are now named
tomcat8-xxx.jar, even those that didn't have a 'tomcat' prefix like
jasper.jar and catalina.jar.
2. The libservlet3.0-java package (from tomcat7) contains twice the
servlet/jsp/el API jars with two different Maven groupIds. Once with the
org.apache.tomcat grouId, and another time with the javax.xxx-api
groupId. The artifacts under the org.apache.tomcat groupId are a bit odd
because they use the version of the specification instead of the version
of Tomcat. See:
http://packages.debian.org/sid/all/libservlet3.0-java/filelist
This is unlikely to be useful since this combination of
groupId/artifactId/version doesn't exist in Maven central, so no package
will ever need these artifacts.
Moreover libservlet-java isn't specific to Tomcat, so it shouldn't
contain Tomcat artifacts.
For these reasons I moved them to the libtomcat8-java package. As a
corollary, libtomcat8-java doesn't need to depend on libservlet3.1-java.
3. Tomcat builds it classpath from the jar found in
/usr/share/tomcat/lib. This directory contains symklinks installed by
two packages, libtomcat-java and tomcat-common:
http://packages.debian.org/sid/all/libtomcat7-java/filelist
http://packages.debian.org/sid/all/tomcat7-common/filelist
For tomcat8 I had to add new jars and it wasn't clear which package was
supposed to install them in the lib directory. I decided to install all
the links with tomcat8-common. Thus libtomcat8-java contains only the
jars in /usr/share/java and the Maven artifacts in
/usr/share/maven-repo. tomcat8-common is responsible for assembling the
various parts required by Tomcat. I think that's cleaner and easier to
understand.
Here is the full changelog:
* New upstream release (Closes: #722675)
- Updated the version of the Servlet, JSP and EL APIs
- Switched to Java 7
- Updated the watch file to match the Tomcat 8 releases
- Refreshed the patches
- Updated debian/copyright, documented the xsd files licensed
under the CDDL
- Installed the new jars (spdy, jni, websocket,
websocket-api, storeconfig)
- Updated the artifactId of the specification jars to include
the new javax prefix
- Added the javax.websocket-api artifact to libservlet3.1-java
* Use XZ compression for the upstream tarball
* debian/control:
- Replaced Sun Microsystems with Oracle in the packages descriptions
- Mentioned 'Apache Tomcat' in the packages descriptions
* Deploy the Tomcat artifacts in the Maven repository with the 8.x
version instead of 'debian' to avoid conflicts with other versions of
Tomcat.
* Hard coded the versions in the poms in debian/javaxpoms to fix the
version of the dependencies for jsp-api
* Renamed the jars in /usr/share/java to tomcat8-xxx to avoid
conflicts with other versions of Tomcat
* Added the missing descriptions to the patches
* Added a patch to ignore the failing tests
* Moved the tomcat-{servlet|jsp|el}-api artifacts from
libservlet3.1-java to libtomcat8-java and changed their versions to the
Tomcat version instead of the specification version.
* Removed libservlet3.1-java.links defining the tomcat-* links in
/usr/share/java with the specifications versions
* The symlinks to /usr/share/tomcat8/lib are no longer split between
the two packages libtomcat8-java and tomcat8-common. tomcat8-common
assembles all the jars required by Tomcat (tomcat jars + dbcp + pool).
libtomcat8-java deploys only the jars in /usr/share/java and the Maven
artifacts in /usr/share/maven-repo.
* Added the EL and WebSocket APIs to libservlet3.1-java-doc
* Added a Lintian override for the incompatible-java-bytecode-format
warning since Tomcat requires Java 7
* Added a Lintian override to clear the codeless-jar warnings on the
tomcat-i18n jars instead of a patch turning them into zip files.
* Removed 0011-fix-classpath-lintian-warnings.patch and specified the
classpath of jasper.jar in libtomcat8-java.manifest instead.
Thank you for your reviews,
Emmanuel Bourg
Attachment:
signature.asc
Description: OpenPGP digital signature