Currently the tomcatjss rpm depends on tomcat5, this is causing a dependency problem for the new version of dogtag which has been ported to tomcat6. The new dogtag version has a dependency on both tomcat6 and tomcatjss. Because tomcatjss depends on tomcat5 this causes both tomcat5 and tomcat6 to get installed along with dogtag. The tomcat5 installation is completely unnecessary and is only an artifact of tomcatjss requiring it. tomcatjss is not usable without tomcat Coyote Connector classes being installed. Along with Connector class is a SSLImplementation class defining a Java interface that tomcatjss implements. As long as the SSLImplementation API does not change inside tomcat then tomcatjss is compatible with any tomcat version utilizing that API version. Thus it doesn't really make sense to tie dependency wise tomcatjss to a specific tomcat version (unless the API changes). One way to address the issue is to have the tomcat rpm implement a virtual provides for the connector api version, currently there is none. The tomcat rpm does provide a variety of virtual provides tags but none of them are appropriate for this use. After a discussion the tomcat maintainer, David Knox, we concluded the simplest and most expedient solution would be to remove the dependency on tomcat from tomcatjss. This has the following implications: 1) Web apps depending on tomcat will require tomcat, they should probably require a specific tomcat version (e.g. tomcat5, tomcat6, etc.). If they use JSS the web app will also have a dependency on tomcatjss. This means a specific verison of tomcat will be available for the web app as well as tomcatjss which should work across multiple versions of tomcat. 2) Installing just tomcatjss will not cause a version of tomcat to be installed as it won't have a dependency on it. tomcatjss without tomcat is useless, hopefully anyone installing tomcatjss will be aware of this. The web app will likely have dependencies on both tomcat and tomcatjss so it's unlikely tomcatjss would ever get installed without have a version of tomcat to run with. 3) If the tomcat SSLImplentation API ever does change we're going to have to address this issue at the packaging level with both tomcat and tomcatjss. It will mostly require the tomcat rpm implementing a virtual provides on the connector api version that tomcatjss will require. This is the technically correctly solution, but it would mean perturbing a number of tomcat rpm's which is painful and at the moment unnecessary. An alternative solution would be for the web app package to make specific version requirement on the tomcatjss package which would be rev'ed to match the SSLImplementation API. Bottom Line: Let's remove the dependency on tomcat5 from tomcatjss.
Created attachment 464602 [details] Build tomcatjss against tomcat6 This removes the references to tomcat 5 and tomcat 5 jars. The jars needed for building were updated to point to tomcat 6 locations. A new method was added as a stub to permit building, please the comment in the code for an explanation.
Unfortunately the conclusion in comment #1 was not accurate. There was a change in the tomcat API (albeit minor, see comment in patch). That does make tomcatjss dependent on the tomcat version. I'm not entirely sure how to handle the dependency on tomcat versions with tomcatjss. If one follows the existing model it would suggest there should be a tomcatjss5 package and a tomcatjss6 package, etc. But providing new packages and deprecating old packages is a disruptive process, especially for RHEL. I'm not sure it's really warranted in this case, although independent packages based on the tomcat version is probably technically correct. Now that we've switched over to tomcat 6, we should be building tomcatjss against tomcat 6. New dogtag/cs packages based on tomcat 6 will be built and should require this new version of tomcatjss built against tomcat 6. Please note, the spec file was not updated in the patch to bump it's version and release information, that should be done, once done the other dogtag spec files should require a version of tomcatjss built against tomcat 6.
Comment on attachment 464602 [details] Build tomcatjss against tomcat6 Also, since version 2.0.0 of tomcatjss has never been built/released in either Koji or Brew (and the existing changelog comment is tied too closely to Dogtag): Change: %changelog * Tue Aug 10 2010 Matthew Harmsen <mharmsen> 2.0.0-1 - Updated Dogtag 1.3.x --> Dogtag 2.0.0. To: %changelog * Tue Dec 14 2010 John Dennis <jdennis> - Updated 'tomcatjss' to utilize 'tomcat6'.
Sending build.xml Sending src/org/apache/tomcat/util/net/jss/JSSImplementation.java Sending tomcatjss.spec Transmitting file data ... Committed revision 106.
Re-opening this bug, as tomcatjss 2.0.0 must still be built on the following platforms: * Fedora 13 (fc13) * Fedora 14 (fc14) * Fedora 15 (fc15) * RHEL 5 EPEL (el5) * RHEL 5 (el5idm) * RHEL 6 (el6) Re-assigning this to kwright.
Correction --- do NOT build tomcatjss 2.0.0 on RHEL 5 (el5idm), as RHCS 8.1 still relies upon tomcat5.