Bugzilla – Bug 1162112
xmvn produces unreproducible output
Last modified: 2021-06-05 07:51:44 UTC
While working on reproducible builds for openSUSE, I found that xmvn creates .xml files with randomness per setUuid( UUID.randomUUID().toString() ) in xmvn-tools/xmvn-install/src/main/java/org/fedoraproject/xmvn/tools/install/JavaPackage.java xmvn-tools/xmvn-install/src/main/java/org/fedoraproject/xmvn/tools/install/impl/DefaultArtifactInstaller.java +++ new//usr/share/maven-metadata/jackson-parent.xml 2019-11-20 12:00:00.0000 00000 +0000 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <metadata xmlns="http://fedorahosted.org/xmvn/METADATA/3.0.0"> - <uuid>84081e46-b2dd-41c9-b0e1-3e89752c546d</uuid> + <uuid>c67ba8dc-3f70-4b4e-95b4-c0afdf000afe</uuid> <artifacts> <artifact> <groupId>com.fasterxml.jackson</groupId> @@ -8,7 +8,7 @@ <extension>pom</extension> <version>2.10</version> <path>/usr/share/maven-poms/jackson-parent/jackson-parent.pom</path> - <uuid>59d7475c-e3da-4430-ad13-b75a5ccd70da</uuid> + <uuid>1bf0dc1e-77d4-4634-a520-60f749c63940</uuid> <properties> That could be replaced by setUuid( UUID.nameUUIDFromBytes(somethingspecific.getBytes()).toString() ); Another source of non-determinism is filesystem readdir order: /usr/share/maven-metadata/openjfx.xml differs (XML document text) --- old//usr/share/maven-metadata/openjfx.xml 2020-01-22 00:00:00.000000000 +0 000 +++ new//usr/share/maven-metadata/openjfx.xml 2020-01-22 00:00:00.000000000 +0 000 @@ -273,9 +273,10 @@ <artifactId>javafx-media</artifactId> <classifier>linux</classifier> <version>11.0.6</version> - <path>/usr/share/java/openjfx/javafx-media-linux.jar</path> + <path>/usr/lib64/java/openjfx/javafx-media-linux.jar</path> <uuid>d41d8cd9-8f00-3204-a980-0998ecf8427e</uuid> <properties> + <native>true</native> <xmvn.resolver.disableEffectivePom>true</xmvn.resolver.disableEffective Pom> </properties> </artifact> @@ -329,9 +330,10 @@ <artifactId>javafx-swing</artifactId> <classifier>linux</classifier> <version>11.0.6</version> - <path>/usr/share/java/openjfx/javafx-swing-linux.jar</path> + <path>/usr/lib64/java/openjfx/javafx-swing-linux.jar</path> <uuid>d41d8cd9-8f00-3204-a980-0998ecf8427e</uuid> <properties> + <native>true</native> <xmvn.resolver.disableEffectivePom>true</xmvn.resolver.disableEffectivePom> </properties> </artifact> @@ -397,9 +399,10 @@ <artifactId>javafx-web</artifactId> <classifier>linux</classifier> <version>11.0.6</version> - <path>/usr/share/java/openjfx/javafx-web-linux.jar</path> + <path>/usr/lib64/java/openjfx/javafx-web-linux.jar</path> <uuid>d41d8cd9-8f00-3204-a980-0998ecf8427e</uuid> <properties> + <native>true</native> <xmvn.resolver.disableEffectivePom>true</xmvn.resolver.disableEffectivePom> </properties> </artifact> but here the two results are not even equivalent - is that a bug?
This issues is one of the most annoying ones affecting reproduciblility of 114-140 openSUSE packages and that reduces visibility of other issues.