Compare commits

...

4 Commits

10 changed files with 149 additions and 24 deletions

View File

@ -1,19 +1,16 @@
--- a/xmvn-tools/xmvn-install/src/main/java/org/fedoraproject/xmvn/tools/install/impl/DefaultArtifactInstaller.java
+++ b/xmvn-tools/xmvn-install/src/main/java/org/fedoraproject/xmvn/tools/install/impl/DefaultArtifactInstaller.java
@@ -185,7 +185,12 @@ class DefaultArtifactInstaller
am.setNamespace( repo.getNamespace() );
// UUID
- am.setUuid( UUID.randomUUID().toString() );
+ UUID guid = UUID.randomUUID();
+ if ( System.getenv( "SOURCE_DATE_EPOCH" ) != null )
+ {
+ guid = UUID.nameUUIDFromBytes( ( System.getenv( "SOURCE_DATE_EPOCH" ) + repo.getNamespace() + artifact.toString() ).getBytes() );
+ }
+ am.setUuid( guid.toString() );
// Compat version
for ( String version : rule.getVersions() )
From 2419d17ea3290e4d25f5629dbeac4df460ec8376 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
Date: Wed, 20 Sep 2023 18:46:28 +0200
Subject: [PATCH 2/3] Make metadata UUIDs reproducible if SOURCE_DATE_EPOCH is
set
---
.../xmvn/tools/install/JavaPackage.java | 14 ++++++++++++--
.../install/impl/DefaultArtifactInstaller.java | 7 ++++++-
2 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/xmvn-tools/xmvn-install/src/main/java/org/fedoraproject/xmvn/tools/install/JavaPackage.java b/xmvn-tools/xmvn-install/src/main/java/org/fedoraproject/xmvn/tools/install/JavaPackage.java
index 9835c5b8..0542c838 100644
--- a/xmvn-tools/xmvn-install/src/main/java/org/fedoraproject/xmvn/tools/install/JavaPackage.java
+++ b/xmvn-tools/xmvn-install/src/main/java/org/fedoraproject/xmvn/tools/install/JavaPackage.java
@@ -58,7 +58,12 @@ public class JavaPackage
@ -48,3 +45,24 @@
splitMetadata.setArtifacts( splitArtifacts );
splitMetadata.setSkippedArtifacts( metadata.getSkippedArtifacts() );
return splitMetadata;
diff --git a/xmvn-tools/xmvn-install/src/main/java/org/fedoraproject/xmvn/tools/install/impl/DefaultArtifactInstaller.java b/xmvn-tools/xmvn-install/src/main/java/org/fedoraproject/xmvn/tools/install/impl/DefaultArtifactInstaller.java
index 0c83e664..c3fa1bdf 100644
--- a/xmvn-tools/xmvn-install/src/main/java/org/fedoraproject/xmvn/tools/install/impl/DefaultArtifactInstaller.java
+++ b/xmvn-tools/xmvn-install/src/main/java/org/fedoraproject/xmvn/tools/install/impl/DefaultArtifactInstaller.java
@@ -185,7 +185,12 @@ class DefaultArtifactInstaller
am.setNamespace( repo.getNamespace() );
// UUID
- am.setUuid( UUID.randomUUID().toString() );
+ UUID guid = UUID.randomUUID();
+ if ( System.getenv( "SOURCE_DATE_EPOCH" ) != null )
+ {
+ guid = UUID.nameUUIDFromBytes( ( System.getenv( "SOURCE_DATE_EPOCH" ) + repo.getNamespace() + artifact.toString() ).getBytes() );
+ }
+ am.setUuid( guid.toString() );
// Compat version
for ( String version : rule.getVersions() )
--
2.45.2

View File

