Unreproducible Tomacat Issue
John Neffenger
john at status6.com
Mon Nov 14 03:50:30 UTC 2022
On 11/12/22 4:32 AM, Roland Clobus wrote:
> Take a look at the difference in tomcat9:
> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/diffoscope-results/tomcat9.html
I found it: Tomcat uses a tool called "bnd" to generate its
'module-info.class' files, but there was a bug in bnd that made those
files nondeterministic.
That bug was fixed in March 2022 for bnd version 6.3.0:
module-info.class is not generated in a repeatable manner
https://github.com/bndtools/bnd/issues/5183
Debian is building Tomcat 9 using bnd version 5.0.1, as found here:
https://tests.reproducible-builds.org/debian/buildinfo/unstable/amd64/tomcat9_9.0.68-1.1_amd64.buildinfo
The latest build of Tomcat uses bnd version 6.3.1 and does not have this
problem.
By the way, the fix below makes it so that a normal build of Tomcat
using its default Ant target is reproducible independent of the time of
the build:
Allow reproducible builds of all JDBC JAR files
https://github.com/apache/tomcat/pull/566
Now the only remaining difference that I can find between any two builds
of Tomcat is the build path that gets included in two XML files:
$ diff -qr lxd/output1 kvm/output1
Files lxd/output1/jdbc-pool/doc/changelog.xml and
kvm/output1/jdbc-pool/doc/changelog.xml differ
Files lxd/output1/jdbc-pool/doc/jdbc-pool.xml and
kvm/output1/jdbc-pool/doc/jdbc-pool.xml differ
$ diff -r lxd/output1 kvm/output1
diff -r lxd/output1/jdbc-pool/doc/changelog.xml
kvm/output1/jdbc-pool/doc/changelog.xml
19c19
< <!ENTITY project SYSTEM
"/home/ubuntu/src/tomcat/modules/jdbc-pool/includes/project.xml">
---
> <!ENTITY project SYSTEM
"/home/john/src/tomcat/modules/jdbc-pool/includes/project.xml">
diff -r lxd/output1/jdbc-pool/doc/jdbc-pool.xml
kvm/output1/jdbc-pool/doc/jdbc-pool.xml
19c19
< <!ENTITY project SYSTEM
"/home/ubuntu/src/tomcat/modules/jdbc-pool/includes/project.xml">
---
> <!ENTITY project SYSTEM
"/home/john/src/tomcat/modules/jdbc-pool/includes/project.xml">
John
More information about the rb-general
mailing list