Move gradle config for reproducible builds into init.gradle file

This commit is contained in:
Jonas Herzig
2017-08-28 14:50:27 +02:00
parent 95fc9a5248
commit ad3ff3e8ef
20 changed files with 28 additions and 321 deletions

View File

@@ -0,0 +1,8 @@
allprojects {
tasks.withType(AbstractArchiveTask) {
preserveFileTimestamps = false
reproducibleFileOrder = true
dirMode = 0775
fileMode = 0664
}
}

View File

@@ -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

View File

@@ -1,28 +0,0 @@
From 21caf62b4f60cce47a5d3b8c939cc7b177904e00 Mon Sep 17 00:00:00 2001
From: Jonas Herzig <me@johni0702.de>
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

View File

@@ -1,30 +0,0 @@
From 21caf62b4f60cce47a5d3b8c939cc7b177904e00 Mon Sep 17 00:00:00 2001
From: Jonas Herzig <me@johni0702.de>
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

View File

@@ -47,7 +47,7 @@ index 468733e..91ea99a 100644
+ }
}
tasks.withType(AbstractArchiveTask) {
javadoc {
--
2.5.5

View File

@@ -1,30 +0,0 @@
From ef56dfff6da10203e6319289b88571e8aa511ae4 Mon Sep 17 00:00:00 2001
From: Jonas Herzig <me@johni0702.de>
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

View File

@@ -1,27 +0,0 @@
From e6caf7be3f8b7fbe6be79449b30a93c8a362997f Mon Sep 17 00:00:00 2001
From: Jonas Herzig <me@johni0702.de>
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

View File

@@ -1,30 +0,0 @@
From e00b13e31dde9e889a177b905db0f384f20eaf05 Mon Sep 17 00:00:00 2001
From: Jonas Herzig <me@johni0702.de>
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

View File

@@ -1,30 +0,0 @@
From e60dd702c247692529a7cece94a475650623482e Mon Sep 17 00:00:00 2001
From: Jonas Herzig <me@johni0702.de>
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

View File

@@ -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

View File

@@ -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 {

View File

@@ -1,30 +0,0 @@
From 34446d49be65c3a17e962c2e4053ed3e41aa2ab4 Mon Sep 17 00:00:00 2001
From: Jonas Herzig <me@johni0702.de>
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

View File

@@ -1,28 +0,0 @@
From 07de60f9e430063f398bcc86e15397afb8a00413 Mon Sep 17 00:00:00 2001
From: Jonas Herzig <me@johni0702.de>
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

View File

@@ -1,30 +0,0 @@
From 66c234d97042d31771df1c3633e1c7cb662e4882 Mon Sep 17 00:00:00 2001
From: Jonas Herzig <me@johni0702.de>
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

View File

@@ -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'

View File

@@ -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

View File

@@ -1,30 +0,0 @@
From 0b256e84ff52a8a83b629cdfd404b4d28d0d8450 Mon Sep 17 00:00:00 2001
From: Jonas Herzig <me@johni0702.de>
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

View File

@@ -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/**'
}

View File

@@ -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 "$@"