Replace reprod patched mixin with upstream + gradle task for fixing refmap
This commit is contained in:
@@ -1,37 +0,0 @@
|
||||
From a1b7d25752424f267f5e9d299babc0403dbf7752 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Herzig <me@johni0702.de>
|
||||
Date: Tue, 8 Aug 2017 19:44:44 +0200
|
||||
Subject: [PATCH] Add build.gradle
|
||||
|
||||
---
|
||||
build.gradle | 23 +++++++++++++++++++++++
|
||||
1 file changed, 23 insertions(+)
|
||||
create mode 100644 build.gradle
|
||||
|
||||
diff --git a/build.gradle b/build.gradle
|
||||
new file mode 100644
|
||||
index 0000000..22fa679
|
||||
--- /dev/null
|
||||
+++ b/build.gradle
|
||||
@@ -0,0 +1,18 @@
|
||||
+apply plugin: 'java'
|
||||
+
|
||||
+sourceCompatibility = 1.8
|
||||
+
|
||||
+sourceSets {
|
||||
+ main {
|
||||
+ java {
|
||||
+ srcDirs = ['src']
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+jar {
|
||||
+ manifest {
|
||||
+ attributes 'Main-Class': 'org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler'
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
--
|
||||
2.5.5
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
From c245b961e83176a1731a7eaf1f1f3ffbefa1afb7 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Herzig <me@johni0702.de>
|
||||
Date: Tue, 8 Aug 2017 19:08:56 +0200
|
||||
Subject: [PATCH 2/7] Remove/replace all buildscript dependencies
|
||||
|
||||
---
|
||||
build.gradle | 24 +-----------------------
|
||||
1 file changed, 1 insertion(+), 23 deletions(-)
|
||||
|
||||
diff --git a/build.gradle b/build.gradle
|
||||
index e0c46ea..165dbe4 100644
|
||||
--- a/build.gradle
|
||||
+++ b/build.gradle
|
||||
@@ -5,13 +5,11 @@
|
||||
}
|
||||
dependencies {
|
||||
- classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0'
|
||||
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
|
||||
}
|
||||
}
|
||||
|
||||
// Apply plugin
|
||||
apply plugin: 'java'
|
||||
-apply plugin: 'license'
|
||||
apply plugin: 'checkstyle'
|
||||
apply plugin: 'maven'
|
||||
apply plugin: 'eclipse'
|
||||
@@ -170,23 +165,6 @@ tasks.withType(AbstractArchiveTask) {
|
||||
from 'LICENSE.txt'
|
||||
}
|
||||
|
||||
-// License header formatting
|
||||
-license {
|
||||
- ext {
|
||||
- name = project.name
|
||||
- organization = project.organization
|
||||
- url = project.url
|
||||
- }
|
||||
- include '**/*.java'
|
||||
- header file("HEADER.txt")
|
||||
- sourceSets = project.sourceSets
|
||||
- ignoreFailures false
|
||||
- strictCheck true
|
||||
- mapping {
|
||||
- java = 'SLASHSTAR_STYLE'
|
||||
- }
|
||||
-}
|
||||
-
|
||||
checkstyle {
|
||||
configProperties = [
|
||||
"name" : project.name,
|
||||
--
|
||||
2.5.5
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
From 0f250141ba6515dbeffeb0722bf29976850bb323 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Herzig <me@johni0702.de>
|
||||
Date: Tue, 8 Aug 2017 19:13:17 +0200
|
||||
Subject: [PATCH 3/7] Fix for Gradle 3
|
||||
|
||||
---
|
||||
build.gradle | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/build.gradle b/build.gradle
|
||||
index 165dbe4..0f189ec 100644
|
||||
--- a/build.gradle
|
||||
+++ b/build.gradle
|
||||
@@ -92,7 +92,7 @@ dependencies {
|
||||
|
||||
// Task to read ASM library and rename packages
|
||||
task renamedASM {
|
||||
- outputs.file files(configurations.asm.files.withIndex().collect { file, i -> def dep = configurations.asm.dependencies[i]
|
||||
+ outputs.files files(configurations.asm.files.withIndex().collect { file, i -> def dep = configurations.asm.dependencies[i]
|
||||
new File(new File(renamedPackageRoot, "org/spongepowered/mixin-" + dep.name + "/" + dep.version), "mixin-" + file.name).path
|
||||
})
|
||||
ant {
|
||||
--
|
||||
2.5.5
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
From eb4fa04cf82067b20caa7222c154f8b6f7ab95ac Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Herzig <me@johni0702.de>
|
||||
Date: Tue, 8 Aug 2017 19:13:45 +0200
|
||||
Subject: [PATCH 4/7] Disable checkstyle
|
||||
|
||||
---
|
||||
build.gradle | 12 ------------
|
||||
1 file changed, 12 deletions(-)
|
||||
|
||||
diff --git a/build.gradle b/build.gradle
|
||||
index 0f189ec..f8598a3 100644
|
||||
--- a/build.gradle
|
||||
+++ b/build.gradle
|
||||
@@ -7,7 +7,6 @@ buildscript {
|
||||
|
||||
// Apply plugin
|
||||
apply plugin: 'java'
|
||||
-apply plugin: 'checkstyle'
|
||||
apply plugin: 'maven'
|
||||
apply plugin: 'eclipse'
|
||||
apply plugin: 'idea'
|
||||
@@ -165,17 +164,6 @@ tasks.withType(AbstractArchiveTask) {
|
||||
from 'LICENSE.txt'
|
||||
}
|
||||
|
||||
-checkstyle {
|
||||
- configProperties = [
|
||||
- "name" : project.name,
|
||||
- "organization": project.organization,
|
||||
- "url" : project.url,
|
||||
- "year" : project.inceptionYear
|
||||
- ]
|
||||
- configFile = file("checkstyle.xml")
|
||||
- toolVersion = '6.19'
|
||||
-}
|
||||
-
|
||||
// Source compiler configuration
|
||||
tasks.withType(JavaCompile) {
|
||||
options.compilerArgs += ['-Xlint:all', '-Xlint:-path']
|
||||
--
|
||||
2.5.5
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
From c66ba83e4b27f6f094c2dcdaaac095d3ca69b41c Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Herzig <me@johni0702.de>
|
||||
Date: Tue, 8 Aug 2017 19:35:08 +0200
|
||||
Subject: [PATCH 5/7] Replace fernflower SNAPSHOT depencency
|
||||
|
||||
---
|
||||
build.gradle | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/build.gradle b/build.gradle
|
||||
index f8598a3..e9a965b 100644
|
||||
--- a/build.gradle
|
||||
+++ b/build.gradle
|
||||
@@ -143,7 +143,7 @@ dependencies {
|
||||
|
||||
// Fernflower decompiler
|
||||
fernflowerCompile configurations.compile
|
||||
- fernflowerCompile 'org.jetbrains.java.decompiler:fernflower:sponge-SNAPSHOT'
|
||||
+ fernflowerCompile 'reprod:fernflower:0'
|
||||
|
||||
// LegacyLauncher service
|
||||
launchwrapperCompile configurations.compile
|
||||
--
|
||||
2.5.5
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
From 6422d5985faeff394237a499e5529b765dd46b7e Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Herzig <me@johni0702.de>
|
||||
Date: Tue, 8 Aug 2017 21:40:59 +0200
|
||||
Subject: [PATCH 6/7] Use TreeMap in ReferenceMapper for reproducibility
|
||||
|
||||
---
|
||||
.../java/org/spongepowered/asm/mixin/refmap/ReferenceMapper.java | 9 ++++-----
|
||||
1 file changed, 4 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/main/java/org/spongepowered/asm/mixin/refmap/ReferenceMapper.java b/src/main/java/org/spongepowered/asm/mixin/refmap/ReferenceMapper.java
|
||||
index 2a368e7..082b5dd 100644
|
||||
--- a/src/main/java/org/spongepowered/asm/mixin/refmap/ReferenceMapper.java
|
||||
+++ b/src/main/java/org/spongepowered/asm/mixin/refmap/ReferenceMapper.java
|
||||
@@ -29,7 +29,6 @@ import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.io.Serializable;
|
||||
-import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
@@ -71,13 +70,13 @@ public final class ReferenceMapper implements Serializable {
|
||||
* by the AP. Each entry is keyed by the owning mixin, with the value map
|
||||
* containing the actual remappings for each owner
|
||||
*/
|
||||
- private final Map<String, Map<String, String>> mappings = Maps.newHashMap();
|
||||
+ private final Map<String, Map<String, String>> mappings = Maps.newTreeMap();
|
||||
|
||||
/**
|
||||
* All mapping sets, keyed by environment type, eg. "notch", "searge". The
|
||||
* format of each map within this map is the same as for {@link #mappings}
|
||||
*/
|
||||
- private final Map<String, Map<String, Map<String, String>>> data = Maps.newHashMap();
|
||||
+ private final Map<String, Map<String, Map<String, String>>> data = Maps.newTreeMap();
|
||||
|
||||
/**
|
||||
* True if this refmap cannot be written. Only true for the
|
||||
@@ -191,13 +190,13 @@ public final class ReferenceMapper implements Serializable {
|
||||
if (context != null) {
|
||||
mappings = this.data.get(context);
|
||||
if (mappings == null) {
|
||||
- mappings = Maps.newHashMap();
|
||||
+ mappings = Maps.newTreeMap();
|
||||
this.data.put(context, mappings);
|
||||
}
|
||||
}
|
||||
Map<String, String> classMappings = mappings.get(className);
|
||||
if (classMappings == null) {
|
||||
- classMappings = new HashMap<String, String>();
|
||||
+ classMappings = Maps.newTreeMap();
|
||||
mappings.put(className, classMappings);
|
||||
}
|
||||
return classMappings.put(reference, newReference);
|
||||
--
|
||||
2.5.5
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
From c3d6d12f47bae3c12c597e59d9a69989fdaa9550 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Herzig <me@johni0702.de>
|
||||
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
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
From 9e4e7ac3f8ee5508939cf71e731189e4c0e1c7b5 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Herzig <me@johni0702.de>
|
||||
Date: Tue, 8 Aug 2017 20:06:39 +0200
|
||||
Subject: [PATCH 2/5] Replace mixin dep with manually built one
|
||||
|
||||
---
|
||||
build.gradle | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/build.gradle b/build.gradle
|
||||
index 42d0607..bfa3914 100755
|
||||
--- a/build.gradle
|
||||
+++ b/build.gradle
|
||||
@@ -44,7 +44,7 @@ configurations {
|
||||
dependencies {
|
||||
compile 'org.projectlombok:lombok:1.16.4'
|
||||
|
||||
- compile 'org.spongepowered:mixin:0.7.5-SNAPSHOT'
|
||||
+ compile 'reprod:mixin:0'
|
||||
shade 'com.googlecode.mp4parser:isoparser:1.1.7'
|
||||
shade 'org.apache.commons:commons-exec:1.3'
|
||||
shade 'com.google.apis:google-api-services-youtube:v3-rev178-1.22.0'
|
||||
--
|
||||
2.5.5
|
||||
|
||||
@@ -102,9 +102,6 @@ java -Dproxywitness.httpUris=http://export.mcpbot.bspk.rs/versions.json -jar dep
|
||||
proxy_pid=$!
|
||||
trap "kill $proxy_pid" EXIT
|
||||
|
||||
# Required for mixin
|
||||
setup_dep "fernflower" "https://github.com/fesh0r/fernflower.git" "adbf29f8ce902cd164fc0c41491030268ecc8265" "build/libs/fernflower.jar" "d2042d3121118a7175fc902d0e49f4ad37d00467e7ea535574974142eff64184" "901b8a76ceb15db97d4dd19c5e8fcb0fc226ae602ef38ea906eb5258be9b929a"
|
||||
|
||||
# Required for forgegradle
|
||||
setup_dep "forgeflower" "https://github.com/MinecraftForge/ForgeFlower.git" "41d2b9e00556bc735a2ee4181db7f30db0805816" "ForgeFlower/build/libs/forgeflower-1.0.342-SNAPSHOT.jar" "652d00f6c890c45b56dace444c3e9a7f81b56f510633f183a1fcc50681ba85b9" "79bca0778c764371c62aa9a9496c9fb04b3d8a0ff18047b8e6ef178d3d1ac600"
|
||||
setup_dep "mcinjector" "https://github.com/ModCoderPack/MCInjector.git" "7258466461baf7dc4f313b06b0d589407e4e1fba" "build/libs/mcinjector-3.4-SNAPSHOT.jar" "98b685ea0d3ae9fad8b8a7e7b885512f7fe0b61becf27d9c74b91a626d107efc" "3c08655c11e6509bfc62ff87d0770cefa0ecbd8dccece9e083c9b7b89779a8c5"
|
||||
@@ -113,7 +110,6 @@ setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "ea4ea
|
||||
# Required for RM
|
||||
setup_dep "mixingradle" "https://github.com/SpongePowered/MixinGradle.git" "52217aa8ca221dcd0b9fb657b037e663db808f38" "build/libs/mixingradle-0.4-SNAPSHOT.jar" "8b3508867128a5d564631635dff898a36f9aca8db54b7bb3af6f4924e3f4bead" "42cbf81136d4e26c06d3234427665b50d18768cc1f210512204ca1d5e3a42b5c"
|
||||
setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "f49079dd11c037f74cc740285b2c5504fbf8a7f6" "build/libs/ForgeGradle-2.3-SNAPSHOT.jar" "8272cf68ae269c315969e3e94a41bdffe1cf96cfbc6d701cafda90ab19ef5f94" "9261c0855a19d86434c6f9e784265d91e3e3c9f12b29dd90f41efacd15add41e"
|
||||
setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "404f5da0b6b18980b4e44c7f1cfeddcd47fe4aa6" "build/libs/mixin-0.7.5-SNAPSHOT.jar" "7d181a5e7c317c00c07da14e7770e4356b0f201414cd2a836e987be9fa133d43" "11000383a5051f25a70c2bff3a3167b6859ae4f9838a0ab45560e9f9c9d9def7"
|
||||
|
||||
rm -rf tmp
|
||||
mkdir tmp
|
||||
|
||||
@@ -42,6 +42,8 @@ configurations {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// Note: All but the latest version of mixin SNAPSHOTs are practically release versions, so we use them as such
|
||||
// Do NOT update to the latest version (always only one before that one; should be the one listed in their README)
|
||||
compile 'org.spongepowered:mixin:0.7.5-SNAPSHOT'
|
||||
shade 'com.googlecode.mp4parser:isoparser:1.1.7'
|
||||
shade 'org.apache.commons:commons-exec:1.3'
|
||||
@@ -215,7 +217,30 @@ setupDecompWorkspace.dependsOn copySrg
|
||||
setupDevWorkspace.dependsOn copySrg
|
||||
project.tasks.idea.dependsOn copySrg
|
||||
|
||||
|
||||
// Mixin uses multiple HashMaps to generate the refmap.
|
||||
// HashMaps are unordered collections and as such do not produce deterministic output.
|
||||
// To fix that, we simply sort the refmap json file.
|
||||
import groovy.json.JsonSlurper
|
||||
import groovy.json.JsonOutput
|
||||
compileJava.doLast {
|
||||
File refmapFile = compileJava.ext.refMapFile
|
||||
if (refmapFile.exists()) {
|
||||
def ordered
|
||||
ordered = {
|
||||
if (it instanceof Map) {
|
||||
def sorted = new TreeMap(it)
|
||||
sorted.replaceAll { k, v -> ordered(v) }
|
||||
sorted
|
||||
} else if (it instanceof List) {
|
||||
it.replaceAll { v -> ordered(v) }
|
||||
} else {
|
||||
it
|
||||
}
|
||||
}
|
||||
def json = JsonOutput.toJson(ordered(new JsonSlurper().parse(refmapFile)))
|
||||
refmapFile.withWriter { it.write json }
|
||||
}
|
||||
}
|
||||
|
||||
import java.util.zip.ZipEntry
|
||||
import java.util.zip.ZipFile
|
||||
|
||||
Reference in New Issue
Block a user