From c561a3fa5a09f43949d213b8c0465440d3406a16 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Fri, 25 Aug 2017 21:03:27 +0200 Subject: [PATCH] Remove further sources of nondeterminism and update SNAPSHOT hashes --- .../fernflower/0001-Add-build.gradle.patch | 4 ++- ...radle-to-build-reproducible-archives.patch | 4 ++- .../forgegradle/0005-Add-witness-plugin.patch | 7 ++--- ...radle-to-build-reproducible-archives.patch | 4 ++- ...radle-to-build-reproducible-archives.patch | 4 ++- ...replace-all-buildscript-dependencies.patch | 4 +-- .../mixin/0004-Disable-checkstyle.patch | 4 +-- ...de-java-version-and-user-name-in-jar.patch | 26 +++++++++++++++++++ ...radle-to-build-reproducible-archives.patch | 4 ++- ...de-java-version-and-user-name-in-jar.patch | 26 +++++++++++++++++++ ...radle-to-build-reproducible-archives.patch | 4 ++- gradle/reprod/setup.sh | 8 +++--- 12 files changed, 80 insertions(+), 19 deletions(-) create mode 100644 gradle/reprod/patches/mixin/0008-Do-not-include-java-version-and-user-name-in-jar.patch create mode 100644 gradle/reprod/patches/mixingradle/0004-Do-not-include-java-version-and-user-name-in-jar.patch diff --git a/gradle/reprod/patches/fernflower/0001-Add-build.gradle.patch b/gradle/reprod/patches/fernflower/0001-Add-build.gradle.patch index 3eeb1920..e276b82b 100644 --- a/gradle/reprod/patches/fernflower/0001-Add-build.gradle.patch +++ b/gradle/reprod/patches/fernflower/0001-Add-build.gradle.patch @@ -13,7 +13,7 @@ new file mode 100644 index 0000000..22fa679 --- /dev/null +++ b/build.gradle -@@ -0,0 +1,23 @@ +@@ -0,0 +1,25 @@ +apply plugin: 'java' + +sourceCompatibility = 1.8 @@ -35,6 +35,8 @@ index 0000000..22fa679 +tasks.withType(AbstractArchiveTask) { + preserveFileTimestamps = false + reproducibleFileOrder = true ++ dirMode = 0775 ++ fileMode = 0664 +} + -- diff --git a/gradle/reprod/patches/forgegradle/0001-Configure-gradle-to-build-reproducible-archives.patch b/gradle/reprod/patches/forgegradle/0001-Configure-gradle-to-build-reproducible-archives.patch index ede5d050..dd19b896 100644 --- a/gradle/reprod/patches/forgegradle/0001-Configure-gradle-to-build-reproducible-archives.patch +++ b/gradle/reprod/patches/forgegradle/0001-Configure-gradle-to-build-reproducible-archives.patch @@ -11,13 +11,15 @@ diff --git a/build.gradle b/build.gradle index 78a2be1..468733e 100644 --- a/build.gradle +++ b/build.gradle -@@ -138,6 +138,11 @@ jar { +@@ -138,6 +138,13 @@ jar { } } +tasks.withType(AbstractArchiveTask) { + preserveFileTimestamps = false + reproducibleFileOrder = true ++ dirMode = 0775 ++ fileMode = 0664 +} + javadoc { diff --git a/gradle/reprod/patches/forgegradle/0005-Add-witness-plugin.patch b/gradle/reprod/patches/forgegradle/0005-Add-witness-plugin.patch index d3f45939..2db7e540 100644 --- a/gradle/reprod/patches/forgegradle/0005-Add-witness-plugin.patch +++ b/gradle/reprod/patches/forgegradle/0005-Add-witness-plugin.patch @@ -26,7 +26,7 @@ index 0bf7941..d1530fd 100644 group = 'net.minecraftforge.gradle' version = '2.3-SNAPSHOT' -@@ -81,6 +88,58 @@ dependencies { +@@ -81,6 +88,55 @@ dependencies { testCompile 'junit:junit:4.12' } @@ -48,7 +48,7 @@ index 0bf7941..d1530fd 100644 + 'org.apache.httpcomponents:httpmime:4.3.3:61434dbb2314cbb8d28025feb6ae53bbc45d1042daa34371d8911e1e7f570b36', + 'de.oceanlabs.mcp:RetroGuard:3.6.6:22c45060f350fcaa94e503f4a420cf8237c26c0fcdb4ada4aa98389b75c7b231', + 'de.oceanlabs.mcp:mcinjector:3.4-SNAPSHOT:4ad11e0943fb343225dace0000215113c8cbdede6949fa8ba653bdcf770cb028', -+ 'net.minecraftforge.srg2source:Srg2Source:4.0-SNAPSHOT:99893440fe20bafc8193a790889239d4cc60dbe8b8be1e7698a31eaa3853e2fd', ++ 'net.minecraftforge.srg2source:Srg2Source:4.0-SNAPSHOT:6c9134708589bf7ea8300b2c077445a13d02446dcfd24af78240388fde38845e', + 'org.jvnet.localizer:localizer:1.12:212f6eaa0491dd7359dc33c3a72e82a23b096e1890d984b4d92395abc9a6bf7f', + 'commons-io:commons-io:1.4:a7f713593007813bf07d19bd1df9f81c86c0719e9a0bb2ef1b98b78313fc940d', + 'trove:trove:1.0.2:ad68a86cfd0255a2bc0525ce11ec49640caea7e34ff91eb89c3193dcccd77f05', @@ -60,7 +60,6 @@ index 0bf7941..d1530fd 100644 + 'org.eclipse.text:org.eclipse.text:3.5.101:1bacf311ac3d39cc53b03f8de7a4ccffc89c208938f0004a90c652383e927f18', + 'org.eclipse.core:resources:3.2.1-R32x_v20060914:73f9a1a2403f7f9c44d11431c40be4641295f3620570bfef2168a66c5de68fee', + 'org.eclipse.jdt:org.eclipse.jdt.core:3.12.0.v20160315-2126:2082ffb0bb8f276ca164a6363e394f902163a81b7df44ede13aed33d84fdf27e', -+ 'fr.inria.gforge.spoon:spoon-core:5.1.0:08e0b3db3d116301f16142c88932daf954ac447427d609710c2a5ee8dfcfa1f7', + 'org.eclipse.equinox:registry:3.5.400-v20140428-1507:a6833a81795978d4ad8d2e54597171e2a3447fd6983b8e902710aa1dc946fa24', + 'org.eclipse.equinox:app:1.3.200-v20130910-1609:7b2ad6c43d922f3ba0d18d99879d1d56d6a994ba7b639d5d6276f1a167b6a7ac', + 'org.eclipse.core:org.eclipse.core.commands:3.6.0:e46a6444a6d7c0fe70f196ce42d9700c4514b68bf55bae296b2e3c287883ffdc', @@ -68,8 +67,6 @@ index 0bf7941..d1530fd 100644 + 'org.eclipse.core.runtime:compatibility:3.1.200-v20070502:ddf19054374a2617ba9c10d7a5ec8eeaeb8f62c2c6e430144e81da15718bb585', + 'org.eclipse.core:expressions:3.3.0-v20070606-0010:4a73a4a0ebf5ca5f7e9d5e8978b24cd72ebacd5b561de961517f4c976aa7e30f', + 'org.eclipse.core:filesystem:1.1.0-v20070606:b418d15acf94545248f4bd55b4a9b62fc49246488758729d6b3ff52ae149df24', -+ 'com.martiansoftware:jsap:2.1:331746fa62cfbc3368260c5a2e660936ad11be612308c120a044e120361d474e', -+ 'log4j:log4j:1.2.17:1d31696445697720527091754369082a6651bd49781b6005deb94e56753406f9', + 'org.eclipse.update:configurator:3.2.100-v20070615:88b506fa09a810b19517a2d45cb8f5eaa76c22b18abfbdcf36cd07aebfd56cb0', + 'com.google.guava:guava:19.0:58d4cc2e05ebb012bbac568b032f75623be1cb6fb096f3c60c72a86f7f057de4', + 'org.eclipse:osgi:3.10.0-v20140606-1445:fa1d59411d4d2667d8f15638af7c0ac44539234c0982c27a2b65ba06c32a0b3e', diff --git a/gradle/reprod/patches/gradle-witness/0001-Configure-gradle-to-build-reproducible-archives.patch b/gradle/reprod/patches/gradle-witness/0001-Configure-gradle-to-build-reproducible-archives.patch index 3548dc79..ecc3172a 100644 --- a/gradle/reprod/patches/gradle-witness/0001-Configure-gradle-to-build-reproducible-archives.patch +++ b/gradle/reprod/patches/gradle-witness/0001-Configure-gradle-to-build-reproducible-archives.patch @@ -11,13 +11,15 @@ diff --git a/build.gradle b/build.gradle index 988a3bf..b75571c 100644 --- a/build.gradle +++ b/build.gradle -@@ -8,3 +8,8 @@ dependencies { +@@ -8,3 +8,10 @@ dependencies { sourceCompatibility = '1.7' targetCompatibility = '1.7' +tasks.withType(AbstractArchiveTask) { + preserveFileTimestamps = false + reproducibleFileOrder = true ++ dirMode = 0775 ++ fileMode = 0664 +} + -- diff --git a/gradle/reprod/patches/mixin/0001-Configure-gradle-to-build-reproducible-archives.patch b/gradle/reprod/patches/mixin/0001-Configure-gradle-to-build-reproducible-archives.patch index 8ef12d23..27d54426 100644 --- a/gradle/reprod/patches/mixin/0001-Configure-gradle-to-build-reproducible-archives.patch +++ b/gradle/reprod/patches/mixin/0001-Configure-gradle-to-build-reproducible-archives.patch @@ -11,13 +11,15 @@ diff --git a/build.gradle b/build.gradle index 4f0aa28..e0c46ea 100644 --- a/build.gradle +++ b/build.gradle -@@ -170,6 +170,11 @@ processResources { +@@ -170,6 +170,13 @@ processResources { from 'LICENSE.txt' } +tasks.withType(AbstractArchiveTask) { + preserveFileTimestamps = false + reproducibleFileOrder = true ++ dirMode = 0775 ++ fileMode = 0664 +} + // License header formatting diff --git a/gradle/reprod/patches/mixin/0002-Remove-replace-all-buildscript-dependencies.patch b/gradle/reprod/patches/mixin/0002-Remove-replace-all-buildscript-dependencies.patch index bd7244d1..9ef5a526 100644 --- a/gradle/reprod/patches/mixin/0002-Remove-replace-all-buildscript-dependencies.patch +++ b/gradle/reprod/patches/mixin/0002-Remove-replace-all-buildscript-dependencies.patch @@ -30,8 +30,8 @@ index e0c46ea..165dbe4 100644 apply plugin: 'checkstyle' apply plugin: 'maven' apply plugin: 'eclipse' -@@ -175,23 +170,6 @@ tasks.withType(AbstractArchiveTask) { - reproducibleFileOrder = true +@@ -177,23 +172,6 @@ tasks.withType(AbstractArchiveTask) { + fileMode = 0664 } -// License header formatting diff --git a/gradle/reprod/patches/mixin/0004-Disable-checkstyle.patch b/gradle/reprod/patches/mixin/0004-Disable-checkstyle.patch index 7bd3f932..de4d8f3d 100644 --- a/gradle/reprod/patches/mixin/0004-Disable-checkstyle.patch +++ b/gradle/reprod/patches/mixin/0004-Disable-checkstyle.patch @@ -19,8 +19,8 @@ index 0f189ec..f8598a3 100644 apply plugin: 'maven' apply plugin: 'eclipse' apply plugin: 'idea' -@@ -170,17 +169,6 @@ tasks.withType(AbstractArchiveTask) { - reproducibleFileOrder = true +@@ -172,17 +171,6 @@ tasks.withType(AbstractArchiveTask) { + fileMode = 0664 } -checkstyle { diff --git a/gradle/reprod/patches/mixin/0008-Do-not-include-java-version-and-user-name-in-jar.patch b/gradle/reprod/patches/mixin/0008-Do-not-include-java-version-and-user-name-in-jar.patch new file mode 100644 index 00000000..1c510fe0 --- /dev/null +++ b/gradle/reprod/patches/mixin/0008-Do-not-include-java-version-and-user-name-in-jar.patch @@ -0,0 +1,26 @@ +From c3d6d12f47bae3c12c597e59d9a69989fdaa9550 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Fri, 25 Aug 2017 19:27:13 +0200 +Subject: [PATCH] Do not include java version and user name in jar + +--- + build.gradle | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/build.gradle b/build.gradle +index debc97b..ae53e1b 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -241,8 +241,7 @@ jar { + + // JAR manifest configuration + manifest.mainAttributes( +- "Built-By": System.properties['user.name'], +- "Created-By": System.properties['java.vm.version'] + " (" + System.properties['java.vm.vendor'] + ")", ++ "Built-By": 'ReplayMod reprod', + "Implementation-Title": name, + "Implementation-Version": version + "+" + ciSystem + "-b" + buildNumber + ".git-" + commit, + "Implementation-Vendor": url, +-- +2.13.2 + diff --git a/gradle/reprod/patches/mixingradle/0001-Configure-gradle-to-build-reproducible-archives.patch b/gradle/reprod/patches/mixingradle/0001-Configure-gradle-to-build-reproducible-archives.patch index ad6e368a..b4b6c736 100644 --- a/gradle/reprod/patches/mixingradle/0001-Configure-gradle-to-build-reproducible-archives.patch +++ b/gradle/reprod/patches/mixingradle/0001-Configure-gradle-to-build-reproducible-archives.patch @@ -11,13 +11,15 @@ diff --git a/build.gradle b/build.gradle index 3127c7f..c34a8a2 100644 --- a/build.gradle +++ b/build.gradle -@@ -71,6 +71,11 @@ task groovydocJar(type: Jar, dependsOn: groovydoc) { +@@ -71,6 +71,13 @@ task groovydocJar(type: Jar, dependsOn: groovydoc) { classifier = 'groovydoc' } +tasks.withType(AbstractArchiveTask) { + preserveFileTimestamps = false + reproducibleFileOrder = true ++ dirMode = 0775 ++ fileMode = 0664 +} + artifacts { diff --git a/gradle/reprod/patches/mixingradle/0004-Do-not-include-java-version-and-user-name-in-jar.patch b/gradle/reprod/patches/mixingradle/0004-Do-not-include-java-version-and-user-name-in-jar.patch new file mode 100644 index 00000000..9000d682 --- /dev/null +++ b/gradle/reprod/patches/mixingradle/0004-Do-not-include-java-version-and-user-name-in-jar.patch @@ -0,0 +1,26 @@ +From 6de53f46b4b14c7667e7cff8010bde040ae7967b Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Fri, 25 Aug 2017 18:34:39 +0200 +Subject: [PATCH] Do not include java version and user name in jar + +--- + build.gradle | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/build.gradle b/build.gradle +index db80dfa..2f5e041 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -42,8 +42,7 @@ processResources { + } + + jar.manifest.mainAttributes ( +- "Built-By": System.properties['user.name'], +- "Created-By": System.properties['java.vm.version'] + " (" + System.properties['java.vm.vendor'] + ")", ++ "Built-By": 'ReplayMod reprod', + "Implementation-Title": name, + "Implementation-Version": version + ) +-- +2.13.2 + diff --git a/gradle/reprod/patches/shadow/0001-Configure-gradle-to-build-reproducible-archives.patch b/gradle/reprod/patches/shadow/0001-Configure-gradle-to-build-reproducible-archives.patch index 364ec08a..7255661c 100644 --- a/gradle/reprod/patches/shadow/0001-Configure-gradle-to-build-reproducible-archives.patch +++ b/gradle/reprod/patches/shadow/0001-Configure-gradle-to-build-reproducible-archives.patch @@ -11,13 +11,15 @@ diff --git a/build.gradle b/build.gradle index 3d2095e..2292a4d 100644 --- a/build.gradle +++ b/build.gradle -@@ -91,6 +91,11 @@ idea { +@@ -91,6 +91,13 @@ idea { } } +tasks.withType(AbstractArchiveTask) { + preserveFileTimestamps = false + reproducibleFileOrder = true ++ dirMode = 0775 ++ fileMode = 0664 +} + sourceCompatibility = '1.6' diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index dc61e9ba..28ca6895 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -58,13 +58,13 @@ setup_dep () { setup_dep "gradle-witness" "https://github.com/ReplayMod/gradle-witness.git" "c162a15841c2eba54b182fa81733c0aa9227f023" "gradle-witness.jar" "5e9ce687248029bf6364010168a65a4ad66fcb712dbd5ba69c59697ef564964b" # Required for mixin -setup_dep "shadow" "https://github.com/johnrengelman/shadow.git" "60d0f28103be076dc991a624bf79ca7a13835973" "shadow.jar" "0a7a280d5f7c58ff513f448537ceb77eda788df6cbdeacd60f63f70142ff39b3" +setup_dep "shadow" "https://github.com/johnrengelman/shadow.git" "60d0f28103be076dc991a624bf79ca7a13835973" "shadow.jar" "eec0417a8cd44457551c80335cd384a187647b6429ed7b5ae3ce1b26f78a2c1f" setup_dep "fernflower" "https://github.com/fesh0r/fernflower.git" "85f61bee8194ab69afa746b965973a18eda67608" "fernflower.jar" "577c2c4e04f0026675cacb25ec525f2ccba5de2eecac525b28bed18f9ccfd790" # Required for RM -setup_dep "mixingradle" "https://github.com/SpongePowered/MixinGradle.git" "3d81c8e202ec435056fb2068fdc34cfefa99be2d" "mixingradle-0.4-SNAPSHOT.jar" "a2b23727ed920ef2b9098f55634ede8d2ae5d04d910c0d572e45c33cff1cd281" -setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "a228a836a2dc5ce546d2d53c48760f52f082d7ad" "ForgeGradle-2.3-SNAPSHOT.jar" "c885787f66811bf8edf0ced326d20c56428b447e8f0d29f37679f381d3e1f7ff" -setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "mixin-0.6.11-SNAPSHOT.jar" "0563b206db37f2f22b024b1736084afa2f30b0193b1a14e89cf9d99a3db26e1d" +setup_dep "mixingradle" "https://github.com/SpongePowered/MixinGradle.git" "3d81c8e202ec435056fb2068fdc34cfefa99be2d" "mixingradle-0.4-SNAPSHOT.jar" "8b3508867128a5d564631635dff898a36f9aca8db54b7bb3af6f4924e3f4bead" +setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "a228a836a2dc5ce546d2d53c48760f52f082d7ad" "ForgeGradle-2.3-SNAPSHOT.jar" "aaa19067cd51397756be850bd3e621667b535c0e897fc77e1bb1eb72550e4a63" +setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "mixin-0.6.11-SNAPSHOT.jar" "8ec6ce24b8192f043976344305ba6afbc35b052056f1559ca5914a77c5eae71d" rm -rf tmp mkdir tmp