@ -0,0 +1,51 @@
From 586901a3aff9fd6885df1913a6a6d03f71a5037d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
Date: Thu, 18 Jul 2024 12:30:13 +0200
Subject: [PATCH 3/3] Reproducible javadoc: notimestamp option and some
auto-detection
---
.../fedoraproject/xmvn/mojo/JavadocMojo.java | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/xmvn-mojo/src/main/java/org/fedoraproject/xmvn/mojo/JavadocMojo.java b/xmvn-mojo/src/main/java/org/fedoraproject/xmvn/mojo/JavadocMojo.java
index 644c3930..48f3a930 100644
--- a/xmvn-mojo/src/main/java/org/fedoraproject/xmvn/mojo/JavadocMojo.java
+++ b/xmvn-mojo/src/main/java/org/fedoraproject/xmvn/mojo/JavadocMojo.java
@@ -102,6 +102,12 @@ public class JavadocMojo
@Parameter( property = "xmvn.javadoc.ignoreJPMS" )
private boolean ignoreJPMS;
+ @Parameter( defaultValue = "${project.build.outputTimestamp}" )
+ protected String outputTimestamp;
+
+ @Parameter( property = "notimestamp", defaultValue = "false" )
+ private boolean notimestamp;
+
private List<String> options = new ArrayList<>();
private static String quoted( Object obj )
@@ -372,6 +378,20 @@ public class JavadocMojo
addOpt( "-docencoding", docencoding, "UTF-8" );
addOpt( "-doctitle", "Javadoc for package XXX" );
+ if ( !notimestamp && outputTimestamp != null && outputTimestamp.length() > 1 )
+ {
+ notimestamp = true;
+ }
+ if ( !notimestamp && System.getenv( "SOURCE_DATE_EPOCH" ) != null )
+ {
+ notimestamp = true;
+ }
+ if ( notimestamp )
+ {
+ addOpt( "-notimestamp" );
+ }
+
+
if ( !addOpt( "--release", release ) )
{
addOpt( "-source", source );
--
2.45.2

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Thu Jul 18 11:07:04 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Modified patch:
* UUID.patch ->
0002-Make-metadata-UUIDs-reproducible-if-SOURCE_DATE_EPOC.patch
+ use version of the patch from our Pull Request to upstream
- Added patch:
* 0003-Reproducible-javadoc-notimestamp-option-and-some-aut.patch
+ make javadoc reproducible if project.build.outputTimestamp
is specified or if SOURCE_DATE_EPOCH environmental variable
is set
-------------------------------------------------------------------
Tue Jan 30 09:25:00 UTC 2024 - Fridrich Strba <fstrba@suse.com>

View File

@ -28,8 +28,9 @@ Group: Development/Tools/Building
URL: https://fedora-java.github.io/xmvn/
Source0: https://github.com/fedora-java/%{parent}/releases/download/%{version}/%{parent}-%{version}.tar.xz
Source1: %{parent}-build.tar.xz
Patch0: UUID.patch
Patch1: 0001-Do-not-leave-a-stray-options-file-in-the-generated-j.patch
Patch0: 0001-Do-not-leave-a-stray-options-file-in-the-generated-j.patch
Patch1: 0002-Make-metadata-UUIDs-reproducible-if-SOURCE_DATE_EPOC.patch
Patch2: 0003-Reproducible-javadoc-notimestamp-option-and-some-aut.patch
BuildRequires: %{parent}-api = %{version}
BuildRequires: %{parent}-core = %{version}
BuildRequires: ant

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Thu Jul 18 11:07:04 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Modified patch:
* UUID.patch ->
0002-Make-metadata-UUIDs-reproducible-if-SOURCE_DATE_EPOC.patch
+ use version of the patch from our Pull Request to upstream
- Added patch:
* 0003-Reproducible-javadoc-notimestamp-option-and-some-aut.patch
+ make javadoc reproducible if project.build.outputTimestamp
is specified or if SOURCE_DATE_EPOCH environmental variable
is set
-------------------------------------------------------------------
Wed May 15 12:30:44 UTC 2024 - Fridrich Strba <fstrba@suse.com>

View File

@ -26,8 +26,9 @@ License: Apache-2.0
Group: Development/Tools/Building
URL: https://fedora-java.github.io/xmvn/
Source0: https://github.com/fedora-java/%{parent}/releases/download/%{version}/%{parent}-%{version}.tar.xz
Patch0: UUID.patch
Patch1: 0001-Do-not-leave-a-stray-options-file-in-the-generated-j.patch
Patch0: 0001-Do-not-leave-a-stray-options-file-in-the-generated-j.patch
Patch1: 0002-Make-metadata-UUIDs-reproducible-if-SOURCE_DATE_EPOC.patch
Patch2: 0003-Reproducible-javadoc-notimestamp-option-and-some-aut.patch
BuildRequires: %{parent}-api = %{version}
BuildRequires: %{parent}-core = %{version}
BuildRequires: fdupes

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Thu Jul 18 11:07:04 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Modified patch:
* UUID.patch ->
0002-Make-metadata-UUIDs-reproducible-if-SOURCE_DATE_EPOC.patch
+ use version of the patch from our Pull Request to upstream
- Added patch:
* 0003-Reproducible-javadoc-notimestamp-option-and-some-aut.patch
+ make javadoc reproducible if project.build.outputTimestamp
is specified or if SOURCE_DATE_EPOCH environmental variable
is set
-------------------------------------------------------------------
Tue Jan 30 09:25:00 UTC 2024 - Fridrich Strba <fstrba@suse.com>

View File

@ -26,8 +26,9 @@ License: Apache-2.0
Group: Development/Tools/Building
URL: https://fedora-java.github.io/xmvn/
Source0: https://github.com/fedora-java/%{parent}/releases/download/%{version}/%{parent}-%{version}.tar.xz
Patch0: UUID.patch
Patch1: 0001-Do-not-leave-a-stray-options-file-in-the-generated-j.patch
Patch0: 0001-Do-not-leave-a-stray-options-file-in-the-generated-j.patch
Patch1: 0002-Make-metadata-UUIDs-reproducible-if-SOURCE_DATE_EPOC.patch
Patch2: 0003-Reproducible-javadoc-notimestamp-option-and-some-aut.patch
BuildRequires: javapackages-local
BuildRequires: xmvn-resolve
BuildRequires: mvn(org.apache.maven.plugins:maven-compiler-plugin)

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Thu Jul 18 11:07:04 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Modified patch:
* UUID.patch ->
0002-Make-metadata-UUIDs-reproducible-if-SOURCE_DATE_EPOC.patch
+ use version of the patch from our Pull Request to upstream
- Added patch:
* 0003-Reproducible-javadoc-notimestamp-option-and-some-aut.patch
+ make javadoc reproducible if project.build.outputTimestamp
is specified or if SOURCE_DATE_EPOCH environmental variable
is set
-------------------------------------------------------------------
Mon Feb 19 13:09:53 UTC 2024 - Fridrich Strba <fstrba@suse.com>

View File

@ -27,8 +27,9 @@ Group: Development/Tools/Building
URL: https://fedora-java.github.io/xmvn/
Source0: https://github.com/fedora-java/xmvn/releases/download/%{version}/%{parent}-%{version}.tar.xz
Source1: %{parent}-build.tar.xz
Patch0: UUID.patch
Patch1: 0001-Do-not-leave-a-stray-options-file-in-the-generated-j.patch
Patch0: 0001-Do-not-leave-a-stray-options-file-in-the-generated-j.patch
Patch1: 0002-Make-metadata-UUIDs-reproducible-if-SOURCE_DATE_EPOC.patch
Patch2: 0003-Reproducible-javadoc-notimestamp-option-and-some-aut.patch
BuildRequires: ant
BuildRequires: apache-commons-compress
BuildRequires: apache-commons-io