Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package tycho for openSUSE:Factory checked in at 2025-03-27 22:34:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/tycho (Old) and /work/SRC/openSUSE:Factory/.tycho.new.2696 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tycho" Thu Mar 27 22:34:31 2025 rev:21 rq:1264630 version:1.6.0 Changes: -------- --- /work/SRC/openSUSE:Factory/tycho/tycho.changes 2024-05-16 17:18:11.406478270 +0200 +++ /work/SRC/openSUSE:Factory/.tycho.new.2696/tycho.changes 2025-03-27 22:35:12.183812963 +0100 @@ -1,0 +2,13 @@ +Thu Mar 27 14:53:02 UTC 2025 - Fridrich Strba <fst...@suse.com> + +- Port the EmptyMojo.java, used during the boostrap build, to + java-annotations extractor instead of the deprecated java-javadoc + one. This allows to build using the up-coming maven-plugin-tools + 4.x +- Added patches: + * reproducible-tgz-mtime.patch + * reproducible-zip-mtime.patch + + trying to sanitize the modification times of files produced + by tycho plugins + +------------------------------------------------------------------- New: ---- reproducible-tgz-mtime.patch reproducible-zip-mtime.patch BETA DEBUG BEGIN: New:- Added patches: * reproducible-tgz-mtime.patch * reproducible-zip-mtime.patch New: * reproducible-tgz-mtime.patch * reproducible-zip-mtime.patch + trying to sanitize the modification times of files produced BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ tycho.spec ++++++ --- /var/tmp/diff_new_pack.Q1E5uQ/_old 2025-03-27 22:35:13.271858001 +0100 +++ /var/tmp/diff_new_pack.Q1E5uQ/_new 2025-03-27 22:35:13.275858166 +0100 @@ -1,7 +1,7 @@ # # spec file for package tycho # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -71,6 +71,8 @@ Patch12: tycho-surefire.patch Patch13: tycho-surefire3.patch Patch14: tycho-mpp-311.patch +Patch15: reproducible-zip-mtime.patch +Patch16: reproducible-tgz-mtime.patch Patch100: fedoraproject-p2-bootstrap-fix.patch BuildRequires: bash BuildRequires: fdupes @@ -225,6 +227,8 @@ %patch -P 12 -p1 %patch -P 13 -p1 %patch -P 14 -p1 +%patch -P 15 -p1 +%patch -P 16 -p1 %patch -P 100 # Unneeded for RPM builds @@ -246,9 +250,8 @@ # place empty mojo in place mkdir -p tycho-maven-plugin/src/main/java/org/fedoraproject -pushd tycho-maven-plugin/src/main/java/org/fedoraproject -cp %{SOURCE2} . -popd +cp %{SOURCE2} tycho-maven-plugin/src/main/java/org/fedoraproject/ +%pom_add_dep org.apache.maven.plugin-tools:maven-plugin-annotations:3.15.1:provided tycho-maven-plugin # Homogenise requirement on OSGi bundle %if %{with bootstrap} @@ -377,7 +380,7 @@ %{mvn_file} :{*} tycho/@1 %build -%{mvn_build} -f \ +%{mvn_build} -X -f \ %if %{with bootstrap} -j \ %endif ++++++ EmptyMojo.java ++++++ --- /var/tmp/diff_new_pack.Q1E5uQ/_old 2025-03-27 22:35:13.319859988 +0100 +++ /var/tmp/diff_new_pack.Q1E5uQ/_new 2025-03-27 22:35:13.323860153 +0100 @@ -3,12 +3,12 @@ import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugin.AbstractMojo; - +import org.apache.maven.plugins.annotations.LifecyclePhase; +import org.apache.maven.plugins.annotations.Mojo; /** * Empty goal to fix - * @goal empty - * @phase clean */ +@Mojo ( name = "empty", defaultPhase = LifecyclePhase.CLEAN) public class EmptyMojo extends AbstractMojo { ++++++ reproducible-tgz-mtime.patch ++++++ --- tycho-1.6.0/tycho-p2/tycho-p2-director-plugin/src/main/java/org/eclipse/tycho/plugins/tar/TarGzArchiver.java 2024-09-19 14:16:09.460537990 +0200 +++ tycho-1.6.0/tycho-p2/tycho-p2-director-plugin/src/main/java/org/eclipse/tycho/plugins/tar/TarGzArchiver.java 2024-09-19 15:02:05.532769133 +0200 @@ -23,6 +23,7 @@ import java.nio.file.attribute.PosixFileAttributeView; import java.nio.file.attribute.PosixFileAttributes; import java.util.ArrayList; +import java.util.Date; import java.util.List; import org.apache.commons.compress.archivers.tar.TarArchiveEntry; @@ -131,6 +132,10 @@ tarEntry.setMode(FilePermissionHelper.toOctalFileMode(attrs.permissions())); } tarEntry.setModTime(source.lastModified()); + String sde = System.getenv("SOURCE_DATE_EPOCH"); + if (sde != null) { + tarEntry.setModTime(new Date(1000 * Long.parseLong(sde))); + } return tarEntry; } ++++++ reproducible-zip-mtime.patch ++++++ --- tycho-1.6.0/tycho-p2/tycho-p2-director-plugin/src/main/java/org/eclipse/tycho/plugins/p2/director/ProductArchiverMojo.java 2020-01-13 12:02:41.000000000 +0100 +++ tycho-1.6.0/tycho-p2/tycho-p2-director-plugin/src/main/java/org/eclipse/tycho/plugins/p2/director/ProductArchiverMojo.java 2024-09-25 16:48:40.724831059 +0200 @@ -13,6 +13,7 @@ import java.io.File; import java.io.IOException; +import java.nio.file.attribute.FileTime; import java.util.HashMap; import java.util.Map; @@ -136,6 +137,10 @@ } else { Archiver archiver = productArchiver.getArchiver(); archiver.setDestFile(productArchive); + String sde = System.getenv("SOURCE_DATE_EPOCH"); + if (sde != null) { + archiver.setLastModifiedTime(FileTime.fromMillis(1000 * Long.parseLong(sde))); + } DefaultFileSet fileSet = new DefaultFileSet(sourceDir); fileSet.setUsingDefaultExcludes(false); archiver.addFileSet(fileSet); --- tycho-1.6.0/tycho-p2/tycho-p2-repository-plugin/src/main/java/org/eclipse/tycho/plugins/p2/repository/ArchiveRepositoryMojo.java 2020-01-13 12:02:41.000000000 +0100 +++ tycho-1.6.0/tycho-p2/tycho-p2-repository-plugin/src/main/java/org/eclipse/tycho/plugins/p2/repository/ArchiveRepositoryMojo.java 2024-09-25 17:38:37.775628140 +0200 @@ -13,6 +13,7 @@ import java.io.File; import java.io.IOException; +import java.nio.file.attribute.FileTime; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; @@ -58,6 +59,10 @@ File destFile = getBuildDirectory().getChild(finalName + ".zip"); try { + String sde = System.getenv("SOURCE_DATE_EPOCH"); + if (sde != null) { + inflater.setLastModifiedTime(FileTime.fromMillis(1000 * Long.parseLong(sde))); + } inflater.addFileSet(DefaultFileSet.fileSet(getAssemblyRepositoryLocation()).prefixed("")); inflater.setDestFile(destFile); inflater.createArchive(); --- tycho-1.6.0/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/PackageFeatureMojo.java 2024-09-25 16:14:55.650462903 +0200 +++ tycho-1.6.0/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/PackageFeatureMojo.java 2024-09-25 16:15:01.163835826 +0200 @@ -15,6 +15,7 @@ import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; +import java.nio.file.attribute.FileTime; import java.nio.file.Files; import java.util.ArrayList; import java.util.List; @@ -137,6 +138,11 @@ archiver.setOutputFile(outputJar); jarArchiver.setDestFile(outputJar); + String sde = System.getenv("SOURCE_DATE_EPOCH"); + if (sde != null) { + jarArchiver.setLastModifiedTime(FileTime.fromMillis(1000 * Long.parseLong(sde))); + } + try { archiver.getArchiver().addFileSet(getManuallyIncludedFiles(buildProperties)); if (licenseFeature != null) { --- tycho-1.6.0/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/PackageIUMojo.java 2020-01-13 12:02:41.000000000 +0100 +++ tycho-1.6.0/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/PackageIUMojo.java 2024-09-25 18:01:25.715138483 +0200 @@ -12,6 +12,8 @@ import java.io.File; import java.io.IOException; +import java.nio.file.attribute.FileTime; +import java.nio.file.Files; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; @@ -119,16 +121,23 @@ newArtifact.delete(); } + String sde = System.getenv("SOURCE_DATE_EPOCH"); if (hasPayload()) { DefaultFileSet fs = new DefaultFileSet(); fs.setDirectory(payload); zipArchiver.addFileSet(fs); zipArchiver.setDestFile(newArtifact); zipArchiver.setCompress(true); + if (sde != null) { + zipArchiver.setLastModifiedTime(FileTime.fromMillis(1000 * Long.parseLong(sde))); + } zipArchiver.createArchive(); } else { //Force create the file newArtifact.createNewFile(); + if (sde != null) { + Files.setLastModifiedTime(newArtifact.toPath(), FileTime.fromMillis(1000 * Long.parseLong(sde))); + } } return newArtifact; } catch (IOException | ArchiverException e) { --- tycho-1.6.0/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/PackagePluginMojo.java 2020-01-13 12:02:41.000000000 +0100 +++ tycho-1.6.0/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/PackagePluginMojo.java 2024-09-25 18:06:43.014014463 +0200 @@ -16,6 +16,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.nio.file.attribute.FileTime; import java.util.ArrayList; import java.util.List; import java.util.jar.Attributes; @@ -149,6 +150,11 @@ public void execute() throws MojoExecutionException { pdeProject = (EclipsePluginProject) project.getContextValue(TychoConstants.CTX_ECLIPSE_PLUGIN_PROJECT); + String sde = System.getenv("SOURCE_DATE_EPOCH"); + if (sde != null) { + jarArchiver.setLastModifiedTime(FileTime.fromMillis(1000 * Long.parseLong(sde))); + } + createSubJars(); File pluginFile = createPluginJar(); @@ -172,6 +178,10 @@ File jarFile = new File(project.getBasedir(), jarName); JarArchiver archiver = new JarArchiver(); archiver.setDestFile(jarFile); + String sde = System.getenv("SOURCE_DATE_EPOCH"); + if (sde != null) { + archiver.setLastModifiedTime(FileTime.fromMillis(1000 * Long.parseLong(sde))); + } archiver.addDirectory(jar.getOutputDirectory()); if (customManifest != null) { for (File sourceFolder : jar.getSourceFolders()) { --- tycho-1.6.0/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/PackageUpdateSiteMojo.java 2020-01-13 12:02:41.000000000 +0100 +++ tycho-1.6.0/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/PackageUpdateSiteMojo.java 2024-09-25 17:41:41.193568902 +0200 @@ -12,6 +12,7 @@ import java.io.File; import java.io.IOException; +import java.nio.file.attribute.FileTime; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; @@ -66,10 +67,17 @@ File siteDestination = new File(target.getParentFile(), "site.zip"); siteZipper.addFile(new File(target, "site.xml"), "site.xml"); siteZipper.setDestFile(siteDestination); + String sde = System.getenv("SOURCE_DATE_EPOCH"); + if (sde != null) { + siteZipper.setLastModifiedTime(FileTime.fromMillis(1000 * Long.parseLong(sde))); + } siteZipper.createArchive(); project.getArtifact().setFile(siteDestination); if (archiveSite) { ZipArchiver asssemblyZipper = new ZipArchiver(); + if (sde != null) { + asssemblyZipper.setLastModifiedTime(FileTime.fromMillis(1000 * Long.parseLong(sde))); + } File asssemblyDestFile = new File(target.getParentFile(), "site_assembly.zip"); asssemblyZipper.addDirectory(target); asssemblyZipper.setDestFile(asssemblyDestFile); --- tycho-1.6.0/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/ProductExportMojo.java 2024-09-25 16:14:55.653796260 +0200 +++ tycho-1.6.0/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/ProductExportMojo.java 2024-09-25 16:24:24.147878245 +0200 @@ -20,6 +20,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.StringWriter; +import java.nio.file.attribute.FileTime; import java.util.Arrays; import java.util.Enumeration; import java.util.HashMap; @@ -395,6 +396,10 @@ File destFile = new File(project.getBuild().getDirectory(), filename.toString()); try { + String sde = System.getenv("SOURCE_DATE_EPOCH"); + if (sde != null) { + zipper.setLastModifiedTime(FileTime.fromMillis(1000 * Long.parseLong(sde))); + } zipper.addDirectory(target); zipper.setDestFile(destFile); zipper.createArchive(); diff -urEbwB tycho-1.6.0/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/UpdateSiteAssembler.java tycho-1.6.0/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/UpdateSiteAssembler.java --- tycho-1.6.0/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/UpdateSiteAssembler.java 2024-09-25 16:14:55.653796260 +0200 +++ tycho-1.6.0/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/UpdateSiteAssembler.java 2024-09-25 16:15:01.163835826 +0200 @@ -17,6 +17,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.URL; +import java.nio.file.attribute.FileTime; import java.util.Map; import org.codehaus.plexus.PlexusContainer; @@ -252,6 +253,10 @@ archiver.setDestFile(targetZip); try { archiver.addDirectory(sourceDir); + String sde = System.getenv("SOURCE_DATE_EPOCH"); + if (sde != null) { + archiver.setLastModifiedTime(FileTime.fromMillis(1000 * Long.parseLong(sde))); + } archiver.createArchive(); } catch (IOException | ArchiverException e) { throw new RuntimeException("Error packing zip", e); ++++++ tycho-debundle.sh ++++++ --- /var/tmp/diff_new_pack.Q1E5uQ/_old 2025-03-27 22:35:13.463865949 +0100 +++ /var/tmp/diff_new_pack.Q1E5uQ/_new 2025-03-27 22:35:13.463865949 +0100 @@ -20,7 +20,7 @@ symlinkBundles "${wantedBundles}" for b in *; do readlink $b; done >$mfLoc popd -zip -ry ${zipFile} * +zip -Xry ${zipFile} * popd mv ${tmpDir}/${zipFile} ${zipLoc} ++++++ tycho-scripts.sh ++++++ --- /var/tmp/diff_new_pack.Q1E5uQ/_old 2025-03-27 22:35:13.491867108 +0100 +++ /var/tmp/diff_new_pack.Q1E5uQ/_new 2025-03-27 22:35:13.499867439 +0100 @@ -95,7 +95,7 @@ # SCL priority is from right to left. # X_SCLS expands to list of currently enabled SCLs, in the order they were enabled, if any scls="$X_SCLS" -baseLocations=( '/usr/share/java/eclipse' '/usr/share/java' '/usr/lib/java' ) +baseLocations=( '/usr/share/java/eclipse' '/usr/share/java' '/usr/lib/java' '/usr/lib64/java' ) osgiLocations=(${baseLocations[@]} ${osgiLocations[@]} ) for scl in ${scls} ; do osgiLocations=( ${baseLocations[@]/#//opt/rh/${scl}/root} ${osgiLocations[@]} )