diff --git a/gradle/reprod/init.gradle b/gradle/reprod/init.gradle new file mode 100644 index 00000000..d5c717bf --- /dev/null +++ b/gradle/reprod/init.gradle @@ -0,0 +1,8 @@ +allprojects { + tasks.withType(AbstractArchiveTask) { + preserveFileTimestamps = false + reproducibleFileOrder = true + dirMode = 0775 + fileMode = 0664 + } +} diff --git a/gradle/reprod/patches/fernflower/0001-Add-build.gradle.patch b/gradle/reprod/patches/fernflower/0001-Add-build.gradle.patch index e276b82b..f353d072 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,25 @@ +@@ -0,0 +1,18 @@ +apply plugin: 'java' + +sourceCompatibility = 1.8 @@ -32,13 +32,6 @@ index 0000000..22fa679 + } +} + -+tasks.withType(AbstractArchiveTask) { -+ preserveFileTimestamps = false -+ reproducibleFileOrder = true -+ dirMode = 0775 -+ fileMode = 0664 -+} -+ -- 2.5.5 diff --git a/gradle/reprod/patches/forgeflower/0001-Configure-gradle-to-build-reproducible-archives.patch b/gradle/reprod/patches/forgeflower/0001-Configure-gradle-to-build-reproducible-archives.patch deleted file mode 100644 index 41679570..00000000 --- a/gradle/reprod/patches/forgeflower/0001-Configure-gradle-to-build-reproducible-archives.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 21caf62b4f60cce47a5d3b8c939cc7b177904e00 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 7 Aug 2017 19:52:13 +0200 -Subject: [PATCH] Configure gradle to build reproducible archives - ---- - fernflower.gradle | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/fernflower.gradle b/fernflower.gradle -index 78a2be1..468733e 100644 ---- a/fernflower.gradle -+++ b/fernflower.gradle -@@ -12,4 +12,11 @@ compileJava { - } - -+tasks.withType(AbstractArchiveTask) { -+ preserveFileTimestamps = false -+ reproducibleFileOrder = true -+ dirMode = 0775 -+ fileMode = 0664 -+} -+ - sourceSets { - main.java.srcDirs = ['src'] --- -2.5.5 - 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 deleted file mode 100644 index dd19b896..00000000 --- a/gradle/reprod/patches/forgegradle/0001-Configure-gradle-to-build-reproducible-archives.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 21caf62b4f60cce47a5d3b8c939cc7b177904e00 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 7 Aug 2017 19:52:13 +0200 -Subject: [PATCH 1/5] Configure gradle to build reproducible archives - ---- - build.gradle | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/build.gradle b/build.gradle -index 78a2be1..468733e 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -138,6 +138,13 @@ jar { - } - } - -+tasks.withType(AbstractArchiveTask) { -+ preserveFileTimestamps = false -+ reproducibleFileOrder = true -+ dirMode = 0775 -+ fileMode = 0664 -+} -+ - javadoc { - classpath += configurations.compileOnly - --- -2.5.5 - diff --git a/gradle/reprod/patches/forgegradle/0002-Manually-force-reproducible-archives.patch b/gradle/reprod/patches/forgegradle/0002-Manually-force-reproducible-archives.patch index 3d104f7d..70fdbe7c 100644 --- a/gradle/reprod/patches/forgegradle/0002-Manually-force-reproducible-archives.patch +++ b/gradle/reprod/patches/forgegradle/0002-Manually-force-reproducible-archives.patch @@ -47,7 +47,7 @@ index 468733e..91ea99a 100644 + } } - tasks.withType(AbstractArchiveTask) { + javadoc { -- 2.5.5 diff --git a/gradle/reprod/patches/gitpatcher/0001-Configure-gradle-to-build-reproducible-archives.patch b/gradle/reprod/patches/gitpatcher/0001-Configure-gradle-to-build-reproducible-archives.patch deleted file mode 100644 index 34b7ca5c..00000000 --- a/gradle/reprod/patches/gitpatcher/0001-Configure-gradle-to-build-reproducible-archives.patch +++ /dev/null @@ -1,30 +0,0 @@ -From ef56dfff6da10203e6319289b88571e8aa511ae4 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Sat, 26 Aug 2017 16:58:15 +0200 -Subject: [PATCH 1/3] Configure gradle to build reproducible archives - ---- - build.gradle | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/build.gradle b/build.gradle -index 9d0e832..bc6d5bb 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -18,6 +18,13 @@ description = 'A Gradle plugin to manage patches for Git repositories' - sourceCompatibility = '1.7' - targetCompatibility = '1.7' - -+tasks.withType(AbstractArchiveTask) { -+ preserveFileTimestamps = false -+ reproducibleFileOrder = true -+ dirMode = 0775 -+ fileMode = 0664 -+} -+ - repositories { - jcenter() - } --- -2.5.5 - 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 deleted file mode 100644 index ecc3172a..00000000 --- a/gradle/reprod/patches/gradle-witness/0001-Configure-gradle-to-build-reproducible-archives.patch +++ /dev/null @@ -1,27 +0,0 @@ -From e6caf7be3f8b7fbe6be79449b30a93c8a362997f Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 7 Aug 2017 20:00:16 +0200 -Subject: [PATCH] Configure gradle to build reproducible archives - ---- - build.gradle | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/build.gradle b/build.gradle -index 988a3bf..b75571c 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -8,3 +8,10 @@ dependencies { - sourceCompatibility = '1.7' - targetCompatibility = '1.7' - -+tasks.withType(AbstractArchiveTask) { -+ preserveFileTimestamps = false -+ reproducibleFileOrder = true -+ dirMode = 0775 -+ fileMode = 0664 -+} -+ --- -2.5.5 - diff --git a/gradle/reprod/patches/mcinjector/0002-Configure-gradle-to-build-reproducible-archives.patch b/gradle/reprod/patches/mcinjector/0002-Configure-gradle-to-build-reproducible-archives.patch deleted file mode 100644 index 8803cda9..00000000 --- a/gradle/reprod/patches/mcinjector/0002-Configure-gradle-to-build-reproducible-archives.patch +++ /dev/null @@ -1,30 +0,0 @@ -From e00b13e31dde9e889a177b905db0f384f20eaf05 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Sat, 26 Aug 2017 17:29:13 +0200 -Subject: [PATCH 2/2] Configure gradle to build reproducible archives - ---- - build.gradle | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/build.gradle b/build.gradle -index b6c63bb..da0fdb9 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -16,6 +16,13 @@ jar { - manifest.attributes('Main-Class': 'de.oceanlabs.mcp.mcinjector.MCInjector') - } - -+tasks.withType(AbstractArchiveTask) { -+ preserveFileTimestamps = false -+ reproducibleFileOrder = true -+ dirMode = 0775 -+ fileMode = 0664 -+} -+ - dependencies { - compile 'org.ow2.asm:asm-debug-all:5.0.4' - compile 'net.sf.jopt-simple:jopt-simple:4.5' --- -2.5.5 - 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 deleted file mode 100644 index 27d54426..00000000 --- a/gradle/reprod/patches/mixin/0001-Configure-gradle-to-build-reproducible-archives.patch +++ /dev/null @@ -1,30 +0,0 @@ -From e60dd702c247692529a7cece94a475650623482e Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Tue, 8 Aug 2017 19:05:14 +0200 -Subject: [PATCH 1/7] Configure gradle to build reproducible archives - ---- - build.gradle | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/build.gradle b/build.gradle -index 4f0aa28..e0c46ea 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -170,6 +170,13 @@ processResources { - from 'LICENSE.txt' - } - -+tasks.withType(AbstractArchiveTask) { -+ preserveFileTimestamps = false -+ reproducibleFileOrder = true -+ dirMode = 0775 -+ fileMode = 0664 -+} -+ - // License header formatting - license { - ext { --- -2.5.5 - 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 9ef5a526..85acfd93 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' -@@ -177,23 +172,6 @@ tasks.withType(AbstractArchiveTask) { - fileMode = 0664 +@@ -170,23 +165,6 @@ tasks.withType(AbstractArchiveTask) { + from 'LICENSE.txt' } -// License header formatting diff --git a/gradle/reprod/patches/mixin/0004-Disable-checkstyle.patch b/gradle/reprod/patches/mixin/0004-Disable-checkstyle.patch index de4d8f3d..6ea99932 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' -@@ -172,17 +171,6 @@ tasks.withType(AbstractArchiveTask) { - fileMode = 0664 +@@ -165,17 +164,6 @@ tasks.withType(AbstractArchiveTask) { + from 'LICENSE.txt' } -checkstyle { 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 deleted file mode 100644 index b4b6c736..00000000 --- a/gradle/reprod/patches/mixingradle/0001-Configure-gradle-to-build-reproducible-archives.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 34446d49be65c3a17e962c2e4053ed3e41aa2ab4 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 7 Aug 2017 20:04:25 +0200 -Subject: [PATCH 1/3] Configure gradle to build reproducible archives - ---- - build.gradle | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/build.gradle b/build.gradle -index 3127c7f..c34a8a2 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -71,6 +71,13 @@ task groovydocJar(type: Jar, dependsOn: groovydoc) { - classifier = 'groovydoc' - } - -+tasks.withType(AbstractArchiveTask) { -+ preserveFileTimestamps = false -+ reproducibleFileOrder = true -+ dirMode = 0775 -+ fileMode = 0664 -+} -+ - artifacts { - archives jar - archives groovydocJar --- -2.5.5 - diff --git a/gradle/reprod/patches/replaymod/0005-Configure-gradle-to-build-reproducible-archives.patch b/gradle/reprod/patches/replaymod/0005-Configure-gradle-to-build-reproducible-archives.patch deleted file mode 100644 index 6bee4a7e..00000000 --- a/gradle/reprod/patches/replaymod/0005-Configure-gradle-to-build-reproducible-archives.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 07de60f9e430063f398bcc86e15397afb8a00413 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Tue, 8 Aug 2017 21:29:01 +0200 -Subject: [PATCH 5/5] Configure gradle to build reproducible archives - ---- - build.gradle | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/build.gradle b/build.gradle -index bda297b..7ed5cfe 100755 ---- a/build.gradle -+++ b/build.gradle -@@ -194,6 +194,11 @@ jar { - } - } - -+tasks.withType(AbstractArchiveTask) { -+ preserveFileTimestamps = false -+ reproducibleFileOrder = true -+} -+ - def gitDescribe() { - try { - def stdout = new ByteArrayOutputStream() --- -2.5.5 - 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 deleted file mode 100644 index 7255661c..00000000 --- a/gradle/reprod/patches/shadow/0001-Configure-gradle-to-build-reproducible-archives.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 66c234d97042d31771df1c3633e1c7cb662e4882 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Tue, 8 Aug 2017 19:00:22 +0200 -Subject: [PATCH 1/4] Configure gradle to build reproducible archives - ---- - build.gradle | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/build.gradle b/build.gradle -index 3d2095e..2292a4d 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -91,6 +91,13 @@ idea { - } - } - -+tasks.withType(AbstractArchiveTask) { -+ preserveFileTimestamps = false -+ reproducibleFileOrder = true -+ dirMode = 0775 -+ fileMode = 0664 -+} -+ - sourceCompatibility = '1.6' - targetCompatibility = '1.6' - --- -2.5.5 - diff --git a/gradle/reprod/patches/shadow/0002-Remove-non-essential-parts-of-build.gradle.patch b/gradle/reprod/patches/shadow/0002-Remove-non-essential-parts-of-build.gradle.patch index ffd98261..412af9ea 100644 --- a/gradle/reprod/patches/shadow/0002-Remove-non-essential-parts-of-build.gradle.patch +++ b/gradle/reprod/patches/shadow/0002-Remove-non-essential-parts-of-build.gradle.patch @@ -85,7 +85,7 @@ index 2292a4d..1b06411 100644 } jar { -@@ -85,12 +23,6 @@ jar { +@@ -85,22 +23,6 @@ jar { from rootProject.file('NOTICE') } @@ -95,10 +95,6 @@ index 2292a4d..1b06411 100644 - } -} - - tasks.withType(AbstractArchiveTask) { - preserveFileTimestamps = false - reproducibleFileOrder = true -@@ -99,13 +31,3 @@ tasks.withType(AbstractArchiveTask) { sourceCompatibility = '1.6' targetCompatibility = '1.6' diff --git a/gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch b/gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch index d4656cd9..f8642c60 100644 --- a/gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch +++ b/gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch @@ -48,7 +48,7 @@ index a0d350b..b12a46d 100644 + from (files(configurations.shade).collect {it.isDirectory() ? filesTree(it) : zipTree(it)}) } - tasks.withType(AbstractArchiveTask) { + sourceCompatibility = '1.6' -- 2.5.5 diff --git a/gradle/reprod/patches/srg2source/0001-Configure-gradle-to-build-reproducible-archives.patch b/gradle/reprod/patches/srg2source/0001-Configure-gradle-to-build-reproducible-archives.patch deleted file mode 100644 index f07e1d5d..00000000 --- a/gradle/reprod/patches/srg2source/0001-Configure-gradle-to-build-reproducible-archives.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 0b256e84ff52a8a83b629cdfd404b4d28d0d8450 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Sat, 26 Aug 2017 17:33:25 +0200 -Subject: [PATCH 1/2] Configure gradle to build reproducible archives - ---- - build.gradle | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/build.gradle b/build.gradle -index 8a9dfbe..fda0b61 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -22,6 +22,13 @@ archivesBaseName = 'Srg2Source' - targetCompatibility = '1.6' - sourceCompatibility = '1.6' - -+tasks.withType(AbstractArchiveTask) { -+ preserveFileTimestamps = false -+ reproducibleFileOrder = true -+ dirMode = 0775 -+ fileMode = 0664 -+} -+ - configurations { - deployerJars - } --- -2.5.5 - diff --git a/gradle/reprod/patches/srg2source/0002-Remove-non-essential-parts-of-build.gradle.patch b/gradle/reprod/patches/srg2source/0002-Remove-non-essential-parts-of-build.gradle.patch index b0a09fd1..5edf7dd0 100644 --- a/gradle/reprod/patches/srg2source/0002-Remove-non-essential-parts-of-build.gradle.patch +++ b/gradle/reprod/patches/srg2source/0002-Remove-non-essential-parts-of-build.gradle.patch @@ -28,9 +28,9 @@ index fda0b61..eefeafe 100644 apply plugin: 'java' apply plugin: 'idea' apply plugin: 'eclipse' -@@ -29,10 +16,6 @@ tasks.withType(AbstractArchiveTask) { - fileMode = 0664 - } +@@ -22,10 +9,6 @@ configurations { + targetCompatibility = '1.6' + sourceCompatibility = '1.6' -configurations { - deployerJars @@ -39,7 +39,7 @@ index fda0b61..eefeafe 100644 dependencies { testCompile "junit:junit:4.12" -@@ -56,9 +39,6 @@ dependencies { +@@ -45,9 +28,6 @@ dependencies { // Potential Eclipse AST replacement (not used yet) //compile 'fr.inria.gforge.spoon:spoon-core:5.1.0' @@ -49,7 +49,7 @@ index fda0b61..eefeafe 100644 } repositories { -@@ -84,86 +64,3 @@ jar { +@@ -73,86 +53,3 @@ jar { exclude 'data/**' } diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index 1bfdb276..f76b50a9 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -2,7 +2,7 @@ set -e set -x -cd gradle/reprod +pushd gradle/reprod SHA256SUM="sha256sum" command -v "$SHA256SUM" > /dev/null 2>&1 || SHA256SUM="shasum -a 256" # OSX @@ -44,7 +44,7 @@ setup_dep () { cp ../../../../gradlew . chmod +x gradlew - ./gradlew build -x test + ./gradlew -I ../../init.gradle build -x test actual_hash=$(sha256val "$jar") if [ "$actual_hash" != "$jarhash" ]; then @@ -87,3 +87,7 @@ pushd tmp git commit -m "Add build.gradle" git am ../patches/replaymod/*.patch popd + +popd # Back to root + +./gradlew -Preprod -I gradle/reprod/init.gradle "$@" diff --git a/gradlew b/gradlew index 34c4fe99..085750b4 100755 --- a/gradlew +++ b/gradlew @@ -7,8 +7,7 @@ ############################################################################## if [ "$REPRODUCIBLE_BUILD" == "1" ] && [ -f ./gradle/reprod/setup.sh ] && [ "$1" != "-Preprod" ]; then - ./gradle/reprod/setup.sh || exit - ./gradlew -Preprod "$@" + ./gradle/reprod/setup.sh "$@" exit fi