From 6a7147b4015023d447cdb5ac3b793be0c7146ae3 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Wed, 23 Aug 2017 20:23:04 +0200 Subject: [PATCH 01/53] Use ReplayInputStream to support loading older replays on newer MC --- ReplayStudio | 2 +- .../com/replaymod/replay/ReplaySender.java | 61 +++++++++++++------ 2 files changed, 43 insertions(+), 20 deletions(-) diff --git a/ReplayStudio b/ReplayStudio index 44109f11..f627aac8 160000 --- a/ReplayStudio +++ b/ReplayStudio @@ -1 +1 @@ -Subproject commit 44109f11b157e29615489e83ee5df742b4fb4305 +Subproject commit f627aac83067799d18715fe8db8e9836c4fb2045 diff --git a/src/main/java/com/replaymod/replay/ReplaySender.java b/src/main/java/com/replaymod/replay/ReplaySender.java index fc41cf77..87b285a2 100755 --- a/src/main/java/com/replaymod/replay/ReplaySender.java +++ b/src/main/java/com/replaymod/replay/ReplaySender.java @@ -5,8 +5,12 @@ import com.google.common.io.Files; import com.google.common.util.concurrent.ListenableFutureTask; import com.replaymod.core.utils.Restrictions; import com.replaymod.replay.camera.CameraEntity; +import com.replaymod.replaystudio.io.ReplayInputStream; +import com.replaymod.replaystudio.io.ReplayOutputStream; import com.replaymod.replaystudio.replay.ReplayFile; +import com.replaymod.replaystudio.studio.ReplayStudio; import io.netty.buffer.ByteBuf; +import io.netty.buffer.ByteBufOutputStream; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandler.Sharable; import io.netty.channel.ChannelHandlerContext; @@ -103,10 +107,10 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { protected ChannelHandlerContext ctx; /** - * The data input stream from which new packets are read. + * The replay input stream from which new packets are read. * When accessing this stream make sure to synchronize on {@code this} as it's used from multiple threads. */ - protected DataInputStream dis; + protected ReplayInputStream replayIn; /** * The next packet that should be sent. @@ -546,8 +550,8 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { REPLAY_LOOP: while (!terminate) { synchronized (ReplaySender.this) { - if (dis == null) { - dis = new DataInputStream(replayFile.getPacketData()); + if (replayIn == null) { + replayIn = replayFile.getPacketData(); } // Packet loop while (true) { @@ -574,7 +578,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { // Read the next packet if we don't already have one if (nextPacket == null) { - nextPacket = new PacketData(dis); + nextPacket = new PacketData(replayIn); } int nextTimeStamp = nextPacket.timestamp; @@ -631,9 +635,9 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { nextPacket = null; lastPacketSent = System.currentTimeMillis(); replayHandler.restartedReplay(); - if (dis != null) { - dis.close(); - dis = null; + if (replayIn != null) { + replayIn.close(); + replayIn = null; } } } @@ -722,17 +726,17 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { if (timestamp < lastTimeStamp) { // Restart the replay if we need to go backwards in time hasWorldLoaded = false; lastTimeStamp = 0; - if (dis != null) { - dis.close(); - dis = null; + if (replayIn != null) { + replayIn.close(); + replayIn = null; } startFromBeginning = false; nextPacket = null; replayHandler.restartedReplay(); } - if (dis == null) { - dis = new DataInputStream(replayFile.getPacketData()); + if (replayIn == null) { + replayIn = replayFile.getPacketData(); } while (true) { // Send packets @@ -744,7 +748,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { nextPacket = null; } else { // Otherwise read one from the input stream - pd = new PacketData(dis); + pd = new PacketData(replayIn); } int nextTimeStamp = pd.timestamp; @@ -759,7 +763,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { } catch (EOFException eof) { // Shit! We hit the end before finishing our job! What shall we do now? // well, let's just pretend we're done... - dis = null; + replayIn = null; break; } catch (IOException e) { e.printStackTrace(); @@ -842,13 +846,32 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { } private static final class PacketData { + private static final ByteBuf byteBuf = Unpooled.buffer(); + private static final ByteBufOutputStream byteBufOut = new ByteBufOutputStream(byteBuf); + private static final ReplayOutputStream encoder = new ReplayOutputStream(new ReplayStudio(), byteBufOut); private final int timestamp; private final byte[] bytes; - public PacketData(DataInputStream in) throws IOException { - timestamp = in.readInt(); - bytes = new byte[in.readInt()]; - in.readFully(bytes); + public PacketData(ReplayInputStream in) throws IOException { + com.replaymod.replaystudio.PacketData data = in.readPacket(); + timestamp = (int) data.getTime(); + // We need to re-encode MCProtocolLib packets, so we can later decode them as NMS packets + // The main reason we aren't reading them as NMS packets is that we want ReplayStudio to be able + // to apply ViaVersion (and potentially other magic) to it. + synchronized (encoder) { + byteBuf.markReaderIndex(); // Mark the current reader and writer index (should be at start) + byteBuf.markWriterIndex(); + + encoder.write(data); // Re-encode packet, data will end up in byteBuf + encoder.flush(); + + byteBuf.skipBytes(8); // Skip packet length & timestamp + bytes = new byte[byteBuf.readableBytes()]; // Create bytes array of sufficient size + byteBuf.readBytes(bytes); // Read all data into bytes + + byteBuf.resetReaderIndex(); // Reset reader & writer index for next use + byteBuf.resetWriterIndex(); + } } } } From ebbe363954c92e4b4a69b67a5cf7b738145a8f07 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 8 Aug 2017 20:30:42 +0200 Subject: [PATCH 02/53] Allow for reproducible builds REPRODUCIBLE_BUILD=1 ./gradlew clean :build --- .gitignore | Bin 2495 -> 2534 bytes build.gradle | 4 +- .../fernflower/0001-Add-build.gradle.patch | 42 +++++ ...radle-to-build-reproducible-archives.patch | 28 +++ ...Manually-force-reproducible-archives.patch | 53 ++++++ ...-Remove-all-buildscript-dependencies.patch | 161 ++++++++++++++++++ ...ings-because-we-don-t-include-deps-a.patch | 57 +++++++ .../forgegradle/0005-Add-witness-plugin.patch | 90 ++++++++++ ...radle-to-build-reproducible-archives.patch | 25 +++ ...radle-to-build-reproducible-archives.patch | 28 +++ ...replace-all-buildscript-dependencies.patch | 59 +++++++ .../patches/mixin/0003-Fix-for-Gradle-3.patch | 25 +++ .../mixin/0004-Disable-checkstyle.patch | 42 +++++ ...place-fernflower-SNAPSHOT-depencency.patch | 27 +++ ...-ReferenceMapper-for-reproducibility.patch | 56 ++++++ .../mixin/0007-Add-witness-plugin.patch | 71 ++++++++ ...radle-to-build-reproducible-archives.patch | 28 +++ ...-Remove-all-buildscript-dependencies.patch | 125 ++++++++++++++ .../mixingradle/0003-Add-witness-plugin.patch | 44 +++++ ...ipt-dependencies-with-manually-built.patch | 43 +++++ ...ce-mixin-dep-with-manually-built-one.patch | 27 +++ .../replaymod/0003-Add-witness-plugin.patch | 41 +++++ ...004-Add-checksums-for-witness-plugin.patch | 109 ++++++++++++ ...radle-to-build-reproducible-archives.patch | 28 +++ ...radle-to-build-reproducible-archives.patch | 28 +++ ...-non-essential-parts-of-build.gradle.patch | 117 +++++++++++++ .../shadow/0003-Add-witness-plugin.patch | 49 ++++++ .../shadow/0004-Manually-shade-deps.patch | 54 ++++++ gradle/reprod/setup.sh | 77 +++++++++ gradle/wrapper/gradle-wrapper.jar | Bin 51017 -> 53638 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- gradlew | 16 +- gradlew.bat | 2 +- settings.gradle | 6 +- 34 files changed, 1553 insertions(+), 13 deletions(-) create mode 100644 gradle/reprod/patches/fernflower/0001-Add-build.gradle.patch create mode 100644 gradle/reprod/patches/forgegradle/0001-Configure-gradle-to-build-reproducible-archives.patch create mode 100644 gradle/reprod/patches/forgegradle/0002-Manually-force-reproducible-archives.patch create mode 100644 gradle/reprod/patches/forgegradle/0003-Remove-all-buildscript-dependencies.patch create mode 100644 gradle/reprod/patches/forgegradle/0004-Shade-all-the-things-because-we-don-t-include-deps-a.patch create mode 100644 gradle/reprod/patches/forgegradle/0005-Add-witness-plugin.patch create mode 100644 gradle/reprod/patches/gradle-witness/0001-Configure-gradle-to-build-reproducible-archives.patch create mode 100644 gradle/reprod/patches/mixin/0001-Configure-gradle-to-build-reproducible-archives.patch create mode 100644 gradle/reprod/patches/mixin/0002-Remove-replace-all-buildscript-dependencies.patch create mode 100644 gradle/reprod/patches/mixin/0003-Fix-for-Gradle-3.patch create mode 100644 gradle/reprod/patches/mixin/0004-Disable-checkstyle.patch create mode 100644 gradle/reprod/patches/mixin/0005-Replace-fernflower-SNAPSHOT-depencency.patch create mode 100644 gradle/reprod/patches/mixin/0006-Use-TreeMap-in-ReferenceMapper-for-reproducibility.patch create mode 100644 gradle/reprod/patches/mixin/0007-Add-witness-plugin.patch create mode 100644 gradle/reprod/patches/mixingradle/0001-Configure-gradle-to-build-reproducible-archives.patch create mode 100644 gradle/reprod/patches/mixingradle/0002-Remove-all-buildscript-dependencies.patch create mode 100644 gradle/reprod/patches/mixingradle/0003-Add-witness-plugin.patch create mode 100644 gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch create mode 100644 gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch create mode 100644 gradle/reprod/patches/replaymod/0003-Add-witness-plugin.patch create mode 100644 gradle/reprod/patches/replaymod/0004-Add-checksums-for-witness-plugin.patch create mode 100644 gradle/reprod/patches/replaymod/0005-Configure-gradle-to-build-reproducible-archives.patch create mode 100644 gradle/reprod/patches/shadow/0001-Configure-gradle-to-build-reproducible-archives.patch create mode 100644 gradle/reprod/patches/shadow/0002-Remove-non-essential-parts-of-build.gradle.patch create mode 100644 gradle/reprod/patches/shadow/0003-Add-witness-plugin.patch create mode 100644 gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch create mode 100755 gradle/reprod/setup.sh diff --git a/.gitignore b/.gitignore index a3093a918c0868e992cc755ac4d8ddcbd4083041..dfe6d6db9b8eba1c42d62377357ad8af64bc447d 100644 GIT binary patch delta 48 rcmdll{7hIay(lpyCsn^FwV)_JMZYAsfD2V5CAFZKi)+JvPDU;Ozt|B% delta 8 PcmaDRykB^u+I~&|5mN(e diff --git a/build.gradle b/build.gradle index 3ff6b6ed..39d5dd26 100755 --- a/build.gradle +++ b/build.gradle @@ -109,7 +109,7 @@ jar { exclude { new File(file('jGui/src/main/resources'), it.relativePath.pathString).exists() } eachFile { if (getName() == 'LICENSE.txt') { - setName(getFile().getParentFile().getName().split('-')[0] + '-LICENSE.txt') + setName(getFile().getParentFile().getName().split('.jar_')[0] + '-LICENSE.txt') } } } @@ -165,7 +165,7 @@ sourceSets { resources { srcDir 'jGui/src/main/resources' } - refMap = "mixins.replaymod.refmap.json" + ext.refMap = "mixins.replaymod.refmap.json" } integrationTest { compileClasspath += main.runtimeClasspath + main.output diff --git a/gradle/reprod/patches/fernflower/0001-Add-build.gradle.patch b/gradle/reprod/patches/fernflower/0001-Add-build.gradle.patch new file mode 100644 index 00000000..3eeb1920 --- /dev/null +++ b/gradle/reprod/patches/fernflower/0001-Add-build.gradle.patch @@ -0,0 +1,42 @@ +From a1b7d25752424f267f5e9d299babc0403dbf7752 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +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,23 @@ ++apply plugin: 'java' ++ ++sourceCompatibility = 1.8 ++ ++sourceSets { ++ main { ++ java { ++ srcDirs = ['src'] ++ } ++ } ++} ++ ++jar { ++ manifest { ++ attributes 'Main-Class': 'org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler' ++ } ++} ++ ++tasks.withType(AbstractArchiveTask) { ++ preserveFileTimestamps = false ++ reproducibleFileOrder = true ++} ++ +-- +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 new file mode 100644 index 00000000..ede5d050 --- /dev/null +++ b/gradle/reprod/patches/forgegradle/0001-Configure-gradle-to-build-reproducible-archives.patch @@ -0,0 +1,28 @@ +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,11 @@ jar { + } + } + ++tasks.withType(AbstractArchiveTask) { ++ preserveFileTimestamps = false ++ reproducibleFileOrder = true ++} ++ + 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 new file mode 100644 index 00000000..3d104f7d --- /dev/null +++ b/gradle/reprod/patches/forgegradle/0002-Manually-force-reproducible-archives.patch @@ -0,0 +1,53 @@ +From 2f3f4c59239b66e4ce09d2bbef39d7ce4eda44e9 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Mon, 7 Aug 2017 19:53:46 +0200 +Subject: [PATCH 2/5] Manually force reproducible archives + +For some reason shading one of the libs isn't done in an +reproducible way (produces different jar whenever jar task is run). +--- + build.gradle | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/build.gradle b/build.gradle +index 468733e..91ea99a 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -122,6 +122,10 @@ processResources { + } + } + ++import java.util.jar.JarEntry ++import java.util.jar.JarFile ++import java.util.jar.JarOutputStream ++ + jar { + + configurations.shade.each { dep -> +@@ -136,6 +140,23 @@ jar { + attributes 'group':project.group + attributes 'Implementation-Version': project.version + getGitHash() + } ++ ++ // For some reason using gradle's reproducibleFileOrder and preserveFileTimestamps just isn't enough ++ doLast { ++ File newFile = new File(archivePath.parent, 'tmp-' + archiveName) ++ newFile.withOutputStream { fout -> ++ JarOutputStream out = new JarOutputStream(fout) ++ JarFile jf = new JarFile(archivePath) ++ jf.entries().unique {it.name}.sort {it.name}.each { ++ def copy = new JarEntry(it.name) ++ copy.time = 0 ++ out.putNextEntry(copy) ++ out << jf.getInputStream(it) ++ } ++ out.finish() ++ } ++ newFile.renameTo archivePath ++ } + } + + tasks.withType(AbstractArchiveTask) { +-- +2.5.5 + diff --git a/gradle/reprod/patches/forgegradle/0003-Remove-all-buildscript-dependencies.patch b/gradle/reprod/patches/forgegradle/0003-Remove-all-buildscript-dependencies.patch new file mode 100644 index 00000000..65920ac7 --- /dev/null +++ b/gradle/reprod/patches/forgegradle/0003-Remove-all-buildscript-dependencies.patch @@ -0,0 +1,161 @@ +From a4a52f38bd660caa61531ebecd2d11f764eb3691 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Mon, 7 Aug 2017 19:52:46 +0200 +Subject: [PATCH 3/5] Remove all buildscript dependencies + +--- + build.gradle | 130 ----------------------------------------------------------- + 1 file changed, 130 deletions(-) + +diff --git a/build.gradle b/build.gradle +index 91ea99a..8959f8f 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -1,21 +1,7 @@ +-buildscript { +- repositories { +- maven { +- url "https://plugins.gradle.org/m2/" +- } +- } +- dependencies { +- classpath "com.gradle.publish:plugin-publish-plugin:0.9.1" +- classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0' +- } +-} +- + apply plugin: 'java' + apply plugin: 'idea' + apply plugin: 'eclipse' + apply plugin: 'maven' +-apply plugin: "com.gradle.plugin-publish" +-apply plugin: 'license' + + group = 'net.minecraftforge.gradle' + version = '2.3-SNAPSHOT' +@@ -188,122 +174,6 @@ test { + exclude "**/ExtensionMcpMappingTest*" + } + +-license { +- ext { +- description = 'A Gradle plugin for the creation of Minecraft mods and MinecraftForge plugins.' +- year = '2013' +- fullname = 'Minecraft Forge' +- } +- header rootProject.file('HEADER') +- include '**net/minecraftforge/gradle/**/*.java' +- excludes ([ +- '**net/minecraftforge/gradle/util/ZipFileTree.java', +- '**net/minecraftforge/gradle/util/json/version/*', +- '**net/minecraftforge/gradle/util/patching/Base64.java', +- '**net/minecraftforge/gradle/util/patching/ContextualPatch.java' +- ]) +- ignoreFailures false +- strictCheck true +- mapping { +- java = 'SLASHSTAR_STYLE' +- } +-} +- +-pluginBundle { +- website = 'http://www.gradle.org/' +- vcsUrl = 'https://github.com/MinecraftForge/ForgeGradle' +- description = 'Gradle plugin for all Minecraft mod development needs' +- tags = ['forge', 'minecraft', 'minecraftforge', 'sponge', 'mcp'] +- +- plugins { +- patcher { +- id = 'net.minecraftforge.gradle.patcher' +- displayName = 'Minicraft Patcher Plugin' +- } +- tweakerClient { +- id = 'net.minecraftforge.gradle.tweaker-client' +- displayName = 'Mincraft Client Tweaker Plugin' +- } +- tweakerServer { +- id = 'net.minecraftforge.gradle.tweaker-server' +- displayName = 'Mincraft Server Tweaker Plugin' +- } +- forge { +- id = 'net.minecraftforge.gradle.forge' +- displayName = 'MincraftForge Mod Development Plugin' +- } +- +- launch4j { +- id = 'net.minecraftforge.gradle.launch4j' +- displayName = 'Specialized Launch4J Gradle Plugin' +- } +- } +-} +- +-uploadArchives { +- repositories.mavenDeployer { +- +- dependsOn 'build' +- +- if (project.hasProperty('forgeMavenPass')) +- { +- repository(url: "http://files.minecraftforge.net/maven/manage/upload") { +- authentication(userName: "forge", password: project.getProperty('forgeMavenPass')) +- } +- } +- else +- { +- // local repo folder. Might wanna juset use gradle install if you wanans end it to maven-local +- repository(url: 'file://localhost/' + project.file('repo').getAbsolutePath()) +- } +- +- +- pom { +- groupId = project.group +- version = project.version +- artifactId = project.archivesBaseName +- project { +- name project.archivesBaseName +- packaging 'jar' +- description 'Gradle plugin for Forge' +- url 'https://github.com/MinecraftForge/ForgeGradle' +- +- scm { +- url 'https://github.com/MinecraftForge/ForgeGradle' +- connection 'scm:git:git://github.com/MinecraftForge/ForgeGradle.git' +- developerConnection 'scm:git:git@github.com:MinecraftForge/ForgeGradle.git' +- } +- +- issueManagement { +- system 'github' +- url 'https://github.com/MinecraftForge/ForgeGradle/issues' +- } +- +- licenses { +- license { +- name 'Lesser GNU Public License, Version 2.1' +- url 'https://www.gnu.org/licenses/lgpl-2.1.html' +- distribution 'repo' +- } +- } +- +- developers { +- developer { +- id 'AbrarSyed' +- name 'Abrar Syed' +- roles { role 'developer' } +- } +- developer { +- id 'LexManos' +- name 'Lex Manos' +- roles { role 'developer' } +- } +- } +- } +- } +- } +-} +- + // write out version so its convenient for doc deployment + file('build').mkdirs() + file('build/version.txt').text = version; +-- +2.5.5 + diff --git a/gradle/reprod/patches/forgegradle/0004-Shade-all-the-things-because-we-don-t-include-deps-a.patch b/gradle/reprod/patches/forgegradle/0004-Shade-all-the-things-because-we-don-t-include-deps-a.patch new file mode 100644 index 00000000..5e0806d5 --- /dev/null +++ b/gradle/reprod/patches/forgegradle/0004-Shade-all-the-things-because-we-don-t-include-deps-a.patch @@ -0,0 +1,57 @@ +From 130d406cbe105303f9b14c342f02fc9a20782e32 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Mon, 7 Aug 2017 19:54:54 +0200 +Subject: [PATCH 4/5] Shade all the things (because we don't include deps as + maven deps) + +--- + build.gradle | 26 +++++++++++++------------- + 1 file changed, 13 insertions(+), 13 deletions(-) + +diff --git a/build.gradle b/build.gradle +index 8959f8f..0bf7941 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -48,26 +48,26 @@ dependencies { + compile gradleApi() + + // moved to the beginning to be the overrider +- compile 'org.ow2.asm:asm-debug-all:5.1' +- compile 'com.google.guava:guava:18.0' ++ shade 'org.ow2.asm:asm-debug-all:5.1' ++ shade 'com.google.guava:guava:18.0' + +- compile 'net.sf.opencsv:opencsv:2.3' // reading CSVs.. also used by SpecialSource +- compile 'com.cloudbees:diff4j:1.1' // for difing and patching +- compile 'com.github.abrarsyed.jastyle:jAstyle:1.3' // formatting +- compile 'net.sf.trove4j:trove4j:2.1.0' // because its awesome. ++ shade 'net.sf.opencsv:opencsv:2.3' // reading CSVs.. also used by SpecialSource ++ shade 'com.cloudbees:diff4j:1.1' // for difing and patching ++ shade 'com.github.abrarsyed.jastyle:jAstyle:1.3' // formatting ++ shade 'net.sf.trove4j:trove4j:2.1.0' // because its awesome. + +- compile 'com.github.jponge:lzma-java:1.3' // replaces the LZMA binary +- compile 'com.nothome:javaxdelta:2.0.1' // GDIFF implementation for BinPatches +- compile 'com.google.code.gson:gson:2.2.4' // Used instead of Argo for buuilding changelog. +- compile 'com.github.tony19:named-regexp:0.2.3' // 1.7 Named regexp features +- compile 'net.minecraftforge:forgeflower:1.0.342-SNAPSHOT' // Fernflower Forge edition ++ shade 'com.github.jponge:lzma-java:1.3' // replaces the LZMA binary ++ shade 'com.nothome:javaxdelta:2.0.1' // GDIFF implementation for BinPatches ++ shade 'com.google.code.gson:gson:2.2.4' // Used instead of Argo for buuilding changelog. ++ shade 'com.github.tony19:named-regexp:0.2.3' // 1.7 Named regexp features ++ shade 'net.minecraftforge:forgeflower:1.0.342-SNAPSHOT' // Fernflower Forge edition + + shade 'net.md-5:SpecialSource:1.7.4' // deobf and reobs + // compile 'net.md-5:SpecialSource:1.7.4' // when md5 publishes + + // because curse +- compile 'org.apache.httpcomponents:httpclient:4.3.3' +- compile 'org.apache.httpcomponents:httpmime:4.3.3' ++ shade 'org.apache.httpcomponents:httpclient:4.3.3' ++ shade 'org.apache.httpcomponents:httpmime:4.3.3' + + // mcp stuff + shade 'de.oceanlabs.mcp:RetroGuard:3.6.6' +-- +2.5.5 + diff --git a/gradle/reprod/patches/forgegradle/0005-Add-witness-plugin.patch b/gradle/reprod/patches/forgegradle/0005-Add-witness-plugin.patch new file mode 100644 index 00000000..d3f45939 --- /dev/null +++ b/gradle/reprod/patches/forgegradle/0005-Add-witness-plugin.patch @@ -0,0 +1,90 @@ +From ffd1f38113d2ec550ae23be13df35c678bea5543 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Mon, 7 Aug 2017 19:53:15 +0200 +Subject: [PATCH 5/5] Add witness plugin + +--- + build.gradle | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 59 insertions(+) + +diff --git a/build.gradle b/build.gradle +index 0bf7941..d1530fd 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -1,7 +1,14 @@ ++buildscript { ++ dependencies { ++ classpath files('../gradle-witness.jar') ++ } ++} ++ + apply plugin: 'java' + apply plugin: 'idea' + apply plugin: 'eclipse' + apply plugin: 'maven' ++apply plugin: 'witness' + + group = 'net.minecraftforge.gradle' + version = '2.3-SNAPSHOT' +@@ -81,6 +88,58 @@ dependencies { + testCompile 'junit:junit:4.12' + } + ++dependencyVerification { ++ includedConfigurations += [configurations.shade, configurations.testCompile] ++ verify = [ ++ 'org.ow2.asm:asm-debug-all:5.1:f7ac3f642c36c406543bb56ae3db3a53f263f71bd857b04709986e2d5798c8c4', ++ 'net.sf.opencsv:opencsv:2.3:dc0ba5bff6140dc92339973026a0ecbddc2a3b01bdd46ed9d16becc2f6d78de6', ++ 'com.cloudbees:diff4j:1.1:e6509db2167c983d254d3530c66a060443e91a6ca38df9fdc4ef2a88ad813fa5', ++ 'com.github.abrarsyed.jastyle:jAstyle:1.3:4cad4ee2f1c379fa1f6496912fe026d8a4f2febf0a140ff867206b00a22f988f', ++ 'net.sf.trove4j:trove4j:2.1.0:294fb88c272598b9a5dcae15f13d228e64134256de941fbc28917a994beeb075', ++ 'com.github.jponge:lzma-java:1.3:75ccc0e24d37ed5b8916e1bcffad1e067c2b1cfa21b635287f968db5c3c1963a', ++ 'com.nothome:javaxdelta:2.0.1:a661dfcb749053fc26eada2a0a8e619a8ead1ca9eda29e1698687aa2cdd80152', ++ 'com.google.code.gson:gson:2.2.4:c0328cd07ca9e363a5acd00c1cf4afe8cf554bd6d373834981ba05cebec687fb', ++ 'com.github.tony19:named-regexp:0.2.3:c6ebd74cd6108b8c372c95b842725ee5bd6d3303ba26cb00f18bc92f80b47956', ++ 'net.minecraftforge:forgeflower:1.0.342-SNAPSHOT:ad7e63b8732da2c10d5923cc567386b8f172848259c3c2627298e6cd702df938', ++ 'net.md-5:SpecialSource:1.7.4:b47c5d5810643426a3147ddb2195ef2ab67c80b167e7c2ac64a5d0dee8c030dd', ++ 'org.apache.httpcomponents:httpclient:4.3.3:9844cc9b5440d65a88d28bcba9d771374d2dfdab898848cda164611091633013', ++ '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', ++ 'org.jvnet.localizer:localizer:1.12:212f6eaa0491dd7359dc33c3a72e82a23b096e1890d984b4d92395abc9a6bf7f', ++ 'commons-io:commons-io:1.4:a7f713593007813bf07d19bd1df9f81c86c0719e9a0bb2ef1b98b78313fc940d', ++ 'trove:trove:1.0.2:ad68a86cfd0255a2bc0525ce11ec49640caea7e34ff91eb89c3193dcccd77f05', ++ 'net.sf.jopt-simple:jopt-simple:5.0.1:9f0c8d50fa4b79b6ff1502dbec8502179d6b9497cacbe17a13074001aed537ec', ++ 'org.apache.httpcomponents:httpcore:4.3.2:abd02320e2356f89d054dae4cf02306bef20a9cf7865b3ac94ec7552b4f1528b', ++ 'commons-logging:commons-logging:1.1.3:70903f6fc82e9908c8da9f20443f61d90f0870a312642991fe8462a0b9391784', ++ 'commons-codec:commons-codec:1.6:54b34e941b8e1414bd3e40d736efd3481772dc26db3296f6aa45cec9f6203d86', ++ 'org.eclipse.equinox:common:3.6.200-v20130402-1505:843414d0e457898b1615e4c9118f86ae0cf30dd5166b8b0a1d206fbdab5fbbae', ++ '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', ++ 'org.eclipse.equinox:org.eclipse.equinox.common:3.6.0:32b046de57df2f4887fc5a2c343740d9d12c7fe17541e2cede73cfa4ccbc2436', ++ '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', ++ 'org.eclipse.core:jobs:3.6.0-v20140424-0053:ef971ecb154fba0cc06d913448640fb2e5ab3f9079c1c7854385d1c30d81a94f', ++ 'org.eclipse.equinox:preferences:3.5.200-v20140224-1527:6498d32ab6503b49a44e0a0bfe1c2ac28ffb7e8f88acbdb4dda89d73092d8ca7', ++ 'org.eclipse.core:contenttype:3.4.200-v20140207-1251:4dd6ec1376693bd8ac4e2ceacc7be70880920978f3fef31db4968e6ade001c87', ++ 'org.eclipse.core:runtime:3.10.0-v20140318-2214:363ad8af4d8fc7f208b6fa640e490c7ba84b2aa78c26809e569bb1b0737ce9cb', ++ 'junit:junit:4.12:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a', ++ 'org.hamcrest:hamcrest-core:1.3:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9', ++ ] ++} ++ + task wrapper(type: Wrapper) { + gradleVersion = '2.14' + } +-- +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 new file mode 100644 index 00000000..3548dc79 --- /dev/null +++ b/gradle/reprod/patches/gradle-witness/0001-Configure-gradle-to-build-reproducible-archives.patch @@ -0,0 +1,25 @@ +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,8 @@ dependencies { + sourceCompatibility = '1.7' + targetCompatibility = '1.7' + ++tasks.withType(AbstractArchiveTask) { ++ preserveFileTimestamps = false ++ reproducibleFileOrder = true ++} ++ +-- +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 new file mode 100644 index 00000000..8ef12d23 --- /dev/null +++ b/gradle/reprod/patches/mixin/0001-Configure-gradle-to-build-reproducible-archives.patch @@ -0,0 +1,28 @@ +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,11 @@ processResources { + from 'LICENSE.txt' + } + ++tasks.withType(AbstractArchiveTask) { ++ preserveFileTimestamps = false ++ reproducibleFileOrder = true ++} ++ + // 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 new file mode 100644 index 00000000..bd7244d1 --- /dev/null +++ b/gradle/reprod/patches/mixin/0002-Remove-replace-all-buildscript-dependencies.patch @@ -0,0 +1,59 @@ +From c245b961e83176a1731a7eaf1f1f3ffbefa1afb7 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +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 +@@ -1,17 +1,12 @@ + // Gradle repositories and dependencies + buildscript { +- repositories { +- jcenter() +- } + dependencies { +- classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0' +- classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3' ++ classpath files('../shadow.jar') + } + } + + // Apply plugin + apply plugin: 'java' +-apply plugin: 'license' + apply plugin: 'checkstyle' + apply plugin: 'maven' + apply plugin: 'eclipse' +@@ -175,23 +170,6 @@ tasks.withType(AbstractArchiveTask) { + reproducibleFileOrder = true + } + +-// 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 + diff --git a/gradle/reprod/patches/mixin/0003-Fix-for-Gradle-3.patch b/gradle/reprod/patches/mixin/0003-Fix-for-Gradle-3.patch new file mode 100644 index 00000000..0c79a7ed --- /dev/null +++ b/gradle/reprod/patches/mixin/0003-Fix-for-Gradle-3.patch @@ -0,0 +1,25 @@ +From 0f250141ba6515dbeffeb0722bf29976850bb323 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +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.findAll{!it.name.contains("sources")}.collect { file -> ++ outputs.files files(configurations.asm.files.findAll{!it.name.contains("sources")}.collect { file -> + new File(project.repositories['renamed-packages'].dirs[0], "mixin-" + file.name).path + }) + doLast { +-- +2.5.5 + diff --git a/gradle/reprod/patches/mixin/0004-Disable-checkstyle.patch b/gradle/reprod/patches/mixin/0004-Disable-checkstyle.patch new file mode 100644 index 00000000..7bd3f932 --- /dev/null +++ b/gradle/reprod/patches/mixin/0004-Disable-checkstyle.patch @@ -0,0 +1,42 @@ +From eb4fa04cf82067b20caa7222c154f8b6f7ab95ac Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +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' +@@ -170,17 +169,6 @@ tasks.withType(AbstractArchiveTask) { + reproducibleFileOrder = true + } + +-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 + diff --git a/gradle/reprod/patches/mixin/0005-Replace-fernflower-SNAPSHOT-depencency.patch b/gradle/reprod/patches/mixin/0005-Replace-fernflower-SNAPSHOT-depencency.patch new file mode 100644 index 00000000..c78662d2 --- /dev/null +++ b/gradle/reprod/patches/mixin/0005-Replace-fernflower-SNAPSHOT-depencency.patch @@ -0,0 +1,27 @@ +From c66ba83e4b27f6f094c2dcdaaac095d3ca69b41c Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +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,8 +143,8 @@ dependencies { + fernflowerCompile 'commons-io:commons-io:2.4' + fernflowerCompile 'org.apache.logging.log4j:log4j-core:2.0-beta9' + fernflowerCompile 'com.google.guava:guava:17.0' +- fernflowerCompile 'org.jetbrains.java.decompiler:fernflower:sponge-SNAPSHOT' +- compile 'org.jetbrains.java.decompiler:fernflower:sponge-SNAPSHOT' ++ fernflowerCompile files('../fernflower.jar') ++ compile files('../fernflower.jar') + + compile('net.minecraft:launchwrapper:1.11') { + exclude module: 'lwjgl' +-- +2.5.5 + diff --git a/gradle/reprod/patches/mixin/0006-Use-TreeMap-in-ReferenceMapper-for-reproducibility.patch b/gradle/reprod/patches/mixin/0006-Use-TreeMap-in-ReferenceMapper-for-reproducibility.patch new file mode 100644 index 00000000..07bbca64 --- /dev/null +++ b/gradle/reprod/patches/mixin/0006-Use-TreeMap-in-ReferenceMapper-for-reproducibility.patch @@ -0,0 +1,56 @@ +From 6422d5985faeff394237a499e5529b765dd46b7e Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +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.logging.log4j.LogManager; +@@ -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> mappings = Maps.newHashMap(); ++ private final Map> 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>> data = Maps.newHashMap(); ++ private final Map>> 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 classMappings = mappings.get(className); + if (classMappings == null) { +- classMappings = new HashMap(); ++ classMappings = Maps.newTreeMap(); + mappings.put(className, classMappings); + } + return classMappings.put(reference, newReference); +-- +2.5.5 + diff --git a/gradle/reprod/patches/mixin/0007-Add-witness-plugin.patch b/gradle/reprod/patches/mixin/0007-Add-witness-plugin.patch new file mode 100644 index 00000000..28d18a24 --- /dev/null +++ b/gradle/reprod/patches/mixin/0007-Add-witness-plugin.patch @@ -0,0 +1,71 @@ +From 6a90175bbe1a7cbb9d0eb6bb0bbb27ad451f4587 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Tue, 8 Aug 2017 19:20:46 +0200 +Subject: [PATCH 7/7] Add witness plugin + +--- + build.gradle | 34 ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +diff --git a/build.gradle b/build.gradle +index e9a965b..737be9e 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -2,6 +2,7 @@ + buildscript { + dependencies { + classpath files('../shadow.jar') ++ classpath files('../gradle-witness.jar') + } + } + +@@ -11,6 +12,7 @@ apply plugin: 'maven' + apply plugin: 'eclipse' + apply plugin: 'idea' + apply plugin: 'com.github.johnrengelman.shadow' ++apply plugin: 'witness' + + // Default tasks + defaultTasks 'licenseFormat', 'check', 'build' +@@ -158,6 +160,38 @@ dependencies { + bridgeCompile 'org.apache.logging.log4j:log4j-core:2.0-beta9' + } + ++dependencyVerification { ++ includedConfigurations += [configurations.asm, configurations.jarjar, configurations.apCompile, configurations.agentCompile, configurations.fernflowerCompile, configurations.bridgeCompile] ++ verify = [ ++ 'com.googlecode.jarjar:jarjar:1.1:4838f4f29a027522363cef1bcda1b48808880b0de4953fab6db4121ee27b649b', ++ 'com.google.guava:guava:17.0:8c36a80ea613d0b6b8040a17cf837c5bbe3677bc1b06a058a6c174fdb787ebbc', ++ 'com.google.code.gson:gson:2.2.4:c0328cd07ca9e363a5acd00c1cf4afe8cf554bd6d373834981ba05cebec687fb', ++ 'commons-io:commons-io:2.4:cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581', ++ 'net.minecraft:launchwrapper:1.11:e74b65b8948446982a506a96176dd8baf4688237ba4903f56ca6f667b6c7ee42', ++ 'org.apache.logging.log4j:log4j-core:2.0-beta9:dcde6033b205433d6e9855c93740f798951fa3a3f252035a768d9f356fde806d', ++ 'org.apache.logging.log4j:log4j-api:2.0-beta9:eb0ca9bdd938f80711152a758d6bc331a8b0d769199d457294dc67ed03f73498', ++ 'net.sf.jopt-simple:jopt-simple:4.5:64335a48be6b142a7d0c13ec5c82a707857aa58c0234e6eda3eaca0e96eea51b', ++ 'org.ow2.asm:asm-debug-all:5.0.3:2969356ac1e40fe4141948c563690238f5d79d76aec7fd873536867a331ede81', ++ 'org.ow2.asm:asm-debug-all:5.0.3-sources:1e9ee309d909b3dbf33291fcfd36c76adba4ed1215b8156c3ac61a774cc86bf1', ++ 'com.googlecode.jarjar:jarjar:1.1:4838f4f29a027522363cef1bcda1b48808880b0de4953fab6db4121ee27b649b', ++ 'com.google.guava:guava:17.0:8c36a80ea613d0b6b8040a17cf837c5bbe3677bc1b06a058a6c174fdb787ebbc', ++ 'net.minecraft:launchwrapper:1.11:e74b65b8948446982a506a96176dd8baf4688237ba4903f56ca6f667b6c7ee42', ++ 'org.apache.logging.log4j:log4j-core:2.0-beta9:dcde6033b205433d6e9855c93740f798951fa3a3f252035a768d9f356fde806d', ++ 'org.ow2.asm:asm-debug-all:5.0.3:2969356ac1e40fe4141948c563690238f5d79d76aec7fd873536867a331ede81', ++ 'org.apache.logging.log4j:log4j-api:2.0-beta9:eb0ca9bdd938f80711152a758d6bc331a8b0d769199d457294dc67ed03f73498', ++ 'net.sf.jopt-simple:jopt-simple:4.5:64335a48be6b142a7d0c13ec5c82a707857aa58c0234e6eda3eaca0e96eea51b', ++ 'commons-io:commons-io:2.4:cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581', ++ 'org.apache.logging.log4j:log4j-core:2.0-beta9:dcde6033b205433d6e9855c93740f798951fa3a3f252035a768d9f356fde806d', ++ 'com.google.guava:guava:17.0:8c36a80ea613d0b6b8040a17cf837c5bbe3677bc1b06a058a6c174fdb787ebbc', ++ 'org.apache.logging.log4j:log4j-api:2.0-beta9:eb0ca9bdd938f80711152a758d6bc331a8b0d769199d457294dc67ed03f73498', ++ 'org.ow2.asm:asm-commons:5.0.3:18c1e092230233c9d29e46f21943d769bdb48130cc279e4b0e663f423948c2da', ++ 'org.apache.logging.log4j:log4j-core:2.0-beta9:dcde6033b205433d6e9855c93740f798951fa3a3f252035a768d9f356fde806d', ++ 'org.ow2.asm:asm-tree:5.0.3:347a7a9400f9964e87c91d3980e48eebdc8d024bc3b36f7f22189c662853a51c', ++ 'org.apache.logging.log4j:log4j-api:2.0-beta9:eb0ca9bdd938f80711152a758d6bc331a8b0d769199d457294dc67ed03f73498', ++ 'org.ow2.asm:asm:5.0.3:71c4f78e437b8fdcd9cc0dfd2abea8c089eb677005a6a5cff320206cc52b46cc', ++ ] ++} ++ + // Filter, process, and include resources + processResources { + // Include in final JAR +-- +2.5.5 + 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 new file mode 100644 index 00000000..ad6e368a --- /dev/null +++ b/gradle/reprod/patches/mixingradle/0001-Configure-gradle-to-build-reproducible-archives.patch @@ -0,0 +1,28 @@ +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,11 @@ task groovydocJar(type: Jar, dependsOn: groovydoc) { + classifier = 'groovydoc' + } + ++tasks.withType(AbstractArchiveTask) { ++ preserveFileTimestamps = false ++ reproducibleFileOrder = true ++} ++ + artifacts { + archives jar + archives groovydocJar +-- +2.5.5 + diff --git a/gradle/reprod/patches/mixingradle/0002-Remove-all-buildscript-dependencies.patch b/gradle/reprod/patches/mixingradle/0002-Remove-all-buildscript-dependencies.patch new file mode 100644 index 00000000..c9c2749e --- /dev/null +++ b/gradle/reprod/patches/mixingradle/0002-Remove-all-buildscript-dependencies.patch @@ -0,0 +1,125 @@ +From f1130f071e67235b27e2bca95584dec25a8dec37 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Mon, 7 Aug 2017 20:04:56 +0200 +Subject: [PATCH 2/3] Remove all buildscript dependencies + +--- + build.gradle | 91 ------------------------------------------------------------ + 1 file changed, 91 deletions(-) + +diff --git a/build.gradle b/build.gradle +index c34a8a2..40169df 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -1,22 +1,6 @@ +-buildscript { +- repositories { +- maven { +- url "https://plugins.gradle.org/m2/" +- } +- } +- dependencies { +- classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0' +- classpath "com.gradle.publish:plugin-publish-plugin:0.9.1" +- } +-} +- + apply plugin: 'groovy' +-apply plugin: 'license' + apply plugin: 'maven' + apply plugin: 'eclipse' +-apply plugin: "com.gradle.plugin-publish" +- +-defaultTasks 'licenseFormat', 'build' + + group = 'org.spongepowered' + version = '0.4-SNAPSHOT' +@@ -43,22 +27,6 @@ processResources { + from 'LICENSE.txt' + } + +-license { +- ext { +- name = project.name +- organization = project.organization +- url = project.url +- } +- include '**/*.groovy' +- header file("HEADER.txt") +- sourceSets = project.sourceSets +- ignoreFailures false +- strictCheck true +- mapping { +- java = 'SLASHSTAR_STYLE' +- } +-} +- + jar.manifest.mainAttributes ( + "Built-By": System.properties['user.name'], + "Created-By": System.properties['java.vm.version'] + " (" + System.properties['java.vm.vendor'] + ")", +@@ -81,62 +49,3 @@ artifacts { + archives groovydocJar + } + +-pluginBundle { +- website = 'http://www.gradle.org/' +- vcsUrl = 'https://github.com/SpongePowered/MixinGradle' +- description = 'Gradle plugin for SpongePowered Mixin' +- tags = ['spongepowered', 'sponge', 'mixin'] +- plugins { +- patcher { +- id = 'org.spongepowered.mixin' +- displayName = 'SpongePowered Mixin Gradle Plugin' +- } +- } +-} +- +-uploadArchives { +- repositories { +- +- mavenDeployer { +- configuration = configurations.deployerJars +- +- if (project.hasProperty("chRepo")) +- { +- repository(url: project.chRepo) { +- authentication(userName: project.chUsername, password: project.chPassword) +- } +- } +- +- pom { +- groupId = project.group +- version = project.version +- artifactId = project.archivesBaseName +- project { +- name project.archivesBaseName +- packaging 'jar' +- description 'MixinGradle' +- url 'http://www.spongepowered.org/' +- +- scm { +- url 'https://github.com/SpongePowered/Mixin' +- connection 'scm:git:git://github.com/SpongePowered/Mixin.git' +- developerConnection 'scm:git:git@github.com:SpongePowered/Mixin.git' +- } +- +- issueManagement { +- system 'GitHub Issues' +- url 'https://github.com/SpongePowered/MixinGradle/issues' +- } +- +- licenses { +- license { +- name 'MIT license' +- url 'http://opensource.org/licenses/MIT' +- distribution 'repo' +- } +- } +- } +- } +- } +- } +-} +-- +2.5.5 + diff --git a/gradle/reprod/patches/mixingradle/0003-Add-witness-plugin.patch b/gradle/reprod/patches/mixingradle/0003-Add-witness-plugin.patch new file mode 100644 index 00000000..94d5b1d8 --- /dev/null +++ b/gradle/reprod/patches/mixingradle/0003-Add-witness-plugin.patch @@ -0,0 +1,44 @@ +From 7c2f6c0d86940142671615402ba758185448e3cf Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Mon, 7 Aug 2017 20:05:30 +0200 +Subject: [PATCH 3/3] Add witness plugin + +--- + build.gradle | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/build.gradle b/build.gradle +index 40169df..93f9764 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -1,6 +1,13 @@ ++buildscript { ++ dependencies { ++ classpath files('../gradle-witness.jar') ++ } ++} ++ + apply plugin: 'groovy' + apply plugin: 'maven' + apply plugin: 'eclipse' ++apply plugin: 'witness' + + group = 'org.spongepowered' + version = '0.4-SNAPSHOT' +@@ -23,6 +30,13 @@ dependencies { + deployerJars 'org.apache.maven.wagon:wagon-ftp:2.7' + } + ++dependencyVerification { ++ verify = [ ++ 'com.google.guava:guava:17.0:8c36a80ea613d0b6b8040a17cf837c5bbe3677bc1b06a058a6c174fdb787ebbc', ++ 'org.ow2.asm:asm-debug-all:5.0.3:2969356ac1e40fe4141948c563690238f5d79d76aec7fd873536867a331ede81', ++ ] ++} ++ + processResources { + from 'LICENSE.txt' + } +-- +2.5.5 + diff --git a/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch b/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch new file mode 100644 index 00000000..c7d6dc84 --- /dev/null +++ b/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch @@ -0,0 +1,43 @@ +From 493dbd8ed387d661eef3e33ee614c79d7487f1bd Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Mon, 7 Aug 2017 20:41:05 +0200 +Subject: [PATCH 1/5] Replace buildscript dependencies with manually built ones + +--- + build.gradle | 19 ++----------------- + 1 file changed, 2 insertions(+), 17 deletions(-) + +diff --git a/build.gradle b/build.gradle +index ee24828..42d0607 100755 +--- a/build.gradle ++++ b/build.gradle +@@ -1,24 +1,9 @@ + import groovy.json.JsonOutput + + buildscript { +- repositories { +- mavenCentral() +- maven { +- name = "forge" +- url = "http://files.minecraftforge.net/maven" +- } +- maven { +- name = "sponge" +- url = "https://repo.spongepowered.org/maven" +- } +- maven { +- name = "sonatype" +- url = "https://oss.sonatype.org/content/repositories/snapshots/" +- } +- } + dependencies { +- classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' +- classpath 'org.spongepowered:mixingradle:0.4-SNAPSHOT' ++ classpath files('gradle/reprod/deps/forgegradle.jar') ++ classpath files('gradle/reprod/deps/mixingradle.jar') + } + } + +-- +2.5.5 + diff --git a/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch b/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch new file mode 100644 index 00000000..d9c21ef2 --- /dev/null +++ b/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch @@ -0,0 +1,27 @@ +From 9e4e7ac3f8ee5508939cf71e731189e4c0e1c7b5 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +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 +@@ -41,9 +41,7 @@ configurations { + dependencies { + compile 'org.projectlombok:lombok:1.16.4' + +- compile('org.spongepowered:mixin:0.6.11-SNAPSHOT') { +- exclude group: 'org.apache.logging.log4j' +- } ++ shade files('gradle/reprod/deps/mixin.jar') + 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 + diff --git a/gradle/reprod/patches/replaymod/0003-Add-witness-plugin.patch b/gradle/reprod/patches/replaymod/0003-Add-witness-plugin.patch new file mode 100644 index 00000000..79686aff --- /dev/null +++ b/gradle/reprod/patches/replaymod/0003-Add-witness-plugin.patch @@ -0,0 +1,41 @@ +From 9baa28ace59f2036e93fff379438c2553f02b6a8 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Mon, 7 Aug 2017 20:41:46 +0200 +Subject: [PATCH 3/5] Add witness plugin + +--- + build.gradle | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/build.gradle b/build.gradle +index bfa3914..bee78ee 100755 +--- a/build.gradle ++++ b/build.gradle +@@ -4,11 +4,13 @@ buildscript { + dependencies { + classpath files('gradle/reprod/deps/forgegradle.jar') + classpath files('gradle/reprod/deps/mixingradle.jar') ++ classpath files('gradle/reprod/deps/gradle-witness.jar') + } + } + + apply plugin: 'net.minecraftforge.gradle.forge' + apply plugin: 'org.spongepowered.mixin' ++apply plugin: 'witness' + + sourceCompatibility = 1.8 + targetCompatibility = 1.8 +@@ -56,6 +58,10 @@ dependencies { + testCompile 'junit:junit:4.11' + } + ++dependencyVerification { ++ includedConfigurations += [configurations.shade, configurations.testCompile] ++} ++ + tasks['idea'].dependsOn ':ReplayStudio:preshadowJar' + + jar { +-- +2.5.5 + diff --git a/gradle/reprod/patches/replaymod/0004-Add-checksums-for-witness-plugin.patch b/gradle/reprod/patches/replaymod/0004-Add-checksums-for-witness-plugin.patch new file mode 100644 index 00000000..ebc5f586 --- /dev/null +++ b/gradle/reprod/patches/replaymod/0004-Add-checksums-for-witness-plugin.patch @@ -0,0 +1,109 @@ +From cbba1bbb1010408adb5227b5a928ca00cc19699a Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Mon, 7 Aug 2017 20:42:06 +0200 +Subject: [PATCH 4/5] Add checksums for witness plugin + +--- + build.gradle | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 86 insertions(+) + +diff --git a/build.gradle b/build.gradle +index bee78ee..bda297b 100755 +--- a/build.gradle ++++ b/build.gradle +@@ -60,6 +60,92 @@ dependencies { + + dependencyVerification { + includedConfigurations += [configurations.shade, configurations.testCompile] ++ verify = [ ++ 'com.googlecode.mp4parser:isoparser:1.1.7:ddbbf392f8e61f770a509a49aed5f32ead19768283b4b512c626e09e1ba5cc46', ++ 'org.apache.commons:commons-exec:1.3:cb49812dc1bfb0ea4f20f398bcae1a88c6406e213e67f7524fb10d4f8ad9347b', ++ 'com.google.apis:google-api-services-youtube:v3-rev178-1.22.0:88debb16c533600c3b0290a088f2de3b3a8318ff86ebe0bdbcefeab0a0eafb9e', ++ 'com.google.api-client:google-api-client-gson:1.20.0:d68647ba10cfa33e0b6e538c704723229932795d5ee495288cec46a6156c5891', ++ 'com.google.api-client:google-api-client-java6:1.20.0:df4f423f33f467d248e51deb555404771f7bc41430b2d4d1e49966c79c0b207b', ++ 'com.google.oauth-client:google-oauth-client-jetty:1.20.0:daabf9d4e35d4015c2c917982463572856a5c8d7fa718e94edb2b6b114a2a8a2', ++ 'org.aspectj:aspectjrt:1.8.2:c7964f00c3d3889c5223e8fcb7476610c59453c86bccc68ef493a56d171bf655', ++ 'org.apache.commons:commons-lang3:3.3.2:6b81d10754dadf184d386011486e6509c2cc0c3d33565ced4fb4402b9413d47d', ++ 'org.apache.commons:commons-collections4:4.0:93f8dfcd20831a28d092427723f696bceb70b28e7fb89d7914f14d5ea492ce5a', ++ 'commons-cli:commons-cli:1.2:e7cd8951956d349b568b7ccfd4f5b2529a8c113e67c32b028f52ffda371259d9', ++ 'com.google.guava:guava:21.0:972139718abc8a4893fa78cba8cf7b2c903f35c97aaf44fa3031b0669948b480', ++ 'com.google.api-client:google-api-client:1.22.0:47c625c83a8cf97b8bbdff2acde923ff8fd3174e62aabcfc5d1b86692594ffba', ++ 'com.google.http-client:google-http-client-gson:1.20.0:cc144c70d40acf7c6e6f773ac19a2ac6e3ed9830d8e33e32421ff21a91450994', ++ 'com.google.oauth-client:google-oauth-client-java6:1.20.0:3149ae4fa222c7e804c5b7bc0d044702bc6bb8309b5ed94f6d350a5d4d657fc9', ++ 'org.mortbay.jetty:jetty:6.1.26:21091d3a9c1349f640fdc421504a604c040ed89087ecc12afbe32353326ed4e5', ++ 'com.google.code.gson:gson:2.1:35c94198255e95f6f11501eb4b3d43a5276bfdd142ab7c904722e69bff51f69e', ++ 'org.mortbay.jetty:jetty-util:6.1.26:9b974ce2b99f48254b76126337dc45b21226f383aaed616f59780adaf167c047', ++ 'org.mortbay.jetty:servlet-api:2.5-20081211:068756096996fe00f604ac3b6672d6f663dc777ea4a83056e240d0456e77e472', ++ 'com.google.code.findbugs:jsr305:1.3.9:905721a0eea90a81534abb7ee6ef4ea2e5e645fa1def0a5cd88402df1b46c9ed', ++ 'org.apache.httpcomponents:httpclient:4.0.1:752596ebdc7c9ae5d9a655de3bb06d078734679a9de23321dbf284ee44563c03', ++ 'org.apache.httpcomponents:httpcore:4.0.1:3b6bf92affa85d4169a91547ce3c7093ed993b41ad2df80469fc768ad01e6b6b', ++ 'commons-logging:commons-logging:1.1.1:ce6f913cad1f0db3aad70186d65c5bc7ffcc9a99e3fe8e0b137312819f7c362f', ++ 'commons-codec:commons-codec:1.3:1bafd2ece2e88db4cdf835a7f8f0de65fab5b1147977a5dcc59b7c1b8c6f5080', ++ 'org.projectlombok:lombok:1.16.6:e0a471be03e1e6b02bf019480cec7a3ac9801702bf7bf62f15d077ad4df8dd5d', ++ 'com.google.http-client:google-http-client-jackson2:1.22.0:45b1e34b2dcef5cb496ef25a1223d19cf102b8c2ea4abf96491631b2faf4611c', ++ 'com.google.guava:guava-jdk5:17.0:59bf456547b6dda3ced968cb56f7f2d3e14474e2de2960a32c47e31c1e456c61', ++ 'com.fasterxml.jackson.core:jackson-core:2.1.3:754184022345800c2d066eceeaf2f7a88a7c2aaeae23eb1c76ef598854aa9157', ++ 'com.google.oauth-client:google-oauth-client:1.22.0:a4c56168b3e042105d68cf136e40e74f6e27f63ed0a948df966b332678e19022', ++ 'com.google.http-client:google-http-client:1.22.0:f88ffa329ac52fb4f2ff0eb877ef7318423ac9b791a107f886ed5c7a00e77e11', ++ 'com.googlecode.mp4parser:isoparser:1.1.7:ddbbf392f8e61f770a509a49aed5f32ead19768283b4b512c626e09e1ba5cc46', ++ 'org.apache.commons:commons-exec:1.3:cb49812dc1bfb0ea4f20f398bcae1a88c6406e213e67f7524fb10d4f8ad9347b', ++ 'com.google.apis:google-api-services-youtube:v3-rev178-1.22.0:88debb16c533600c3b0290a088f2de3b3a8318ff86ebe0bdbcefeab0a0eafb9e', ++ 'com.google.api-client:google-api-client-gson:1.20.0:d68647ba10cfa33e0b6e538c704723229932795d5ee495288cec46a6156c5891', ++ 'com.google.api-client:google-api-client-java6:1.20.0:df4f423f33f467d248e51deb555404771f7bc41430b2d4d1e49966c79c0b207b', ++ 'com.google.oauth-client:google-oauth-client-jetty:1.20.0:daabf9d4e35d4015c2c917982463572856a5c8d7fa718e94edb2b6b114a2a8a2', ++ 'org.aspectj:aspectjrt:1.8.2:c7964f00c3d3889c5223e8fcb7476610c59453c86bccc68ef493a56d171bf655', ++ 'com.google.api-client:google-api-client:1.22.0:47c625c83a8cf97b8bbdff2acde923ff8fd3174e62aabcfc5d1b86692594ffba', ++ 'com.google.http-client:google-http-client-gson:1.20.0:cc144c70d40acf7c6e6f773ac19a2ac6e3ed9830d8e33e32421ff21a91450994', ++ 'com.google.oauth-client:google-oauth-client-java6:1.20.0:3149ae4fa222c7e804c5b7bc0d044702bc6bb8309b5ed94f6d350a5d4d657fc9', ++ 'org.mortbay.jetty:jetty:6.1.26:21091d3a9c1349f640fdc421504a604c040ed89087ecc12afbe32353326ed4e5', ++ 'com.google.code.gson:gson:2.1:35c94198255e95f6f11501eb4b3d43a5276bfdd142ab7c904722e69bff51f69e', ++ 'org.mortbay.jetty:jetty-util:6.1.26:9b974ce2b99f48254b76126337dc45b21226f383aaed616f59780adaf167c047', ++ 'org.mortbay.jetty:servlet-api:2.5-20081211:068756096996fe00f604ac3b6672d6f663dc777ea4a83056e240d0456e77e472', ++ 'com.google.code.findbugs:jsr305:1.3.9:905721a0eea90a81534abb7ee6ef4ea2e5e645fa1def0a5cd88402df1b46c9ed', ++ 'org.apache.httpcomponents:httpclient:4.0.1:752596ebdc7c9ae5d9a655de3bb06d078734679a9de23321dbf284ee44563c03', ++ 'org.apache.httpcomponents:httpcore:4.0.1:3b6bf92affa85d4169a91547ce3c7093ed993b41ad2df80469fc768ad01e6b6b', ++ 'commons-logging:commons-logging:1.1.1:ce6f913cad1f0db3aad70186d65c5bc7ffcc9a99e3fe8e0b137312819f7c362f', ++ 'commons-codec:commons-codec:1.3:1bafd2ece2e88db4cdf835a7f8f0de65fab5b1147977a5dcc59b7c1b8c6f5080', ++ 'com.google.http-client:google-http-client-jackson2:1.22.0:45b1e34b2dcef5cb496ef25a1223d19cf102b8c2ea4abf96491631b2faf4611c', ++ 'com.google.guava:guava-jdk5:17.0:59bf456547b6dda3ced968cb56f7f2d3e14474e2de2960a32c47e31c1e456c61', ++ 'com.fasterxml.jackson.core:jackson-core:2.1.3:754184022345800c2d066eceeaf2f7a88a7c2aaeae23eb1c76ef598854aa9157', ++ 'com.google.oauth-client:google-oauth-client:1.22.0:a4c56168b3e042105d68cf136e40e74f6e27f63ed0a948df966b332678e19022', ++ 'com.google.http-client:google-http-client:1.22.0:f88ffa329ac52fb4f2ff0eb877ef7318423ac9b791a107f886ed5c7a00e77e11', ++ 'com.googlecode.mp4parser:isoparser:1.1.7:ddbbf392f8e61f770a509a49aed5f32ead19768283b4b512c626e09e1ba5cc46', ++ 'org.apache.commons:commons-exec:1.3:cb49812dc1bfb0ea4f20f398bcae1a88c6406e213e67f7524fb10d4f8ad9347b', ++ 'com.google.apis:google-api-services-youtube:v3-rev178-1.22.0:88debb16c533600c3b0290a088f2de3b3a8318ff86ebe0bdbcefeab0a0eafb9e', ++ 'com.google.api-client:google-api-client-gson:1.20.0:d68647ba10cfa33e0b6e538c704723229932795d5ee495288cec46a6156c5891', ++ 'com.google.api-client:google-api-client-java6:1.20.0:df4f423f33f467d248e51deb555404771f7bc41430b2d4d1e49966c79c0b207b', ++ 'com.google.oauth-client:google-oauth-client-jetty:1.20.0:daabf9d4e35d4015c2c917982463572856a5c8d7fa718e94edb2b6b114a2a8a2', ++ 'org.aspectj:aspectjrt:1.8.2:c7964f00c3d3889c5223e8fcb7476610c59453c86bccc68ef493a56d171bf655', ++ 'junit:junit:4.11:90a8e1603eeca48e7e879f3afbc9560715322985f39a274f6f6070b43f9d06fe', ++ 'org.apache.commons:commons-lang3:3.3.2:6b81d10754dadf184d386011486e6509c2cc0c3d33565ced4fb4402b9413d47d', ++ 'org.apache.commons:commons-collections4:4.0:93f8dfcd20831a28d092427723f696bceb70b28e7fb89d7914f14d5ea492ce5a', ++ 'commons-cli:commons-cli:1.2:e7cd8951956d349b568b7ccfd4f5b2529a8c113e67c32b028f52ffda371259d9', ++ 'com.google.guava:guava:21.0:972139718abc8a4893fa78cba8cf7b2c903f35c97aaf44fa3031b0669948b480', ++ 'com.google.api-client:google-api-client:1.22.0:47c625c83a8cf97b8bbdff2acde923ff8fd3174e62aabcfc5d1b86692594ffba', ++ 'com.google.http-client:google-http-client-gson:1.20.0:cc144c70d40acf7c6e6f773ac19a2ac6e3ed9830d8e33e32421ff21a91450994', ++ 'com.google.oauth-client:google-oauth-client-java6:1.20.0:3149ae4fa222c7e804c5b7bc0d044702bc6bb8309b5ed94f6d350a5d4d657fc9', ++ 'org.mortbay.jetty:jetty:6.1.26:21091d3a9c1349f640fdc421504a604c040ed89087ecc12afbe32353326ed4e5', ++ 'org.hamcrest:hamcrest-core:1.3:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9', ++ 'com.google.code.gson:gson:2.1:35c94198255e95f6f11501eb4b3d43a5276bfdd142ab7c904722e69bff51f69e', ++ 'org.mortbay.jetty:jetty-util:6.1.26:9b974ce2b99f48254b76126337dc45b21226f383aaed616f59780adaf167c047', ++ 'org.mortbay.jetty:servlet-api:2.5-20081211:068756096996fe00f604ac3b6672d6f663dc777ea4a83056e240d0456e77e472', ++ 'com.google.code.findbugs:jsr305:1.3.9:905721a0eea90a81534abb7ee6ef4ea2e5e645fa1def0a5cd88402df1b46c9ed', ++ 'org.apache.httpcomponents:httpclient:4.0.1:752596ebdc7c9ae5d9a655de3bb06d078734679a9de23321dbf284ee44563c03', ++ 'org.apache.httpcomponents:httpcore:4.0.1:3b6bf92affa85d4169a91547ce3c7093ed993b41ad2df80469fc768ad01e6b6b', ++ 'commons-logging:commons-logging:1.1.1:ce6f913cad1f0db3aad70186d65c5bc7ffcc9a99e3fe8e0b137312819f7c362f', ++ 'commons-codec:commons-codec:1.3:1bafd2ece2e88db4cdf835a7f8f0de65fab5b1147977a5dcc59b7c1b8c6f5080', ++ 'org.projectlombok:lombok:1.16.6:e0a471be03e1e6b02bf019480cec7a3ac9801702bf7bf62f15d077ad4df8dd5d', ++ 'com.google.http-client:google-http-client-jackson2:1.22.0:45b1e34b2dcef5cb496ef25a1223d19cf102b8c2ea4abf96491631b2faf4611c', ++ 'com.google.guava:guava-jdk5:17.0:59bf456547b6dda3ced968cb56f7f2d3e14474e2de2960a32c47e31c1e456c61', ++ 'com.fasterxml.jackson.core:jackson-core:2.1.3:754184022345800c2d066eceeaf2f7a88a7c2aaeae23eb1c76ef598854aa9157', ++ 'com.google.oauth-client:google-oauth-client:1.22.0:a4c56168b3e042105d68cf136e40e74f6e27f63ed0a948df966b332678e19022', ++ 'com.google.http-client:google-http-client:1.22.0:f88ffa329ac52fb4f2ff0eb877ef7318423ac9b791a107f886ed5c7a00e77e11', ++ ] + } + + tasks['idea'].dependsOn ':ReplayStudio:preshadowJar' +-- +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 new file mode 100644 index 00000000..6bee4a7e --- /dev/null +++ b/gradle/reprod/patches/replaymod/0005-Configure-gradle-to-build-reproducible-archives.patch @@ -0,0 +1,28 @@ +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 new file mode 100644 index 00000000..364ec08a --- /dev/null +++ b/gradle/reprod/patches/shadow/0001-Configure-gradle-to-build-reproducible-archives.patch @@ -0,0 +1,28 @@ +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,11 @@ idea { + } + } + ++tasks.withType(AbstractArchiveTask) { ++ preserveFileTimestamps = false ++ reproducibleFileOrder = true ++} ++ + 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 new file mode 100644 index 00000000..ffd98261 --- /dev/null +++ b/gradle/reprod/patches/shadow/0002-Remove-non-essential-parts-of-build.gradle.patch @@ -0,0 +1,117 @@ +From 8105c498cb064c102197cf13d7efe4ebb1da65a7 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Tue, 8 Aug 2017 18:51:27 +0200 +Subject: [PATCH 2/4] Remove non-essential parts of build.gradle + +--- + build.gradle | 78 ------------------------------------------------------------ + 1 file changed, 78 deletions(-) + +diff --git a/build.gradle b/build.gradle +index 2292a4d..1b06411 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -1,48 +1,4 @@ +-import org.gradle.wrapper.Download +-import org.gradle.wrapper.GradleUserHomeLookup +-import org.gradle.wrapper.Install +-import org.gradle.wrapper.PathAssembler +-import org.gradle.wrapper.WrapperConfiguration +-import org.gradle.wrapper.WrapperExecutor +-import org.gradle.wrapper.Logger +- +-buildscript { +- repositories { +- jcenter() +- maven { +- url "https://plugins.gradle.org/m2/" +- } +- } +- dependencies { +- classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.5' +- classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.0" +- classpath "com.gradle.publish:plugin-publish-plugin:0.9.1" +- classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3' +- classpath 'org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.11' +- classpath 'org.asciidoctor:asciidoctorj-groovy-dsl:1.0.0.preview2' +- classpath "com.bluepapa32:gradle-watch-plugin:0.1.5" +- classpath "org.kordamp.gradle:livereload-gradle-plugin:0.2.1" +- classpath 'org.ajoberstar:gradle-git:1.5.0' +- } +-} +- +-plugins { +- id 'com.gradle.build-scan' version '1.0' +-} +- +-buildScan { +- licenseAgreementUrl = 'https://gradle.com/terms-of-service' +- licenseAgree = 'yes' +-} +- + apply plugin: 'groovy' +-apply plugin: 'idea' +-apply plugin: 'project-report' +- +-apply from: file('gradle/docs.gradle') +-apply from: file('gradle/publish.gradle') +-apply from: file('gradle/asciidoc.gradle') +-apply from: file('gradle/ghPages.gradle') + + repositories { + mavenLocal() +@@ -60,24 +16,6 @@ dependencies { + compile 'org.apache.ant:ant:1.9.4' + compile 'org.codehaus.plexus:plexus-utils:2.0.6' + compile 'org.codehaus.groovy:groovy-backports-compat23:2.4.4' +- +- +- testCompile gradleTestKit() +- testCompile("org.spockframework:spock-core:1.0-groovy-2.4") { +- exclude module: 'groovy-all' +- } +- testCompile 'xmlunit:xmlunit:1.3' +- testCompile 'commons-lang:commons-lang:2.6' +- testCompile 'com.google.guava:guava:17.0' +-} +- +-test { +- dependsOn publishToMavenLocal +- if (System.env.CI == 'true') { +- testLogging.showStandardStreams = true +- minHeapSize "1g" +- maxHeapSize "1g" +- } + } + + jar { +@@ -85,12 +23,6 @@ jar { + from rootProject.file('NOTICE') + } + +-idea { +- project { +- languageLevel = '1.6' +- } +-} +- + tasks.withType(AbstractArchiveTask) { + preserveFileTimestamps = false + reproducibleFileOrder = true +@@ -99,13 +31,3 @@ tasks.withType(AbstractArchiveTask) { + sourceCompatibility = '1.6' + targetCompatibility = '1.6' + +-task installWrappers << { +- WrapperExecutor wrapperExecutor = WrapperExecutor.forWrapperPropertiesFile(file('gradle/wrapper/gradle-wrapper.properties'), System.out) +- ['1.12', '2.0', '2.5', '2.11', '2.12', '2.13', '2.14', '3.0'].each { +- WrapperConfiguration config = wrapperExecutor.config +- config.setDistribution(new URI("https://services.gradle.org/distributions/gradle-$it-bin.zip")) +- Install install = new Install(new Logger(true), new Download(new Logger(true), "gradlew", it), +- new PathAssembler(GradleUserHomeLookup.gradleUserHome())) +- install.createDist(config) +- } +-} +-- +2.5.5 + diff --git a/gradle/reprod/patches/shadow/0003-Add-witness-plugin.patch b/gradle/reprod/patches/shadow/0003-Add-witness-plugin.patch new file mode 100644 index 00000000..5a720606 --- /dev/null +++ b/gradle/reprod/patches/shadow/0003-Add-witness-plugin.patch @@ -0,0 +1,49 @@ +From d06cec4bfa5981965faf2dad510d14e000d61ade Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Tue, 8 Aug 2017 18:53:57 +0200 +Subject: [PATCH 3/4] Add witness plugin + +--- + build.gradle | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/build.gradle b/build.gradle +index 1b06411..a0d350b 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -1,4 +1,11 @@ ++buildscript { ++ dependencies { ++ classpath files('../gradle-witness.jar') ++ } ++} ++ + apply plugin: 'groovy' ++apply plugin: 'witness' + + repositories { + mavenLocal() +@@ -18,6 +25,20 @@ dependencies { + compile 'org.codehaus.groovy:groovy-backports-compat23:2.4.4' + } + ++dependencyVerification { ++ verify = [ ++ 'org.jdom:jdom2:2.0.5:32ed093f39c46a8d99f801240069478eac93b35f07351c001f2cef4330e97b4a', ++ 'org.ow2.asm:asm:5.0.3:71c4f78e437b8fdcd9cc0dfd2abea8c089eb677005a6a5cff320206cc52b46cc', ++ 'org.ow2.asm:asm-commons:5.0.3:18c1e092230233c9d29e46f21943d769bdb48130cc279e4b0e663f423948c2da', ++ 'commons-io:commons-io:2.4:cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581', ++ 'org.apache.ant:ant:1.9.4:649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8', ++ 'org.codehaus.plexus:plexus-utils:2.0.6:8b909f4ca9788647942f883d4e559bcc642123f7c6bcd3846983a2e465469c33', ++ 'org.codehaus.groovy:groovy-backports-compat23:2.4.4:f07694998acb204782c72cc8067b237a04097a2170f07d440614883f14a67630', ++ 'org.ow2.asm:asm-tree:5.0.3:347a7a9400f9964e87c91d3980e48eebdc8d024bc3b36f7f22189c662853a51c', ++ 'org.apache.ant:ant-launcher:1.9.4:7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d', ++ ] ++} ++ + jar { + from rootProject.file('LICENSE') + from rootProject.file('NOTICE') +-- +2.5.5 + diff --git a/gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch b/gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch new file mode 100644 index 00000000..d4656cd9 --- /dev/null +++ b/gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch @@ -0,0 +1,54 @@ +From cfca21accce1fb3fbd32b81fb79f0363dd7b61f4 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Tue, 8 Aug 2017 19:59:34 +0200 +Subject: [PATCH 4/4] Manually shade deps + +--- + build.gradle | 20 +++++++++++++------- + 1 file changed, 13 insertions(+), 7 deletions(-) + +diff --git a/build.gradle b/build.gradle +index a0d350b..b12a46d 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -12,17 +12,22 @@ repositories { + jcenter() + } + ++configurations { ++ shade ++ compile.extendsFrom shade ++} ++ + dependencies { + + compile localGroovy() + compile gradleApi() +- compile 'org.jdom:jdom2:2.0.5' +- compile 'org.ow2.asm:asm:5.0.3' +- compile 'org.ow2.asm:asm-commons:5.0.3' +- compile 'commons-io:commons-io:2.4' +- compile 'org.apache.ant:ant:1.9.4' +- compile 'org.codehaus.plexus:plexus-utils:2.0.6' +- compile 'org.codehaus.groovy:groovy-backports-compat23:2.4.4' ++ shade 'org.jdom:jdom2:2.0.5' ++ shade 'org.ow2.asm:asm:5.0.3' ++ shade 'org.ow2.asm:asm-commons:5.0.3' ++ shade 'commons-io:commons-io:2.4' ++ shade 'org.apache.ant:ant:1.9.4' ++ shade 'org.codehaus.plexus:plexus-utils:2.0.6' ++ shade 'org.codehaus.groovy:groovy-backports-compat23:2.4.4' + } + + dependencyVerification { +@@ -42,6 +47,7 @@ dependencyVerification { + jar { + from rootProject.file('LICENSE') + from rootProject.file('NOTICE') ++ from (files(configurations.shade).collect {it.isDirectory() ? filesTree(it) : zipTree(it)}) + } + + tasks.withType(AbstractArchiveTask) { +-- +2.5.5 + diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh new file mode 100755 index 00000000..dc61e9ba --- /dev/null +++ b/gradle/reprod/setup.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env bash +set -e +set -x + +cd gradle/reprod + +sha256val () { + sha256sum $1 | cut -d' ' -f1 +} + +setup_dep () { + dep=$1 + url=$2 + commit=$3 + jar=$4 + jarhash=$5 + + [ -f "deps/$dep.jar" ] && [ "$(sha256val "deps/$dep.jar")" == "$jarhash" ] && return + rm -rf "deps/$dep.jar" + + if [ ! -d "deps/$dep" ] || [ "$(git -C "deps/$dep" rev-parse $commit^{commit})" != "$commit" ]; then + rm -rf "deps/$dep" + mkdir -p "deps/$dep" + pushd "deps/$dep" + git clone "$url" . + git fetch origin $commit + git checkout "$commit" + popd + fi + + pushd "deps/$dep" + git reset --hard "$commit" + find ../../patches/$dep/ -name *.patch | sort | xargs -r git am + git reset --soft "$commit" # Because forgegradle includes the commit hash in the jar + + rm -rf gradle/wrapper gradlew + [ ! -d gradle ] && mkdir gradle + cp -r ../../../wrapper gradle/ + cp ../../../wrapper/gradle-wrapper.properties gradle/wrapper/ + cp ../../../../gradlew . + + chmod +x gradlew + ./gradlew build -x test + + actual_hash=$(sha256val "build/libs/$jar") + if [ "$actual_hash" != "$jarhash" ]; then + echo "Failed to verify checksum of build artifact of dependency: $dep" + echo "Expected: $jarhash" + echo "But was: $actual_hash" + exit 1 + fi + + cp "build/libs/$jar" "../$dep.jar" + popd +} + +# Required for all +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 "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" + +rm -rf tmp +mkdir tmp +pushd tmp + cp ../../../build.gradle build.gradle + git init + git add build.gradle + git commit -m "Add build.gradle" + git am ../patches/replaymod/*.patch +popd diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index b7612167031001b7b84baf2a959e8ea8ad03c011..5ccda13e9cb94678ba179b32452cf3d60dc36353 100755 GIT binary patch delta 27881 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

p%j4H!s{H#RNi7UbTaQ_p1#0>@yQQqg4#Zp_- zv{*REMV@9qH4IAo^|V!3)~VRNz+Gf-co~>f_a+QY!( zS~USl9|u62x$e@eGPcJ(=TbB6q`w?uH68+rSU!1)DF5VZWZt-fnhY1Bj=!8(u{Tb1 zTWE=TBt^y5f2q;`N4S)5DZD%?-hweQ$7xsO94$HJC?Dw~ZZQ&02@gbOLh;3Zu5QIt zvM1v)VdFS=($I1%*9PG!U{hR{PCFQU3|mp0jpCe!&DLiY_ne}&d57}jHyO;SFYM-4 zso4dN!$Z+i17yGp)v!{H-Fl`-HQO+?m%`%FMn92ns}9T8es!M{HU<{%Q=E^%5xa?g z=eEfu z6tp@eVNSL|f1lQcBFuIA{QK2Z4xN@j<2v$c`1%H!!2a_{=!@EL8;rtSwSD_nm*ZT| z4`4c-rQYmbZLuC@Ru{MOm|`)QA(#G`yTAV4CSJ9!Cx!VG_OFLPd8s5xXb*7bel*ztZQe@MajG02vnXdH$pZE>w|lw}AHq9!VNR>^!H z=kv8-f>Ub`CEhda`%>^jqxaVIu#5$x^WbX@UUsM(GiL6W=et9uXTT_LA#in8$PXl% zG+m~&sJDRCNUkWJ3Dq8V7Cl9R34CpkMocJp(URFkg;P&~#TiFSwo+YEi&z+Rc#e&* z+guari&%8UAW8lfDK(2NIs+QKQZY?dupuE!SI!|#MsG=0(1ZGL!)E$xsx$3zZt*qX za9zfdRWxd~--29JY3{VR2AsZ{M|=&}6bn}3JtN;$|H-`EM?Q7PANLdcPFS|W)}&iw z*XnxZHDuSp6Sh?*#+oBfjI%o}=p|1oqNU2t{yEJqiNvUA5MJZ>`{JYvF$;a3lDAvN0{4D4zYK5}w$B1@@ z!7U>;tz9o`m*Bs+OoCq3yrg)0==&k>+DDOaO6J1AHINQdUWri1XHU7kykecN z)E~E?Li<~roJZId*l-ec&Y|)=?ITW;GPDQbmVev^g+*Kb1F?X3}m$qgqOvqnp zrr*-07HORl^pdnChqKlsRWmbsw)nf;b)sL_@Dl4A6$q@wbW@~o4HmKXbJ-(voVvI0 z?#{0~ypWVDaX8*|izuXE>I`(n&|+ zNpkVan5Bvo=RXl(E}a4=?vTH%QU;2Mk9*70YvtDiLRZ(lJ(IV`-EMSm$>t`m8Y5TM z_0C_e%871i?DXFYJOnEFgRoaHvW)l`4W#A(3A83oly~f&&sw-;+f&;l?5KrS^DP0* z^z3(nftOd);INtT3x=*`5VwiMC!{KL1Ye-iTT2JD@o$I?zeHNYE4kMS`e+IumVPVH zpd83Iy1t3NlA_Ys*Ed?XC|vdv)@?`&E7GB#by z0HgOmE@1c%v~#v$tL~B0Y7skf-%hHZ`_WN3(d6Kdm&1_#!pQI-e|475fbi?t=S4dU zexHn%O85o%H?|MV55$*0WJFj^VU14ou1xqX-t#5OB z1tg}*7q_(-ceYr)9sO4J#ngnvdN)dvEYDY8Ucg09(@Wb5gq_(f<=~_HpG3J>lf9#R?{Q z_3zPEYAyU9`&4QcEZn2XtFEKMDFJHoDuSB4g#T;uTJ6EFKFQ7cs}^6N`*#uSvhdYk z0)euzzcTa+mA^QXsyMjEB{J(20=-rb=*9^Ga*2kpuy+=Z18{g0Kjv=gIF^3%+ApqnkfVZ78mYMDw^LK5axQIK>Obh z%^eL*tWEzvnBPSIVTA_f{k#2U-TUpU#r(gV7XBt?*-+FB^q=}aaOl3qj}(H{Kn_{0 z$D#OL_G9K6D6u`Xs*+D|FtCu$dNK%G1J@()-+U$j0M!$q8$1+<2T5!oegwi7dM@ii z8I_@oEKh)j2#>%wLWq##28u^8$%fuyFVrk~3vCU~CtzgcM=&2U1w^v}?GgNMj+Fmp zCc}6HD`Eg4?Tu)Ea`TKe0%32T|CYx!F+S=)$x-p7Fc$pZIE2TP6%gfyKTY$0k_iCl zp1?Z@AB)p(B7fxlH(D|PK=A}fMDYj=BSnX_H~ptxO+Z*j&c}K+(>?0{8wLgdV0fbM z$M>kOh=BwdWygTnH~(pff8UvfzB2nnAxYv<;f)XhWZ*CO-`5WQ_r`rvd;~X1V?qd9 z{xCmr?R>)Qto8`jZ~E=&N%L6mCmw@Oz`hz#Fe#+J1^W^BUvB^?=xJx1eFyoVP75Jx zMWgsV4*b^z0P0;z_=M5i03z2)_Xzqe|IecU^;P`4{eBdz4IweDq>p0;q_PzVn`{XA z+A8|z{COJ?md*rHnM(~(YQuRXdMl1XS^#Cbf{rFa|KWk|Yy7ZHAA!p{#E_0Qv_Ayn zPy$>FsGJdk*G~0ECfE*y1z164B#<6M0tj*EUu+Uo9&i1~G2hPcSlAP5{gc8PoFSAQ zQhx~FcK~4*+#VGRJD467|Fzr${-+xfdOenm*-7|EnYj}Pd-MS+V}#gul0GW`Yta8+ z<$ZrhX(!hsC|r!&+8f&9&!GOi0#B;e9R`8vlKsQ3&;^A367g8Ih%WX=#s3-?pq=pP z6CxE21yVtNbzwgO-(iYOWmOdctN#mogNCnpKg8y(vLgg|o&?aDjBvs)-3ZNt1@8{sZUrA6- h@+Z8@?GWTTO8hq<1ZbxP0N9~_&#?digO1;4{|~P(215V< delta 25459 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 Q;xN7w3-T)%HFuf+2RXCqK>z>% diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9f34c5b3..4d183535 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sun May 10 21:57:58 CEST 2015 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-2.11-all.zip +distributionUrl=http\://services.gradle.org/distributions/gradle-3.5.1-all.zip +distributionSha256Sum=69d99ade952de3727b65a88f3188ee72231ff4e28c2d00aacfc96a42c6d6f303 diff --git a/gradlew b/gradlew index 91a7e269..34c4fe99 100755 --- a/gradlew +++ b/gradlew @@ -6,6 +6,12 @@ ## ############################################################################## +if [ "$REPRODUCIBLE_BUILD" == "1" ] && [ -f ./gradle/reprod/setup.sh ] && [ "$1" != "-Preprod" ]; then + ./gradle/reprod/setup.sh || exit + ./gradlew -Preprod "$@" + exit +fi + # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS="" @@ -42,11 +48,6 @@ case "`uname`" in ;; esac -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - # Attempt to set APP_HOME # Resolve links: $0 may be a link PRG="$0" @@ -61,9 +62,9 @@ while [ -h "$PRG" ] ; do fi done SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- +cd "`dirname \"$PRG\"`/" >/dev/null APP_HOME="`pwd -P`" -cd "$SAVED" >&- +cd "$SAVED" >/dev/null CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -114,6 +115,7 @@ fi if $cygwin ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` diff --git a/gradlew.bat b/gradlew.bat index aec99730..72d362da 100755 --- a/gradlew.bat +++ b/gradlew.bat @@ -46,7 +46,7 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windowz variants +@rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args if "%@eval[2+2]" == "4" goto 4NT_args diff --git a/settings.gradle b/settings.gradle index 28830758..bac5accf 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,5 @@ -include 'ReplayStudio' \ No newline at end of file +include 'ReplayStudio' + +if (System.getenv('REPRODUCIBLE_BUILD') == '1') { + rootProject.buildFileName = 'gradle/reprod/tmp/build.gradle' +} From c561a3fa5a09f43949d213b8c0465440d3406a16 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Fri, 25 Aug 2017 21:03:27 +0200 Subject: [PATCH 03/53] 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 From acd03c0ee345ed34d95149594dc3341bf0374816 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Fri, 25 Aug 2017 23:07:04 +0200 Subject: [PATCH 04/53] OSX has neither "xargs -r" nor "sha256sum" --- gradle/reprod/setup.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index 28ca6895..e6db42eb 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -4,8 +4,10 @@ set -x cd gradle/reprod +SHA256SUM="sha256sum" +command -v "$SHA256SUM" > /dev/null 2>&1 || SHA256SUM="shasum -a 256" # OSX sha256val () { - sha256sum $1 | cut -d' ' -f1 + $SHA256SUM $1 | cut -d' ' -f1 } setup_dep () { @@ -30,7 +32,8 @@ setup_dep () { pushd "deps/$dep" git reset --hard "$commit" - find ../../patches/$dep/ -name *.patch | sort | xargs -r git am + patches=$(find ../../patches/$dep/ -name *.patch | sort) + [ "$patches" != "" ] && echo "$patches" | xargs git am git reset --soft "$commit" # Because forgegradle includes the commit hash in the jar rm -rf gradle/wrapper gradlew From 95fc9a524835533a397e7bf812cde16105e9753e Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sat, 26 Aug 2017 18:38:06 +0200 Subject: [PATCH 05/53] Build FG SNAPSHOT deps manually --- ...radle-to-build-reproducible-archives.patch | 28 ++++ ...ace-plugins-with-manually-built-ones.patch | 28 ++++ ...APSHOT-deps-with-manually-built-ones.patch | 86 +++++++++++ ...radle-to-build-reproducible-archives.patch | 30 ++++ ...-non-essential-parts-of-build.gradle.patch | 79 ++++++++++ ...-Replace-groovy-dep-with-localGroovy.patch | 25 ++++ ...n-essential-parts-and-shade-manually.patch | 127 ++++++++++++++++ ...radle-to-build-reproducible-archives.patch | 30 ++++ ...radle-to-build-reproducible-archives.patch | 30 ++++ ...-non-essential-parts-of-build.gradle.patch | 141 ++++++++++++++++++ .../srg2source/0003-Manually-shade-deps.patch | 25 ++++ gradle/reprod/setup.sh | 25 +++- 12 files changed, 646 insertions(+), 8 deletions(-) create mode 100644 gradle/reprod/patches/forgeflower/0001-Configure-gradle-to-build-reproducible-archives.patch create mode 100644 gradle/reprod/patches/forgeflower/0002-Replace-plugins-with-manually-built-ones.patch create mode 100644 gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch create mode 100644 gradle/reprod/patches/gitpatcher/0001-Configure-gradle-to-build-reproducible-archives.patch create mode 100644 gradle/reprod/patches/gitpatcher/0002-Remove-non-essential-parts-of-build.gradle.patch create mode 100644 gradle/reprod/patches/gitpatcher/0003-Replace-groovy-dep-with-localGroovy.patch create mode 100644 gradle/reprod/patches/mcinjector/0001-Remove-non-essential-parts-and-shade-manually.patch create mode 100644 gradle/reprod/patches/mcinjector/0002-Configure-gradle-to-build-reproducible-archives.patch create mode 100644 gradle/reprod/patches/srg2source/0001-Configure-gradle-to-build-reproducible-archives.patch create mode 100644 gradle/reprod/patches/srg2source/0002-Remove-non-essential-parts-of-build.gradle.patch create mode 100644 gradle/reprod/patches/srg2source/0003-Manually-shade-deps.patch 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 new file mode 100644 index 00000000..41679570 --- /dev/null +++ b/gradle/reprod/patches/forgeflower/0001-Configure-gradle-to-build-reproducible-archives.patch @@ -0,0 +1,28 @@ +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/forgeflower/0002-Replace-plugins-with-manually-built-ones.patch b/gradle/reprod/patches/forgeflower/0002-Replace-plugins-with-manually-built-ones.patch new file mode 100644 index 00000000..0672baf4 --- /dev/null +++ b/gradle/reprod/patches/forgeflower/0002-Replace-plugins-with-manually-built-ones.patch @@ -0,0 +1,28 @@ +From 3c7c6fa56f1b70129c0eb4c178aff3805bc8f03a Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Sat, 26 Aug 2017 17:12:58 +0200 +Subject: [PATCH] Replace plugins with manually built ones + +--- + build.gradle | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/build.gradle b/build.gradle +index da78c2f..6dd1fb4 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -1,6 +1,9 @@ +-plugins { +- id 'net.minecrell.gitpatcher' version '0.9.0' ++buildscript { ++ dependencies { ++ classpath files('../gitpatcher.jar') ++ } + } ++apply plugin: 'net.minecrell.gitpatcher' + + patches { + submodule = 'FernFlower' +-- +2.5.5 + diff --git a/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch b/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch new file mode 100644 index 00000000..65d5b87c --- /dev/null +++ b/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch @@ -0,0 +1,86 @@ +From 2309fc9515d4010c5d9db89008660e3e60ea529b Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Sat, 26 Aug 2017 17:40:48 +0200 +Subject: [PATCH] Replace SNAPSHOT deps with manually built ones + +--- + build.gradle | 49 +++---------------------------------------------- + 1 file changed, 3 insertions(+), 46 deletions(-) + +diff --git a/build.gradle b/build.gradle +index bfadecd..774a015 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -67,7 +67,7 @@ dependencies { + shade 'com.nothome:javaxdelta:2.0.1' // GDIFF implementation for BinPatches + shade 'com.google.code.gson:gson:2.2.4' // Used instead of Argo for buuilding changelog. + shade 'com.github.tony19:named-regexp:0.2.3' // 1.7 Named regexp features +- shade 'net.minecraftforge:forgeflower:1.0.342-SNAPSHOT' // Fernflower Forge edition ++ shade files('../forgeflower.jar') // Fernflower Forge edition + + shade 'net.md-5:SpecialSource:1.7.4' // deobf and reobs + // compile 'net.md-5:SpecialSource:1.7.4' // when md5 publishes +@@ -78,8 +78,8 @@ dependencies { + + // mcp stuff + shade 'de.oceanlabs.mcp:RetroGuard:3.6.6' +- shade 'de.oceanlabs.mcp:mcinjector:3.4-SNAPSHOT' +- shade 'net.minecraftforge.srg2source:Srg2Source:4.0-SNAPSHOT' ++ shade files('../mcinjector.jar') ++ shade files('../srg2source.jar') + + //Stuff used in the GradleStart classes + compileOnly 'com.mojang:authlib:1.5.16' +@@ -91,49 +91,6 @@ dependencies { + dependencyVerification { + includedConfigurations += [configurations.shade, configurations.testCompile] + verify = [ +- 'org.ow2.asm:asm-debug-all:5.1:f7ac3f642c36c406543bb56ae3db3a53f263f71bd857b04709986e2d5798c8c4', +- 'net.sf.opencsv:opencsv:2.3:dc0ba5bff6140dc92339973026a0ecbddc2a3b01bdd46ed9d16becc2f6d78de6', +- 'com.cloudbees:diff4j:1.1:e6509db2167c983d254d3530c66a060443e91a6ca38df9fdc4ef2a88ad813fa5', +- 'com.github.abrarsyed.jastyle:jAstyle:1.3:4cad4ee2f1c379fa1f6496912fe026d8a4f2febf0a140ff867206b00a22f988f', +- 'net.sf.trove4j:trove4j:2.1.0:294fb88c272598b9a5dcae15f13d228e64134256de941fbc28917a994beeb075', +- 'com.github.jponge:lzma-java:1.3:75ccc0e24d37ed5b8916e1bcffad1e067c2b1cfa21b635287f968db5c3c1963a', +- 'com.nothome:javaxdelta:2.0.1:a661dfcb749053fc26eada2a0a8e619a8ead1ca9eda29e1698687aa2cdd80152', +- 'com.google.code.gson:gson:2.2.4:c0328cd07ca9e363a5acd00c1cf4afe8cf554bd6d373834981ba05cebec687fb', +- 'com.github.tony19:named-regexp:0.2.3:c6ebd74cd6108b8c372c95b842725ee5bd6d3303ba26cb00f18bc92f80b47956', +- 'net.minecraftforge:forgeflower:1.0.342-SNAPSHOT:ad7e63b8732da2c10d5923cc567386b8f172848259c3c2627298e6cd702df938', +- 'net.md-5:SpecialSource:1.7.4:b47c5d5810643426a3147ddb2195ef2ab67c80b167e7c2ac64a5d0dee8c030dd', +- 'org.apache.httpcomponents:httpclient:4.3.3:9844cc9b5440d65a88d28bcba9d771374d2dfdab898848cda164611091633013', +- '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:6c9134708589bf7ea8300b2c077445a13d02446dcfd24af78240388fde38845e', +- 'org.jvnet.localizer:localizer:1.12:212f6eaa0491dd7359dc33c3a72e82a23b096e1890d984b4d92395abc9a6bf7f', +- 'commons-io:commons-io:1.4:a7f713593007813bf07d19bd1df9f81c86c0719e9a0bb2ef1b98b78313fc940d', +- 'trove:trove:1.0.2:ad68a86cfd0255a2bc0525ce11ec49640caea7e34ff91eb89c3193dcccd77f05', +- 'net.sf.jopt-simple:jopt-simple:5.0.1:9f0c8d50fa4b79b6ff1502dbec8502179d6b9497cacbe17a13074001aed537ec', +- 'org.apache.httpcomponents:httpcore:4.3.2:abd02320e2356f89d054dae4cf02306bef20a9cf7865b3ac94ec7552b4f1528b', +- 'commons-logging:commons-logging:1.1.3:70903f6fc82e9908c8da9f20443f61d90f0870a312642991fe8462a0b9391784', +- 'commons-codec:commons-codec:1.6:54b34e941b8e1414bd3e40d736efd3481772dc26db3296f6aa45cec9f6203d86', +- 'org.eclipse.equinox:common:3.6.200-v20130402-1505:843414d0e457898b1615e4c9118f86ae0cf30dd5166b8b0a1d206fbdab5fbbae', +- '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', +- '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', +- 'org.eclipse.equinox:org.eclipse.equinox.common:3.6.0:32b046de57df2f4887fc5a2c343740d9d12c7fe17541e2cede73cfa4ccbc2436', +- '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', +- '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', +- 'org.eclipse.core:jobs:3.6.0-v20140424-0053:ef971ecb154fba0cc06d913448640fb2e5ab3f9079c1c7854385d1c30d81a94f', +- 'org.eclipse.equinox:preferences:3.5.200-v20140224-1527:6498d32ab6503b49a44e0a0bfe1c2ac28ffb7e8f88acbdb4dda89d73092d8ca7', +- 'org.eclipse.core:contenttype:3.4.200-v20140207-1251:4dd6ec1376693bd8ac4e2ceacc7be70880920978f3fef31db4968e6ade001c87', +- 'org.eclipse.core:runtime:3.10.0-v20140318-2214:363ad8af4d8fc7f208b6fa640e490c7ba84b2aa78c26809e569bb1b0737ce9cb', +- 'junit:junit:4.12:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a', +- 'org.hamcrest:hamcrest-core:1.3:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9', + ] + } + +-- +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 new file mode 100644 index 00000000..34b7ca5c --- /dev/null +++ b/gradle/reprod/patches/gitpatcher/0001-Configure-gradle-to-build-reproducible-archives.patch @@ -0,0 +1,30 @@ +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/gitpatcher/0002-Remove-non-essential-parts-of-build.gradle.patch b/gradle/reprod/patches/gitpatcher/0002-Remove-non-essential-parts-of-build.gradle.patch new file mode 100644 index 00000000..42417bb2 --- /dev/null +++ b/gradle/reprod/patches/gitpatcher/0002-Remove-non-essential-parts-of-build.gradle.patch @@ -0,0 +1,79 @@ +From ff9f001be5beca28f04ec0669a300b9c6d06836c Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Sat, 26 Aug 2017 17:01:51 +0200 +Subject: [PATCH 2/3] Remove non-essential parts of build.gradle + +--- + build.gradle | 52 ---------------------------------------------------- + 1 file changed, 52 deletions(-) + +diff --git a/build.gradle b/build.gradle +index bc6d5bb..07d5ce5 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -1,14 +1,6 @@ + plugins { + id 'java-gradle-plugin' + id 'groovy' +- +- id 'eclipse' +- id 'idea' +- +- id 'maven-publish' +- id 'com.gradle.plugin-publish' version '0.9.5' +- +- id 'net.minecrell.licenser' version '0.3' + } + + group = 'net.minecrell' +@@ -37,47 +29,3 @@ tasks.withType(GroovyCompile) { + groovyOptions.optimizationOptions.indy = true + } + +-license { +- header = file('LICENSE') +- include '**/*.java' +- include '**/*.groovy' +-} +- +-task sourceJar(type: Jar) { +- classifier = 'sources' +- from sourceSets.main.allSource +-} +- +-publishing { +- publications { +- mavenJava(MavenPublication) { +- from components.java +- +- artifact sourceJar +- +- repositories { +- maven { +- url = System.getenv('REPO_' + (version.endsWith('-SNAPSHOT') ? 'SNAPSHOTS' : 'RELEASES')) ?: "$buildDir/repo" +- } +- } +- } +- } +-} +- +-pluginBundle { +- website = 'https://github.com/Minecrell/gitpatcher' +- vcsUrl = website +- description = project.description +- tags = ['git'] +- +- plugins { +- gitpatcherPlugin { +- id = 'net.minecrell.gitpatcher' +- displayName = 'gitpatcher' +- } +- } +-} +- +-task wrapper(type: Wrapper) { +- gradleVersion = '3.3' +-} +-- +2.5.5 + diff --git a/gradle/reprod/patches/gitpatcher/0003-Replace-groovy-dep-with-localGroovy.patch b/gradle/reprod/patches/gitpatcher/0003-Replace-groovy-dep-with-localGroovy.patch new file mode 100644 index 00000000..9e196b25 --- /dev/null +++ b/gradle/reprod/patches/gitpatcher/0003-Replace-groovy-dep-with-localGroovy.patch @@ -0,0 +1,25 @@ +From b0ca1d31124a2c27f8e29d44cf3f59b1bb1f070e Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Sat, 26 Aug 2017 17:07:06 +0200 +Subject: [PATCH 3/3] Replace groovy dep with localGroovy() + +--- + build.gradle | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/build.gradle b/build.gradle +index 07d5ce5..1515570 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -22,7 +22,7 @@ repositories { + } + + dependencies { +- compileOnly'org.codehaus.groovy:groovy-all:2.4.7:indy' ++ compile localGroovy() + } + + tasks.withType(GroovyCompile) { +-- +2.5.5 + diff --git a/gradle/reprod/patches/mcinjector/0001-Remove-non-essential-parts-and-shade-manually.patch b/gradle/reprod/patches/mcinjector/0001-Remove-non-essential-parts-and-shade-manually.patch new file mode 100644 index 00000000..b84754e6 --- /dev/null +++ b/gradle/reprod/patches/mcinjector/0001-Remove-non-essential-parts-and-shade-manually.patch @@ -0,0 +1,127 @@ +From 85e6315018dd8ff9f613b1f0c4d00c5b0c6c37d6 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Sat, 26 Aug 2017 17:27:06 +0200 +Subject: [PATCH 1/2] Remove non-essential parts and shade manually + +--- + build.gradle | 92 +----------------------------------------------------------- + 1 file changed, 1 insertion(+), 91 deletions(-) + +diff --git a/build.gradle b/build.gradle +index 2e5f949..b6c63bb 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -1,15 +1,5 @@ +-buildscript { +- repositories { +- mavenCentral() +- } +- dependencies { +- classpath 'eu.appsatori:gradle-fatjar-plugin:0.2-rc1' +- } +-} +- + apply plugin: 'java' + apply plugin: 'eclipse' +-apply plugin: 'fatjar' + apply plugin: 'maven' + + group = 'de.oceanlabs.mcp' +@@ -22,93 +12,13 @@ repositories { + } + + jar { ++ from ({files(configurations.compile).collect {it.isDirectory() ? filesTree(it) : zipTree(it)}}) + manifest.attributes('Main-Class': 'de.oceanlabs.mcp.mcinjector.MCInjector') + } +-fatJar { +- classifier 'fatjar' +- manifest.attributes('Main-Class': 'de.oceanlabs.mcp.mcinjector.MCInjector') +-} +- +-artifacts { +- archives jar +- archives fatJar +-} + + dependencies { + compile 'org.ow2.asm:asm-debug-all:5.0.4' + compile 'net.sf.jopt-simple:jopt-simple:4.5' + compile 'com.google.code.gson:gson:2.2.4' + } +-configurations { deployJars } +-uploadArchives { +- repositories { +- add project.repositories.mavenLocal() +- } +- repositories.mavenDeployer { +- configuration = configurations.deployJars + +- if (project.hasProperty("filesmaven")) { +- logger.info('Publishing to files server') +- repository(url: project.filesmaven.url) { +- authentication(userName: project.filesmaven.username, privateKey: project.filesmaven.key) +- } +- } else { +- logger.info('Publishing to repo folder') +- repository(url: 'file://localhost/' + project.file('repo').getAbsolutePath()) +- } +- +- pom { +- groupId = project.group +- version = project.version +- artifactId = project.archivesBaseName +- } +- pom.project { +- name project.archivesBaseName +- packaging 'jar' +- description 'Java class metadata injector' +- url 'https://github.com/ModCoderPack/MCInjector' +- +- scm { +- url 'https://github.com/ModCoderPack/MCInjector' +- connection 'scm:git:git://github.com/ModCoderPack/MCInjector.git' +- developerConnection 'scm:git:git@github.com:ModCoderPack/MCInjector.git' +- } +- +- issueManagement { +- system 'github' +- url 'https://github.com/ModCoderPack/MCInjector/issues' +- } +- +- licenses { +- license { +- name '' +- url '' +- distribution 'repo' +- } +- } +- +- developers { +- developer { +- id 'Fesh0r' +- name 'Fesh0r' +- roles { role 'developer' } +- } +- developer { +- id 'Searge' +- name 'Searge' +- roles { role 'developer' } +- } +- developer { +- id 'cpw' +- name 'cpw' +- roles { role 'developer' } +- } +- developer { +- id 'LexManos' +- name 'Lex Manos' +- roles { role 'developer' } +- } +- } +- } +- } +-} +-- +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 new file mode 100644 index 00000000..8803cda9 --- /dev/null +++ b/gradle/reprod/patches/mcinjector/0002-Configure-gradle-to-build-reproducible-archives.patch @@ -0,0 +1,30 @@ +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/srg2source/0001-Configure-gradle-to-build-reproducible-archives.patch b/gradle/reprod/patches/srg2source/0001-Configure-gradle-to-build-reproducible-archives.patch new file mode 100644 index 00000000..f07e1d5d --- /dev/null +++ b/gradle/reprod/patches/srg2source/0001-Configure-gradle-to-build-reproducible-archives.patch @@ -0,0 +1,30 @@ +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 new file mode 100644 index 00000000..b0a09fd1 --- /dev/null +++ b/gradle/reprod/patches/srg2source/0002-Remove-non-essential-parts-of-build.gradle.patch @@ -0,0 +1,141 @@ +From 29d6f245fb91762580540180d4ec6ca4abb18322 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Sat, 26 Aug 2017 17:35:04 +0200 +Subject: [PATCH 2/2] Remove non-essential parts of build.gradle + +--- + build.gradle | 103 ----------------------------------------------------------- + 1 file changed, 103 deletions(-) + +diff --git a/build.gradle b/build.gradle +index fda0b61..eefeafe 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -1,16 +1,3 @@ +-buildscript { +- repositories { +- mavenCentral() +- maven { +- name = "forge" +- url = "http://files.minecraftforge.net/maven" +- } +- maven { +- name = "eclipse" +- url = "https://repo.eclipse.org/content/groups/eclipse/" +- } +- } +-} + apply plugin: 'java' + apply plugin: 'idea' + apply plugin: 'eclipse' +@@ -29,10 +16,6 @@ tasks.withType(AbstractArchiveTask) { + fileMode = 0664 + } + +-configurations { +- deployerJars +-} +- + dependencies { + testCompile "junit:junit:4.12" + +@@ -56,9 +39,6 @@ dependencies { + + // Potential Eclipse AST replacement (not used yet) + //compile 'fr.inria.gforge.spoon:spoon-core:5.1.0' +- +- // maven deployer jar +- deployerJars "org.apache.maven.wagon:wagon-ssh:2.2" + } + + repositories { +@@ -84,86 +64,3 @@ jar { + exclude 'data/**' + } + +-task javadocJar(type: Jar, dependsOn: javadoc) { +- classifier = 'javadoc' +- from 'build/docs/javadoc' +-} +- +-task sourcesJar(type: Jar) { +- from sourceSets.main.allSource +- classifier = 'sources' +-} +- +-artifacts { +- archives jar +- archives javadocJar +- archives sourcesJar +-} +- +-uploadArchives { +- repositories.mavenDeployer { +- +- dependsOn 'build' +- +- if (project.hasProperty('forgeMavenPass')) +- { +- repository(url: "http://files.minecraftforge.net/maven/manage/upload") { +- authentication(userName: "forge", password: project.getProperty('forgeMavenPass')) +- } +- } +- else +- { +- // local repo folder. Might wanna juset use gradle install if you wanans end it to maven-local +- repository(url: 'file://localhost/' + project.file('repo').getAbsolutePath()) +- } +- +- pom { +- groupId = project.group +- version = project.version +- artifactId = project.archivesBaseName +- project { +- name project.archivesBaseName +- packaging 'jar' +- description 'Srg2Source library for ForgeGradle' +- url 'https://github.com/MinecraftForge/Srg2Source' +- +- scm { +- url 'https://github.com/MinecraftForge/Srg2Source' +- connection 'scm:git:git://github.com/MinecraftForge/Srg2Source.git' +- developerConnection 'scm:git:git@github.com:MinecraftForge/Srg2Source.git' +- } +- +- issueManagement { +- system 'github' +- url 'https://github.com/MinecraftForge/Srg2Source/issues' +- } +- +- licenses { +- license { +- name 'The BSD 3-Clause License' +- url 'http://opensource.org/licenses/BSD-3-Clause' +- distribution 'repo' +- } +- } +- +- developers { +- developer { +- id 'agaricusb' +- name 'Agaricusb' +- roles { role 'developer' } +- } +- developer { +- id 'LexManos' +- name 'Lex Manos' +- roles { role 'developer' } +- } +- developer { +- id 'AbrarSyed' +- name 'Abrar Syed' +- roles { role 'developer' } +- } +- } +- } +- } +- } +-} +-- +2.5.5 + diff --git a/gradle/reprod/patches/srg2source/0003-Manually-shade-deps.patch b/gradle/reprod/patches/srg2source/0003-Manually-shade-deps.patch new file mode 100644 index 00000000..dda26a73 --- /dev/null +++ b/gradle/reprod/patches/srg2source/0003-Manually-shade-deps.patch @@ -0,0 +1,25 @@ +From 7266eb65165cfe18ea21a3c183da4efc37ff54cf Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Sat, 26 Aug 2017 17:46:46 +0200 +Subject: [PATCH] Manually shade deps + +--- + build.gradle | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/build.gradle b/build.gradle +index eefeafe..368f6be 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -61,6 +61,8 @@ jar { + } + + jar { ++ duplicatesStrategy = DuplicatesStrategy.EXCLUDE ++ from (files(configurations.compile).collect {it.isDirectory() ? filesTree(it) : zipTree(it)}) + exclude 'data/**' + } + +-- +2.5.5 + diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index e6db42eb..1bfdb276 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -32,6 +32,7 @@ setup_dep () { pushd "deps/$dep" git reset --hard "$commit" + git submodule update --init --recursive patches=$(find ../../patches/$dep/ -name *.patch | sort) [ "$patches" != "" ] && echo "$patches" | xargs git am git reset --soft "$commit" # Because forgegradle includes the commit hash in the jar @@ -45,7 +46,7 @@ setup_dep () { chmod +x gradlew ./gradlew build -x test - actual_hash=$(sha256val "build/libs/$jar") + actual_hash=$(sha256val "$jar") if [ "$actual_hash" != "$jarhash" ]; then echo "Failed to verify checksum of build artifact of dependency: $dep" echo "Expected: $jarhash" @@ -53,21 +54,29 @@ setup_dep () { exit 1 fi - cp "build/libs/$jar" "../$dep.jar" + cp "$jar" "../$dep.jar" popd } # Required for all -setup_dep "gradle-witness" "https://github.com/ReplayMod/gradle-witness.git" "c162a15841c2eba54b182fa81733c0aa9227f023" "gradle-witness.jar" "5e9ce687248029bf6364010168a65a4ad66fcb712dbd5ba69c59697ef564964b" +setup_dep "gradle-witness" "https://github.com/ReplayMod/gradle-witness.git" "c162a15841c2eba54b182fa81733c0aa9227f023" "build/libs/gradle-witness.jar" "5e9ce687248029bf6364010168a65a4ad66fcb712dbd5ba69c59697ef564964b" # Required for mixin -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" +setup_dep "shadow" "https://github.com/johnrengelman/shadow.git" "60d0f28103be076dc991a624bf79ca7a13835973" "build/libs/shadow.jar" "eec0417a8cd44457551c80335cd384a187647b6429ed7b5ae3ce1b26f78a2c1f" +setup_dep "fernflower" "https://github.com/fesh0r/fernflower.git" "85f61bee8194ab69afa746b965973a18eda67608" "build/libs/fernflower.jar" "577c2c4e04f0026675cacb25ec525f2ccba5de2eecac525b28bed18f9ccfd790" + +# Required for forgeflower +setup_dep "gitpatcher" "https://github.com/Minecrell/gitpatcher.git" "e815821d516bac0da01d579575f895b2a8abefe7" "build/libs/gitpatcher-0.9.0.jar" "95cc738b92b5f37466593880177e236519c9b2f10e3d38f97e36fd3ad3bd4448" + +# Required for forgegradle +setup_dep "forgeflower" "https://github.com/MinecraftForge/ForgeFlower.git" "32a04b9840fb6b10a8e2c178af86e20bdb85e366" "ForgeFlower/build/libs/forgeflower-1.0.342-SNAPSHOT.jar" "4b32e3140decbe39eaf77399f0390fbece6b3a1f3ff3424e4754adefe1c7c932" +setup_dep "mcinjector" "https://github.com/ModCoderPack/MCInjector.git" "7258466461baf7dc4f313b06b0d589407e4e1fba" "build/libs/mcinjector-3.4-SNAPSHOT.jar" "98cd0c13030aa8103585621fdab5db6b74ea0db7b8b30bc74061e7b5d314aa01" +setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "ea4ea624672e8b75fb2a78f0fb9105db13d5a4a6" "build/libs/Srg2Source-4.0-SNAPSHOT.jar" "575e5fa1d6834edb34e0bf1d56ae7237b02b2d87a6e2d30c8605d5287fd2ef53" # Required for RM -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" +setup_dep "mixingradle" "https://github.com/SpongePowered/MixinGradle.git" "3d81c8e202ec435056fb2068fdc34cfefa99be2d" "build/libs/mixingradle-0.4-SNAPSHOT.jar" "8b3508867128a5d564631635dff898a36f9aca8db54b7bb3af6f4924e3f4bead" +setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "a228a836a2dc5ce546d2d53c48760f52f082d7ad" "build/libs/ForgeGradle-2.3-SNAPSHOT.jar" "96d290b4297805d401251334680217cafa7cf8806ac0b3a1d09639d5c1b8f9f7" +setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "build/libs/mixin-0.6.11-SNAPSHOT.jar" "8ec6ce24b8192f043976344305ba6afbc35b052056f1559ca5914a77c5eae71d" rm -rf tmp mkdir tmp From ad3ff3e8ef012a9cc22bc2e678313775ca018ccb Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Mon, 28 Aug 2017 14:50:27 +0200 Subject: [PATCH 06/53] Move gradle config for reproducible builds into init.gradle file --- gradle/reprod/init.gradle | 8 +++++ .../fernflower/0001-Add-build.gradle.patch | 9 +----- ...radle-to-build-reproducible-archives.patch | 28 ----------------- ...radle-to-build-reproducible-archives.patch | 30 ------------------- ...Manually-force-reproducible-archives.patch | 2 +- ...radle-to-build-reproducible-archives.patch | 30 ------------------- ...radle-to-build-reproducible-archives.patch | 27 ----------------- ...radle-to-build-reproducible-archives.patch | 30 ------------------- ...radle-to-build-reproducible-archives.patch | 30 ------------------- ...replace-all-buildscript-dependencies.patch | 4 +-- .../mixin/0004-Disable-checkstyle.patch | 4 +-- ...radle-to-build-reproducible-archives.patch | 30 ------------------- ...radle-to-build-reproducible-archives.patch | 28 ----------------- ...radle-to-build-reproducible-archives.patch | 30 ------------------- ...-non-essential-parts-of-build.gradle.patch | 6 +--- .../shadow/0004-Manually-shade-deps.patch | 2 +- ...radle-to-build-reproducible-archives.patch | 30 ------------------- ...-non-essential-parts-of-build.gradle.patch | 10 +++---- gradle/reprod/setup.sh | 8 +++-- gradlew | 3 +- 20 files changed, 28 insertions(+), 321 deletions(-) create mode 100644 gradle/reprod/init.gradle delete mode 100644 gradle/reprod/patches/forgeflower/0001-Configure-gradle-to-build-reproducible-archives.patch delete mode 100644 gradle/reprod/patches/forgegradle/0001-Configure-gradle-to-build-reproducible-archives.patch delete mode 100644 gradle/reprod/patches/gitpatcher/0001-Configure-gradle-to-build-reproducible-archives.patch delete mode 100644 gradle/reprod/patches/gradle-witness/0001-Configure-gradle-to-build-reproducible-archives.patch delete mode 100644 gradle/reprod/patches/mcinjector/0002-Configure-gradle-to-build-reproducible-archives.patch delete mode 100644 gradle/reprod/patches/mixin/0001-Configure-gradle-to-build-reproducible-archives.patch delete mode 100644 gradle/reprod/patches/mixingradle/0001-Configure-gradle-to-build-reproducible-archives.patch delete mode 100644 gradle/reprod/patches/replaymod/0005-Configure-gradle-to-build-reproducible-archives.patch delete mode 100644 gradle/reprod/patches/shadow/0001-Configure-gradle-to-build-reproducible-archives.patch delete mode 100644 gradle/reprod/patches/srg2source/0001-Configure-gradle-to-build-reproducible-archives.patch 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 From 25823e1081b316e66370b7a77d7cb5bd9b3003d7 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Mon, 28 Aug 2017 17:52:15 +0200 Subject: [PATCH 07/53] Patch FG to work with proxy-witness --- ...tps-urls-with-http-for-proxy-witness.patch | 75 +++++++++++++++++++ gradle/reprod/setup.sh | 2 +- 2 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 gradle/reprod/patches/forgegradle/0001-Replace-https-urls-with-http-for-proxy-witness.patch diff --git a/gradle/reprod/patches/forgegradle/0001-Replace-https-urls-with-http-for-proxy-witness.patch b/gradle/reprod/patches/forgegradle/0001-Replace-https-urls-with-http-for-proxy-witness.patch new file mode 100644 index 00000000..d4f77ab6 --- /dev/null +++ b/gradle/reprod/patches/forgegradle/0001-Replace-https-urls-with-http-for-proxy-witness.patch @@ -0,0 +1,75 @@ +From 7127699cb761a518cce8872b0b78694e357f21fe Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Mon, 28 Aug 2017 17:50:38 +0200 +Subject: [PATCH] Replace https urls with http for proxy-witness + +--- + .../java/net/minecraftforge/gradle/common/BasePlugin.java | 13 ++++++++++--- + .../java/net/minecraftforge/gradle/common/Constants.java | 4 ++-- + 2 files changed, 12 insertions(+), 5 deletions(-) + +diff --git a/src/main/java/net/minecraftforge/gradle/common/BasePlugin.java b/src/main/java/net/minecraftforge/gradle/common/BasePlugin.java +index df369f1..e3e50c0 100644 +--- a/src/main/java/net/minecraftforge/gradle/common/BasePlugin.java ++++ b/src/main/java/net/minecraftforge/gradle/common/BasePlugin.java +@@ -393,6 +393,13 @@ public abstract class BasePlugin implements Plugin implements Plugin implements Plugin implements Plugin URLS_MCP_JSON = Arrays.asList( +-- +2.5.5 + diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index f76b50a9..237c4f7b 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -75,7 +75,7 @@ setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "ea4ea # Required for RM setup_dep "mixingradle" "https://github.com/SpongePowered/MixinGradle.git" "3d81c8e202ec435056fb2068fdc34cfefa99be2d" "build/libs/mixingradle-0.4-SNAPSHOT.jar" "8b3508867128a5d564631635dff898a36f9aca8db54b7bb3af6f4924e3f4bead" -setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "a228a836a2dc5ce546d2d53c48760f52f082d7ad" "build/libs/ForgeGradle-2.3-SNAPSHOT.jar" "96d290b4297805d401251334680217cafa7cf8806ac0b3a1d09639d5c1b8f9f7" +setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "a228a836a2dc5ce546d2d53c48760f52f082d7ad" "build/libs/ForgeGradle-2.3-SNAPSHOT.jar" "94bf0d8be7e68a3d9828c8208024c21f2c171663dd7d56b95b3459bfc67273c0" setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "build/libs/mixin-0.6.11-SNAPSHOT.jar" "8ec6ce24b8192f043976344305ba6afbc35b052056f1559ca5914a77c5eae71d" rm -rf tmp From c44de2b22a8760c8d3830ce5c94b8aaa49eca693 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Mon, 28 Aug 2017 16:23:29 +0200 Subject: [PATCH 08/53] Add http proxy for artifact verification, remove gradle-witness --- .gitignore | Bin 2534 -> 2558 bytes gradle/reprod/checksums.txt | 0 gradle/reprod/init.gradle | 12 ++ .../forgegradle/0005-Add-witness-plugin.patch | 87 -------------- ...APSHOT-deps-with-manually-built-ones.patch | 50 -------- .../mixin/0007-Add-witness-plugin.patch | 71 ------------ .../mixingradle/0003-Add-witness-plugin.patch | 44 ------- .../replaymod/0003-Add-witness-plugin.patch | 41 ------- ...004-Add-checksums-for-witness-plugin.patch | 109 ------------------ .../shadow/0003-Add-witness-plugin.patch | 49 -------- .../shadow/0004-Manually-shade-deps.patch | 4 +- gradle/reprod/setup.sh | 14 ++- 12 files changed, 23 insertions(+), 458 deletions(-) create mode 100644 gradle/reprod/checksums.txt delete mode 100644 gradle/reprod/patches/forgegradle/0005-Add-witness-plugin.patch delete mode 100644 gradle/reprod/patches/mixin/0007-Add-witness-plugin.patch delete mode 100644 gradle/reprod/patches/mixingradle/0003-Add-witness-plugin.patch delete mode 100644 gradle/reprod/patches/replaymod/0003-Add-witness-plugin.patch delete mode 100644 gradle/reprod/patches/replaymod/0004-Add-checksums-for-witness-plugin.patch delete mode 100644 gradle/reprod/patches/shadow/0003-Add-witness-plugin.patch diff --git a/.gitignore b/.gitignore index dfe6d6db9b8eba1c42d62377357ad8af64bc447d..b56d0cb77bb5f4a0fd006b9f50fcb8a275d0d71f 100644 GIT binary patch delta 32 mcmaDR{7+aSy(lpyCsn^FwV)_JMIT61RO;pAr*mz1#t8t{LJZdc delta 8 Pcmew-{7iVG#4}C+6Cne` diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt new file mode 100644 index 00000000..e69de29b diff --git a/gradle/reprod/init.gradle b/gradle/reprod/init.gradle index d5c717bf..1e309ff8 100644 --- a/gradle/reprod/init.gradle +++ b/gradle/reprod/init.gradle @@ -1,4 +1,16 @@ +def convertRepoToHttp = { repo -> + if (repo instanceof MavenArtifactRepository && repo.url.toString().startsWith('https://')) { + URL url = repo.url.toURL() + repo.url = new URL("http", url.getHost(), url.getPort(), url.getFile()).toURI() + } +} + allprojects { + buildscript { + repositories.all convertRepoToHttp + } + repositories.all convertRepoToHttp + tasks.withType(AbstractArchiveTask) { preserveFileTimestamps = false reproducibleFileOrder = true diff --git a/gradle/reprod/patches/forgegradle/0005-Add-witness-plugin.patch b/gradle/reprod/patches/forgegradle/0005-Add-witness-plugin.patch deleted file mode 100644 index 2db7e540..00000000 --- a/gradle/reprod/patches/forgegradle/0005-Add-witness-plugin.patch +++ /dev/null @@ -1,87 +0,0 @@ -From ffd1f38113d2ec550ae23be13df35c678bea5543 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 7 Aug 2017 19:53:15 +0200 -Subject: [PATCH 5/5] Add witness plugin - ---- - build.gradle | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 59 insertions(+) - -diff --git a/build.gradle b/build.gradle -index 0bf7941..d1530fd 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -1,7 +1,14 @@ -+buildscript { -+ dependencies { -+ classpath files('../gradle-witness.jar') -+ } -+} -+ - apply plugin: 'java' - apply plugin: 'idea' - apply plugin: 'eclipse' - apply plugin: 'maven' -+apply plugin: 'witness' - - group = 'net.minecraftforge.gradle' - version = '2.3-SNAPSHOT' -@@ -81,6 +88,55 @@ dependencies { - testCompile 'junit:junit:4.12' - } - -+dependencyVerification { -+ includedConfigurations += [configurations.shade, configurations.testCompile] -+ verify = [ -+ 'org.ow2.asm:asm-debug-all:5.1:f7ac3f642c36c406543bb56ae3db3a53f263f71bd857b04709986e2d5798c8c4', -+ 'net.sf.opencsv:opencsv:2.3:dc0ba5bff6140dc92339973026a0ecbddc2a3b01bdd46ed9d16becc2f6d78de6', -+ 'com.cloudbees:diff4j:1.1:e6509db2167c983d254d3530c66a060443e91a6ca38df9fdc4ef2a88ad813fa5', -+ 'com.github.abrarsyed.jastyle:jAstyle:1.3:4cad4ee2f1c379fa1f6496912fe026d8a4f2febf0a140ff867206b00a22f988f', -+ 'net.sf.trove4j:trove4j:2.1.0:294fb88c272598b9a5dcae15f13d228e64134256de941fbc28917a994beeb075', -+ 'com.github.jponge:lzma-java:1.3:75ccc0e24d37ed5b8916e1bcffad1e067c2b1cfa21b635287f968db5c3c1963a', -+ 'com.nothome:javaxdelta:2.0.1:a661dfcb749053fc26eada2a0a8e619a8ead1ca9eda29e1698687aa2cdd80152', -+ 'com.google.code.gson:gson:2.2.4:c0328cd07ca9e363a5acd00c1cf4afe8cf554bd6d373834981ba05cebec687fb', -+ 'com.github.tony19:named-regexp:0.2.3:c6ebd74cd6108b8c372c95b842725ee5bd6d3303ba26cb00f18bc92f80b47956', -+ 'net.minecraftforge:forgeflower:1.0.342-SNAPSHOT:ad7e63b8732da2c10d5923cc567386b8f172848259c3c2627298e6cd702df938', -+ 'net.md-5:SpecialSource:1.7.4:b47c5d5810643426a3147ddb2195ef2ab67c80b167e7c2ac64a5d0dee8c030dd', -+ 'org.apache.httpcomponents:httpclient:4.3.3:9844cc9b5440d65a88d28bcba9d771374d2dfdab898848cda164611091633013', -+ '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:6c9134708589bf7ea8300b2c077445a13d02446dcfd24af78240388fde38845e', -+ 'org.jvnet.localizer:localizer:1.12:212f6eaa0491dd7359dc33c3a72e82a23b096e1890d984b4d92395abc9a6bf7f', -+ 'commons-io:commons-io:1.4:a7f713593007813bf07d19bd1df9f81c86c0719e9a0bb2ef1b98b78313fc940d', -+ 'trove:trove:1.0.2:ad68a86cfd0255a2bc0525ce11ec49640caea7e34ff91eb89c3193dcccd77f05', -+ 'net.sf.jopt-simple:jopt-simple:5.0.1:9f0c8d50fa4b79b6ff1502dbec8502179d6b9497cacbe17a13074001aed537ec', -+ 'org.apache.httpcomponents:httpcore:4.3.2:abd02320e2356f89d054dae4cf02306bef20a9cf7865b3ac94ec7552b4f1528b', -+ 'commons-logging:commons-logging:1.1.3:70903f6fc82e9908c8da9f20443f61d90f0870a312642991fe8462a0b9391784', -+ 'commons-codec:commons-codec:1.6:54b34e941b8e1414bd3e40d736efd3481772dc26db3296f6aa45cec9f6203d86', -+ 'org.eclipse.equinox:common:3.6.200-v20130402-1505:843414d0e457898b1615e4c9118f86ae0cf30dd5166b8b0a1d206fbdab5fbbae', -+ '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', -+ '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', -+ 'org.eclipse.equinox:org.eclipse.equinox.common:3.6.0:32b046de57df2f4887fc5a2c343740d9d12c7fe17541e2cede73cfa4ccbc2436', -+ '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', -+ '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', -+ 'org.eclipse.core:jobs:3.6.0-v20140424-0053:ef971ecb154fba0cc06d913448640fb2e5ab3f9079c1c7854385d1c30d81a94f', -+ 'org.eclipse.equinox:preferences:3.5.200-v20140224-1527:6498d32ab6503b49a44e0a0bfe1c2ac28ffb7e8f88acbdb4dda89d73092d8ca7', -+ 'org.eclipse.core:contenttype:3.4.200-v20140207-1251:4dd6ec1376693bd8ac4e2ceacc7be70880920978f3fef31db4968e6ade001c87', -+ 'org.eclipse.core:runtime:3.10.0-v20140318-2214:363ad8af4d8fc7f208b6fa640e490c7ba84b2aa78c26809e569bb1b0737ce9cb', -+ 'junit:junit:4.12:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a', -+ 'org.hamcrest:hamcrest-core:1.3:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9', -+ ] -+} -+ - task wrapper(type: Wrapper) { - gradleVersion = '2.14' - } --- -2.5.5 - diff --git a/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch b/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch index 65d5b87c..9cea72a5 100644 --- a/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch +++ b/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch @@ -31,56 +31,6 @@ index bfadecd..774a015 100644 //Stuff used in the GradleStart classes compileOnly 'com.mojang:authlib:1.5.16' -@@ -91,49 +91,6 @@ dependencies { - dependencyVerification { - includedConfigurations += [configurations.shade, configurations.testCompile] - verify = [ -- 'org.ow2.asm:asm-debug-all:5.1:f7ac3f642c36c406543bb56ae3db3a53f263f71bd857b04709986e2d5798c8c4', -- 'net.sf.opencsv:opencsv:2.3:dc0ba5bff6140dc92339973026a0ecbddc2a3b01bdd46ed9d16becc2f6d78de6', -- 'com.cloudbees:diff4j:1.1:e6509db2167c983d254d3530c66a060443e91a6ca38df9fdc4ef2a88ad813fa5', -- 'com.github.abrarsyed.jastyle:jAstyle:1.3:4cad4ee2f1c379fa1f6496912fe026d8a4f2febf0a140ff867206b00a22f988f', -- 'net.sf.trove4j:trove4j:2.1.0:294fb88c272598b9a5dcae15f13d228e64134256de941fbc28917a994beeb075', -- 'com.github.jponge:lzma-java:1.3:75ccc0e24d37ed5b8916e1bcffad1e067c2b1cfa21b635287f968db5c3c1963a', -- 'com.nothome:javaxdelta:2.0.1:a661dfcb749053fc26eada2a0a8e619a8ead1ca9eda29e1698687aa2cdd80152', -- 'com.google.code.gson:gson:2.2.4:c0328cd07ca9e363a5acd00c1cf4afe8cf554bd6d373834981ba05cebec687fb', -- 'com.github.tony19:named-regexp:0.2.3:c6ebd74cd6108b8c372c95b842725ee5bd6d3303ba26cb00f18bc92f80b47956', -- 'net.minecraftforge:forgeflower:1.0.342-SNAPSHOT:ad7e63b8732da2c10d5923cc567386b8f172848259c3c2627298e6cd702df938', -- 'net.md-5:SpecialSource:1.7.4:b47c5d5810643426a3147ddb2195ef2ab67c80b167e7c2ac64a5d0dee8c030dd', -- 'org.apache.httpcomponents:httpclient:4.3.3:9844cc9b5440d65a88d28bcba9d771374d2dfdab898848cda164611091633013', -- '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:6c9134708589bf7ea8300b2c077445a13d02446dcfd24af78240388fde38845e', -- 'org.jvnet.localizer:localizer:1.12:212f6eaa0491dd7359dc33c3a72e82a23b096e1890d984b4d92395abc9a6bf7f', -- 'commons-io:commons-io:1.4:a7f713593007813bf07d19bd1df9f81c86c0719e9a0bb2ef1b98b78313fc940d', -- 'trove:trove:1.0.2:ad68a86cfd0255a2bc0525ce11ec49640caea7e34ff91eb89c3193dcccd77f05', -- 'net.sf.jopt-simple:jopt-simple:5.0.1:9f0c8d50fa4b79b6ff1502dbec8502179d6b9497cacbe17a13074001aed537ec', -- 'org.apache.httpcomponents:httpcore:4.3.2:abd02320e2356f89d054dae4cf02306bef20a9cf7865b3ac94ec7552b4f1528b', -- 'commons-logging:commons-logging:1.1.3:70903f6fc82e9908c8da9f20443f61d90f0870a312642991fe8462a0b9391784', -- 'commons-codec:commons-codec:1.6:54b34e941b8e1414bd3e40d736efd3481772dc26db3296f6aa45cec9f6203d86', -- 'org.eclipse.equinox:common:3.6.200-v20130402-1505:843414d0e457898b1615e4c9118f86ae0cf30dd5166b8b0a1d206fbdab5fbbae', -- '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', -- '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', -- 'org.eclipse.equinox:org.eclipse.equinox.common:3.6.0:32b046de57df2f4887fc5a2c343740d9d12c7fe17541e2cede73cfa4ccbc2436', -- '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', -- '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', -- 'org.eclipse.core:jobs:3.6.0-v20140424-0053:ef971ecb154fba0cc06d913448640fb2e5ab3f9079c1c7854385d1c30d81a94f', -- 'org.eclipse.equinox:preferences:3.5.200-v20140224-1527:6498d32ab6503b49a44e0a0bfe1c2ac28ffb7e8f88acbdb4dda89d73092d8ca7', -- 'org.eclipse.core:contenttype:3.4.200-v20140207-1251:4dd6ec1376693bd8ac4e2ceacc7be70880920978f3fef31db4968e6ade001c87', -- 'org.eclipse.core:runtime:3.10.0-v20140318-2214:363ad8af4d8fc7f208b6fa640e490c7ba84b2aa78c26809e569bb1b0737ce9cb', -- 'junit:junit:4.12:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a', -- 'org.hamcrest:hamcrest-core:1.3:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9', - ] - } - -- 2.5.5 diff --git a/gradle/reprod/patches/mixin/0007-Add-witness-plugin.patch b/gradle/reprod/patches/mixin/0007-Add-witness-plugin.patch deleted file mode 100644 index 28d18a24..00000000 --- a/gradle/reprod/patches/mixin/0007-Add-witness-plugin.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 6a90175bbe1a7cbb9d0eb6bb0bbb27ad451f4587 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Tue, 8 Aug 2017 19:20:46 +0200 -Subject: [PATCH 7/7] Add witness plugin - ---- - build.gradle | 34 ++++++++++++++++++++++++++++++++++ - 1 file changed, 34 insertions(+) - -diff --git a/build.gradle b/build.gradle -index e9a965b..737be9e 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -2,6 +2,7 @@ - buildscript { - dependencies { - classpath files('../shadow.jar') -+ classpath files('../gradle-witness.jar') - } - } - -@@ -11,6 +12,7 @@ apply plugin: 'maven' - apply plugin: 'eclipse' - apply plugin: 'idea' - apply plugin: 'com.github.johnrengelman.shadow' -+apply plugin: 'witness' - - // Default tasks - defaultTasks 'licenseFormat', 'check', 'build' -@@ -158,6 +160,38 @@ dependencies { - bridgeCompile 'org.apache.logging.log4j:log4j-core:2.0-beta9' - } - -+dependencyVerification { -+ includedConfigurations += [configurations.asm, configurations.jarjar, configurations.apCompile, configurations.agentCompile, configurations.fernflowerCompile, configurations.bridgeCompile] -+ verify = [ -+ 'com.googlecode.jarjar:jarjar:1.1:4838f4f29a027522363cef1bcda1b48808880b0de4953fab6db4121ee27b649b', -+ 'com.google.guava:guava:17.0:8c36a80ea613d0b6b8040a17cf837c5bbe3677bc1b06a058a6c174fdb787ebbc', -+ 'com.google.code.gson:gson:2.2.4:c0328cd07ca9e363a5acd00c1cf4afe8cf554bd6d373834981ba05cebec687fb', -+ 'commons-io:commons-io:2.4:cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581', -+ 'net.minecraft:launchwrapper:1.11:e74b65b8948446982a506a96176dd8baf4688237ba4903f56ca6f667b6c7ee42', -+ 'org.apache.logging.log4j:log4j-core:2.0-beta9:dcde6033b205433d6e9855c93740f798951fa3a3f252035a768d9f356fde806d', -+ 'org.apache.logging.log4j:log4j-api:2.0-beta9:eb0ca9bdd938f80711152a758d6bc331a8b0d769199d457294dc67ed03f73498', -+ 'net.sf.jopt-simple:jopt-simple:4.5:64335a48be6b142a7d0c13ec5c82a707857aa58c0234e6eda3eaca0e96eea51b', -+ 'org.ow2.asm:asm-debug-all:5.0.3:2969356ac1e40fe4141948c563690238f5d79d76aec7fd873536867a331ede81', -+ 'org.ow2.asm:asm-debug-all:5.0.3-sources:1e9ee309d909b3dbf33291fcfd36c76adba4ed1215b8156c3ac61a774cc86bf1', -+ 'com.googlecode.jarjar:jarjar:1.1:4838f4f29a027522363cef1bcda1b48808880b0de4953fab6db4121ee27b649b', -+ 'com.google.guava:guava:17.0:8c36a80ea613d0b6b8040a17cf837c5bbe3677bc1b06a058a6c174fdb787ebbc', -+ 'net.minecraft:launchwrapper:1.11:e74b65b8948446982a506a96176dd8baf4688237ba4903f56ca6f667b6c7ee42', -+ 'org.apache.logging.log4j:log4j-core:2.0-beta9:dcde6033b205433d6e9855c93740f798951fa3a3f252035a768d9f356fde806d', -+ 'org.ow2.asm:asm-debug-all:5.0.3:2969356ac1e40fe4141948c563690238f5d79d76aec7fd873536867a331ede81', -+ 'org.apache.logging.log4j:log4j-api:2.0-beta9:eb0ca9bdd938f80711152a758d6bc331a8b0d769199d457294dc67ed03f73498', -+ 'net.sf.jopt-simple:jopt-simple:4.5:64335a48be6b142a7d0c13ec5c82a707857aa58c0234e6eda3eaca0e96eea51b', -+ 'commons-io:commons-io:2.4:cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581', -+ 'org.apache.logging.log4j:log4j-core:2.0-beta9:dcde6033b205433d6e9855c93740f798951fa3a3f252035a768d9f356fde806d', -+ 'com.google.guava:guava:17.0:8c36a80ea613d0b6b8040a17cf837c5bbe3677bc1b06a058a6c174fdb787ebbc', -+ 'org.apache.logging.log4j:log4j-api:2.0-beta9:eb0ca9bdd938f80711152a758d6bc331a8b0d769199d457294dc67ed03f73498', -+ 'org.ow2.asm:asm-commons:5.0.3:18c1e092230233c9d29e46f21943d769bdb48130cc279e4b0e663f423948c2da', -+ 'org.apache.logging.log4j:log4j-core:2.0-beta9:dcde6033b205433d6e9855c93740f798951fa3a3f252035a768d9f356fde806d', -+ 'org.ow2.asm:asm-tree:5.0.3:347a7a9400f9964e87c91d3980e48eebdc8d024bc3b36f7f22189c662853a51c', -+ 'org.apache.logging.log4j:log4j-api:2.0-beta9:eb0ca9bdd938f80711152a758d6bc331a8b0d769199d457294dc67ed03f73498', -+ 'org.ow2.asm:asm:5.0.3:71c4f78e437b8fdcd9cc0dfd2abea8c089eb677005a6a5cff320206cc52b46cc', -+ ] -+} -+ - // Filter, process, and include resources - processResources { - // Include in final JAR --- -2.5.5 - diff --git a/gradle/reprod/patches/mixingradle/0003-Add-witness-plugin.patch b/gradle/reprod/patches/mixingradle/0003-Add-witness-plugin.patch deleted file mode 100644 index 94d5b1d8..00000000 --- a/gradle/reprod/patches/mixingradle/0003-Add-witness-plugin.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 7c2f6c0d86940142671615402ba758185448e3cf Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 7 Aug 2017 20:05:30 +0200 -Subject: [PATCH 3/3] Add witness plugin - ---- - build.gradle | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/build.gradle b/build.gradle -index 40169df..93f9764 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -1,6 +1,13 @@ -+buildscript { -+ dependencies { -+ classpath files('../gradle-witness.jar') -+ } -+} -+ - apply plugin: 'groovy' - apply plugin: 'maven' - apply plugin: 'eclipse' -+apply plugin: 'witness' - - group = 'org.spongepowered' - version = '0.4-SNAPSHOT' -@@ -23,6 +30,13 @@ dependencies { - deployerJars 'org.apache.maven.wagon:wagon-ftp:2.7' - } - -+dependencyVerification { -+ verify = [ -+ 'com.google.guava:guava:17.0:8c36a80ea613d0b6b8040a17cf837c5bbe3677bc1b06a058a6c174fdb787ebbc', -+ 'org.ow2.asm:asm-debug-all:5.0.3:2969356ac1e40fe4141948c563690238f5d79d76aec7fd873536867a331ede81', -+ ] -+} -+ - processResources { - from 'LICENSE.txt' - } --- -2.5.5 - diff --git a/gradle/reprod/patches/replaymod/0003-Add-witness-plugin.patch b/gradle/reprod/patches/replaymod/0003-Add-witness-plugin.patch deleted file mode 100644 index 79686aff..00000000 --- a/gradle/reprod/patches/replaymod/0003-Add-witness-plugin.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 9baa28ace59f2036e93fff379438c2553f02b6a8 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 7 Aug 2017 20:41:46 +0200 -Subject: [PATCH 3/5] Add witness plugin - ---- - build.gradle | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/build.gradle b/build.gradle -index bfa3914..bee78ee 100755 ---- a/build.gradle -+++ b/build.gradle -@@ -4,11 +4,13 @@ buildscript { - dependencies { - classpath files('gradle/reprod/deps/forgegradle.jar') - classpath files('gradle/reprod/deps/mixingradle.jar') -+ classpath files('gradle/reprod/deps/gradle-witness.jar') - } - } - - apply plugin: 'net.minecraftforge.gradle.forge' - apply plugin: 'org.spongepowered.mixin' -+apply plugin: 'witness' - - sourceCompatibility = 1.8 - targetCompatibility = 1.8 -@@ -56,6 +58,10 @@ dependencies { - testCompile 'junit:junit:4.11' - } - -+dependencyVerification { -+ includedConfigurations += [configurations.shade, configurations.testCompile] -+} -+ - tasks['idea'].dependsOn ':ReplayStudio:preshadowJar' - - jar { --- -2.5.5 - diff --git a/gradle/reprod/patches/replaymod/0004-Add-checksums-for-witness-plugin.patch b/gradle/reprod/patches/replaymod/0004-Add-checksums-for-witness-plugin.patch deleted file mode 100644 index ebc5f586..00000000 --- a/gradle/reprod/patches/replaymod/0004-Add-checksums-for-witness-plugin.patch +++ /dev/null @@ -1,109 +0,0 @@ -From cbba1bbb1010408adb5227b5a928ca00cc19699a Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 7 Aug 2017 20:42:06 +0200 -Subject: [PATCH 4/5] Add checksums for witness plugin - ---- - build.gradle | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 86 insertions(+) - -diff --git a/build.gradle b/build.gradle -index bee78ee..bda297b 100755 ---- a/build.gradle -+++ b/build.gradle -@@ -60,6 +60,92 @@ dependencies { - - dependencyVerification { - includedConfigurations += [configurations.shade, configurations.testCompile] -+ verify = [ -+ 'com.googlecode.mp4parser:isoparser:1.1.7:ddbbf392f8e61f770a509a49aed5f32ead19768283b4b512c626e09e1ba5cc46', -+ 'org.apache.commons:commons-exec:1.3:cb49812dc1bfb0ea4f20f398bcae1a88c6406e213e67f7524fb10d4f8ad9347b', -+ 'com.google.apis:google-api-services-youtube:v3-rev178-1.22.0:88debb16c533600c3b0290a088f2de3b3a8318ff86ebe0bdbcefeab0a0eafb9e', -+ 'com.google.api-client:google-api-client-gson:1.20.0:d68647ba10cfa33e0b6e538c704723229932795d5ee495288cec46a6156c5891', -+ 'com.google.api-client:google-api-client-java6:1.20.0:df4f423f33f467d248e51deb555404771f7bc41430b2d4d1e49966c79c0b207b', -+ 'com.google.oauth-client:google-oauth-client-jetty:1.20.0:daabf9d4e35d4015c2c917982463572856a5c8d7fa718e94edb2b6b114a2a8a2', -+ 'org.aspectj:aspectjrt:1.8.2:c7964f00c3d3889c5223e8fcb7476610c59453c86bccc68ef493a56d171bf655', -+ 'org.apache.commons:commons-lang3:3.3.2:6b81d10754dadf184d386011486e6509c2cc0c3d33565ced4fb4402b9413d47d', -+ 'org.apache.commons:commons-collections4:4.0:93f8dfcd20831a28d092427723f696bceb70b28e7fb89d7914f14d5ea492ce5a', -+ 'commons-cli:commons-cli:1.2:e7cd8951956d349b568b7ccfd4f5b2529a8c113e67c32b028f52ffda371259d9', -+ 'com.google.guava:guava:21.0:972139718abc8a4893fa78cba8cf7b2c903f35c97aaf44fa3031b0669948b480', -+ 'com.google.api-client:google-api-client:1.22.0:47c625c83a8cf97b8bbdff2acde923ff8fd3174e62aabcfc5d1b86692594ffba', -+ 'com.google.http-client:google-http-client-gson:1.20.0:cc144c70d40acf7c6e6f773ac19a2ac6e3ed9830d8e33e32421ff21a91450994', -+ 'com.google.oauth-client:google-oauth-client-java6:1.20.0:3149ae4fa222c7e804c5b7bc0d044702bc6bb8309b5ed94f6d350a5d4d657fc9', -+ 'org.mortbay.jetty:jetty:6.1.26:21091d3a9c1349f640fdc421504a604c040ed89087ecc12afbe32353326ed4e5', -+ 'com.google.code.gson:gson:2.1:35c94198255e95f6f11501eb4b3d43a5276bfdd142ab7c904722e69bff51f69e', -+ 'org.mortbay.jetty:jetty-util:6.1.26:9b974ce2b99f48254b76126337dc45b21226f383aaed616f59780adaf167c047', -+ 'org.mortbay.jetty:servlet-api:2.5-20081211:068756096996fe00f604ac3b6672d6f663dc777ea4a83056e240d0456e77e472', -+ 'com.google.code.findbugs:jsr305:1.3.9:905721a0eea90a81534abb7ee6ef4ea2e5e645fa1def0a5cd88402df1b46c9ed', -+ 'org.apache.httpcomponents:httpclient:4.0.1:752596ebdc7c9ae5d9a655de3bb06d078734679a9de23321dbf284ee44563c03', -+ 'org.apache.httpcomponents:httpcore:4.0.1:3b6bf92affa85d4169a91547ce3c7093ed993b41ad2df80469fc768ad01e6b6b', -+ 'commons-logging:commons-logging:1.1.1:ce6f913cad1f0db3aad70186d65c5bc7ffcc9a99e3fe8e0b137312819f7c362f', -+ 'commons-codec:commons-codec:1.3:1bafd2ece2e88db4cdf835a7f8f0de65fab5b1147977a5dcc59b7c1b8c6f5080', -+ 'org.projectlombok:lombok:1.16.6:e0a471be03e1e6b02bf019480cec7a3ac9801702bf7bf62f15d077ad4df8dd5d', -+ 'com.google.http-client:google-http-client-jackson2:1.22.0:45b1e34b2dcef5cb496ef25a1223d19cf102b8c2ea4abf96491631b2faf4611c', -+ 'com.google.guava:guava-jdk5:17.0:59bf456547b6dda3ced968cb56f7f2d3e14474e2de2960a32c47e31c1e456c61', -+ 'com.fasterxml.jackson.core:jackson-core:2.1.3:754184022345800c2d066eceeaf2f7a88a7c2aaeae23eb1c76ef598854aa9157', -+ 'com.google.oauth-client:google-oauth-client:1.22.0:a4c56168b3e042105d68cf136e40e74f6e27f63ed0a948df966b332678e19022', -+ 'com.google.http-client:google-http-client:1.22.0:f88ffa329ac52fb4f2ff0eb877ef7318423ac9b791a107f886ed5c7a00e77e11', -+ 'com.googlecode.mp4parser:isoparser:1.1.7:ddbbf392f8e61f770a509a49aed5f32ead19768283b4b512c626e09e1ba5cc46', -+ 'org.apache.commons:commons-exec:1.3:cb49812dc1bfb0ea4f20f398bcae1a88c6406e213e67f7524fb10d4f8ad9347b', -+ 'com.google.apis:google-api-services-youtube:v3-rev178-1.22.0:88debb16c533600c3b0290a088f2de3b3a8318ff86ebe0bdbcefeab0a0eafb9e', -+ 'com.google.api-client:google-api-client-gson:1.20.0:d68647ba10cfa33e0b6e538c704723229932795d5ee495288cec46a6156c5891', -+ 'com.google.api-client:google-api-client-java6:1.20.0:df4f423f33f467d248e51deb555404771f7bc41430b2d4d1e49966c79c0b207b', -+ 'com.google.oauth-client:google-oauth-client-jetty:1.20.0:daabf9d4e35d4015c2c917982463572856a5c8d7fa718e94edb2b6b114a2a8a2', -+ 'org.aspectj:aspectjrt:1.8.2:c7964f00c3d3889c5223e8fcb7476610c59453c86bccc68ef493a56d171bf655', -+ 'com.google.api-client:google-api-client:1.22.0:47c625c83a8cf97b8bbdff2acde923ff8fd3174e62aabcfc5d1b86692594ffba', -+ 'com.google.http-client:google-http-client-gson:1.20.0:cc144c70d40acf7c6e6f773ac19a2ac6e3ed9830d8e33e32421ff21a91450994', -+ 'com.google.oauth-client:google-oauth-client-java6:1.20.0:3149ae4fa222c7e804c5b7bc0d044702bc6bb8309b5ed94f6d350a5d4d657fc9', -+ 'org.mortbay.jetty:jetty:6.1.26:21091d3a9c1349f640fdc421504a604c040ed89087ecc12afbe32353326ed4e5', -+ 'com.google.code.gson:gson:2.1:35c94198255e95f6f11501eb4b3d43a5276bfdd142ab7c904722e69bff51f69e', -+ 'org.mortbay.jetty:jetty-util:6.1.26:9b974ce2b99f48254b76126337dc45b21226f383aaed616f59780adaf167c047', -+ 'org.mortbay.jetty:servlet-api:2.5-20081211:068756096996fe00f604ac3b6672d6f663dc777ea4a83056e240d0456e77e472', -+ 'com.google.code.findbugs:jsr305:1.3.9:905721a0eea90a81534abb7ee6ef4ea2e5e645fa1def0a5cd88402df1b46c9ed', -+ 'org.apache.httpcomponents:httpclient:4.0.1:752596ebdc7c9ae5d9a655de3bb06d078734679a9de23321dbf284ee44563c03', -+ 'org.apache.httpcomponents:httpcore:4.0.1:3b6bf92affa85d4169a91547ce3c7093ed993b41ad2df80469fc768ad01e6b6b', -+ 'commons-logging:commons-logging:1.1.1:ce6f913cad1f0db3aad70186d65c5bc7ffcc9a99e3fe8e0b137312819f7c362f', -+ 'commons-codec:commons-codec:1.3:1bafd2ece2e88db4cdf835a7f8f0de65fab5b1147977a5dcc59b7c1b8c6f5080', -+ 'com.google.http-client:google-http-client-jackson2:1.22.0:45b1e34b2dcef5cb496ef25a1223d19cf102b8c2ea4abf96491631b2faf4611c', -+ 'com.google.guava:guava-jdk5:17.0:59bf456547b6dda3ced968cb56f7f2d3e14474e2de2960a32c47e31c1e456c61', -+ 'com.fasterxml.jackson.core:jackson-core:2.1.3:754184022345800c2d066eceeaf2f7a88a7c2aaeae23eb1c76ef598854aa9157', -+ 'com.google.oauth-client:google-oauth-client:1.22.0:a4c56168b3e042105d68cf136e40e74f6e27f63ed0a948df966b332678e19022', -+ 'com.google.http-client:google-http-client:1.22.0:f88ffa329ac52fb4f2ff0eb877ef7318423ac9b791a107f886ed5c7a00e77e11', -+ 'com.googlecode.mp4parser:isoparser:1.1.7:ddbbf392f8e61f770a509a49aed5f32ead19768283b4b512c626e09e1ba5cc46', -+ 'org.apache.commons:commons-exec:1.3:cb49812dc1bfb0ea4f20f398bcae1a88c6406e213e67f7524fb10d4f8ad9347b', -+ 'com.google.apis:google-api-services-youtube:v3-rev178-1.22.0:88debb16c533600c3b0290a088f2de3b3a8318ff86ebe0bdbcefeab0a0eafb9e', -+ 'com.google.api-client:google-api-client-gson:1.20.0:d68647ba10cfa33e0b6e538c704723229932795d5ee495288cec46a6156c5891', -+ 'com.google.api-client:google-api-client-java6:1.20.0:df4f423f33f467d248e51deb555404771f7bc41430b2d4d1e49966c79c0b207b', -+ 'com.google.oauth-client:google-oauth-client-jetty:1.20.0:daabf9d4e35d4015c2c917982463572856a5c8d7fa718e94edb2b6b114a2a8a2', -+ 'org.aspectj:aspectjrt:1.8.2:c7964f00c3d3889c5223e8fcb7476610c59453c86bccc68ef493a56d171bf655', -+ 'junit:junit:4.11:90a8e1603eeca48e7e879f3afbc9560715322985f39a274f6f6070b43f9d06fe', -+ 'org.apache.commons:commons-lang3:3.3.2:6b81d10754dadf184d386011486e6509c2cc0c3d33565ced4fb4402b9413d47d', -+ 'org.apache.commons:commons-collections4:4.0:93f8dfcd20831a28d092427723f696bceb70b28e7fb89d7914f14d5ea492ce5a', -+ 'commons-cli:commons-cli:1.2:e7cd8951956d349b568b7ccfd4f5b2529a8c113e67c32b028f52ffda371259d9', -+ 'com.google.guava:guava:21.0:972139718abc8a4893fa78cba8cf7b2c903f35c97aaf44fa3031b0669948b480', -+ 'com.google.api-client:google-api-client:1.22.0:47c625c83a8cf97b8bbdff2acde923ff8fd3174e62aabcfc5d1b86692594ffba', -+ 'com.google.http-client:google-http-client-gson:1.20.0:cc144c70d40acf7c6e6f773ac19a2ac6e3ed9830d8e33e32421ff21a91450994', -+ 'com.google.oauth-client:google-oauth-client-java6:1.20.0:3149ae4fa222c7e804c5b7bc0d044702bc6bb8309b5ed94f6d350a5d4d657fc9', -+ 'org.mortbay.jetty:jetty:6.1.26:21091d3a9c1349f640fdc421504a604c040ed89087ecc12afbe32353326ed4e5', -+ 'org.hamcrest:hamcrest-core:1.3:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9', -+ 'com.google.code.gson:gson:2.1:35c94198255e95f6f11501eb4b3d43a5276bfdd142ab7c904722e69bff51f69e', -+ 'org.mortbay.jetty:jetty-util:6.1.26:9b974ce2b99f48254b76126337dc45b21226f383aaed616f59780adaf167c047', -+ 'org.mortbay.jetty:servlet-api:2.5-20081211:068756096996fe00f604ac3b6672d6f663dc777ea4a83056e240d0456e77e472', -+ 'com.google.code.findbugs:jsr305:1.3.9:905721a0eea90a81534abb7ee6ef4ea2e5e645fa1def0a5cd88402df1b46c9ed', -+ 'org.apache.httpcomponents:httpclient:4.0.1:752596ebdc7c9ae5d9a655de3bb06d078734679a9de23321dbf284ee44563c03', -+ 'org.apache.httpcomponents:httpcore:4.0.1:3b6bf92affa85d4169a91547ce3c7093ed993b41ad2df80469fc768ad01e6b6b', -+ 'commons-logging:commons-logging:1.1.1:ce6f913cad1f0db3aad70186d65c5bc7ffcc9a99e3fe8e0b137312819f7c362f', -+ 'commons-codec:commons-codec:1.3:1bafd2ece2e88db4cdf835a7f8f0de65fab5b1147977a5dcc59b7c1b8c6f5080', -+ 'org.projectlombok:lombok:1.16.6:e0a471be03e1e6b02bf019480cec7a3ac9801702bf7bf62f15d077ad4df8dd5d', -+ 'com.google.http-client:google-http-client-jackson2:1.22.0:45b1e34b2dcef5cb496ef25a1223d19cf102b8c2ea4abf96491631b2faf4611c', -+ 'com.google.guava:guava-jdk5:17.0:59bf456547b6dda3ced968cb56f7f2d3e14474e2de2960a32c47e31c1e456c61', -+ 'com.fasterxml.jackson.core:jackson-core:2.1.3:754184022345800c2d066eceeaf2f7a88a7c2aaeae23eb1c76ef598854aa9157', -+ 'com.google.oauth-client:google-oauth-client:1.22.0:a4c56168b3e042105d68cf136e40e74f6e27f63ed0a948df966b332678e19022', -+ 'com.google.http-client:google-http-client:1.22.0:f88ffa329ac52fb4f2ff0eb877ef7318423ac9b791a107f886ed5c7a00e77e11', -+ ] - } - - tasks['idea'].dependsOn ':ReplayStudio:preshadowJar' --- -2.5.5 - diff --git a/gradle/reprod/patches/shadow/0003-Add-witness-plugin.patch b/gradle/reprod/patches/shadow/0003-Add-witness-plugin.patch deleted file mode 100644 index 5a720606..00000000 --- a/gradle/reprod/patches/shadow/0003-Add-witness-plugin.patch +++ /dev/null @@ -1,49 +0,0 @@ -From d06cec4bfa5981965faf2dad510d14e000d61ade Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Tue, 8 Aug 2017 18:53:57 +0200 -Subject: [PATCH 3/4] Add witness plugin - ---- - build.gradle | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -diff --git a/build.gradle b/build.gradle -index 1b06411..a0d350b 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -1,4 +1,11 @@ -+buildscript { -+ dependencies { -+ classpath files('../gradle-witness.jar') -+ } -+} -+ - apply plugin: 'groovy' -+apply plugin: 'witness' - - repositories { - mavenLocal() -@@ -18,6 +25,20 @@ dependencies { - compile 'org.codehaus.groovy:groovy-backports-compat23:2.4.4' - } - -+dependencyVerification { -+ verify = [ -+ 'org.jdom:jdom2:2.0.5:32ed093f39c46a8d99f801240069478eac93b35f07351c001f2cef4330e97b4a', -+ 'org.ow2.asm:asm:5.0.3:71c4f78e437b8fdcd9cc0dfd2abea8c089eb677005a6a5cff320206cc52b46cc', -+ 'org.ow2.asm:asm-commons:5.0.3:18c1e092230233c9d29e46f21943d769bdb48130cc279e4b0e663f423948c2da', -+ 'commons-io:commons-io:2.4:cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581', -+ 'org.apache.ant:ant:1.9.4:649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8', -+ 'org.codehaus.plexus:plexus-utils:2.0.6:8b909f4ca9788647942f883d4e559bcc642123f7c6bcd3846983a2e465469c33', -+ 'org.codehaus.groovy:groovy-backports-compat23:2.4.4:f07694998acb204782c72cc8067b237a04097a2170f07d440614883f14a67630', -+ 'org.ow2.asm:asm-tree:5.0.3:347a7a9400f9964e87c91d3980e48eebdc8d024bc3b36f7f22189c662853a51c', -+ 'org.apache.ant:ant-launcher:1.9.4:7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d', -+ ] -+} -+ - jar { - from rootProject.file('LICENSE') - from rootProject.file('NOTICE') --- -2.5.5 - diff --git a/gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch b/gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch index f8642c60..70cb8535 100644 --- a/gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch +++ b/gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch @@ -11,7 +11,7 @@ diff --git a/build.gradle b/build.gradle index a0d350b..b12a46d 100644 --- a/build.gradle +++ b/build.gradle -@@ -12,17 +12,22 @@ repositories { +@@ -12,22 +12,28 @@ repositories { jcenter() } @@ -40,8 +40,6 @@ index a0d350b..b12a46d 100644 + shade 'org.codehaus.groovy:groovy-backports-compat23:2.4.4' } - dependencyVerification { -@@ -42,6 +47,7 @@ dependencyVerification { jar { from rootProject.file('LICENSE') from rootProject.file('NOTICE') diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index 237c4f7b..ae789f1d 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -2,6 +2,9 @@ set -e set -x +PROXY_PORT="25678" +PROXY_SETTINGS="-Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=$PROXY_PORT -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=$PROXY_PORT" + pushd gradle/reprod SHA256SUM="sha256sum" @@ -44,7 +47,7 @@ setup_dep () { cp ../../../../gradlew . chmod +x gradlew - ./gradlew -I ../../init.gradle build -x test + ./gradlew $PROXY_SETTINGS -I ../../init.gradle build -x test actual_hash=$(sha256val "$jar") if [ "$actual_hash" != "$jarhash" ]; then @@ -58,8 +61,11 @@ setup_dep () { popd } -# Required for all -setup_dep "gradle-witness" "https://github.com/ReplayMod/gradle-witness.git" "c162a15841c2eba54b182fa81733c0aa9227f023" "build/libs/gradle-witness.jar" "5e9ce687248029bf6364010168a65a4ad66fcb712dbd5ba69c59697ef564964b" +# Setup http(s) proxy +setup_dep "proxy-witness" "https://github.com/johni0702/proxy-witness" "1efb77a52517201181615ee8e64b5c771b35a52b" "build/libs/proxy-witness.jar" "da68227e9e8599746f87b1982d88b9aed619c76496913942b4e9b1dc6f4916b9" +java -jar deps/proxy-witness.jar "$PROXY_PORT" checksums.txt > proxy.log 2>&1 & +proxy_pid=$! +trap "kill $proxy_pid" EXIT # Required for mixin setup_dep "shadow" "https://github.com/johnrengelman/shadow.git" "60d0f28103be076dc991a624bf79ca7a13835973" "build/libs/shadow.jar" "eec0417a8cd44457551c80335cd384a187647b6429ed7b5ae3ce1b26f78a2c1f" @@ -90,4 +96,4 @@ popd popd # Back to root -./gradlew -Preprod -I gradle/reprod/init.gradle "$@" +./gradlew -Preprod $PROXY_SETTINGS -I gradle/reprod/init.gradle "$@" From 6ef61f0878dc7231f16f9ed927394a08d35179e8 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Mon, 28 Aug 2017 21:30:39 +0200 Subject: [PATCH 09/53] Manually build ReplayStudio dep --- gradle/reprod/init.gradle | 23 ++++++++++ ...ayStudio-dep-with-manually-built-one.patch | 42 +++++++++++++++++++ ...stom-preshadow-with-upstream-version.patch | 25 +++++++++++ ...e-shadowJar-is-run-before-build-task.patch | 24 +++++++++++ gradle/reprod/setup.sh | 4 +- settings.gradle | 4 +- 6 files changed, 119 insertions(+), 3 deletions(-) create mode 100644 gradle/reprod/patches/replaymod/0005-Replace-ReplayStudio-dep-with-manually-built-one.patch create mode 100644 gradle/reprod/patches/replaystudio/0001-Replace-custom-preshadow-with-upstream-version.patch create mode 100644 gradle/reprod/patches/replaystudio/0002-Make-sure-shadowJar-is-run-before-build-task.patch diff --git a/gradle/reprod/init.gradle b/gradle/reprod/init.gradle index 1e309ff8..cad1fbb8 100644 --- a/gradle/reprod/init.gradle +++ b/gradle/reprod/init.gradle @@ -1,3 +1,7 @@ +import java.util.jar.JarEntry +import java.util.jar.JarFile +import java.util.jar.JarOutputStream + def convertRepoToHttp = { repo -> if (repo instanceof MavenArtifactRepository && repo.url.toString().startsWith('https://')) { URL url = repo.url.toURL() @@ -17,4 +21,23 @@ allprojects { dirMode = 0775 fileMode = 0664 } + // The shadow plugin doesn't seem to support the above + def shadowJar = tasks.findByPath ':shadowJar' + if (shadowJar != null) { + shadowJar.doLast { + File newFile = new File(archivePath.parent, 'tmp-' + archiveName) + newFile.withOutputStream { fout -> + JarOutputStream out = new JarOutputStream(fout) + JarFile jf = new JarFile(archivePath) + jf.entries().unique {it.name}.sort {it.name}.each { + def copy = new JarEntry(it.name) + copy.time = 0 + out.putNextEntry(copy) + out << jf.getInputStream(it) + } + out.finish() + } + newFile.renameTo archivePath + } + } } diff --git a/gradle/reprod/patches/replaymod/0005-Replace-ReplayStudio-dep-with-manually-built-one.patch b/gradle/reprod/patches/replaymod/0005-Replace-ReplayStudio-dep-with-manually-built-one.patch new file mode 100644 index 00000000..f1484c10 --- /dev/null +++ b/gradle/reprod/patches/replaymod/0005-Replace-ReplayStudio-dep-with-manually-built-one.patch @@ -0,0 +1,42 @@ +From 2acc7a8cbfcafa23671b669ba4ae50539cf11872 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Mon, 28 Aug 2017 20:56:39 +0200 +Subject: [PATCH] Replace ReplayStudio dep with manually built one + +--- + build.gradle | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/build.gradle b/build.gradle +index 2104fb8..fb02c7f 100755 +--- a/build.gradle ++++ b/build.gradle +@@ -53,24 +53,20 @@ dependencies { + + shade 'org.aspectj:aspectjrt:1.8.2' + +- compile project(':ReplayStudio') ++ shade files('gradle/reprod/deps/replaystudio.jar') + + testCompile 'junit:junit:4.11' + } + +-tasks['idea'].dependsOn ':ReplayStudio:preshadowJar' +- + jar { + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + + dependsOn configurations.compile + dependsOn configurations.shade +- dependsOn ':ReplayStudio:shadowJar' + + def shade = {files( + configurations.compile.findAll {it.name.startsWith 'mixin-'} + + configurations.shade +- + getTasks().getByPath(':ReplayStudio:shadowJar').outputs.files + )} + + def noticeDir = file("$buildDir/NOTICE") +-- +2.5.5 + diff --git a/gradle/reprod/patches/replaystudio/0001-Replace-custom-preshadow-with-upstream-version.patch b/gradle/reprod/patches/replaystudio/0001-Replace-custom-preshadow-with-upstream-version.patch new file mode 100644 index 00000000..1aeed0b3 --- /dev/null +++ b/gradle/reprod/patches/replaystudio/0001-Replace-custom-preshadow-with-upstream-version.patch @@ -0,0 +1,25 @@ +From 5e4d9a2f79250283004c4398498fd17006bad219 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Mon, 28 Aug 2017 21:14:10 +0200 +Subject: [PATCH 1/2] Replace custom preshadow with upstream version + +--- + build.gradle | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/build.gradle b/build.gradle +index c2f496e..dc84f48 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -23,7 +23,7 @@ apply plugin: 'idea' + apply plugin: 'com.github.johnrengelman.shadow' + apply plugin: 'license' + apply plugin: 'maven' +-apply from: 'gradle/preshadow.gradle' ++apply plugin: 'ch.raffael.preshadow' + + // Methods to determine detailed version string + def gitDescribe() { +-- +2.5.5 + diff --git a/gradle/reprod/patches/replaystudio/0002-Make-sure-shadowJar-is-run-before-build-task.patch b/gradle/reprod/patches/replaystudio/0002-Make-sure-shadowJar-is-run-before-build-task.patch new file mode 100644 index 00000000..4d907a1d --- /dev/null +++ b/gradle/reprod/patches/replaystudio/0002-Make-sure-shadowJar-is-run-before-build-task.patch @@ -0,0 +1,24 @@ +From ba15c05e6afa05948c30b53b49baaff9211e9abe Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Mon, 28 Aug 2017 21:17:16 +0200 +Subject: [PATCH 2/2] Make sure shadowJar is run before build task + +--- + build.gradle | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/build.gradle b/build.gradle +index dc84f48..d99f39b 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -101,6 +101,7 @@ shadowJar { + append('META-INF/NOTICE.txt') + from(tasks.findByName('preshadowJar').outputs.files.collect {it.isDirectory() ? it : zipTree(it)}) + } ++build.dependsOn shadowJar + + eclipse.project { + name = 'ReplayStudio' +-- +2.5.5 + diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index ae789f1d..d5e14ec9 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -57,7 +57,8 @@ setup_dep () { exit 1 fi - cp "$jar" "../$dep.jar" + # Subshell to allow for expansion of * + cp "$(echo $jar)" "../$dep.jar" popd } @@ -83,6 +84,7 @@ setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "ea4ea setup_dep "mixingradle" "https://github.com/SpongePowered/MixinGradle.git" "3d81c8e202ec435056fb2068fdc34cfefa99be2d" "build/libs/mixingradle-0.4-SNAPSHOT.jar" "8b3508867128a5d564631635dff898a36f9aca8db54b7bb3af6f4924e3f4bead" setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "a228a836a2dc5ce546d2d53c48760f52f082d7ad" "build/libs/ForgeGradle-2.3-SNAPSHOT.jar" "94bf0d8be7e68a3d9828c8208024c21f2c171663dd7d56b95b3459bfc67273c0" setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "build/libs/mixin-0.6.11-SNAPSHOT.jar" "8ec6ce24b8192f043976344305ba6afbc35b052056f1559ca5914a77c5eae71d" +setup_dep "replaystudio" "https://github.com/ReplayMod/ReplayStudio.git" "82bd8aa34e0ddb04d179299b582e960dc19a66f8" "build/libs/ReplayStudio-*all.jar" "c416c52ea3470d34dd2f9e26fb67836cef717b2c033ca0637af30d9f5e3bb31b" rm -rf tmp mkdir tmp diff --git a/settings.gradle b/settings.gradle index bac5accf..4aaaa110 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,5 +1,5 @@ -include 'ReplayStudio' - if (System.getenv('REPRODUCIBLE_BUILD') == '1') { rootProject.buildFileName = 'gradle/reprod/tmp/build.gradle' +} else { + include 'ReplayStudio' } From 93b8e52e8b80afdcd0681b34895d5442d90d4c89 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 29 Aug 2017 11:58:59 +0200 Subject: [PATCH 10/53] Update checksums --- gradle/reprod/checksums.txt | 461 ++++++++++++++++++++++++++++++++++++ 1 file changed, 461 insertions(+) diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index e69de29b..4eaf3c01 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -0,0 +1,461 @@ +fec83601d2da127234728a8fffb429d0c4a59587452834da203163e6a3f941db /ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0.jar +399518acc1b1d969e2bd7390b76ffb016a3354045e1c4c82fe747db45d29c27d /ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0.pom +5432354f6be6ffa115647c7da2be47b8984ea97630ddab359af781f767794c5b /ch/raffael/gradlePlugins/preshadow/gradle-preshadow-plugin/1.0/gradle-preshadow-plugin-1.0.jar +48d851967e769ab05f674bd19ed06fc4da7cb9087372d0e73ffa0aed5b1e92f6 /ch/raffael/gradlePlugins/preshadow/gradle-preshadow-plugin/1.0/gradle-preshadow-plugin-1.0.pom +0ab7e4217b2702316adceabd4c1dfca0250dbe33c22e08c98b433939207edfc0 /com/cloudbees/cloudbees-oss-parent/1/cloudbees-oss-parent-1.pom +e6509db2167c983d254d3530c66a060443e91a6ca38df9fdc4ef2a88ad813fa5 /com/cloudbees/diff4j/1.1/diff4j-1.1.jar +a09a4ac520f9ec5ccd16195272fd8ed4c667285f9e129da5acf633bb21a7d174 /com/cloudbees/diff4j/1.1/diff4j-1.1.pom +754184022345800c2d066eceeaf2f7a88a7c2aaeae23eb1c76ef598854aa9157 /com/fasterxml/jackson/core/jackson-core/2.1.3/jackson-core-2.1.3.jar +cc3bfcc34a29c041e7cafc05ed6f0c3ebf8a7dcf812489a64f4c37f4f5279adf /com/fasterxml/jackson/core/jackson-core/2.1.3/jackson-core-2.1.3.pom +a30a3f89fbbea23deb5290e832eb0d12a8171ae8ba4461af2b936ed0245ee697 /com/fasterxml/oss-parent/4/oss-parent-4.pom +4cad4ee2f1c379fa1f6496912fe026d8a4f2febf0a140ff867206b00a22f988f /com/github/abrarsyed/jastyle/jAstyle/1.3/jAstyle-1.3.jar +cd62bdfd946618c26b49451084361edf79cd6ddb3eae1a485ecb05319295896d /com/github/abrarsyed/jastyle/jAstyle/1.3/jAstyle-1.3.pom +33b3d79f3e27d33c46411ab7b7d81f43f12756e18c8936063f18b1a950a5f84b /com/github/jengelman/gradle/plugins/shadow/1.2.3/shadow-1.2.3.jar +f00facfc855e7d5517fc57553614b4690e61df9ab44f6e93ff583ae201b5a3aa /com/github/jengelman/gradle/plugins/shadow/1.2.3/shadow-1.2.3.pom +75ccc0e24d37ed5b8916e1bcffad1e067c2b1cfa21b635287f968db5c3c1963a /com/github/jponge/lzma-java/1.3/lzma-java-1.3.jar +fbcba81b21a8bc3c0761e4798fa05285444b43d681c03c9af49f9b2e1ecb0184 /com/github/jponge/lzma-java/1.3/lzma-java-1.3.pom +60c7fe990c401b90e9ffc3c8114369d1ab442d9277cff335f6cc2b4908fd52ea /com/github/replaymod/MCProtocolLib/1559a77/MCProtocolLib-1559a77.jar +aed033fa3ba329ffa29406ac1ad7c8da953268526d34c94831eda2d580308594 /com/github/replaymod/MCProtocolLib/1559a77/MCProtocolLib-1559a77.pom +9d89f49ad405ffd0f3720c06c61846e6f092ff6faecd851c5592ed4576d8f32b /com/github/replaymod/MCProtocolLib/1559a77/MCProtocolLib-1559a77-sources.jar +c6ebd74cd6108b8c372c95b842725ee5bd6d3303ba26cb00f18bc92f80b47956 /com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.jar +7cdd89a892927998beab59398ef073232588f6e83e411cf4f0905833bf300487 /com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.pom +47c625c83a8cf97b8bbdff2acde923ff8fd3174e62aabcfc5d1b86692594ffba /com/google/api-client/google-api-client/1.22.0/google-api-client-1.22.0.jar +83175461277124a08d23d9df647912771276fed44ce60ff03847b51c98bf7459 /com/google/api-client/google-api-client/1.22.0/google-api-client-1.22.0.pom +d68647ba10cfa33e0b6e538c704723229932795d5ee495288cec46a6156c5891 /com/google/api-client/google-api-client-gson/1.20.0/google-api-client-gson-1.20.0.jar +383d5b31bfa2b5599de972dfc3d77750b8015c9496f66c591d92ca778a23dd4e /com/google/api-client/google-api-client-gson/1.20.0/google-api-client-gson-1.20.0.pom +df4f423f33f467d248e51deb555404771f7bc41430b2d4d1e49966c79c0b207b /com/google/api-client/google-api-client-java6/1.20.0/google-api-client-java6-1.20.0.jar +766995ae6c9240e1c77a68b3347706506ecde95aa8196ddd4ed567ce8df8cceb /com/google/api-client/google-api-client-java6/1.20.0/google-api-client-java6-1.20.0.pom +d8e9ec26a01cc19c530ab781cc71185acb9f9d576716e3d585a1d4f12f2089c8 /com/google/api-client/google-api-client-parent/1.20.0/google-api-client-parent-1.20.0.pom +2bc283b1247550e6e8401d97dc7f1ac2d5b17382b9984df011d9a3564fe632ae /com/google/api-client/google-api-client-parent/1.22.0/google-api-client-parent-1.22.0.pom +88debb16c533600c3b0290a088f2de3b3a8318ff86ebe0bdbcefeab0a0eafb9e /com/google/apis/google-api-services-youtube/v3-rev178-1.22.0/google-api-services-youtube-v3-rev178-1.22.0.jar +4dad29307c34e923ebb6d29e2c265850a0f0b691c7a63384279aa8353eae28b9 /com/google/apis/google-api-services-youtube/v3-rev178-1.22.0/google-api-services-youtube-v3-rev178-1.22.0.pom +905721a0eea90a81534abb7ee6ef4ea2e5e645fa1def0a5cd88402df1b46c9ed /com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar +feab9191311c3d7aeef2b66d6064afc80d3d1d52d980fb07ae43c78c987ba93a /com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom +c885ce34249682bc0236b4a7d56efcc12048e6135a5baf7a9cde8ad8cda13fcd /com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar +4170a761dc5bfd3981a8e6f7aab9e2acdce82d34fd5aa9bb11e3c090d25314ce /com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.pom +8cc1f0813a186079f82d300a43156bdf852a88008f4f1a1fa71e788fb3b9a86d /com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530.jar +7d131d6a082a33363bdfbf55d2fee2219d9bc8d1c455cc3f7c6403cf2a4496a5 /com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530.pom +35c94198255e95f6f11501eb4b3d43a5276bfdd142ab7c904722e69bff51f69e /com/google/code/gson/gson/2.1/gson-2.1.jar +894da89d477e805389c9df1d6fa8bd552285aed56a399d5749213520a7c74054 /com/google/code/gson/gson/2.1/gson-2.1.pom +c0328cd07ca9e363a5acd00c1cf4afe8cf554bd6d373834981ba05cebec687fb /com/google/code/gson/gson/2.2.4/gson-2.2.4.jar +ae984d5d19894ce6dc4689866eaa12f8fc31409113e60ee3b44853b8ac4fd380 /com/google/code/gson/gson/2.2.4/gson-2.2.4.pom +c6221763bd79c4f1c3dc7f750b5f29a0bb38b367b81314c4f71896e340c40825 /com/google/code/gson/gson/2.8.0/gson-2.8.0.jar +a5331a0ecb548f9942ab5b93c7ac43c38a21e897763dde1bcdbf0774f416ca6f /com/google/code/gson/gson/2.8.0/gson-2.8.0.pom +0f1d8369b1e9f1bc4b467c8dcfdd8b59733aad5b5c8419c3a59b2f9abaf04cd2 /com/google/code/gson/gson-parent/2.8.0/gson-parent-2.8.0.pom +4838f4f29a027522363cef1bcda1b48808880b0de4953fab6db4121ee27b649b /com/googlecode/jarjar/jarjar/1.1/jarjar-1.1.jar +be4f53c0bc04da4e3d6c65c8f3243d1ea4135e35c7d7dda88af1c582687263d7 /com/googlecode/jarjar/jarjar/1.1/jarjar-1.1.pom +ddbbf392f8e61f770a509a49aed5f32ead19768283b4b512c626e09e1ba5cc46 /com/googlecode/mp4parser/isoparser/1.1.7/isoparser-1.1.7.jar +6890ebacb23d3ab51a5751a830f5269b7e8fdd19d08b7e055bc739f62b4bd174 /com/googlecode/mp4parser/isoparser/1.1.7/isoparser-1.1.7.pom +8c36a80ea613d0b6b8040a17cf837c5bbe3677bc1b06a058a6c174fdb787ebbc /com/google/guava/guava/17.0/guava-17.0.jar +2a0d16010d3825c732aeab1d25f181074945063d8f76c28004e7d423d66cb75b /com/google/guava/guava/17.0/guava-17.0.pom +d664fbfc03d2e5ce9cab2a44fb01f1d0bf9dfebeccc1a473b1f9ea31f79f6f99 /com/google/guava/guava/18.0/guava-18.0.jar +e743d61d76f76b5dc060d6f7914fdd41c4418b3529062556920116a716719836 /com/google/guava/guava/18.0/guava-18.0.pom +58d4cc2e05ebb012bbac568b032f75623be1cb6fb096f3c60c72a86f7f057de4 /com/google/guava/guava/19.0/guava-19.0.jar +addc064da7f1077fdf4dc90e5aaa887cd790850d1b74fe2e6e25d5f78551ac63 /com/google/guava/guava/19.0/guava-19.0.pom +972139718abc8a4893fa78cba8cf7b2c903f35c97aaf44fa3031b0669948b480 /com/google/guava/guava/21.0/guava-21.0.jar +c0b016a85c784e01ca51e9d64bf8fe80ce402b206fea897b03258d5e6d0ff80d /com/google/guava/guava/21.0/guava-21.0.pom +59bf456547b6dda3ced968cb56f7f2d3e14474e2de2960a32c47e31c1e456c61 /com/google/guava/guava-jdk5/17.0/guava-jdk5-17.0.jar +f8c152627813d45bc4e7cc17ad6ed6a649a0231ae819ffb8e05d19b205a3db66 /com/google/guava/guava-jdk5/17.0/guava-jdk5-17.0.pom +9fba53585551d3c775179de859760a73c4beab407dfde16b551a09a87b50532a /com/google/guava/guava-parent/17.0/guava-parent-17.0.pom +a4accc8895e757f6a33f087e4fd0b661c5638ffe5e0728f298efe7d80551b166 /com/google/guava/guava-parent/18.0/guava-parent-18.0.pom +3b76ff43ecdf10f74da36e4aae2b470c9d063e053c5ca026f5512ae94f1c3e10 /com/google/guava/guava-parent/19.0/guava-parent-19.0.pom +acdc6d6f07b346caeb174932788bccc63c035cc5c2b100958c21ffe0f6e19988 /com/google/guava/guava-parent/21.0/guava-parent-21.0.pom +5a9606bc27632956b3c11df887e9b3e785854068aaa4e0808ed5660f60b1fb6f /com/google/guava/guava-parent-jdk5/17.0/guava-parent-jdk5-17.0.pom +f744c79f198e53deea4cd311f9135a568ab67052804d80fd3d60b0385644cf65 /com/google/http-client/google-http-client/1.20.0/google-http-client-1.20.0.pom +f88ffa329ac52fb4f2ff0eb877ef7318423ac9b791a107f886ed5c7a00e77e11 /com/google/http-client/google-http-client/1.22.0/google-http-client-1.22.0.jar +30e7611df40360bdc24325caaa2f7888e847680f2e64e579c28c87a53e5bb422 /com/google/http-client/google-http-client/1.22.0/google-http-client-1.22.0.pom +cc144c70d40acf7c6e6f773ac19a2ac6e3ed9830d8e33e32421ff21a91450994 /com/google/http-client/google-http-client-gson/1.20.0/google-http-client-gson-1.20.0.jar +9b292239a52300b687940164987f0fccc1132049e774d8d90274998e58949f7c /com/google/http-client/google-http-client-gson/1.20.0/google-http-client-gson-1.20.0.pom +45b1e34b2dcef5cb496ef25a1223d19cf102b8c2ea4abf96491631b2faf4611c /com/google/http-client/google-http-client-jackson2/1.22.0/google-http-client-jackson2-1.22.0.jar +184c3aaa66f32be7bf592caab362becd10a80b15b077c3ebe9ae9fa9d387f41a /com/google/http-client/google-http-client-jackson2/1.22.0/google-http-client-jackson2-1.22.0.pom +5c592d663ac30387eb30551a20cbd401bde859095f94ec2bef8ed2a4acf7a8f1 /com/google/http-client/google-http-client-parent/1.20.0/google-http-client-parent-1.20.0.pom +3927309767100e548d1f5c20e150d75716e03a3d8a1a1b970c8a75fbddae072e /com/google/http-client/google-http-client-parent/1.22.0/google-http-client-parent-1.22.0.pom +f279a8172e7671c9dcd896850aaa6ce85e1d93e5bc0a10fd7c7a6efbf76f60db /com/google/oauth-client/google-oauth-client/1.20.0/google-oauth-client-1.20.0.pom +a4c56168b3e042105d68cf136e40e74f6e27f63ed0a948df966b332678e19022 /com/google/oauth-client/google-oauth-client/1.22.0/google-oauth-client-1.22.0.jar +52a2b2c1a4365668545134157ee7bb141c6b537caa29a4e51f3228ce0bbbeaf9 /com/google/oauth-client/google-oauth-client/1.22.0/google-oauth-client-1.22.0.pom +3149ae4fa222c7e804c5b7bc0d044702bc6bb8309b5ed94f6d350a5d4d657fc9 /com/google/oauth-client/google-oauth-client-java6/1.20.0/google-oauth-client-java6-1.20.0.jar +61233bbb437dc91504076a644ce77b1066f679d1252362d08de67d296c404cf0 /com/google/oauth-client/google-oauth-client-java6/1.20.0/google-oauth-client-java6-1.20.0.pom +daabf9d4e35d4015c2c917982463572856a5c8d7fa718e94edb2b6b114a2a8a2 /com/google/oauth-client/google-oauth-client-jetty/1.20.0/google-oauth-client-jetty-1.20.0.jar +2c594b64206b24c2ec9506769cac5c637346152c7822f0337721776c6eb092db /com/google/oauth-client/google-oauth-client-jetty/1.20.0/google-oauth-client-jetty-1.20.0.pom +374fb28a2c74f92999de4d843f788838f38fd89b570c95813513546a0e7ae3ca /com/google/oauth-client/google-oauth-client-parent/1.20.0/google-oauth-client-parent-1.20.0.pom +2e7acb933f8c1b801b78925e4d22c32040a414dc7246bfdb777d8ad78404fa66 /com/google/oauth-client/google-oauth-client-parent/1.22.0/google-oauth-client-parent-1.22.0.pom +147592c5eb8e11fc8394125954f877acf25918bae13aa210c2825aefc3030ed8 /com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar +06b382efe9d60474aa3df7f4851397b3ae0c4f142567f0fc66a8fa2706a665e4 /com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.pom +2c149735a093b6c65a27db760896ad5c5b06e29100bb8969937667784fef4ba0 /com/mojang/authlib/1.5.16/authlib-1.5.16.jar +d05175230d79f518b5c4664d24e3d115f5f3888e3806f3b6076cd0b4943e6ca6 /com/mojang/authlib/1.5.16/authlib-1.5.16.pom +c8a095123be93c59d4ac29e4a0616495b3d479ac65913cb719a81ee583e9dfcd /com/mojang/authlib/1.5.25/authlib-1.5.25.jar +194f9d56c3b05a6df8d4f94c383e2eb0b4d4c2ec0437f03a385cbe5d5ab314cd /com/mojang/authlib/1.5.25/authlib-1.5.25.pom +c7c7f255b76ff208cac4febf58ddafadcd63bac970dbe0c26dd62c940e80f5b7 /com/mojang/patchy/1.1/patchy-1.1.jar +3dddf11f0085213c080ee6d2bfe387424339c6ec01d22796d3e26e6e813881ab /com/mojang/patchy/1.1/patchy-1.1.pom +e3ab95d053a4e180693422bf56592f3c62ff273b0deb1d4a3cb5f76d8fb6994a /com/mojang/realms/1.10.17/realms-1.10.17.jar +152235c4a886c6c9a9af7c76092a8161c5e505199b728c1a965f069a7519290f /com/mojang/realms/1.10.17/realms-1.10.17.pom +841d2f407824a4a9c3dd872c51ecd76d50381c569b79c3ea7b06b69eec2bba53 /com/mojang/text2speech/1.10.3/text2speech-1.10.3.jar +4465dc903f2bb36f18474de86edd8db46c2538705f675f32cbcdbf8b01ecfc09 /com/mojang/text2speech/1.10.3/text2speech-1.10.3.pom +e7cd8951956d349b568b7ccfd4f5b2529a8c113e67c32b028f52ffda371259d9 /commons-cli/commons-cli/1.2/commons-cli-1.2.jar +18f3e92076e08c2fde48317025098e9f6baaa85f6912eb43f2d7e68d570e4561 /commons-cli/commons-cli/1.2/commons-cli-1.2.pom +4241dfa94e711d435f29a4604a3e2de5c4aa3c165e23bd066be6fc1fc4309569 /commons-codec/commons-codec/1.10/commons-codec-1.10.jar +bdb8db7012d112a6e3ea8fdb7c510b300d99eff0819d27dddba9c43397ea4cfb /commons-codec/commons-codec/1.10/commons-codec-1.10.pom +1bafd2ece2e88db4cdf835a7f8f0de65fab5b1147977a5dcc59b7c1b8c6f5080 /commons-codec/commons-codec/1.3/commons-codec-1.3.jar +d157e34244e884dd91fa01921ca84372e11f7bb08fedb5d456c0670c28054636 /commons-codec/commons-codec/1.3/commons-codec-1.3.pom +54b34e941b8e1414bd3e40d736efd3481772dc26db3296f6aa45cec9f6203d86 /commons-codec/commons-codec/1.6/commons-codec-1.6.jar +a06e35d3fff3a6b813d94894ebf3e498f9540c864c5b39ae783907e3a6c72889 /commons-codec/commons-codec/1.6/commons-codec-1.6.pom +ad19d2601c3abf0b946b5c3a4113e226a8c1e3305e395b90013b78dd94a723ce /commons-codec/commons-codec/1.9/commons-codec-1.9.jar +e5efcf039cd909688c201dc5479b144fd6f01f0e40252b7fc5e7d2e1b5c07990 /commons-codec/commons-codec/1.9/commons-codec-1.9.pom +a7f713593007813bf07d19bd1df9f81c86c0719e9a0bb2ef1b98b78313fc940d /commons-io/commons-io/1.4/commons-io-1.4.jar +2dae496a19c82b8e9985a1246aa80cf98082b1ae2217cf4b2d4d5ff13a365af2 /commons-io/commons-io/1.4/commons-io-1.4.pom +cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581 /commons-io/commons-io/2.4/commons-io-2.4.jar +b2b5dd46cf998fa626eb6f8a1c114f6167c8d392694164e62533e5898e9b31f2 /commons-io/commons-io/2.4/commons-io-2.4.pom +a10418348d234968600ccb1d988efcbbd08716e1d96936ccc1880e7d22513474 /commons-io/commons-io/2.5/commons-io-2.5.jar +28ebb2998bc7d7acb25078526971640892000f3413586ff42d611f1043bfec30 /commons-io/commons-io/2.5/commons-io-2.5.pom +ce6f913cad1f0db3aad70186d65c5bc7ffcc9a99e3fe8e0b137312819f7c362f /commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar +d0f2e16d054e8bb97add9ca26525eb2346f692809fcd2a28787da8ceb3c35ee8 /commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom +70903f6fc82e9908c8da9f20443f61d90f0870a312642991fe8462a0b9391784 /commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar +3250ac3ac6bd60ed0631f5cd0335032b2993d63e405a6ae0555d27a7e4865849 /commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.pom +33a4dd47bb4764e4eb3692d86386d17a0d9827f4f4bb0f70121efab6bc03ba35 /commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar +69b8be61aa746c7d02acb1b11eb3b57cb22b246780ed71d79764195cbbe3d99d /commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom +f868fc9e23d7203834abb5e0d11782e1e8920d4e95a06735a13dd51ab8049de8 /com/mycila/maven-license-plugin/maven-license-plugin/1.10.b1/maven-license-plugin-1.10.b1.jar +9576f1134ebf1f0dae51d1e5cce46a6a6e5b5c5998cc12318ebfd16162702d8b /com/mycila/maven-license-plugin/maven-license-plugin/1.10.b1/maven-license-plugin-1.10.b1.pom +d190c18ef3caf788c84a49d6bc200be29a76c00d3ad6030bf11f7afaa4b24f88 /com/mycila/parent-pom/5/parent-pom-5.pom +870f9396789e2f48a7b8fb28dfc070c2f8e74b2007274ce23e69b658110fd294 /com/mycila/xmltool/xmltool/3.3/xmltool-3.3.jar +eb83f616945c8c7dfb4d80e6f909e7286f523bb11077802bcd216bd70e9c717a /com/mycila/xmltool/xmltool/3.3/xmltool-3.3.pom +a661dfcb749053fc26eada2a0a8e619a8ead1ca9eda29e1698687aa2cdd80152 /com/nothome/javaxdelta/2.0.1/javaxdelta-2.0.1.jar +93bbe8babc70e175d406ac689b90e689f4915c6e39e738eb6406fa5b529ce36c /com/nothome/javaxdelta/2.0.1/javaxdelta-2.0.1.pom +6c4b4e50e608763564afa1bde2d25ece9dd715e7c9129540faa1faded4896506 /com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar +d246a119ba41e3c866bf728fb6e98277bd3f8695130056039dbbfd000cc3ff6b /com/paulscode/codecjorbis/20101023/codecjorbis-20101023.pom +bb7d17b340afe6abdfbfdaa03683bce4aef39a64887dbab0636eaff3cf2d59ba /com/paulscode/codecwav/20101023/codecwav-20101023.jar +5f95932d9b4b254b890d9105f2d3917bc60ceaf77ae1bc75a79c6b20662e596d /com/paulscode/codecwav/20101023/codecwav-20101023.pom +333bbefeff5eb1722dc9b8d2e26c38bc69c1efa07d0ca870480f29d8858aa336 /com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar +ce4a18bc8e94f155421f6b3d0b9bb6939c9ca206df85e5c10587e66e34310c44 /com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.pom +107d11509f6af59b8c2ba23df828bc5d3c4e067b58f3d858c7deb90ca5308f84 /com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar +ff88b9584f5ba98863f24fc3f6014854c7a176fe7017813a6d023e722ce05aee /com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.pom +2882d64550240dd0c026724da664d9f97ef205c91d6a85273d10790d88608f34 /com/paulscode/soundsystem/20120107/soundsystem-20120107.jar +c1a2438a4d35f8586c71d96c44a7e2f133ec924597147a246f8c501acca6acb5 /com/paulscode/soundsystem/20120107/soundsystem-20120107.pom +4ccbc821a417f0174c9734fc721f078177cacef94ded09c3775ebf40c6a7bdfd /com/typesafe/akka/akka-actor_2.11/2.3.3/akka-actor_2.11-2.3.3.jar +9f9920b48ae5f1045fe966f08164d6b4e0a727cf17f8e4813ae5c0f2daecffbc /com/typesafe/akka/akka-actor_2.11/2.3.3/akka-actor_2.11-2.3.3.pom +c160fbd78f51a0c2375a794e435ce2112524a6871f64d0331895e9e26ee8b9ee /com/typesafe/config/1.2.1/config-1.2.1.jar +62361ef10448869fff8c05150bd0449b423e3ff4498f2a4bab825b3c7685aa3c /com/typesafe/config/1.2.1/config-1.2.1.pom +a95c958f0c052e0a94d20de1d30a9151f68e66b19bdbea60a58cd41539558874 /de/oceanlabs/mcp/mcp/1.12.1/mcp-1.12.1-srg.zip +5bbf57acadec0f5ea930b793772bbbf2885098aed8d2ecf6290c170a7cd9f33e /de/oceanlabs/mcp/mcp_snapshot/20170615-1.12/mcp_snapshot-20170615-1.12.zip +22c45060f350fcaa94e503f4a420cf8237c26c0fcdb4ada4aa98389b75c7b231 /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.jar +d6f165bb39aaa20ee14fdcbbdb0b8fffae38067087f333ec6e0acd3f6666b2ad /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.pom +a6063db740f50399c92942f41fd7d60d8afcf916d6c7a52dac69c7fa63598579 /de/oceanlabs/mcp/versions.json +fd5ad66cdd0a496d281b26c699f4511da7c3f95083659ebb7bae22dab876581a /io/netty/netty-all/4.1.9.Final/netty-all-4.1.9.Final.jar +8ec38a54fc6ed53201d507c6690805878158bcab25c2f476a74c0ccb1d78870b /io/netty/netty-all/4.1.9.Final/netty-all-4.1.9.Final.pom +117ff8d9069d0278585c284ab0817f826f018d9cf4e30f7e1b11f4fbc73013d1 /io/netty/netty-parent/4.1.9.Final/netty-parent-4.1.9.Final.pom +c266701bd7a4a2c36285862c1e682ccb7b5cb5b380d0de9bb1b34becf9e1c065 /it/unimi/dsi/fastutil/7.1.0/fastutil-7.1.0.jar +2846073506b6ff0361f08d0deafb2f3921797974e9685cae6c103f4a7f29100b /it/unimi/dsi/fastutil/7.1.0/fastutil-7.1.0.pom +09adf7955baa6bddf57a4bdbf9a91cf690261314969b59a18085ece1e05eccf9 /java3d/vecmath/1.5.2/vecmath-1.5.2.jar +a4aee4668f1b127c95c9afe1b922f4c5a0b1ad879ba811077cb7d0e048dce231 /java3d/vecmath/1.5.2/vecmath-1.5.2.pom +a6d2c9c0ddff7702662073b69c6dc4ec83011d22e4eb2dada28aa2d66ee47f97 /jline/jline/2.13/jline-2.13.jar +ba62d78eb858e241a604cdf739594cd312f0572756ea7aba4544c746d7152c43 /jline/jline/2.13/jline-2.13.pom +90a8e1603eeca48e7e879f3afbc9560715322985f39a274f6f6070b43f9d06fe /junit/junit/4.11/junit-4.11.jar +18ad8b0ae9e65a9195d04e25427dfe8b58175abcdae875a5a406aee38bddfb26 /junit/junit/4.11/junit-4.11.pom +dc67378cf428c06408e7959e83bdc1518dd22ccd313e7c28a986612d65c276c7 /log4j/log4j/1.2.12/log4j-1.2.12.jar +cb54dedc5d8c4510148dfa792701cbac1a84c383a84f48f5a32e6d7e460bbb72 /log4j/log4j/1.2.12/log4j-1.2.12.pom +0c3085cb93c3ef95d731c274b6f2dd195aa0405fe9328d69cab7f5e899d5e124 /lzma/lzma/0.0.1/lzma-0.0.1.jar +a096bc9f7579cec07483874151578720eeb3189c546c19cff56a6203df17b50e /lzma/lzma/0.0.1/lzma-0.0.1.pom +19331fb29bf8b8d5ed764677c94cca9d66481e10104f660eb555894a4300cf22 /mc/game/1.12.1/client/83385d346cf7f97d1e447b888750fb88e9928b93/client.jar +848912640bccfa7ea34a2cc1c76cb2b35f8467c4216d9603917c991660f91a8b /mc/game/1.12.1/server/561c7b2d54bae80cc06b05d950633a9ac95da816/server.jar +5dcff0a65ed3b43d82328340505118e53dab5273c352e2d56733a0e498ed5655 /mc/game/2ce9731e5bafdf69014e4e6db1cc56149958c5a8/1.12.1.json +362a4831ab2e429160b91cfb373c5b282ca0a704a4e9f8f58360180c1c7c91d9 /mc/game/version_manifest.json +c4dadeeecaa90c8847902082aee5eb107fcf59c5d0e63a17fcaf273c0e2d2bd1 /net/java/dev/jna/jna/4.4.0/jna-4.4.0.jar +800bb2831dda341336ea69b7beb675f159973f64dad6aaa1ad8c4fa78e5cb19b /net/java/dev/jna/jna/4.4.0/jna-4.4.0.pom +ea89d5090c8303ba4e9a0056e6d8a20429f3e021411e950bfd9eba3b6e6cf15c /net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar +8f0c14f62912c089d81386015e78cf212f9e96f675b3bc0e519c1e2d92aa8950 /net/java/dev/jna/platform/3.4.0/platform-3.4.0.pom +79b5a4f5829e1a49a415711f7fb8eb5b9ad22defa72929fda2da96ec30d3f018 /net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar +3199d547c1275e806e0c7be19e90dcb00d9561ec3b31fb2e780e12d7d8785810 /net/java/jinput/jinput/2.0.5/jinput-2.0.5.pom +1ab4d194277816b6105253d224c8c69f1b6d720690efe7c85f3ce884f0ea273d /net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar +171024b00f9a743b92388b48733dc30fd3f6d3a7da4f66f9821531fbcf1aa074 /net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar +24afbd5e1fab17da57d16a4d3f19d53f36155ef46a9976484201a4bb9722287f /net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar +ba27597365ae85a836c1f51819903668b4a1a7490e39e530633cc8a7b40b5500 /net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5.pom +c3334ff39cf0ab3b54925619101054c90098b7c733b1e7834c7b75e4c41e84a5 /net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar +af09ead4eb241473e7ec4d152a91a722ea09a717a202e20e4b385eac3217b7d6 /net/java/jutils/jutils/1.0.0/jutils-1.0.0.pom +b47c5d5810643426a3147ddb2195ef2ab67c80b167e7c2ac64a5d0dee8c030dd /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.jar +5f374f8ae7afff8dbc23aff14e59c5bd585c230afe9a8dcaa7b928e8cb16a27e /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.pom +606b825e3920a1b7e8e2652a37e432f2b3066539e803a46212c5505a709cbff2 /net/minecraftforge/forge/1.12.1-14.22.0.2444/forge-1.12.1-14.22.0.2444.pom +c8396b067c800425d4f4e97ec6879262f2133b5c53575c6b82c4eb6feb22f2a1 /net/minecraftforge/forge/1.12.1-14.22.0.2444/forge-1.12.1-14.22.0.2444-userdev.jar +a5ae2dc3177eddf8f19ccfee248eff3b3f76e38f4fb76a88bf99f96e81094924 /net/minecraftforge/forge/json +e74b65b8948446982a506a96176dd8baf4688237ba4903f56ca6f667b6c7ee42 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.jar +616c4971035d1e6ab4809e16daabb02aa308c1dc001c06dd547c7d3b2e916999 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.pom +57f402b626d16cc2705bf2a37add7adbb074f0ca3b3102fa6e23aa303dae682f /net/minecraft/launchwrapper/1.12/launchwrapper-1.12.jar +5f1fced192c1dc9b68ef7dec12ba7a033129a71b290c283046a59aa2902e1fbc /net/minecraft/launchwrapper/1.12/launchwrapper-1.12.pom +64335a48be6b142a7d0c13ec5c82a707857aa58c0234e6eda3eaca0e96eea51b /net/sf/jopt-simple/jopt-simple/4.5/jopt-simple-4.5.jar +60f08a3d6fc0e7948fd00fc95fad014fae5a5dc7eb991a631e0efee8bfad0b27 /net/sf/jopt-simple/jopt-simple/4.5/jopt-simple-4.5.pom +3fcfbe3203c2ea521bf7640484fd35d6303186ea2e08e72f032d640ca067ffda /net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar +692744a19473011539ebc1370a264b8af1c056e0ae21f5372aa9dd7d4b4e5a2b /net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.pom +9f0c8d50fa4b79b6ff1502dbec8502179d6b9497cacbe17a13074001aed537ec /net/sf/jopt-simple/jopt-simple/5.0.1/jopt-simple-5.0.1.jar +606e9b1d8e448a8f454b7eb585320b392e80f68880e92bef98cdf9dab8714340 /net/sf/jopt-simple/jopt-simple/5.0.1/jopt-simple-5.0.1.pom +6f45c00908265947c39221035250024f2caec9a15c1c8cf553ebeecee289f342 /net/sf/jopt-simple/jopt-simple/5.0.3/jopt-simple-5.0.3.jar +df75c23d079c8f1a4f5b2fda4ba271ef535993d53d5664213aa2325784e50fd3 /net/sf/jopt-simple/jopt-simple/5.0.3/jopt-simple-5.0.3.pom +dc0ba5bff6140dc92339973026a0ecbddc2a3b01bdd46ed9d16becc2f6d78de6 /net/sf/opencsv/opencsv/2.3/opencsv-2.3.jar +57f5607565d6a90dee6722801d4524813d9d2785046f2954a18861dfbf4a2149 /net/sf/opencsv/opencsv/2.3/opencsv-2.3.pom +294fb88c272598b9a5dcae15f13d228e64134256de941fbc28917a994beeb075 /net/sf/trove4j/trove4j/2.1.0/trove4j-2.1.0.jar +6d486c048a84c90ad9239b7b06a7d686d43eda28f827fac08d4f4ea942d21d0a /net/sf/trove4j/trove4j/2.1.0/trove4j-2.1.0.pom +3c8616203d61a12a7e3487e8b34f3c198c2b5ba9e90da0c7ea32d99cd4958012 /net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.jar +11327b94615d0bf16d4e17334902de783c2022f5e909d51fbce993a7a9d7e1d8 /net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.pom +3b93b62c0ea3ab9b5c1c1cdb1a3f25a7eb758f9974e8998f4e1815ba33cb7a1e /nl/javadude/gradle/plugins/license-gradle-plugin/0.11.0/license-gradle-plugin-0.11.0.jar +afded103d53d00171f486ab23c35151d8b82b32e51390c30ae734e83de863c52 /nl/javadude/gradle/plugins/license-gradle-plugin/0.11.0/license-gradle-plugin-0.11.0.pom +649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8 /org/apache/ant/ant/1.9.4/ant-1.9.4.jar +5ce23a18f28d04be351f863020da0136214218aface05560516b97555a5077fd /org/apache/ant/ant/1.9.4/ant-1.9.4.pom +7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d /org/apache/ant/ant-launcher/1.9.4/ant-launcher-1.9.4.jar +c9193ed600adc6c7943a6c6dc6bd952edcb5f10fb2cda594b7199766fdeef698 /org/apache/ant/ant-launcher/1.9.4/ant-launcher-1.9.4.pom +a93aa9c66665872b0e51360c15ae282971e36a8aa987b40ef4d82d9a5aa151c4 /org/apache/ant/ant-parent/1.9.4/ant-parent-1.9.4.pom +ff513db0361fd41237bef4784968bc15aae478d4ec0a9496f811072ccaf3841d /org/apache/apache/13/apache-13.pom +36c2f2f979ac67b450c0cb480e4e9baf6b40f3a681f22ba9692287d1139ad494 /org/apache/apache/15/apache-15.pom +9f85ff2fd7d6cb3097aa47fb419ee7f0ebe869109f98aba9f4eca3f49e74a40e /org/apache/apache/16/apache-16.pom +7831307285fd475bbc36b20ae38e7882f11c3153b1d5930f852d44eda8f33c17 /org/apache/apache/18/apache-18.pom +9e9323a26ba8eb2394efef0c96d31b70df570808630dc147cab1e73541cc5194 /org/apache/apache/4/apache-4.pom +12edb5096e13f40c362d0bd40902589fa9586505123fa26799ce50b116fa5bb3 /org/apache/apache/6/apache-6.pom +4946e60a547c8eda69f3bc23c5b6f0dadcf8469ea49b1d1da7de34aecfcf18dd /org/apache/apache/9/apache-9.pom +93f8dfcd20831a28d092427723f696bceb70b28e7fb89d7914f14d5ea492ce5a /org/apache/commons/commons-collections4/4.0/commons-collections4-4.0.jar +f23d3625d35b016f3e8b77fb3ebf5e543807081fce2492f45a79d00160789a78 /org/apache/commons/commons-collections4/4.0/commons-collections4-4.0.pom +5fca136503f86ecc6cb61fbd17b137d59e56b45c7a5494e6b8fd3cabd4697fbd /org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar +10137adb14e8520b2abcddc308003e432eb836c4d1f9a00f68601d63583b9fb8 /org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.pom +cb49812dc1bfb0ea4f20f398bcae1a88c6406e213e67f7524fb10d4f8ad9347b /org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar +82827f6019c0f71bd74fba886ab337ff6da291f63df9723379a209d6ad3b44f8 /org/apache/commons/commons-exec/1.3/commons-exec-1.3.pom +6b81d10754dadf184d386011486e6509c2cc0c3d33565ced4fb4402b9413d47d /org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar +e1875bf575999ebc62dec34304a0d108c30a4ff8101e8ea5c9a9332715277940 /org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.pom +8ac96fc686512d777fca85e144f196cd7cfe0c0aec23127229497d1a38ff651c /org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar +45e7fbb2c231db903a5d5aadafc636a173a4d54560f78a11ff498028ef9e345e /org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.pom +b9e0306f393460105b8a3fa5105250c5291b1efaa99954ace0ec1c783109a02a /org/apache/commons/commons-parent/11/commons-parent-11.pom +fb8c5e55e30a7addb4ff210858a0e8d2494ed6757bbe19012da99d51586c3cbb /org/apache/commons/commons-parent/22/commons-parent-22.pom +467ae650442e876867379094e7518dfdd67d22c5352ebd39808c84259e9790ba /org/apache/commons/commons-parent/25/commons-parent-25.pom +14733a68e8b120b69de60cd96d222146dcf32f03c1c6cc6a750b1269bafe86c7 /org/apache/commons/commons-parent/28/commons-parent-28.pom +e4d258af8b2ff4032148d415379def7870789a6003e80576f1504b10f26b4be8 /org/apache/commons/commons-parent/32/commons-parent-32.pom +53d0011352e2e5106f379dafccdac7754ec6f0f78243c0305e4969f5acddf8fb /org/apache/commons/commons-parent/33/commons-parent-33.pom +7098a1ab8336ecd4c9dc21cbbcac869f82c66f64b8ac4f7988d41b4fcb44e49a /org/apache/commons/commons-parent/35/commons-parent-35.pom +87cd27e1a02a5c3eb6d85059ce98696bb1b44c2b8b650f0567c86df60fa61da7 /org/apache/commons/commons-parent/39/commons-parent-39.pom +b2877c8016f8b28924c8e90dd5ae40cd11f328d02a1de98d80de22574ab36ec7 /org/apache/commons/commons-parent/41/commons-parent-41.pom +8bd632c00bdf80a7de36c22b60f12452c147d8eca2f00d79d66699ebe7daa02a /org/apache/commons/commons-parent/5/commons-parent-5.pom +01e97067a1f9bd0e0a34f2f32bbf43fe6e9b11910f3b0dfe77fd7fb418619105 /org/apache/commons/commons-parent/7/commons-parent-7.pom +752596ebdc7c9ae5d9a655de3bb06d078734679a9de23321dbf284ee44563c03 /org/apache/httpcomponents/httpclient/4.0.1/httpclient-4.0.1.jar +51b8c025a4a1700d861d17bc2332f2b5045a81bad5d55291d9b652bb782151b2 /org/apache/httpcomponents/httpclient/4.0.1/httpclient-4.0.1.pom +9844cc9b5440d65a88d28bcba9d771374d2dfdab898848cda164611091633013 /org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar +03f7d67d6547083a38413c0da921d194a6010236f8980c7585c0c8f3019c0aa8 /org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.pom +1a5cfc674477ce7fd1150e8ea841f18301da1a4bfc729a029e072e81f3f36515 /org/apache/httpcomponents/httpcomponents-client/4.0.1/httpcomponents-client-4.0.1.pom +15c27734dbcedc6af2cf18fa72a8c6e248477144a3d936a0fc228aaa74a02b00 /org/apache/httpcomponents/httpcomponents-client/4.3.3/httpcomponents-client-4.3.3.pom +70d3b2bb5d199da825681559ff68aa5bdee201206c50af177bf7ca4d94226752 /org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom +aa3ec31c7dd2161cfe3a3975645ea8703db0a6d6adb7d5b1766b32764c5c1806 /org/apache/httpcomponents/httpcomponents-core/4.3.2/httpcomponents-core-4.3.2.pom +3b6bf92affa85d4169a91547ce3c7093ed993b41ad2df80469fc768ad01e6b6b /org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar +d1f666e38907c9471c64a3cdf87e0b1b0469d503e51cc14661860f7f6bd70c6e /org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom +abd02320e2356f89d054dae4cf02306bef20a9cf7865b3ac94ec7552b4f1528b /org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar +dfe5335f45b9466af820368b95c543d7542fcfcbe5f5d379e91cf0432e2df489 /org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.pom +61434dbb2314cbb8d28025feb6ae53bbc45d1042daa34371d8911e1e7f570b36 /org/apache/httpcomponents/httpmime/4.3.3/httpmime-4.3.3.jar +30e52abf8461a7ab254f20ec2c28e01865721ad9fbdb3baf14f32251623a1f87 /org/apache/httpcomponents/httpmime/4.3.3/httpmime-4.3.3.pom +a35e70c72865add3f9416194e02d6f9967dbf0c77d253933f80fbf46ad4d2169 /org/apache/httpcomponents/project/4.0/project-4.0.pom +3d6eba428555a558de046b5d76eacc1f5a54b4f5f20b84d636ed7aff18aa48c3 /org/apache/httpcomponents/project/7/project-7.pom +9ab50a08565c7c01082266d2464b7656e2448e40788375ff5c034da17042cc24 /org/apache/logging/log4j/log4j/2.0-beta9/log4j-2.0-beta9.pom +78d4abedfb7fdd01f3276a0d17a5eaedce9e99b9d2ee83bb9fc8a609e177729a /org/apache/logging/log4j/log4j/2.8.1/log4j-2.8.1.pom +eb0ca9bdd938f80711152a758d6bc331a8b0d769199d457294dc67ed03f73498 /org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar +4e10aac66cfabc8a16f0045bca650e082a190caca85d1c28376a71b9b918b40d /org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.pom +1205ab764b1326f7d96d99baa4a4e12614599bf3d735790947748ee116511fa2 /org/apache/logging/log4j/log4j-api/2.8.1/log4j-api-2.8.1.jar +af8959c619bd2c620723b83e511dea7b5018378295449bccaa21f6f72f1d2d94 /org/apache/logging/log4j/log4j-api/2.8.1/log4j-api-2.8.1.pom +dcde6033b205433d6e9855c93740f798951fa3a3f252035a768d9f356fde806d /org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar +f360def8ad0c62f5420a9b2ef8d6a51f87703e05c1df08494578a1d4024b05ad /org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.pom +815a73e20e90a413662eefe8594414684df3d5723edcd76070e1a5aee864616e /org/apache/logging/log4j/log4j-core/2.8.1/log4j-core-2.8.1.jar +6efbf3a19b80fb812392ac99a113138f1e909d85dfa44c0813c1c69737b82c52 /org/apache/logging/log4j/log4j-core/2.8.1/log4j-core-2.8.1.pom +34b2bf4f531a809168961672ff419d1abf96725b8dfe52980f00c8c4eb134bd6 /org/apache/logging/logging-parent/1/logging-parent-1.pom +35420001ba5fe10723b2b9802c31f59869f8763d5367b3648fa519d207ae4178 /org/apache/maven/maven/3.0.1/maven-3.0.1.pom +4c2f8341518aeb9d488844e334c02fa66dd4bb091bfdeb965c8a848ac6ea5aa2 /org/apache/maven/maven/3.0-alpha-2/maven-3.0-alpha-2.pom +64c3d84c0aa343c135791106db7a1f38598b1e74763c4ce404b1cf28d9b31cc8 /org/apache/maven/maven-artifact/3.0.1/maven-artifact-3.0.1.jar +61ab43b13fc4066c5c176d5c2c700a7f9006438322dc1599772117679a234644 /org/apache/maven/maven-artifact/3.0.1/maven-artifact-3.0.1.pom +85500348730f338599e5f454be4a9909a6d01e86effc1ed0650a71e544bc67d5 /org/apache/maven/maven-compat/3.0-alpha-2/maven-compat-3.0-alpha-2.jar +4196effcccdbe4ef8dc625e5dd8e13284971dd884dc80109cb1f44d76dd0d7e7 /org/apache/maven/maven-compat/3.0-alpha-2/maven-compat-3.0-alpha-2.pom +3ec2a8baef4dc4471bdcb461a57ce7f90335e2826785a71e9c48cc24ab90fccb /org/apache/maven/maven-model/3.0.1/maven-model-3.0.1.jar +6c1d23f6d6c8259c2221b3c2ab4aa63cdc631c0791ae19579350e696ded82f74 /org/apache/maven/maven-model/3.0.1/maven-model-3.0.1.pom +81fe14cb9779d36e0c610e1049e5b32a6b9974957f257921acf628b31c5486c8 /org/apache/maven/maven-parent/10/maven-parent-10.pom +e25770d5d46dcdfdbb9e38ca04f272c5bdf476d88392ab4044ba90678e616d54 /org/apache/maven/maven-parent/15/maven-parent-15.pom +3cb6712f827c80dc6b0b0b967776dba451c023a92b7741bba45d23ab7a83281a /org/apache/maven/maven-parent/8/maven-parent-8.pom +3b5e7b3a72f400835c279d67e62d48d3fd41f2c6e1aa14145ed176d50a6be0b4 /org/apache/maven/maven-plugin-api/3.0.1/maven-plugin-api-3.0.1.jar +bd2ed289400594e7385cfdd14b7488789fe2c19d4c0ea2fde8b947325d5cbf8d /org/apache/maven/maven-plugin-api/3.0.1/maven-plugin-api-3.0.1.pom +0b76d82011452170dddd21fb33da6bfc414ff6629fce6219fbf1d78ce1518e90 /org/apache/maven/maven-project/3.0-alpha-2/maven-project-3.0-alpha-2.jar +24477230086e456dff22c24dec30aab0a8ae321a2ce5645a85a8516f7dd829e3 /org/apache/maven/maven-project/3.0-alpha-2/maven-project-3.0-alpha-2.pom +f3905cb8c223c33f6121bc937b66a2f58653be766042fb6e924b9882c555d891 /org/apache/maven/maven-project-builder/3.0-alpha-2/maven-project-builder-3.0-alpha-2.jar +392f9bcc7eb6d9ab85b693cda0c3ba698fc770d32843491c8815b87f40fe02a8 /org/apache/maven/maven-project-builder/3.0-alpha-2/maven-project-builder-3.0-alpha-2.pom +6c35daab503ff462f4f63317ae723bd37cae37460ea3576374a347583e7c4327 /org/apache/maven/wagon/wagon/1.0-beta-4/wagon-1.0-beta-4.pom +6a82569576cda4cae793800ed2985202de8a59e414d2140e217cf077709e7bbb /org/apache/maven/wagon/wagon-provider-api/1.0-beta-4/wagon-provider-api-1.0-beta-4.jar +1739331652c6e93dd3305a9c5b33f493c85782171e9e8a3e0c750b030dabadd1 /org/apache/maven/wagon/wagon-provider-api/1.0-beta-4/wagon-provider-api-1.0-beta-4.pom +56ab9c6c2d022a9b7079006ba500a996cd2c21411d53cac524933af20c5a4b99 /org/apache/xbean/xbean/3.4/xbean-3.4.pom +17e0efa187127034623197fb88c50c30d3baa62baa0f07d6ec693047ac92ec3b /org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.jar +01c97d4286dd3b5e5441faac3abb589f1fe123cea138bb4ae0995ffae14938df /org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom +c7964f00c3d3889c5223e8fcb7476610c59453c86bccc68ef493a56d171bf655 /org/aspectj/aspectjrt/1.8.2/aspectjrt-1.8.2.jar +ba5261a1f07260c3d8016623fdd27d662b9934266a75d4f57f165bfbaf9af1a8 /org/aspectj/aspectjrt/1.8.2/aspectjrt-1.8.2.pom +f07694998acb204782c72cc8067b237a04097a2170f07d440614883f14a67630 /org/codehaus/groovy/groovy-backports-compat23/2.4.4/groovy-backports-compat23-2.4.4.jar +2f93f476d35dd52828e13f32a4be68ab80a3b999713079feb98c67ae9e8d858f /org/codehaus/groovy/groovy-backports-compat23/2.4.4/groovy-backports-compat23-2.4.4.pom +5197630dcd2336f5b4ab8e6d26e5b8675f5ebd83bd8c91d6aba431b09627d626 /org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom +e246e2a062b5d989fdefc521c9c56431ba5554ff8d2344edee9218a34a546a33 /org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom +bea12e747708d25e73410ca1c731ebdfa102e8bdb6ec7d81bd4522583b234bcc /org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom +2b59062030ab0a15c5d0977ba22421706368926488739a65f25793e715cc8a74 /org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom +7d95ad21733b060bfda2142b62439a196bde7644f9f127c299ae86d92179b518 /org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.jar +a2d14b6752e30a100a6cb03c040d0160b71b61928daf8ea97cabfb4a3335b213 /org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom +4df7a6a7be64b35bbccf60b5c115697f9ea3421d22674ae67135dde375fcca1f /org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar +815f3ec316b8c5fa701385fdf4009bfb51e07d780e8f6a6e2afe720c52d7e292 /org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom +00aa0be06a029e4b45032f682089d5052b014c028f9187f83c70adc073672c46 /org/codehaus/plexus/plexus-container-default/1.0-beta-3.0.5/plexus-container-default-1.0-beta-3.0.5.jar +3d90bbd9f534020621c77453dcffdad4e761e42911c2be9adaeec724f9972a9c /org/codehaus/plexus/plexus-container-default/1.0-beta-3.0.5/plexus-container-default-1.0-beta-3.0.5.pom +f53a82db260a2910a9823d6e72a927891daae33d8eb6884ab838a2a2768c6b86 /org/codehaus/plexus/plexus-containers/1.0-beta-3.0.5/plexus-containers-1.0-beta-3.0.5.pom +1bc264824ec876b0ca6f4f5838175c541c638cbc43326a268b9aee7d4778b5ef /org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom +b4ecee4e3a90b6b782d3e0b260f708615402ae8f2729be2933fedd1234b4bf07 /org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.jar +72f6babf3ff5886b54a66d567305e85fc0fbecc7e0bd47eb81fa502c9447fae8 /org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.pom +35bc7d1213616236571072b2c56da18f7a57658de8b4a4100645b7054a2b273b /org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom +8b909f4ca9788647942f883d4e559bcc642123f7c6bcd3846983a2e465469c33 /org/codehaus/plexus/plexus-utils/2.0.6/plexus-utils-2.0.6.jar +fddad4fa62c82310aec43525e519cd59f27d04c7569fe21b1b03ca210887810c /org/codehaus/plexus/plexus-utils/2.0.6/plexus-utils-2.0.6.pom +03cbe8dcaa909a6f72219abec105675c6df08898971c326cf7e64373bff5e769 /org/codehaus/woodstox/wstx-asl/3.2.6/wstx-asl-3.2.6.jar +784db534cc3c5051f88198e8251da9c8b13625e0eb365a347e1085387d8203b1 /org/codehaus/woodstox/wstx-asl/3.2.6/wstx-asl-3.2.6.pom +e4144cbc26da195c6b22a53691fd079f70b74aa5f55bd6089cd77ec99a0ee8fe /org/eclipse/core/contenttype/3.4.200-v20130326-1255/contenttype-3.4.200-v20130326-1255.pom +4dd6ec1376693bd8ac4e2ceacc7be70880920978f3fef31db4968e6ade001c87 /org/eclipse/core/contenttype/3.4.200-v20140207-1251/contenttype-3.4.200-v20140207-1251.jar +f82370a400c38f78f479df4e79c6e1563e4ec050049279601ca01d85186456a7 /org/eclipse/core/contenttype/3.4.200-v20140207-1251/contenttype-3.4.200-v20140207-1251.pom +52d8987073cf765e620afc7f44e3934a8e854d56c8feca25f6ffb9163871c53f /org/eclipse/core/contenttype/maven-metadata.xml +4a73a4a0ebf5ca5f7e9d5e8978b24cd72ebacd5b561de961517f4c976aa7e30f /org/eclipse/core/expressions/3.3.0-v20070606-0010/expressions-3.3.0-v20070606-0010.jar +fa0d8eb0460cf3d5a7201e9af86431f66473726b9883e461b579056d0f3725e8 /org/eclipse/core/expressions/3.3.0-v20070606-0010/expressions-3.3.0-v20070606-0010.pom +582a5012b8525775059ee59d931179f79bff4bebf41bdab4060341b25742c77a /org/eclipse/core/expressions/maven-metadata.xml +b418d15acf94545248f4bd55b4a9b62fc49246488758729d6b3ff52ae149df24 /org/eclipse/core/filesystem/1.1.0-v20070606/filesystem-1.1.0-v20070606.jar +08f7bd3493e934a6cfe6b30941661bfb7c61ac72181b9d72f6745c03f20cae0a /org/eclipse/core/filesystem/1.1.0-v20070606/filesystem-1.1.0-v20070606.pom +0fb7079593f1e2544828c9a56db2710ea223655eee911ae5fb69e2f6d49b36eb /org/eclipse/core/filesystem/maven-metadata.xml +b52babdb3c1e073175ac0be84cbc41764b0cd5e89ca0dd2ebe29cc3f8d40aa86 /org/eclipse/core/jobs/3.5.300-v20130429-1813/jobs-3.5.300-v20130429-1813.pom +ef971ecb154fba0cc06d913448640fb2e5ab3f9079c1c7854385d1c30d81a94f /org/eclipse/core/jobs/3.6.0-v20140424-0053/jobs-3.6.0-v20140424-0053.jar +851e8123acc70a823fe38f1ad5f95f953c815f8da2cceaa483dfa5604d3ecc38 /org/eclipse/core/jobs/3.6.0-v20140424-0053/jobs-3.6.0-v20140424-0053.pom +753ba9e22869180b1e959860d76a5a2bf9e1a2aa398375a138daa518313efce3 /org/eclipse/core/jobs/maven-metadata.xml +e46a6444a6d7c0fe70f196ce42d9700c4514b68bf55bae296b2e3c287883ffdc /org/eclipse/core/org.eclipse.core.commands/3.6.0/org.eclipse.core.commands-3.6.0.jar +49eccab170e7e1c6aa598f49019fc8310a3da4c87a3e2b9e463825f6e2ba086f /org/eclipse/core/org.eclipse.core.commands/3.6.0/org.eclipse.core.commands-3.6.0.pom +73f9a1a2403f7f9c44d11431c40be4641295f3620570bfef2168a66c5de68fee /org/eclipse/core/resources/3.2.1-R32x_v20060914/resources-3.2.1-R32x_v20060914.jar +592accd91b5c786a4fe082176cabe07034f7603981e4d723ebe39b6d7f620672 /org/eclipse/core/resources/3.2.1-R32x_v20060914/resources-3.2.1-R32x_v20060914.pom +363ad8af4d8fc7f208b6fa640e490c7ba84b2aa78c26809e569bb1b0737ce9cb /org/eclipse/core/runtime/3.10.0-v20140318-2214/runtime-3.10.0-v20140318-2214.jar +ef7f45930ccd7b088b0cab1c932a145c494a2672f48e4244e20a1be06d2d30f3 /org/eclipse/core/runtime/3.10.0-v20140318-2214/runtime-3.10.0-v20140318-2214.pom +9fa94682175edfa5ec863f636087d2875aab106b09507199d914988b60edd522 /org/eclipse/core/runtime/3.9.0-v20130326-1255/runtime-3.9.0-v20130326-1255.pom +ddf19054374a2617ba9c10d7a5ec8eeaeb8f62c2c6e430144e81da15718bb585 /org/eclipse/core/runtime/compatibility/3.1.200-v20070502/compatibility-3.1.200-v20070502.jar +6b3a348064b85a050a1b8f7bd96edd081e8152f7269141308c5f5f4fcc444362 /org/eclipse/core/runtime/compatibility/3.1.200-v20070502/compatibility-3.1.200-v20070502.pom +7d95f541e873e42a0c068dc0f38e819a32f0f386c5ea1ae745ef649a40acb628 /org/eclipse/core/runtime/compatibility/maven-metadata.xml +6bddb60e50592d8f7c9b616624b9b4413accfaf8480d320f7cab8638a46a0515 /org/eclipse/core/runtime/maven-metadata.xml +7b2ad6c43d922f3ba0d18d99879d1d56d6a994ba7b639d5d6276f1a167b6a7ac /org/eclipse/equinox/app/1.3.200-v20130910-1609/app-1.3.200-v20130910-1609.jar +17dbfaba6a138e6fc0eb361069470f00aaf70a94e2d3384f398dee4843eb8fe7 /org/eclipse/equinox/app/1.3.200-v20130910-1609/app-1.3.200-v20130910-1609.pom +83a2cde9ed188efcabebbd2db14128c531c5ba73f8abc599dcae83459a779109 /org/eclipse/equinox/app/maven-metadata.xml +6bc086aab7686a5a528d8c4ab2253d6cec7ead04b052576951e90cc561782257 /org/eclipse/equinox/common/3.6.200-v20130402-1505/common-3.6.200-v20130402-1505.jar +9234dbfd064411a849444abfeb8a10978672690d125beb4194f9e5b0f0a7ee5e /org/eclipse/equinox/common/3.6.200-v20130402-1505/common-3.6.200-v20130402-1505.pom +9274fc22b74d6dc42608049ea51aa046b8fc8fc60b2a7d6ff6d884d76e6ef3f6 /org/eclipse/equinox/common/maven-metadata.xml +32b046de57df2f4887fc5a2c343740d9d12c7fe17541e2cede73cfa4ccbc2436 /org/eclipse/equinox/org.eclipse.equinox.common/3.6.0/org.eclipse.equinox.common-3.6.0.jar +84f171f4c3ded1b29880003b3c42e8e5be780a11f19d6b7d1b6d0125b4a198d8 /org/eclipse/equinox/org.eclipse.equinox.common/3.6.0/org.eclipse.equinox.common-3.6.0.pom +dbaa0e5c2a44c3b314086fba9b6d91fd4a374032ccffc82373d3614bd9d385ea /org/eclipse/equinox/preferences/3.5.100-v20130422-1538/preferences-3.5.100-v20130422-1538.pom +6498d32ab6503b49a44e0a0bfe1c2ac28ffb7e8f88acbdb4dda89d73092d8ca7 /org/eclipse/equinox/preferences/3.5.200-v20140224-1527/preferences-3.5.200-v20140224-1527.jar +d68a303f399eeef919b681c43885481c46bf3cfe39f4ede369f7433087bbe14c /org/eclipse/equinox/preferences/3.5.200-v20140224-1527/preferences-3.5.200-v20140224-1527.pom +70a4c81e2def4d69b44dbc680dc0dce29f274f1dff22b98d1f1f34a0fb28514d /org/eclipse/equinox/preferences/maven-metadata.xml +a6833a81795978d4ad8d2e54597171e2a3447fd6983b8e902710aa1dc946fa24 /org/eclipse/equinox/registry/3.5.400-v20140428-1507/registry-3.5.400-v20140428-1507.jar +cb7c954965e6b2946c2f7be78c1e089b530e0444b1fefc2d8079a5681362bfa1 /org/eclipse/equinox/registry/3.5.400-v20140428-1507/registry-3.5.400-v20140428-1507.pom +d7cd093fdad45c7cc979f44f7166f259607b41cf44a8afe77561594cef4c39d3 /org/eclipse/equinox/registry/maven-metadata.xml +2082ffb0bb8f276ca164a6363e394f902163a81b7df44ede13aed33d84fdf27e /org/eclipse/jdt/org.eclipse.jdt.core/3.12.0.v20160315-2126/org.eclipse.jdt.core-3.12.0.v20160315-2126.jar +ec467beffac7ffa86b5687a0935b8d3540e8795c9bc0c0d326a1c24cb9be7fe8 /org/eclipse/jdt/org.eclipse.jdt.core/3.12.0.v20160315-2126/org.eclipse.jdt.core-3.12.0.v20160315-2126.pom +d6aba7a1569952e082630de6907f460f476c20d97032cb9f7e4f3e14ddb928e7 /org/eclipse/jetty/jetty-parent/14/jetty-parent-14.pom +fa1d59411d4d2667d8f15638af7c0ac44539234c0982c27a2b65ba06c32a0b3e /org/eclipse/osgi/3.10.0-v20140606-1445/osgi-3.10.0-v20140606-1445.jar +1e10819cdb1fe55d44ac94d37f3b1030275199979a73d04b7b53e2d6000d5d2e /org/eclipse/osgi/3.10.0-v20140606-1445/osgi-3.10.0-v20140606-1445.pom +bddf4d130cb65fdfc1df7df1febde313fc2ff1ac83c8574ff97befd6c515cc30 /org/eclipse/osgi/3.9.1-v20130814-1242/osgi-3.9.1-v20130814-1242.pom +9fbddba8d8cd6322229030a26356ba447421562edebba078267490104ff61d83 /org/eclipse/osgi/maven-metadata.xml +1bacf311ac3d39cc53b03f8de7a4ccffc89c208938f0004a90c652383e927f18 /org/eclipse/text/org.eclipse.text/3.5.101/org.eclipse.text-3.5.101.jar +86545f7161948937a1e632b6bd493008c67c855966acfb7ddd4e710cd7a121ab /org/eclipse/text/org.eclipse.text/3.5.101/org.eclipse.text-3.5.101.pom +88b506fa09a810b19517a2d45cb8f5eaa76c22b18abfbdcf36cd07aebfd56cb0 /org/eclipse/update/configurator/3.2.100-v20070615/configurator-3.2.100-v20070615.jar +4645380254baefd0056e15cc9af6a273fb7d014b8be4ff395a5a61bfe8f4a89c /org/eclipse/update/configurator/3.2.100-v20070615/configurator-3.2.100-v20070615.pom +3c731988480eae3024b27d648aa0408a1cdc065fc523cf41a049fb97148fd30a /org/eclipse/update/configurator/maven-metadata.xml +b1f003f28c3ce1753ea0da22a6f0289197a2c369e7056b32e170af7904eff2c1 /org/fusesource/fusesource-pom/1.8/fusesource-pom-1.8.pom +9e82163ed2fc6257fe627132ce554726e796edee4e5efe9d9e523aee217d60b8 /org/fusesource/jansi/jansi/1.11/jansi-1.11.jar +b0975adc7450698033f3de4792dd6eba72a980c2b56d8e8d36d381385b37a5c9 /org/fusesource/jansi/jansi/1.11/jansi-1.11.pom +8ba9c49b55f979cf4e04d4871092eb50e834b388fca03a2274ccadff12cc9ce8 /org/fusesource/jansi/jansi-project/1.11/jansi-project-1.11.pom +66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9 /org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar +fde386a7905173a1b103de6ab820727584b50d0e32282e2797787c20a64ffa93 /org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom +6d535f94efb663bdb682c9f27a50335394688009642ba7a9677504bc1be4129b /org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom +32ed093f39c46a8d99f801240069478eac93b35f07351c001f2cef4330e97b4a /org/jdom/jdom2/2.0.5/jdom2-2.0.5.jar +ebac276b5ad62e9d312fb6ce663d55fdebaba9badc918166e7d60b1ffd1bd475 /org/jdom/jdom2/2.0.5/jdom2-2.0.5.pom +212f6eaa0491dd7359dc33c3a72e82a23b096e1890d984b4d92395abc9a6bf7f /org/jvnet/localizer/localizer/1.12/localizer-1.12.jar +313b5700337e773a68eeab64ec6952c61b5e7a51839d46bcf77376887fe92f02 /org/jvnet/localizer/localizer/1.12/localizer-1.12.pom +e21488c2fe8db4b23a00c3cfdeab3b600e84c1647e08fb7bee442f5fc1f83990 /org/jvnet/localizer/localizer-parent/1.12/localizer-parent-1.12.pom +c118f8d84313980f79e1e7f7ae4b14b10c2f20c77ea4a1c29f6f0b02bc139077 /org/lwjgl/lwjgl/lwjgl/2.9.1/lwjgl-2.9.1.jar +1adb09c3cf35e0f55d5ecd91e4364100364d8a8031cdfa64ae61eaa64f0d79d4 /org/lwjgl/lwjgl/lwjgl/2.9.1/lwjgl-2.9.1.pom +833e721817f70d1445eec13d8ce5a86e12af70efac5014356302e2bbc68b3fe2 /org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar +65fb24fa8ee4a7efc554b15cfb447753c39e414ff00e9944d347e6f1176f0438 /org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.pom +a50aaa5a89304c23a9257295cbe803e6130526a4dfaea1784076adbacacfd68e /org/lwjgl/lwjgl/lwjgl-platform/2.9.1/lwjgl-platform-2.9.1-natives-linux.jar +e14afffd87719ba12034dd989d40a75540902a6286629fab1330b51c255ab792 /org/lwjgl/lwjgl/lwjgl-platform/2.9.1/lwjgl-platform-2.9.1-natives-osx.jar +ade8deedceb0b60c630f3e78a7b052b7f8f02ff53d91849d1985d3146bf95590 /org/lwjgl/lwjgl/lwjgl-platform/2.9.1/lwjgl-platform-2.9.1-natives-windows.jar +82eb11d59b06700b9ff3db4e0476de1cf86501ba7cd00bb279f40a7c23ad662b /org/lwjgl/lwjgl/lwjgl-platform/2.9.1/lwjgl-platform-2.9.1.pom +d312147c3999b868fd649887f45203a4195bc10fc563cee4c4f8d22761421f94 /org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar +8831b2bd5a53dc343fd6fbed3c18f28ab33d3f28dbe62ebd4a3af81f25c0a5ab /org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar +f2e1f2c6bd7511a7504f389b8b716f5d8dc2fdc71e29c89b52644314cf0a228e /org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar +11eeed66c2d56892f3e2046121438153e516dd95d368bcf93c0714f9f2bfdd6f /org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.pom +034456b132a336b72757325bb7aaf99e075681ee5650d2bea21717bd485de42f /org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar +cb7239de51893ee5abe90c2bc550422cb336140c0866e9d1c899399eeb8a3ba2 /org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.pom +9cf1643b0d805db942498cebf941d1c43df0a1322137291c258aec6109200858 /org/lwjgl/lwjgl/parent/2.9.1/parent-2.9.1.pom +9b3282d2065e070f5966c8b324bc8ffaa4a3d53c7d39ef7e0a3458b525bc167e /org/lwjgl/lwjgl/parent/2.9.4-nightly-20150209/parent-2.9.4-nightly-20150209.pom +21091d3a9c1349f640fdc421504a604c040ed89087ecc12afbe32353326ed4e5 /org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.jar +8169c421acc4931f9eb80b818b13a4553a8582e02d08dfc12a51e4f23b2726c6 /org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.pom +b24e31635c0e6c401ff84e28905b96d1a760144c15f1deae1a22d5b3356e1667 /org/mortbay/jetty/jetty-parent/10/jetty-parent-10.pom +0173d8dbfed2b8ab2a5b36b608a9c509ea0a3fbb4faca67ce7067680c895066a /org/mortbay/jetty/jetty-parent/7/jetty-parent-7.pom +9b974ce2b99f48254b76126337dc45b21226f383aaed616f59780adaf167c047 /org/mortbay/jetty/jetty-util/6.1.26/jetty-util-6.1.26.jar +1e3c13f07407a4b331e229da6bb782ae734f88b6a26a3fbeb165acabc5f6ef24 /org/mortbay/jetty/jetty-util/6.1.26/jetty-util-6.1.26.pom +a3d6e7608155600a73c763ccac74e6b321f8c23dc4747f90635fc2f7cfc1548a /org/mortbay/jetty/project/6.1.26/project-6.1.26.pom +068756096996fe00f604ac3b6672d6f663dc777ea4a83056e240d0456e77e472 /org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.jar +2d705bf03b0b653b0ba3a260b8fe94833e1266bb1e7eb9efc67821555141c9ee /org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.pom +71c4f78e437b8fdcd9cc0dfd2abea8c089eb677005a6a5cff320206cc52b46cc /org/ow2/asm/asm/5.0.3/asm-5.0.3.jar +7d34653ffe62be7714d2f1969660a17df9ec1b19d8250c4f03db1123c82ba6a0 /org/ow2/asm/asm/5.0.3/asm-5.0.3.pom +18c1e092230233c9d29e46f21943d769bdb48130cc279e4b0e663f423948c2da /org/ow2/asm/asm-commons/5.0.3/asm-commons-5.0.3.jar +e87ea4823ecf2dd856901da359270be904236be59c27e2781eb8d78c97e45b2a /org/ow2/asm/asm-commons/5.0.3/asm-commons-5.0.3.pom +2969356ac1e40fe4141948c563690238f5d79d76aec7fd873536867a331ede81 /org/ow2/asm/asm-debug-all/5.0.3/asm-debug-all-5.0.3.jar +9c99d7a555725bc2f8379977935cdba16d687d9c93b6e0725e196180d490c995 /org/ow2/asm/asm-debug-all/5.0.3/asm-debug-all-5.0.3.pom +1e9ee309d909b3dbf33291fcfd36c76adba4ed1215b8156c3ac61a774cc86bf1 /org/ow2/asm/asm-debug-all/5.0.3/asm-debug-all-5.0.3-sources.jar +2341a72bba5e38c1028a332c11607e1706c13fa600fee6fb546b9a1708418097 /org/ow2/asm/asm-debug-all/5.0.4/asm-debug-all-5.0.4.jar +62efbf37e5068a8708541ae0a4da3d1140f4d711d30e4366445cb96ce13cc79e /org/ow2/asm/asm-debug-all/5.0.4/asm-debug-all-5.0.4.pom +f7ac3f642c36c406543bb56ae3db3a53f263f71bd857b04709986e2d5798c8c4 /org/ow2/asm/asm-debug-all/5.1/asm-debug-all-5.1.jar +0a46e33f6b80bd21ac41eec33fca2e43d79253fb46a32d64ba3867ee22451fff /org/ow2/asm/asm-debug-all/5.1/asm-debug-all-5.1.pom +254b82bec9da4f8efbc8b1f93ab2b87f7465227a82b36cf3d05d9e77a0e8dd2e /org/ow2/asm/asm-debug-all/5.2/asm-debug-all-5.2.jar +491f13bd60757a7cfe76e767766b061d557010394f52cec2fb067707de702caa /org/ow2/asm/asm-debug-all/5.2/asm-debug-all-5.2.pom +c2edabf4128a534df4b8b4b0b9b562e94f242ba95ac24dc61485432b8a188e32 /org/ow2/asm/asm-parent/5.0.3/asm-parent-5.0.3.pom +fdf05b9df226573b331a7e5df01135e527dcc07c71626445732bd04379aa4a72 /org/ow2/asm/asm-parent/5.0.4/asm-parent-5.0.4.pom +85ec8258fafc283f61647e6a11b404890821c11db6fcf550779ecf7a14151007 /org/ow2/asm/asm-parent/5.1/asm-parent-5.1.pom +cbfacd5dd812db16dc910994007fe58d9402a25507f81a1c2218e15c2c1bedfa /org/ow2/asm/asm-parent/5.2/asm-parent-5.2.pom +347a7a9400f9964e87c91d3980e48eebdc8d024bc3b36f7f22189c662853a51c /org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar +65819ca7c5a218ff49f8ebe72f3b39219c81f137d017acc1aec15b1054cf5236 /org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.pom +51215c67d2c068d8b7d2f6f80f51372a098075deccc448d4bdd7b987ba8328fb /org/ow2/ow2/1.3/ow2-1.3.pom +3ca225ce3917eac8bf4b7d2186845df4e70dcdede356dca8537b6d78a535c91e /org/projectlombok/lombok/1.16.4/lombok-1.16.4.jar +fcb8d5745f776567f1cce332282750b1653568324621ecef03288c8a25919d0e /org/projectlombok/lombok/1.16.4/lombok-1.16.4.pom +e0a471be03e1e6b02bf019480cec7a3ac9801702bf7bf62f15d077ad4df8dd5d /org/projectlombok/lombok/1.16.6/lombok-1.16.6.jar +32ac0a2363ccc0c5086b62cfc05e28a355b74e155efef6b426f5498a0dfc9e4c /org/projectlombok/lombok/1.16.6/lombok-1.16.6.pom +19495ce701fd9ba3c499c137e3ad5364acee8f87a01ef99e912f995a23fd4cb1 /org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar +4da632931d9182b1033ddc01a240a18ce9d5704534f52faa515d43119fa6d49f /org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.pom +4a7c757d4d87dd37382bd777ad611b5875748aef148277cf25bb39eebb496d07 /org/scala-lang/modules/scala-swing_2.11/1.0.1/scala-swing_2.11-1.0.1.jar +5201b071fbf92d388940ec1d12cba89baec25dc7b402b1e26110e1f4261b0f2b /org/scala-lang/modules/scala-swing_2.11/1.0.1/scala-swing_2.11-1.0.1.pom +13c0d8d442bde14b73af3ed60e8d53452f9e1ad62ffbe3d944cb918df652db6f /org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar +44b8a07ac6ae1cbc11bba1c03eb90bcf4a707c562eb51e9d56028914a99ab112 /org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.pom +8dd0a4941f4564117cc991734ca36aa53dff6bb0be329f39eab46d8819f60d1a /org/scala-lang/plugins/scala-continuations-library_2.11/1.0.2/scala-continuations-library_2.11-1.0.2.jar +e8e084c66182fbb88dae252a0c3dba24f8735609d8264feaed1be69915724e85 /org/scala-lang/plugins/scala-continuations-library_2.11/1.0.2/scala-continuations-library_2.11-1.0.2.pom +79329971a31ede7b6823f21a6ab765506b4093d9276debdc9dbe17b996884f2b /org/scala-lang/plugins/scala-continuations-plugin_2.11.1/1.0.2/scala-continuations-plugin_2.11.1-1.0.2.jar +d6b98448db39957d4a5ab49d1d9355889c1b7ef1e4e371e77889da1f66f59c60 /org/scala-lang/plugins/scala-continuations-plugin_2.11.1/1.0.2/scala-continuations-plugin_2.11.1-1.0.2.pom +fa33c031c291ef618e33398aa193ddf4d4c6859d805c9fb3cd4b7c4fbc9acbc6 /org/scala-lang/scala-actors/2.11.0/scala-actors-2.11.0.jar +42665fa39eeb8960adb74dd51fdb239c34e45eacd4b74dc88074d518b7ecfc26 /org/scala-lang/scala-actors/2.11.0/scala-actors-2.11.0.pom +b89d0beb76df20c7b2c2bee59ba53b802cc48566bc3e89ac96ce6361c5c2ee38 /org/scala-lang/scala-actors-migration_2.11/1.1.0/scala-actors-migration_2.11-1.1.0.jar +cd1a673205be12880e73c9c11234d809a901c024a256f4f4c7ae59b0a7aecc75 /org/scala-lang/scala-actors-migration_2.11/1.1.0/scala-actors-migration_2.11-1.1.0.pom +3aa616f5c56d2052fc5e3231f3e8cf1736f876caff0142a66096fc5b4dc87ae5 /org/scala-lang/scala-compiler/2.11.1/scala-compiler-2.11.1.jar +abe89207b0bfcbcf164c820cbba2c962ab5e9f3a0d0f37d81bde4f6c293a874b /org/scala-lang/scala-compiler/2.11.1/scala-compiler-2.11.1.pom +088bcb80f71b6e6a2a31d2fe7288c1fd64f19663ce281b924cdfab3fb105f4f3 /org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar +3268a48dc36c664e7f4bd5d88b366bf098a13f7b6e8b87611e3a4413b72860d4 /org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.pom +41938d1e89670979dd783102777a8b879999f4fb00a5b811b51c105b02a9d4f8 /org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.jar +8b58df7e9e5f2f4f7d2f0dc24353f356abe965337e48504cec36a344e6294757 /org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.pom +03263b68791fb11e7464ffcc2c3de7eaeae235de8c94827ce6407e0454d2aae9 /org/sonatype/forge/forge-parent/3/forge-parent-3.pom +9c5f7cd5226ac8c3798cb1f800c031f7dedc1606dc50dc29567877c8224459a7 /org/sonatype/forge/forge-parent/6/forge-parent-6.pom +1678d4120a585d8a630131aeec4c524d928398583b7eab616ee7d5a87f520d3d /org/sonatype/oss/oss-parent/5/oss-parent-5.pom +b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454 /org/sonatype/oss/oss-parent/7/oss-parent-7.pom +fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a /org/sonatype/oss/oss-parent/9/oss-parent-9.pom +9e574d71cd6b17420ab64fcb2ccd5304644e0c949f4a9825ac940e9278b57c36 /org/sonatype/sisu/inject/guice-bean/1.4.3.1/guice-bean-1.4.3.1.pom +2f99935b6ce8dac24a2be17526b3c72428458b9924147294da05c9fd5cd4b4d8 /org/sonatype/sisu/inject/guice-parent/2.9.1/guice-parent-2.9.1.pom +9b99f071b2e10da9aaa8ee66ff0078d562fb2773f59600b5e8dcec323a55dd3e /org/sonatype/sisu/inject/guice-plexus/1.4.3.1/guice-plexus-1.4.3.1.pom +a8d105cdb5c114458d75765f020e3158a0aab73b2662a44a9fe55aeb5c466243 /org/sonatype/sisu/sisu-guice/2.9.1/sisu-guice-2.9.1-noaop.jar +50c4e230ba725d627420b9f38fe1d129ac7a6e4c538f9fb7babc034e90ed0465 /org/sonatype/sisu/sisu-guice/2.9.1/sisu-guice-2.9.1.pom +33a3f5884d6edf4cf77e480ee21e1c229b225bf9ae3e62172354d697940896c4 /org/sonatype/sisu/sisu-inject/1.4.3.1/sisu-inject-1.4.3.1.pom +10585526c51c6f5f7cf50d779798f6a295a0efed46dd45508e6ec77e80a1b96c /org/sonatype/sisu/sisu-inject-bean/1.4.3.1/sisu-inject-bean-1.4.3.1.jar +cbefb568cb07200f889d7509f7afcee709549816c66a5eea38f875bc6addfe57 /org/sonatype/sisu/sisu-inject-bean/1.4.3.1/sisu-inject-bean-1.4.3.1.pom +dca5fd3a0f613b55239201ae7cd30f1a938ae8d2b3879541c4822bb89046d71b /org/sonatype/sisu/sisu-inject-plexus/1.4.3.1/sisu-inject-plexus-1.4.3.1.jar +385ec86169e1529fc4b48dccc25adef45be7798781cae7325196aa7f4e9b0bb6 /org/sonatype/sisu/sisu-inject-plexus/1.4.3.1/sisu-inject-plexus-1.4.3.1.pom +fff1c8d48c875cd2c06cf83a3c9d4e7eb3b81d4cecfc23ba5ea164f1db266538 /org/sonatype/sisu/sisu-parent/1.4.3.1/sisu-parent-1.4.3.1.pom +02161ae46462da669b1d7be3f9b64687c6347f84d04c890fa467eff6def0ae10 /org/sonatype/spice/model-builder/1.3/model-builder-1.3.jar +0d2cc363cdfc6c102203adb6a5c138c195eaf1198527a09e6a17aa0227a66bcd /org/sonatype/spice/model-builder/1.3/model-builder-1.3.pom +683c012c6bf5e1e31b232b3755c027ccd829692a09c8216652b414b09d4ae623 /org/sonatype/spice/spice-parent/10/spice-parent-10.pom +27901e5d4d60d3502571d5e6358fc89e3fcf874138b69d495d139bcc3e169404 /oshi-project/oshi-core/1.1/oshi-core-1.1.jar +e7e154dd64e5bd87e6ae2652ab52ab88eb53d05606466faee382d11f59d0ab71 /oshi-project/oshi-core/1.1/oshi-core-1.1.pom +d1968436fc216c901fb9b82c7e878b50fd1d30091676da95b2edd3a9c0ccf92e /stax/stax-api/1.0.1/stax-api-1.0.1.jar +87b13ae136a2bb9299271a0dfe8c351f76661b654ed8fde035c2cabb198cf259 /stax/stax-api/1.0.1/stax-api-1.0.1.pom +ad68a86cfd0255a2bc0525ce11ec49640caea7e34ff91eb89c3193dcccd77f05 /trove/trove/1.0.2/trove-1.0.2.jar +83f2682bd3ded1fe417b7e98e7ac86510cd747378eae7e3a5d1d35c7c7f0d2ea /trove/trove/1.0.2/trove-1.0.2.pom From 8b8625310337e68c435a9e9cae57dcadd975ef94 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 29 Aug 2017 12:56:36 +0200 Subject: [PATCH 11/53] Replace manually built shadow and gitpatcher plugins with upstream --- gradle/reprod/checksums.txt | 2 + ...lace-plugin-DSL-with-old-buildscript.patch | 35 ++++++ ...ace-plugins-with-manually-built-ones.patch | 28 ----- ...-non-essential-parts-of-build.gradle.patch | 79 ------------ ...-Replace-groovy-dep-with-localGroovy.patch | 25 ---- ...replace-all-buildscript-dependencies.patch | 11 +- ...-non-essential-parts-of-build.gradle.patch | 113 ------------------ .../shadow/0004-Manually-shade-deps.patch | 52 -------- gradle/reprod/setup.sh | 4 - 9 files changed, 40 insertions(+), 309 deletions(-) create mode 100644 gradle/reprod/patches/forgeflower/0001-Replace-plugin-DSL-with-old-buildscript.patch delete mode 100644 gradle/reprod/patches/forgeflower/0002-Replace-plugins-with-manually-built-ones.patch delete mode 100644 gradle/reprod/patches/gitpatcher/0002-Remove-non-essential-parts-of-build.gradle.patch delete mode 100644 gradle/reprod/patches/gitpatcher/0003-Replace-groovy-dep-with-localGroovy.patch delete mode 100644 gradle/reprod/patches/shadow/0002-Remove-non-essential-parts-of-build.gradle.patch delete mode 100644 gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index 4eaf3c01..d850483f 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -154,6 +154,8 @@ dc67378cf428c06408e7959e83bdc1518dd22ccd313e7c28a986612d65c276c7 /log4j/log4j/1. cb54dedc5d8c4510148dfa792701cbac1a84c383a84f48f5a32e6d7e460bbb72 /log4j/log4j/1.2.12/log4j-1.2.12.pom 0c3085cb93c3ef95d731c274b6f2dd195aa0405fe9328d69cab7f5e899d5e124 /lzma/lzma/0.0.1/lzma-0.0.1.jar a096bc9f7579cec07483874151578720eeb3189c546c19cff56a6203df17b50e /lzma/lzma/0.0.1/lzma-0.0.1.pom +142667dfce3afeb5cc6e18e893d895604060ecef9dfc0d261f0eb9b9e8c81cb0 /m2/gradle/plugin/net/minecrell/gitpatcher/0.9.0/gitpatcher-0.9.0.jar +37a6757b16b927873baefe8498fa92c5385eba0ded3852982965491da2dd8e3a /m2/gradle/plugin/net/minecrell/gitpatcher/0.9.0/gitpatcher-0.9.0.pom 19331fb29bf8b8d5ed764677c94cca9d66481e10104f660eb555894a4300cf22 /mc/game/1.12.1/client/83385d346cf7f97d1e447b888750fb88e9928b93/client.jar 848912640bccfa7ea34a2cc1c76cb2b35f8467c4216d9603917c991660f91a8b /mc/game/1.12.1/server/561c7b2d54bae80cc06b05d950633a9ac95da816/server.jar 5dcff0a65ed3b43d82328340505118e53dab5273c352e2d56733a0e498ed5655 /mc/game/2ce9731e5bafdf69014e4e6db1cc56149958c5a8/1.12.1.json diff --git a/gradle/reprod/patches/forgeflower/0001-Replace-plugin-DSL-with-old-buildscript.patch b/gradle/reprod/patches/forgeflower/0001-Replace-plugin-DSL-with-old-buildscript.patch new file mode 100644 index 00000000..f980569a --- /dev/null +++ b/gradle/reprod/patches/forgeflower/0001-Replace-plugin-DSL-with-old-buildscript.patch @@ -0,0 +1,35 @@ +From 798d79d8c6b5c4accda35bd4517621b19bf954a2 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Tue, 29 Aug 2017 13:47:11 +0200 +Subject: [PATCH] Replace plugin DSL with old buildscript + +--- + build.gradle | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +diff --git a/build.gradle b/build.gradle +index da78c2f..4384886 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -1,7 +1,16 @@ +-plugins { +- id 'net.minecrell.gitpatcher' version '0.9.0' ++buildscript { ++ repositories { ++ maven { ++ url "https://plugins.gradle.org/m2/" ++ } ++ } ++ dependencies { ++ classpath "gradle.plugin.net.minecrell:gitpatcher:0.9.0" ++ } + } + ++apply plugin: "net.minecrell.gitpatcher" ++ + patches { + submodule = 'FernFlower' + target = file('ForgeFlower') +-- +2.5.5 + diff --git a/gradle/reprod/patches/forgeflower/0002-Replace-plugins-with-manually-built-ones.patch b/gradle/reprod/patches/forgeflower/0002-Replace-plugins-with-manually-built-ones.patch deleted file mode 100644 index 0672baf4..00000000 --- a/gradle/reprod/patches/forgeflower/0002-Replace-plugins-with-manually-built-ones.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 3c7c6fa56f1b70129c0eb4c178aff3805bc8f03a Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Sat, 26 Aug 2017 17:12:58 +0200 -Subject: [PATCH] Replace plugins with manually built ones - ---- - build.gradle | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/build.gradle b/build.gradle -index da78c2f..6dd1fb4 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -1,6 +1,9 @@ --plugins { -- id 'net.minecrell.gitpatcher' version '0.9.0' -+buildscript { -+ dependencies { -+ classpath files('../gitpatcher.jar') -+ } - } -+apply plugin: 'net.minecrell.gitpatcher' - - patches { - submodule = 'FernFlower' --- -2.5.5 - diff --git a/gradle/reprod/patches/gitpatcher/0002-Remove-non-essential-parts-of-build.gradle.patch b/gradle/reprod/patches/gitpatcher/0002-Remove-non-essential-parts-of-build.gradle.patch deleted file mode 100644 index 42417bb2..00000000 --- a/gradle/reprod/patches/gitpatcher/0002-Remove-non-essential-parts-of-build.gradle.patch +++ /dev/null @@ -1,79 +0,0 @@ -From ff9f001be5beca28f04ec0669a300b9c6d06836c Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Sat, 26 Aug 2017 17:01:51 +0200 -Subject: [PATCH 2/3] Remove non-essential parts of build.gradle - ---- - build.gradle | 52 ---------------------------------------------------- - 1 file changed, 52 deletions(-) - -diff --git a/build.gradle b/build.gradle -index bc6d5bb..07d5ce5 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -1,14 +1,6 @@ - plugins { - id 'java-gradle-plugin' - id 'groovy' -- -- id 'eclipse' -- id 'idea' -- -- id 'maven-publish' -- id 'com.gradle.plugin-publish' version '0.9.5' -- -- id 'net.minecrell.licenser' version '0.3' - } - - group = 'net.minecrell' -@@ -37,47 +29,3 @@ tasks.withType(GroovyCompile) { - groovyOptions.optimizationOptions.indy = true - } - --license { -- header = file('LICENSE') -- include '**/*.java' -- include '**/*.groovy' --} -- --task sourceJar(type: Jar) { -- classifier = 'sources' -- from sourceSets.main.allSource --} -- --publishing { -- publications { -- mavenJava(MavenPublication) { -- from components.java -- -- artifact sourceJar -- -- repositories { -- maven { -- url = System.getenv('REPO_' + (version.endsWith('-SNAPSHOT') ? 'SNAPSHOTS' : 'RELEASES')) ?: "$buildDir/repo" -- } -- } -- } -- } --} -- --pluginBundle { -- website = 'https://github.com/Minecrell/gitpatcher' -- vcsUrl = website -- description = project.description -- tags = ['git'] -- -- plugins { -- gitpatcherPlugin { -- id = 'net.minecrell.gitpatcher' -- displayName = 'gitpatcher' -- } -- } --} -- --task wrapper(type: Wrapper) { -- gradleVersion = '3.3' --} --- -2.5.5 - diff --git a/gradle/reprod/patches/gitpatcher/0003-Replace-groovy-dep-with-localGroovy.patch b/gradle/reprod/patches/gitpatcher/0003-Replace-groovy-dep-with-localGroovy.patch deleted file mode 100644 index 9e196b25..00000000 --- a/gradle/reprod/patches/gitpatcher/0003-Replace-groovy-dep-with-localGroovy.patch +++ /dev/null @@ -1,25 +0,0 @@ -From b0ca1d31124a2c27f8e29d44cf3f59b1bb1f070e Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Sat, 26 Aug 2017 17:07:06 +0200 -Subject: [PATCH 3/3] Replace groovy dep with localGroovy() - ---- - build.gradle | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/build.gradle b/build.gradle -index 07d5ce5..1515570 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -22,7 +22,7 @@ repositories { - } - - dependencies { -- compileOnly'org.codehaus.groovy:groovy-all:2.4.7:indy' -+ compile localGroovy() - } - - tasks.withType(GroovyCompile) { --- -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 85acfd93..03889914 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 @@ -11,16 +11,11 @@ diff --git a/build.gradle b/build.gradle index e0c46ea..165dbe4 100644 --- a/build.gradle +++ b/build.gradle -@@ -1,17 +1,12 @@ - // Gradle repositories and dependencies - buildscript { -- repositories { -- jcenter() -- } +@@ -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' -+ classpath files('../shadow.jar') + classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3' } } 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 deleted file mode 100644 index 412af9ea..00000000 --- a/gradle/reprod/patches/shadow/0002-Remove-non-essential-parts-of-build.gradle.patch +++ /dev/null @@ -1,113 +0,0 @@ -From 8105c498cb064c102197cf13d7efe4ebb1da65a7 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Tue, 8 Aug 2017 18:51:27 +0200 -Subject: [PATCH 2/4] Remove non-essential parts of build.gradle - ---- - build.gradle | 78 ------------------------------------------------------------ - 1 file changed, 78 deletions(-) - -diff --git a/build.gradle b/build.gradle -index 2292a4d..1b06411 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -1,48 +1,4 @@ --import org.gradle.wrapper.Download --import org.gradle.wrapper.GradleUserHomeLookup --import org.gradle.wrapper.Install --import org.gradle.wrapper.PathAssembler --import org.gradle.wrapper.WrapperConfiguration --import org.gradle.wrapper.WrapperExecutor --import org.gradle.wrapper.Logger -- --buildscript { -- repositories { -- jcenter() -- maven { -- url "https://plugins.gradle.org/m2/" -- } -- } -- dependencies { -- classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.5' -- classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.0" -- classpath "com.gradle.publish:plugin-publish-plugin:0.9.1" -- classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3' -- classpath 'org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.11' -- classpath 'org.asciidoctor:asciidoctorj-groovy-dsl:1.0.0.preview2' -- classpath "com.bluepapa32:gradle-watch-plugin:0.1.5" -- classpath "org.kordamp.gradle:livereload-gradle-plugin:0.2.1" -- classpath 'org.ajoberstar:gradle-git:1.5.0' -- } --} -- --plugins { -- id 'com.gradle.build-scan' version '1.0' --} -- --buildScan { -- licenseAgreementUrl = 'https://gradle.com/terms-of-service' -- licenseAgree = 'yes' --} -- - apply plugin: 'groovy' --apply plugin: 'idea' --apply plugin: 'project-report' -- --apply from: file('gradle/docs.gradle') --apply from: file('gradle/publish.gradle') --apply from: file('gradle/asciidoc.gradle') --apply from: file('gradle/ghPages.gradle') - - repositories { - mavenLocal() -@@ -60,24 +16,6 @@ dependencies { - compile 'org.apache.ant:ant:1.9.4' - compile 'org.codehaus.plexus:plexus-utils:2.0.6' - compile 'org.codehaus.groovy:groovy-backports-compat23:2.4.4' -- -- -- testCompile gradleTestKit() -- testCompile("org.spockframework:spock-core:1.0-groovy-2.4") { -- exclude module: 'groovy-all' -- } -- testCompile 'xmlunit:xmlunit:1.3' -- testCompile 'commons-lang:commons-lang:2.6' -- testCompile 'com.google.guava:guava:17.0' --} -- --test { -- dependsOn publishToMavenLocal -- if (System.env.CI == 'true') { -- testLogging.showStandardStreams = true -- minHeapSize "1g" -- maxHeapSize "1g" -- } - } - - jar { -@@ -85,22 +23,6 @@ jar { - from rootProject.file('NOTICE') - } - --idea { -- project { -- languageLevel = '1.6' -- } --} -- - sourceCompatibility = '1.6' - targetCompatibility = '1.6' - --task installWrappers << { -- WrapperExecutor wrapperExecutor = WrapperExecutor.forWrapperPropertiesFile(file('gradle/wrapper/gradle-wrapper.properties'), System.out) -- ['1.12', '2.0', '2.5', '2.11', '2.12', '2.13', '2.14', '3.0'].each { -- WrapperConfiguration config = wrapperExecutor.config -- config.setDistribution(new URI("https://services.gradle.org/distributions/gradle-$it-bin.zip")) -- Install install = new Install(new Logger(true), new Download(new Logger(true), "gradlew", it), -- new PathAssembler(GradleUserHomeLookup.gradleUserHome())) -- install.createDist(config) -- } --} --- -2.5.5 - diff --git a/gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch b/gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch deleted file mode 100644 index 70cb8535..00000000 --- a/gradle/reprod/patches/shadow/0004-Manually-shade-deps.patch +++ /dev/null @@ -1,52 +0,0 @@ -From cfca21accce1fb3fbd32b81fb79f0363dd7b61f4 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Tue, 8 Aug 2017 19:59:34 +0200 -Subject: [PATCH 4/4] Manually shade deps - ---- - build.gradle | 20 +++++++++++++------- - 1 file changed, 13 insertions(+), 7 deletions(-) - -diff --git a/build.gradle b/build.gradle -index a0d350b..b12a46d 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -12,22 +12,28 @@ repositories { - jcenter() - } - -+configurations { -+ shade -+ compile.extendsFrom shade -+} -+ - dependencies { - - compile localGroovy() - compile gradleApi() -- compile 'org.jdom:jdom2:2.0.5' -- compile 'org.ow2.asm:asm:5.0.3' -- compile 'org.ow2.asm:asm-commons:5.0.3' -- compile 'commons-io:commons-io:2.4' -- compile 'org.apache.ant:ant:1.9.4' -- compile 'org.codehaus.plexus:plexus-utils:2.0.6' -- compile 'org.codehaus.groovy:groovy-backports-compat23:2.4.4' -+ shade 'org.jdom:jdom2:2.0.5' -+ shade 'org.ow2.asm:asm:5.0.3' -+ shade 'org.ow2.asm:asm-commons:5.0.3' -+ shade 'commons-io:commons-io:2.4' -+ shade 'org.apache.ant:ant:1.9.4' -+ shade 'org.codehaus.plexus:plexus-utils:2.0.6' -+ shade 'org.codehaus.groovy:groovy-backports-compat23:2.4.4' - } - - jar { - from rootProject.file('LICENSE') - from rootProject.file('NOTICE') -+ from (files(configurations.shade).collect {it.isDirectory() ? filesTree(it) : zipTree(it)}) - } - - sourceCompatibility = '1.6' --- -2.5.5 - diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index d5e14ec9..844d78c2 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -69,12 +69,8 @@ proxy_pid=$! trap "kill $proxy_pid" EXIT # Required for mixin -setup_dep "shadow" "https://github.com/johnrengelman/shadow.git" "60d0f28103be076dc991a624bf79ca7a13835973" "build/libs/shadow.jar" "eec0417a8cd44457551c80335cd384a187647b6429ed7b5ae3ce1b26f78a2c1f" setup_dep "fernflower" "https://github.com/fesh0r/fernflower.git" "85f61bee8194ab69afa746b965973a18eda67608" "build/libs/fernflower.jar" "577c2c4e04f0026675cacb25ec525f2ccba5de2eecac525b28bed18f9ccfd790" -# Required for forgeflower -setup_dep "gitpatcher" "https://github.com/Minecrell/gitpatcher.git" "e815821d516bac0da01d579575f895b2a8abefe7" "build/libs/gitpatcher-0.9.0.jar" "95cc738b92b5f37466593880177e236519c9b2f10e3d38f97e36fd3ad3bd4448" - # Required for forgegradle setup_dep "forgeflower" "https://github.com/MinecraftForge/ForgeFlower.git" "32a04b9840fb6b10a8e2c178af86e20bdb85e366" "ForgeFlower/build/libs/forgeflower-1.0.342-SNAPSHOT.jar" "4b32e3140decbe39eaf77399f0390fbece6b3a1f3ff3424e4754adefe1c7c932" setup_dep "mcinjector" "https://github.com/ModCoderPack/MCInjector.git" "7258466461baf7dc4f313b06b0d589407e4e1fba" "build/libs/mcinjector-3.4-SNAPSHOT.jar" "98cd0c13030aa8103585621fdab5db6b74ea0db7b8b30bc74061e7b5d314aa01" From 25df4f181d3203c85ee6defaf55349367c457863 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 29 Aug 2017 14:38:32 +0200 Subject: [PATCH 12/53] Whitelist mcp versions.json in proxy-witness --- gradle/reprod/checksums.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index d850483f..b03887f6 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -138,7 +138,7 @@ a95c958f0c052e0a94d20de1d30a9151f68e66b19bdbea60a58cd41539558874 /de/oceanlabs/m 5bbf57acadec0f5ea930b793772bbbf2885098aed8d2ecf6290c170a7cd9f33e /de/oceanlabs/mcp/mcp_snapshot/20170615-1.12/mcp_snapshot-20170615-1.12.zip 22c45060f350fcaa94e503f4a420cf8237c26c0fcdb4ada4aa98389b75c7b231 /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.jar d6f165bb39aaa20ee14fdcbbdb0b8fffae38067087f333ec6e0acd3f6666b2ad /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.pom -a6063db740f50399c92942f41fd7d60d8afcf916d6c7a52dac69c7fa63598579 /de/oceanlabs/mcp/versions.json +* /de/oceanlabs/mcp/versions.json fd5ad66cdd0a496d281b26c699f4511da7c3f95083659ebb7bae22dab876581a /io/netty/netty-all/4.1.9.Final/netty-all-4.1.9.Final.jar 8ec38a54fc6ed53201d507c6690805878158bcab25c2f476a74c0ccb1d78870b /io/netty/netty-all/4.1.9.Final/netty-all-4.1.9.Final.pom 117ff8d9069d0278585c284ab0817f826f018d9cf4e30f7e1b11f4fbc73013d1 /io/netty/netty-parent/4.1.9.Final/netty-parent-4.1.9.Final.pom From a8f2c742e53778cae85b80917bc63a7eb6e85ac7 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Fri, 1 Sep 2017 18:15:06 +0200 Subject: [PATCH 13/53] Remove ReplayStudio submodule and depend on it via maven instead --- .gitmodules | 4 - ReplayStudio | 1 - build.gradle | 10 +-- gradle/reprod/checksums.txt | 79 +------------------ ...ayStudio-dep-with-manually-built-one.patch | 42 ---------- ...stom-preshadow-with-upstream-version.patch | 25 ------ ...e-shadowJar-is-run-before-build-task.patch | 24 ------ gradle/reprod/setup.sh | 1 - 8 files changed, 4 insertions(+), 182 deletions(-) delete mode 160000 ReplayStudio delete mode 100644 gradle/reprod/patches/replaymod/0005-Replace-ReplayStudio-dep-with-manually-built-one.patch delete mode 100644 gradle/reprod/patches/replaystudio/0001-Replace-custom-preshadow-with-upstream-version.patch delete mode 100644 gradle/reprod/patches/replaystudio/0002-Make-sure-shadowJar-is-run-before-build-task.patch diff --git a/.gitmodules b/.gitmodules index ea042fed..0d1b3611 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,10 +2,6 @@ path = jGui url = https://github.com/ReplayMod/jGui -[submodule "ReplayStudio"] - path = ReplayStudio - url = https://github.com/ReplayMod/ReplayStudio - [submodule "src/main/resources/assets/replaymod/lang"] path = src/main/resources/assets/replaymod/lang url = https://github.com/ReplayMod/Translations diff --git a/ReplayStudio b/ReplayStudio deleted file mode 160000 index 44109f11..00000000 --- a/ReplayStudio +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 44109f11b157e29615489e83ee5df742b4fb4305 diff --git a/build.gradle b/build.gradle index 39d5dd26..6f84a650 100755 --- a/build.gradle +++ b/build.gradle @@ -48,9 +48,7 @@ repositories { name = "SpongePowered Repo" url = "http://repo.spongepowered.org/maven/" } - maven { - url 'https://repo.spacehq.org/content/repositories/snapshots/' - } + maven { url 'https://jitpack.io' } } configurations { @@ -71,24 +69,20 @@ dependencies { shade 'org.aspectj:aspectjrt:1.8.2' - compile project(':ReplayStudio') + shade 'com.github.replaymod:ReplayStudio:2df8d8b' testCompile 'junit:junit:4.11' } -tasks['idea'].dependsOn ':ReplayStudio:preshadowJar' - jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE dependsOn configurations.compile dependsOn configurations.shade - dependsOn ':ReplayStudio:shadowJar' def shade = {files( configurations.compile.findAll {it.name.startsWith 'mixin-'} + configurations.shade - + getTasks().getByPath(':ReplayStudio:shadowJar').outputs.files )} def noticeDir = file("$buildDir/NOTICE") diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index b03887f6..7a9c87aa 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -1,7 +1,5 @@ fec83601d2da127234728a8fffb429d0c4a59587452834da203163e6a3f941db /ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0.jar 399518acc1b1d969e2bd7390b76ffb016a3354045e1c4c82fe747db45d29c27d /ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0.pom -5432354f6be6ffa115647c7da2be47b8984ea97630ddab359af781f767794c5b /ch/raffael/gradlePlugins/preshadow/gradle-preshadow-plugin/1.0/gradle-preshadow-plugin-1.0.jar -48d851967e769ab05f674bd19ed06fc4da7cb9087372d0e73ffa0aed5b1e92f6 /ch/raffael/gradlePlugins/preshadow/gradle-preshadow-plugin/1.0/gradle-preshadow-plugin-1.0.pom 0ab7e4217b2702316adceabd4c1dfca0250dbe33c22e08c98b433939207edfc0 /com/cloudbees/cloudbees-oss-parent/1/cloudbees-oss-parent-1.pom e6509db2167c983d254d3530c66a060443e91a6ca38df9fdc4ef2a88ad813fa5 /com/cloudbees/diff4j/1.1/diff4j-1.1.jar a09a4ac520f9ec5ccd16195272fd8ed4c667285f9e129da5acf633bb21a7d174 /com/cloudbees/diff4j/1.1/diff4j-1.1.pom @@ -14,9 +12,8 @@ cd62bdfd946618c26b49451084361edf79cd6ddb3eae1a485ecb05319295896d /com/github/abr f00facfc855e7d5517fc57553614b4690e61df9ab44f6e93ff583ae201b5a3aa /com/github/jengelman/gradle/plugins/shadow/1.2.3/shadow-1.2.3.pom 75ccc0e24d37ed5b8916e1bcffad1e067c2b1cfa21b635287f968db5c3c1963a /com/github/jponge/lzma-java/1.3/lzma-java-1.3.jar fbcba81b21a8bc3c0761e4798fa05285444b43d681c03c9af49f9b2e1ecb0184 /com/github/jponge/lzma-java/1.3/lzma-java-1.3.pom -60c7fe990c401b90e9ffc3c8114369d1ab442d9277cff335f6cc2b4908fd52ea /com/github/replaymod/MCProtocolLib/1559a77/MCProtocolLib-1559a77.jar -aed033fa3ba329ffa29406ac1ad7c8da953268526d34c94831eda2d580308594 /com/github/replaymod/MCProtocolLib/1559a77/MCProtocolLib-1559a77.pom -9d89f49ad405ffd0f3720c06c61846e6f092ff6faecd851c5592ed4576d8f32b /com/github/replaymod/MCProtocolLib/1559a77/MCProtocolLib-1559a77-sources.jar +8b81939c797646572f726cb810d219d6e6d30ffa1d352cdfb17e67f819afcac8 /com/github/replaymod/ReplayStudio/77dc1d7/ReplayStudio-77dc1d7.jar +277b1b1dc9e04fd9c28c224a43821ba9aa83f0dd866fefd47ee2354f3f15d9a8 /com/github/replaymod/ReplayStudio/77dc1d7/ReplayStudio-77dc1d7.pom c6ebd74cd6108b8c372c95b842725ee5bd6d3303ba26cb00f18bc92f80b47956 /com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.jar 7cdd89a892927998beab59398ef073232588f6e83e411cf4f0905833bf300487 /com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.pom 47c625c83a8cf97b8bbdff2acde923ff8fd3174e62aabcfc5d1b86692594ffba /com/google/api-client/google-api-client/1.22.0/google-api-client-1.22.0.jar @@ -33,8 +30,6 @@ d8e9ec26a01cc19c530ab781cc71185acb9f9d576716e3d585a1d4f12f2089c8 /com/google/api feab9191311c3d7aeef2b66d6064afc80d3d1d52d980fb07ae43c78c987ba93a /com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom c885ce34249682bc0236b4a7d56efcc12048e6135a5baf7a9cde8ad8cda13fcd /com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar 4170a761dc5bfd3981a8e6f7aab9e2acdce82d34fd5aa9bb11e3c090d25314ce /com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.pom -8cc1f0813a186079f82d300a43156bdf852a88008f4f1a1fa71e788fb3b9a86d /com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530.jar -7d131d6a082a33363bdfbf55d2fee2219d9bc8d1c455cc3f7c6403cf2a4496a5 /com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530.pom 35c94198255e95f6f11501eb4b3d43a5276bfdd142ab7c904722e69bff51f69e /com/google/code/gson/gson/2.1/gson-2.1.jar 894da89d477e805389c9df1d6fa8bd552285aed56a399d5749213520a7c74054 /com/google/code/gson/gson/2.1/gson-2.1.pom c0328cd07ca9e363a5acd00c1cf4afe8cf554bd6d373834981ba05cebec687fb /com/google/code/gson/gson/2.2.4/gson-2.2.4.jar @@ -111,13 +106,6 @@ ce6f913cad1f0db3aad70186d65c5bc7ffcc9a99e3fe8e0b137312819f7c362f /commons-loggin d0f2e16d054e8bb97add9ca26525eb2346f692809fcd2a28787da8ceb3c35ee8 /commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom 70903f6fc82e9908c8da9f20443f61d90f0870a312642991fe8462a0b9391784 /commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar 3250ac3ac6bd60ed0631f5cd0335032b2993d63e405a6ae0555d27a7e4865849 /commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.pom -33a4dd47bb4764e4eb3692d86386d17a0d9827f4f4bb0f70121efab6bc03ba35 /commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar -69b8be61aa746c7d02acb1b11eb3b57cb22b246780ed71d79764195cbbe3d99d /commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom -f868fc9e23d7203834abb5e0d11782e1e8920d4e95a06735a13dd51ab8049de8 /com/mycila/maven-license-plugin/maven-license-plugin/1.10.b1/maven-license-plugin-1.10.b1.jar -9576f1134ebf1f0dae51d1e5cce46a6a6e5b5c5998cc12318ebfd16162702d8b /com/mycila/maven-license-plugin/maven-license-plugin/1.10.b1/maven-license-plugin-1.10.b1.pom -d190c18ef3caf788c84a49d6bc200be29a76c00d3ad6030bf11f7afaa4b24f88 /com/mycila/parent-pom/5/parent-pom-5.pom -870f9396789e2f48a7b8fb28dfc070c2f8e74b2007274ce23e69b658110fd294 /com/mycila/xmltool/xmltool/3.3/xmltool-3.3.jar -eb83f616945c8c7dfb4d80e6f909e7286f523bb11077802bcd216bd70e9c717a /com/mycila/xmltool/xmltool/3.3/xmltool-3.3.pom a661dfcb749053fc26eada2a0a8e619a8ead1ca9eda29e1698687aa2cdd80152 /com/nothome/javaxdelta/2.0.1/javaxdelta-2.0.1.jar 93bbe8babc70e175d406ac689b90e689f4915c6e39e738eb6406fa5b529ce36c /com/nothome/javaxdelta/2.0.1/javaxdelta-2.0.1.pom 6c4b4e50e608763564afa1bde2d25ece9dd715e7c9129540faa1faded4896506 /com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar @@ -150,8 +138,6 @@ a6d2c9c0ddff7702662073b69c6dc4ec83011d22e4eb2dada28aa2d66ee47f97 /jline/jline/2. ba62d78eb858e241a604cdf739594cd312f0572756ea7aba4544c746d7152c43 /jline/jline/2.13/jline-2.13.pom 90a8e1603eeca48e7e879f3afbc9560715322985f39a274f6f6070b43f9d06fe /junit/junit/4.11/junit-4.11.jar 18ad8b0ae9e65a9195d04e25427dfe8b58175abcdae875a5a406aee38bddfb26 /junit/junit/4.11/junit-4.11.pom -dc67378cf428c06408e7959e83bdc1518dd22ccd313e7c28a986612d65c276c7 /log4j/log4j/1.2.12/log4j-1.2.12.jar -cb54dedc5d8c4510148dfa792701cbac1a84c383a84f48f5a32e6d7e460bbb72 /log4j/log4j/1.2.12/log4j-1.2.12.pom 0c3085cb93c3ef95d731c274b6f2dd195aa0405fe9328d69cab7f5e899d5e124 /lzma/lzma/0.0.1/lzma-0.0.1.jar a096bc9f7579cec07483874151578720eeb3189c546c19cff56a6203df17b50e /lzma/lzma/0.0.1/lzma-0.0.1.pom 142667dfce3afeb5cc6e18e893d895604060ecef9dfc0d261f0eb9b9e8c81cb0 /m2/gradle/plugin/net/minecrell/gitpatcher/0.9.0/gitpatcher-0.9.0.jar @@ -195,8 +181,6 @@ dc0ba5bff6140dc92339973026a0ecbddc2a3b01bdd46ed9d16becc2f6d78de6 /net/sf/opencsv 6d486c048a84c90ad9239b7b06a7d686d43eda28f827fac08d4f4ea942d21d0a /net/sf/trove4j/trove4j/2.1.0/trove4j-2.1.0.pom 3c8616203d61a12a7e3487e8b34f3c198c2b5ba9e90da0c7ea32d99cd4958012 /net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.jar 11327b94615d0bf16d4e17334902de783c2022f5e909d51fbce993a7a9d7e1d8 /net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.pom -3b93b62c0ea3ab9b5c1c1cdb1a3f25a7eb758f9974e8998f4e1815ba33cb7a1e /nl/javadude/gradle/plugins/license-gradle-plugin/0.11.0/license-gradle-plugin-0.11.0.jar -afded103d53d00171f486ab23c35151d8b82b32e51390c30ae734e83de863c52 /nl/javadude/gradle/plugins/license-gradle-plugin/0.11.0/license-gradle-plugin-0.11.0.pom 649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8 /org/apache/ant/ant/1.9.4/ant-1.9.4.jar 5ce23a18f28d04be351f863020da0136214218aface05560516b97555a5077fd /org/apache/ant/ant/1.9.4/ant-1.9.4.pom 7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d /org/apache/ant/ant-launcher/1.9.4/ant-launcher-1.9.4.jar @@ -207,7 +191,6 @@ ff513db0361fd41237bef4784968bc15aae478d4ec0a9496f811072ccaf3841d /org/apache/apa 9f85ff2fd7d6cb3097aa47fb419ee7f0ebe869109f98aba9f4eca3f49e74a40e /org/apache/apache/16/apache-16.pom 7831307285fd475bbc36b20ae38e7882f11c3153b1d5930f852d44eda8f33c17 /org/apache/apache/18/apache-18.pom 9e9323a26ba8eb2394efef0c96d31b70df570808630dc147cab1e73541cc5194 /org/apache/apache/4/apache-4.pom -12edb5096e13f40c362d0bd40902589fa9586505123fa26799ce50b116fa5bb3 /org/apache/apache/6/apache-6.pom 4946e60a547c8eda69f3bc23c5b6f0dadcf8469ea49b1d1da7de34aecfcf18dd /org/apache/apache/9/apache-9.pom 93f8dfcd20831a28d092427723f696bceb70b28e7fb89d7914f14d5ea492ce5a /org/apache/commons/commons-collections4/4.0/commons-collections4-4.0.jar f23d3625d35b016f3e8b77fb3ebf5e543807081fce2492f45a79d00160789a78 /org/apache/commons/commons-collections4/4.0/commons-collections4-4.0.pom @@ -257,52 +240,13 @@ f360def8ad0c62f5420a9b2ef8d6a51f87703e05c1df08494578a1d4024b05ad /org/apache/log 815a73e20e90a413662eefe8594414684df3d5723edcd76070e1a5aee864616e /org/apache/logging/log4j/log4j-core/2.8.1/log4j-core-2.8.1.jar 6efbf3a19b80fb812392ac99a113138f1e909d85dfa44c0813c1c69737b82c52 /org/apache/logging/log4j/log4j-core/2.8.1/log4j-core-2.8.1.pom 34b2bf4f531a809168961672ff419d1abf96725b8dfe52980f00c8c4eb134bd6 /org/apache/logging/logging-parent/1/logging-parent-1.pom -35420001ba5fe10723b2b9802c31f59869f8763d5367b3648fa519d207ae4178 /org/apache/maven/maven/3.0.1/maven-3.0.1.pom -4c2f8341518aeb9d488844e334c02fa66dd4bb091bfdeb965c8a848ac6ea5aa2 /org/apache/maven/maven/3.0-alpha-2/maven-3.0-alpha-2.pom -64c3d84c0aa343c135791106db7a1f38598b1e74763c4ce404b1cf28d9b31cc8 /org/apache/maven/maven-artifact/3.0.1/maven-artifact-3.0.1.jar -61ab43b13fc4066c5c176d5c2c700a7f9006438322dc1599772117679a234644 /org/apache/maven/maven-artifact/3.0.1/maven-artifact-3.0.1.pom -85500348730f338599e5f454be4a9909a6d01e86effc1ed0650a71e544bc67d5 /org/apache/maven/maven-compat/3.0-alpha-2/maven-compat-3.0-alpha-2.jar -4196effcccdbe4ef8dc625e5dd8e13284971dd884dc80109cb1f44d76dd0d7e7 /org/apache/maven/maven-compat/3.0-alpha-2/maven-compat-3.0-alpha-2.pom -3ec2a8baef4dc4471bdcb461a57ce7f90335e2826785a71e9c48cc24ab90fccb /org/apache/maven/maven-model/3.0.1/maven-model-3.0.1.jar -6c1d23f6d6c8259c2221b3c2ab4aa63cdc631c0791ae19579350e696ded82f74 /org/apache/maven/maven-model/3.0.1/maven-model-3.0.1.pom -81fe14cb9779d36e0c610e1049e5b32a6b9974957f257921acf628b31c5486c8 /org/apache/maven/maven-parent/10/maven-parent-10.pom -e25770d5d46dcdfdbb9e38ca04f272c5bdf476d88392ab4044ba90678e616d54 /org/apache/maven/maven-parent/15/maven-parent-15.pom -3cb6712f827c80dc6b0b0b967776dba451c023a92b7741bba45d23ab7a83281a /org/apache/maven/maven-parent/8/maven-parent-8.pom -3b5e7b3a72f400835c279d67e62d48d3fd41f2c6e1aa14145ed176d50a6be0b4 /org/apache/maven/maven-plugin-api/3.0.1/maven-plugin-api-3.0.1.jar -bd2ed289400594e7385cfdd14b7488789fe2c19d4c0ea2fde8b947325d5cbf8d /org/apache/maven/maven-plugin-api/3.0.1/maven-plugin-api-3.0.1.pom -0b76d82011452170dddd21fb33da6bfc414ff6629fce6219fbf1d78ce1518e90 /org/apache/maven/maven-project/3.0-alpha-2/maven-project-3.0-alpha-2.jar -24477230086e456dff22c24dec30aab0a8ae321a2ce5645a85a8516f7dd829e3 /org/apache/maven/maven-project/3.0-alpha-2/maven-project-3.0-alpha-2.pom -f3905cb8c223c33f6121bc937b66a2f58653be766042fb6e924b9882c555d891 /org/apache/maven/maven-project-builder/3.0-alpha-2/maven-project-builder-3.0-alpha-2.jar -392f9bcc7eb6d9ab85b693cda0c3ba698fc770d32843491c8815b87f40fe02a8 /org/apache/maven/maven-project-builder/3.0-alpha-2/maven-project-builder-3.0-alpha-2.pom -6c35daab503ff462f4f63317ae723bd37cae37460ea3576374a347583e7c4327 /org/apache/maven/wagon/wagon/1.0-beta-4/wagon-1.0-beta-4.pom -6a82569576cda4cae793800ed2985202de8a59e414d2140e217cf077709e7bbb /org/apache/maven/wagon/wagon-provider-api/1.0-beta-4/wagon-provider-api-1.0-beta-4.jar -1739331652c6e93dd3305a9c5b33f493c85782171e9e8a3e0c750b030dabadd1 /org/apache/maven/wagon/wagon-provider-api/1.0-beta-4/wagon-provider-api-1.0-beta-4.pom -56ab9c6c2d022a9b7079006ba500a996cd2c21411d53cac524933af20c5a4b99 /org/apache/xbean/xbean/3.4/xbean-3.4.pom -17e0efa187127034623197fb88c50c30d3baa62baa0f07d6ec693047ac92ec3b /org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.jar -01c97d4286dd3b5e5441faac3abb589f1fe123cea138bb4ae0995ffae14938df /org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom c7964f00c3d3889c5223e8fcb7476610c59453c86bccc68ef493a56d171bf655 /org/aspectj/aspectjrt/1.8.2/aspectjrt-1.8.2.jar ba5261a1f07260c3d8016623fdd27d662b9934266a75d4f57f165bfbaf9af1a8 /org/aspectj/aspectjrt/1.8.2/aspectjrt-1.8.2.pom f07694998acb204782c72cc8067b237a04097a2170f07d440614883f14a67630 /org/codehaus/groovy/groovy-backports-compat23/2.4.4/groovy-backports-compat23-2.4.4.jar 2f93f476d35dd52828e13f32a4be68ab80a3b999713079feb98c67ae9e8d858f /org/codehaus/groovy/groovy-backports-compat23/2.4.4/groovy-backports-compat23-2.4.4.pom -5197630dcd2336f5b4ab8e6d26e5b8675f5ebd83bd8c91d6aba431b09627d626 /org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom -e246e2a062b5d989fdefc521c9c56431ba5554ff8d2344edee9218a34a546a33 /org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom -bea12e747708d25e73410ca1c731ebdfa102e8bdb6ec7d81bd4522583b234bcc /org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom 2b59062030ab0a15c5d0977ba22421706368926488739a65f25793e715cc8a74 /org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom -7d95ad21733b060bfda2142b62439a196bde7644f9f127c299ae86d92179b518 /org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.jar -a2d14b6752e30a100a6cb03c040d0160b71b61928daf8ea97cabfb4a3335b213 /org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom -4df7a6a7be64b35bbccf60b5c115697f9ea3421d22674ae67135dde375fcca1f /org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar -815f3ec316b8c5fa701385fdf4009bfb51e07d780e8f6a6e2afe720c52d7e292 /org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom -00aa0be06a029e4b45032f682089d5052b014c028f9187f83c70adc073672c46 /org/codehaus/plexus/plexus-container-default/1.0-beta-3.0.5/plexus-container-default-1.0-beta-3.0.5.jar -3d90bbd9f534020621c77453dcffdad4e761e42911c2be9adaeec724f9972a9c /org/codehaus/plexus/plexus-container-default/1.0-beta-3.0.5/plexus-container-default-1.0-beta-3.0.5.pom -f53a82db260a2910a9823d6e72a927891daae33d8eb6884ab838a2a2768c6b86 /org/codehaus/plexus/plexus-containers/1.0-beta-3.0.5/plexus-containers-1.0-beta-3.0.5.pom -1bc264824ec876b0ca6f4f5838175c541c638cbc43326a268b9aee7d4778b5ef /org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom -b4ecee4e3a90b6b782d3e0b260f708615402ae8f2729be2933fedd1234b4bf07 /org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.jar -72f6babf3ff5886b54a66d567305e85fc0fbecc7e0bd47eb81fa502c9447fae8 /org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.pom -35bc7d1213616236571072b2c56da18f7a57658de8b4a4100645b7054a2b273b /org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom 8b909f4ca9788647942f883d4e559bcc642123f7c6bcd3846983a2e465469c33 /org/codehaus/plexus/plexus-utils/2.0.6/plexus-utils-2.0.6.jar fddad4fa62c82310aec43525e519cd59f27d04c7569fe21b1b03ca210887810c /org/codehaus/plexus/plexus-utils/2.0.6/plexus-utils-2.0.6.pom -03cbe8dcaa909a6f72219abec105675c6df08898971c326cf7e64373bff5e769 /org/codehaus/woodstox/wstx-asl/3.2.6/wstx-asl-3.2.6.jar -784db534cc3c5051f88198e8251da9c8b13625e0eb365a347e1085387d8203b1 /org/codehaus/woodstox/wstx-asl/3.2.6/wstx-asl-3.2.6.pom e4144cbc26da195c6b22a53691fd079f70b74aa5f55bd6089cd77ec99a0ee8fe /org/eclipse/core/contenttype/3.4.200-v20130326-1255/contenttype-3.4.200-v20130326-1255.pom 4dd6ec1376693bd8ac4e2ceacc7be70880920978f3fef31db4968e6ade001c87 /org/eclipse/core/contenttype/3.4.200-v20140207-1251/contenttype-3.4.200-v20140207-1251.jar f82370a400c38f78f479df4e79c6e1563e4ec050049279601ca01d85186456a7 /org/eclipse/core/contenttype/3.4.200-v20140207-1251/contenttype-3.4.200-v20140207-1251.pom @@ -412,7 +356,6 @@ cbfacd5dd812db16dc910994007fe58d9402a25507f81a1c2218e15c2c1bedfa /org/ow2/asm/as 347a7a9400f9964e87c91d3980e48eebdc8d024bc3b36f7f22189c662853a51c /org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar 65819ca7c5a218ff49f8ebe72f3b39219c81f137d017acc1aec15b1054cf5236 /org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.pom 51215c67d2c068d8b7d2f6f80f51372a098075deccc448d4bdd7b987ba8328fb /org/ow2/ow2/1.3/ow2-1.3.pom -3ca225ce3917eac8bf4b7d2186845df4e70dcdede356dca8537b6d78a535c91e /org/projectlombok/lombok/1.16.4/lombok-1.16.4.jar fcb8d5745f776567f1cce332282750b1653568324621ecef03288c8a25919d0e /org/projectlombok/lombok/1.16.4/lombok-1.16.4.pom e0a471be03e1e6b02bf019480cec7a3ac9801702bf7bf62f15d077ad4df8dd5d /org/projectlombok/lombok/1.16.6/lombok-1.16.6.jar 32ac0a2363ccc0c5086b62cfc05e28a355b74e155efef6b426f5498a0dfc9e4c /org/projectlombok/lombok/1.16.6/lombok-1.16.6.pom @@ -436,28 +379,10 @@ abe89207b0bfcbcf164c820cbba2c962ab5e9f3a0d0f37d81bde4f6c293a874b /org/scala-lang 3268a48dc36c664e7f4bd5d88b366bf098a13f7b6e8b87611e3a4413b72860d4 /org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.pom 41938d1e89670979dd783102777a8b879999f4fb00a5b811b51c105b02a9d4f8 /org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.jar 8b58df7e9e5f2f4f7d2f0dc24353f356abe965337e48504cec36a344e6294757 /org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.pom -03263b68791fb11e7464ffcc2c3de7eaeae235de8c94827ce6407e0454d2aae9 /org/sonatype/forge/forge-parent/3/forge-parent-3.pom -9c5f7cd5226ac8c3798cb1f800c031f7dedc1606dc50dc29567877c8224459a7 /org/sonatype/forge/forge-parent/6/forge-parent-6.pom 1678d4120a585d8a630131aeec4c524d928398583b7eab616ee7d5a87f520d3d /org/sonatype/oss/oss-parent/5/oss-parent-5.pom b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454 /org/sonatype/oss/oss-parent/7/oss-parent-7.pom fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a /org/sonatype/oss/oss-parent/9/oss-parent-9.pom -9e574d71cd6b17420ab64fcb2ccd5304644e0c949f4a9825ac940e9278b57c36 /org/sonatype/sisu/inject/guice-bean/1.4.3.1/guice-bean-1.4.3.1.pom -2f99935b6ce8dac24a2be17526b3c72428458b9924147294da05c9fd5cd4b4d8 /org/sonatype/sisu/inject/guice-parent/2.9.1/guice-parent-2.9.1.pom -9b99f071b2e10da9aaa8ee66ff0078d562fb2773f59600b5e8dcec323a55dd3e /org/sonatype/sisu/inject/guice-plexus/1.4.3.1/guice-plexus-1.4.3.1.pom -a8d105cdb5c114458d75765f020e3158a0aab73b2662a44a9fe55aeb5c466243 /org/sonatype/sisu/sisu-guice/2.9.1/sisu-guice-2.9.1-noaop.jar -50c4e230ba725d627420b9f38fe1d129ac7a6e4c538f9fb7babc034e90ed0465 /org/sonatype/sisu/sisu-guice/2.9.1/sisu-guice-2.9.1.pom -33a3f5884d6edf4cf77e480ee21e1c229b225bf9ae3e62172354d697940896c4 /org/sonatype/sisu/sisu-inject/1.4.3.1/sisu-inject-1.4.3.1.pom -10585526c51c6f5f7cf50d779798f6a295a0efed46dd45508e6ec77e80a1b96c /org/sonatype/sisu/sisu-inject-bean/1.4.3.1/sisu-inject-bean-1.4.3.1.jar -cbefb568cb07200f889d7509f7afcee709549816c66a5eea38f875bc6addfe57 /org/sonatype/sisu/sisu-inject-bean/1.4.3.1/sisu-inject-bean-1.4.3.1.pom -dca5fd3a0f613b55239201ae7cd30f1a938ae8d2b3879541c4822bb89046d71b /org/sonatype/sisu/sisu-inject-plexus/1.4.3.1/sisu-inject-plexus-1.4.3.1.jar -385ec86169e1529fc4b48dccc25adef45be7798781cae7325196aa7f4e9b0bb6 /org/sonatype/sisu/sisu-inject-plexus/1.4.3.1/sisu-inject-plexus-1.4.3.1.pom -fff1c8d48c875cd2c06cf83a3c9d4e7eb3b81d4cecfc23ba5ea164f1db266538 /org/sonatype/sisu/sisu-parent/1.4.3.1/sisu-parent-1.4.3.1.pom -02161ae46462da669b1d7be3f9b64687c6347f84d04c890fa467eff6def0ae10 /org/sonatype/spice/model-builder/1.3/model-builder-1.3.jar -0d2cc363cdfc6c102203adb6a5c138c195eaf1198527a09e6a17aa0227a66bcd /org/sonatype/spice/model-builder/1.3/model-builder-1.3.pom -683c012c6bf5e1e31b232b3755c027ccd829692a09c8216652b414b09d4ae623 /org/sonatype/spice/spice-parent/10/spice-parent-10.pom 27901e5d4d60d3502571d5e6358fc89e3fcf874138b69d495d139bcc3e169404 /oshi-project/oshi-core/1.1/oshi-core-1.1.jar e7e154dd64e5bd87e6ae2652ab52ab88eb53d05606466faee382d11f59d0ab71 /oshi-project/oshi-core/1.1/oshi-core-1.1.pom -d1968436fc216c901fb9b82c7e878b50fd1d30091676da95b2edd3a9c0ccf92e /stax/stax-api/1.0.1/stax-api-1.0.1.jar -87b13ae136a2bb9299271a0dfe8c351f76661b654ed8fde035c2cabb198cf259 /stax/stax-api/1.0.1/stax-api-1.0.1.pom ad68a86cfd0255a2bc0525ce11ec49640caea7e34ff91eb89c3193dcccd77f05 /trove/trove/1.0.2/trove-1.0.2.jar 83f2682bd3ded1fe417b7e98e7ac86510cd747378eae7e3a5d1d35c7c7f0d2ea /trove/trove/1.0.2/trove-1.0.2.pom diff --git a/gradle/reprod/patches/replaymod/0005-Replace-ReplayStudio-dep-with-manually-built-one.patch b/gradle/reprod/patches/replaymod/0005-Replace-ReplayStudio-dep-with-manually-built-one.patch deleted file mode 100644 index f1484c10..00000000 --- a/gradle/reprod/patches/replaymod/0005-Replace-ReplayStudio-dep-with-manually-built-one.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 2acc7a8cbfcafa23671b669ba4ae50539cf11872 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 28 Aug 2017 20:56:39 +0200 -Subject: [PATCH] Replace ReplayStudio dep with manually built one - ---- - build.gradle | 6 +----- - 1 file changed, 1 insertion(+), 5 deletions(-) - -diff --git a/build.gradle b/build.gradle -index 2104fb8..fb02c7f 100755 ---- a/build.gradle -+++ b/build.gradle -@@ -53,24 +53,20 @@ dependencies { - - shade 'org.aspectj:aspectjrt:1.8.2' - -- compile project(':ReplayStudio') -+ shade files('gradle/reprod/deps/replaystudio.jar') - - testCompile 'junit:junit:4.11' - } - --tasks['idea'].dependsOn ':ReplayStudio:preshadowJar' -- - jar { - duplicatesStrategy = DuplicatesStrategy.EXCLUDE - - dependsOn configurations.compile - dependsOn configurations.shade -- dependsOn ':ReplayStudio:shadowJar' - - def shade = {files( - configurations.compile.findAll {it.name.startsWith 'mixin-'} - + configurations.shade -- + getTasks().getByPath(':ReplayStudio:shadowJar').outputs.files - )} - - def noticeDir = file("$buildDir/NOTICE") --- -2.5.5 - diff --git a/gradle/reprod/patches/replaystudio/0001-Replace-custom-preshadow-with-upstream-version.patch b/gradle/reprod/patches/replaystudio/0001-Replace-custom-preshadow-with-upstream-version.patch deleted file mode 100644 index 1aeed0b3..00000000 --- a/gradle/reprod/patches/replaystudio/0001-Replace-custom-preshadow-with-upstream-version.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 5e4d9a2f79250283004c4398498fd17006bad219 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 28 Aug 2017 21:14:10 +0200 -Subject: [PATCH 1/2] Replace custom preshadow with upstream version - ---- - build.gradle | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/build.gradle b/build.gradle -index c2f496e..dc84f48 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -23,7 +23,7 @@ apply plugin: 'idea' - apply plugin: 'com.github.johnrengelman.shadow' - apply plugin: 'license' - apply plugin: 'maven' --apply from: 'gradle/preshadow.gradle' -+apply plugin: 'ch.raffael.preshadow' - - // Methods to determine detailed version string - def gitDescribe() { --- -2.5.5 - diff --git a/gradle/reprod/patches/replaystudio/0002-Make-sure-shadowJar-is-run-before-build-task.patch b/gradle/reprod/patches/replaystudio/0002-Make-sure-shadowJar-is-run-before-build-task.patch deleted file mode 100644 index 4d907a1d..00000000 --- a/gradle/reprod/patches/replaystudio/0002-Make-sure-shadowJar-is-run-before-build-task.patch +++ /dev/null @@ -1,24 +0,0 @@ -From ba15c05e6afa05948c30b53b49baaff9211e9abe Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 28 Aug 2017 21:17:16 +0200 -Subject: [PATCH 2/2] Make sure shadowJar is run before build task - ---- - build.gradle | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/build.gradle b/build.gradle -index dc84f48..d99f39b 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -101,6 +101,7 @@ shadowJar { - append('META-INF/NOTICE.txt') - from(tasks.findByName('preshadowJar').outputs.files.collect {it.isDirectory() ? it : zipTree(it)}) - } -+build.dependsOn shadowJar - - eclipse.project { - name = 'ReplayStudio' --- -2.5.5 - diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index 844d78c2..c38563e8 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -80,7 +80,6 @@ setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "ea4ea setup_dep "mixingradle" "https://github.com/SpongePowered/MixinGradle.git" "3d81c8e202ec435056fb2068fdc34cfefa99be2d" "build/libs/mixingradle-0.4-SNAPSHOT.jar" "8b3508867128a5d564631635dff898a36f9aca8db54b7bb3af6f4924e3f4bead" setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "a228a836a2dc5ce546d2d53c48760f52f082d7ad" "build/libs/ForgeGradle-2.3-SNAPSHOT.jar" "94bf0d8be7e68a3d9828c8208024c21f2c171663dd7d56b95b3459bfc67273c0" setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "build/libs/mixin-0.6.11-SNAPSHOT.jar" "8ec6ce24b8192f043976344305ba6afbc35b052056f1559ca5914a77c5eae71d" -setup_dep "replaystudio" "https://github.com/ReplayMod/ReplayStudio.git" "82bd8aa34e0ddb04d179299b582e960dc19a66f8" "build/libs/ReplayStudio-*all.jar" "c416c52ea3470d34dd2f9e26fb67836cef717b2c033ca0637af30d9f5e3bb31b" rm -rf tmp mkdir tmp From a976d8c58f3a542765e1ca971b102c52b1be1fa3 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Fri, 1 Sep 2017 19:05:31 +0200 Subject: [PATCH 14/53] Whitelist forge json in proxy-witness --- gradle/reprod/checksums.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index 7a9c87aa..d5f3236a 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -162,7 +162,7 @@ b47c5d5810643426a3147ddb2195ef2ab67c80b167e7c2ac64a5d0dee8c030dd /net/md-5/Speci 5f374f8ae7afff8dbc23aff14e59c5bd585c230afe9a8dcaa7b928e8cb16a27e /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.pom 606b825e3920a1b7e8e2652a37e432f2b3066539e803a46212c5505a709cbff2 /net/minecraftforge/forge/1.12.1-14.22.0.2444/forge-1.12.1-14.22.0.2444.pom c8396b067c800425d4f4e97ec6879262f2133b5c53575c6b82c4eb6feb22f2a1 /net/minecraftforge/forge/1.12.1-14.22.0.2444/forge-1.12.1-14.22.0.2444-userdev.jar -a5ae2dc3177eddf8f19ccfee248eff3b3f76e38f4fb76a88bf99f96e81094924 /net/minecraftforge/forge/json +* /net/minecraftforge/forge/json e74b65b8948446982a506a96176dd8baf4688237ba4903f56ca6f667b6c7ee42 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.jar 616c4971035d1e6ab4809e16daabb02aa308c1dc001c06dd547c7d3b2e916999 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.pom 57f402b626d16cc2705bf2a37add7adbb074f0ca3b3102fa6e23aa303dae682f /net/minecraft/launchwrapper/1.12/launchwrapper-1.12.jar From c21408a9d00e286ee0b38e339b16fa207d906bf0 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sat, 2 Sep 2017 17:53:09 +0200 Subject: [PATCH 15/53] Rebase reprod changes on 1.8 --- gradle/reprod/checksums.txt | 241 ++++++++++++------ ...lace-plugin-DSL-with-old-buildscript.patch | 35 --- ...mpilation-with-newer-gradle-versions.patch | 84 ++++++ ...tps-urls-with-http-for-proxy-witness.patch | 28 +- ...-Remove-all-buildscript-dependencies.patch | 161 ------------ ...ings-because-we-don-t-include-deps-a.patch | 10 +- ...APSHOT-deps-with-manually-built-ones.patch | 4 +- ...-Remove-all-buildscript-dependencies.patch | 125 --------- ...de-java-version-and-user-name-in-jar.patch | 2 +- .../0005-Disable-license-plugin.patch | 53 ++++ ...ipt-dependencies-with-manually-built.patch | 4 +- ...ce-mixin-dep-with-manually-built-one.patch | 6 +- ...-non-essential-parts-of-build.gradle.patch | 141 ---------- gradle/reprod/setup.sh | 14 +- 14 files changed, 331 insertions(+), 577 deletions(-) delete mode 100644 gradle/reprod/patches/forgeflower/0001-Replace-plugin-DSL-with-old-buildscript.patch create mode 100644 gradle/reprod/patches/forgegradle/0001-Fix-compilation-with-newer-gradle-versions.patch delete mode 100644 gradle/reprod/patches/forgegradle/0003-Remove-all-buildscript-dependencies.patch delete mode 100644 gradle/reprod/patches/mixingradle/0002-Remove-all-buildscript-dependencies.patch create mode 100644 gradle/reprod/patches/mixingradle/0005-Disable-license-plugin.patch delete mode 100644 gradle/reprod/patches/srg2source/0002-Remove-non-essential-parts-of-build.gradle.patch diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index d5f3236a..0bc11288 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -1,5 +1,3 @@ -fec83601d2da127234728a8fffb429d0c4a59587452834da203163e6a3f941db /ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0.jar -399518acc1b1d969e2bd7390b76ffb016a3354045e1c4c82fe747db45d29c27d /ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0.pom 0ab7e4217b2702316adceabd4c1dfca0250dbe33c22e08c98b433939207edfc0 /com/cloudbees/cloudbees-oss-parent/1/cloudbees-oss-parent-1.pom e6509db2167c983d254d3530c66a060443e91a6ca38df9fdc4ef2a88ad813fa5 /com/cloudbees/diff4j/1.1/diff4j-1.1.jar a09a4ac520f9ec5ccd16195272fd8ed4c667285f9e129da5acf633bb21a7d174 /com/cloudbees/diff4j/1.1/diff4j-1.1.pom @@ -12,8 +10,8 @@ cd62bdfd946618c26b49451084361edf79cd6ddb3eae1a485ecb05319295896d /com/github/abr f00facfc855e7d5517fc57553614b4690e61df9ab44f6e93ff583ae201b5a3aa /com/github/jengelman/gradle/plugins/shadow/1.2.3/shadow-1.2.3.pom 75ccc0e24d37ed5b8916e1bcffad1e067c2b1cfa21b635287f968db5c3c1963a /com/github/jponge/lzma-java/1.3/lzma-java-1.3.jar fbcba81b21a8bc3c0761e4798fa05285444b43d681c03c9af49f9b2e1ecb0184 /com/github/jponge/lzma-java/1.3/lzma-java-1.3.pom -8b81939c797646572f726cb810d219d6e6d30ffa1d352cdfb17e67f819afcac8 /com/github/replaymod/ReplayStudio/77dc1d7/ReplayStudio-77dc1d7.jar -277b1b1dc9e04fd9c28c224a43821ba9aa83f0dd866fefd47ee2354f3f15d9a8 /com/github/replaymod/ReplayStudio/77dc1d7/ReplayStudio-77dc1d7.pom +f38a7028bbac3f6c6b15cb40d533c96c6e8fdb54fc93d922cfa1931b25fa8c5c /com/github/replaymod/ReplayStudio/2df8d8b/ReplayStudio-2df8d8b.jar +1075c4246911339023a15bc962d6408925b959656443cad3193bbe7ca3dae5fb /com/github/replaymod/ReplayStudio/2df8d8b/ReplayStudio-2df8d8b.pom c6ebd74cd6108b8c372c95b842725ee5bd6d3303ba26cb00f18bc92f80b47956 /com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.jar 7cdd89a892927998beab59398ef073232588f6e83e411cf4f0905833bf300487 /com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.pom 47c625c83a8cf97b8bbdff2acde923ff8fd3174e62aabcfc5d1b86692594ffba /com/google/api-client/google-api-client/1.22.0/google-api-client-1.22.0.jar @@ -28,17 +26,18 @@ d8e9ec26a01cc19c530ab781cc71185acb9f9d576716e3d585a1d4f12f2089c8 /com/google/api 4dad29307c34e923ebb6d29e2c265850a0f0b691c7a63384279aa8353eae28b9 /com/google/apis/google-api-services-youtube/v3-rev178-1.22.0/google-api-services-youtube-v3-rev178-1.22.0.pom 905721a0eea90a81534abb7ee6ef4ea2e5e645fa1def0a5cd88402df1b46c9ed /com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar feab9191311c3d7aeef2b66d6064afc80d3d1d52d980fb07ae43c78c987ba93a /com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom -c885ce34249682bc0236b4a7d56efcc12048e6135a5baf7a9cde8ad8cda13fcd /com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar -4170a761dc5bfd3981a8e6f7aab9e2acdce82d34fd5aa9bb11e3c090d25314ce /com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.pom +1e7f53fa5b8b5c807e986ba335665da03f18d660802d8bf061823089d1bee468 /com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar +02c12c3c2ae12dd475219ff691c82a4d9ea21f44bc594a181295bf6d43dcfbb0 /com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.pom +8cc1f0813a186079f82d300a43156bdf852a88008f4f1a1fa71e788fb3b9a86d /com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530.jar +7d131d6a082a33363bdfbf55d2fee2219d9bc8d1c455cc3f7c6403cf2a4496a5 /com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530.pom 35c94198255e95f6f11501eb4b3d43a5276bfdd142ab7c904722e69bff51f69e /com/google/code/gson/gson/2.1/gson-2.1.jar 894da89d477e805389c9df1d6fa8bd552285aed56a399d5749213520a7c74054 /com/google/code/gson/gson/2.1/gson-2.1.pom c0328cd07ca9e363a5acd00c1cf4afe8cf554bd6d373834981ba05cebec687fb /com/google/code/gson/gson/2.2.4/gson-2.2.4.jar ae984d5d19894ce6dc4689866eaa12f8fc31409113e60ee3b44853b8ac4fd380 /com/google/code/gson/gson/2.2.4/gson-2.2.4.pom -c6221763bd79c4f1c3dc7f750b5f29a0bb38b367b81314c4f71896e340c40825 /com/google/code/gson/gson/2.8.0/gson-2.8.0.jar -a5331a0ecb548f9942ab5b93c7ac43c38a21e897763dde1bcdbf0774f416ca6f /com/google/code/gson/gson/2.8.0/gson-2.8.0.pom -0f1d8369b1e9f1bc4b467c8dcfdd8b59733aad5b5c8419c3a59b2f9abaf04cd2 /com/google/code/gson/gson-parent/2.8.0/gson-parent-2.8.0.pom 4838f4f29a027522363cef1bcda1b48808880b0de4953fab6db4121ee27b649b /com/googlecode/jarjar/jarjar/1.1/jarjar-1.1.jar be4f53c0bc04da4e3d6c65c8f3243d1ea4135e35c7d7dda88af1c582687263d7 /com/googlecode/jarjar/jarjar/1.1/jarjar-1.1.pom +d1296fa8926f71743be61cb4bfdac2ac3deb9ffe1a4948b1f293cb7a1bdb1800 /com/googlecode/javaewah/JavaEWAH/0.5.6/JavaEWAH-0.5.6.jar +fa5c2d7edcd57c6e1b402773dc32a180f82c111af44bfc2d483a2c7be1862e8f /com/googlecode/javaewah/JavaEWAH/0.5.6/JavaEWAH-0.5.6.pom ddbbf392f8e61f770a509a49aed5f32ead19768283b4b512c626e09e1ba5cc46 /com/googlecode/mp4parser/isoparser/1.1.7/isoparser-1.1.7.jar 6890ebacb23d3ab51a5751a830f5269b7e8fdd19d08b7e055bc739f62b4bd174 /com/googlecode/mp4parser/isoparser/1.1.7/isoparser-1.1.7.pom 8c36a80ea613d0b6b8040a17cf837c5bbe3677bc1b06a058a6c174fdb787ebbc /com/google/guava/guava/17.0/guava-17.0.jar @@ -47,14 +46,11 @@ d664fbfc03d2e5ce9cab2a44fb01f1d0bf9dfebeccc1a473b1f9ea31f79f6f99 /com/google/gua e743d61d76f76b5dc060d6f7914fdd41c4418b3529062556920116a716719836 /com/google/guava/guava/18.0/guava-18.0.pom 58d4cc2e05ebb012bbac568b032f75623be1cb6fb096f3c60c72a86f7f057de4 /com/google/guava/guava/19.0/guava-19.0.jar addc064da7f1077fdf4dc90e5aaa887cd790850d1b74fe2e6e25d5f78551ac63 /com/google/guava/guava/19.0/guava-19.0.pom -972139718abc8a4893fa78cba8cf7b2c903f35c97aaf44fa3031b0669948b480 /com/google/guava/guava/21.0/guava-21.0.jar -c0b016a85c784e01ca51e9d64bf8fe80ce402b206fea897b03258d5e6d0ff80d /com/google/guava/guava/21.0/guava-21.0.pom 59bf456547b6dda3ced968cb56f7f2d3e14474e2de2960a32c47e31c1e456c61 /com/google/guava/guava-jdk5/17.0/guava-jdk5-17.0.jar f8c152627813d45bc4e7cc17ad6ed6a649a0231ae819ffb8e05d19b205a3db66 /com/google/guava/guava-jdk5/17.0/guava-jdk5-17.0.pom 9fba53585551d3c775179de859760a73c4beab407dfde16b551a09a87b50532a /com/google/guava/guava-parent/17.0/guava-parent-17.0.pom a4accc8895e757f6a33f087e4fd0b661c5638ffe5e0728f298efe7d80551b166 /com/google/guava/guava-parent/18.0/guava-parent-18.0.pom 3b76ff43ecdf10f74da36e4aae2b470c9d063e053c5ca026f5512ae94f1c3e10 /com/google/guava/guava-parent/19.0/guava-parent-19.0.pom -acdc6d6f07b346caeb174932788bccc63c035cc5c2b100958c21ffe0f6e19988 /com/google/guava/guava-parent/21.0/guava-parent-21.0.pom 5a9606bc27632956b3c11df887e9b3e785854068aaa4e0808ed5660f60b1fb6f /com/google/guava/guava-parent-jdk5/17.0/guava-parent-jdk5-17.0.pom f744c79f198e53deea4cd311f9135a568ab67052804d80fd3d60b0385644cf65 /com/google/http-client/google-http-client/1.20.0/google-http-client-1.20.0.pom f88ffa329ac52fb4f2ff0eb877ef7318423ac9b791a107f886ed5c7a00e77e11 /com/google/http-client/google-http-client/1.22.0/google-http-client-1.22.0.jar @@ -74,22 +70,22 @@ daabf9d4e35d4015c2c917982463572856a5c8d7fa718e94edb2b6b114a2a8a2 /com/google/oau 2c594b64206b24c2ec9506769cac5c637346152c7822f0337721776c6eb092db /com/google/oauth-client/google-oauth-client-jetty/1.20.0/google-oauth-client-jetty-1.20.0.pom 374fb28a2c74f92999de4d843f788838f38fd89b570c95813513546a0e7ae3ca /com/google/oauth-client/google-oauth-client-parent/1.20.0/google-oauth-client-parent-1.20.0.pom 2e7acb933f8c1b801b78925e4d22c32040a414dc7246bfdb777d8ad78404fa66 /com/google/oauth-client/google-oauth-client-parent/1.22.0/google-oauth-client-parent-1.22.0.pom +bbc21cab2e0b0c76c9977fdf8b80c311788094d81e6910a2a6e63d80910102c7 /com/gradle/publish/plugin-publish-plugin/0.9.1/plugin-publish-plugin-0.9.1.jar +89aa507536b0a93d8c9d3087d738255eefffc002cefa255ebdbd6891b8165447 /com/gradle/publish/plugin-publish-plugin/0.9.1/plugin-publish-plugin-0.9.1.pom 147592c5eb8e11fc8394125954f877acf25918bae13aa210c2825aefc3030ed8 /com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar 06b382efe9d60474aa3df7f4851397b3ae0c4f142567f0fc66a8fa2706a665e4 /com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.pom +48cd629c3081dff4d8c35e7da4efb3bcc4ed4b35c8a7e8198d5c30e0312bd912 /com/jcraft/jsch/0.1.46/jsch-0.1.46.jar +eb60cec1e570efad3d750afd9a86b763dba49e47c3c106a599c05e708260efc4 /com/jcraft/jsch/0.1.46/jsch-0.1.46.pom 2c149735a093b6c65a27db760896ad5c5b06e29100bb8969937667784fef4ba0 /com/mojang/authlib/1.5.16/authlib-1.5.16.jar d05175230d79f518b5c4664d24e3d115f5f3888e3806f3b6076cd0b4943e6ca6 /com/mojang/authlib/1.5.16/authlib-1.5.16.pom -c8a095123be93c59d4ac29e4a0616495b3d479ac65913cb719a81ee583e9dfcd /com/mojang/authlib/1.5.25/authlib-1.5.25.jar -194f9d56c3b05a6df8d4f94c383e2eb0b4d4c2ec0437f03a385cbe5d5ab314cd /com/mojang/authlib/1.5.25/authlib-1.5.25.pom -c7c7f255b76ff208cac4febf58ddafadcd63bac970dbe0c26dd62c940e80f5b7 /com/mojang/patchy/1.1/patchy-1.1.jar -3dddf11f0085213c080ee6d2bfe387424339c6ec01d22796d3e26e6e813881ab /com/mojang/patchy/1.1/patchy-1.1.pom -e3ab95d053a4e180693422bf56592f3c62ff273b0deb1d4a3cb5f76d8fb6994a /com/mojang/realms/1.10.17/realms-1.10.17.jar -152235c4a886c6c9a9af7c76092a8161c5e505199b728c1a965f069a7519290f /com/mojang/realms/1.10.17/realms-1.10.17.pom -841d2f407824a4a9c3dd872c51ecd76d50381c569b79c3ea7b06b69eec2bba53 /com/mojang/text2speech/1.10.3/text2speech-1.10.3.jar -4465dc903f2bb36f18474de86edd8db46c2538705f675f32cbcdbf8b01ecfc09 /com/mojang/text2speech/1.10.3/text2speech-1.10.3.pom +ce7a9c86ebebf30b89929026f4a0a3c58ce0f4d47937d6dc086ae4fd0c77544a /com/mojang/authlib/1.5.21/authlib-1.5.21.jar +d59283c7303b42e416518d8f5c265895295c11690fd8d36079f1a04c6a56b17c /com/mojang/authlib/1.5.21/authlib-1.5.21.pom +3120fd24c09ab9bc088cb9c1eb2065be86718608450fdbc27b5d371729a619cb /com/mojang/netty/1.6/netty-1.6.jar +568cc3fad81e5e389bad0012a07eca5db073e287200c6c9cb02caf3dc489e9f6 /com/mojang/netty/1.6/netty-1.6.pom +0ad91190cd480af14954d361d7b9ffc53ab3c5344797e3c9fd90c29bf5d28499 /com/mojang/realms/1.6.1/realms-1.6.1.jar +6c724ad415af96416e035a5ae96b113b1df9247d5833fbf73135c66b23263904 /com/mojang/realms/1.6.1/realms-1.6.1.pom e7cd8951956d349b568b7ccfd4f5b2529a8c113e67c32b028f52ffda371259d9 /commons-cli/commons-cli/1.2/commons-cli-1.2.jar 18f3e92076e08c2fde48317025098e9f6baaa85f6912eb43f2d7e68d570e4561 /commons-cli/commons-cli/1.2/commons-cli-1.2.pom -4241dfa94e711d435f29a4604a3e2de5c4aa3c165e23bd066be6fc1fc4309569 /commons-codec/commons-codec/1.10/commons-codec-1.10.jar -bdb8db7012d112a6e3ea8fdb7c510b300d99eff0819d27dddba9c43397ea4cfb /commons-codec/commons-codec/1.10/commons-codec-1.10.pom 1bafd2ece2e88db4cdf835a7f8f0de65fab5b1147977a5dcc59b7c1b8c6f5080 /commons-codec/commons-codec/1.3/commons-codec-1.3.jar d157e34244e884dd91fa01921ca84372e11f7bb08fedb5d456c0670c28054636 /commons-codec/commons-codec/1.3/commons-codec-1.3.pom 54b34e941b8e1414bd3e40d736efd3481772dc26db3296f6aa45cec9f6203d86 /commons-codec/commons-codec/1.6/commons-codec-1.6.jar @@ -100,12 +96,17 @@ a7f713593007813bf07d19bd1df9f81c86c0719e9a0bb2ef1b98b78313fc940d /commons-io/com 2dae496a19c82b8e9985a1246aa80cf98082b1ae2217cf4b2d4d5ff13a365af2 /commons-io/commons-io/1.4/commons-io-1.4.pom cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581 /commons-io/commons-io/2.4/commons-io-2.4.jar b2b5dd46cf998fa626eb6f8a1c114f6167c8d392694164e62533e5898e9b31f2 /commons-io/commons-io/2.4/commons-io-2.4.pom -a10418348d234968600ccb1d988efcbbd08716e1d96936ccc1880e7d22513474 /commons-io/commons-io/2.5/commons-io-2.5.jar -28ebb2998bc7d7acb25078526971640892000f3413586ff42d611f1043bfec30 /commons-io/commons-io/2.5/commons-io-2.5.pom ce6f913cad1f0db3aad70186d65c5bc7ffcc9a99e3fe8e0b137312819f7c362f /commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar d0f2e16d054e8bb97add9ca26525eb2346f692809fcd2a28787da8ceb3c35ee8 /commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom 70903f6fc82e9908c8da9f20443f61d90f0870a312642991fe8462a0b9391784 /commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar 3250ac3ac6bd60ed0631f5cd0335032b2993d63e405a6ae0555d27a7e4865849 /commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.pom +33a4dd47bb4764e4eb3692d86386d17a0d9827f4f4bb0f70121efab6bc03ba35 /commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar +69b8be61aa746c7d02acb1b11eb3b57cb22b246780ed71d79764195cbbe3d99d /commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom +f868fc9e23d7203834abb5e0d11782e1e8920d4e95a06735a13dd51ab8049de8 /com/mycila/maven-license-plugin/maven-license-plugin/1.10.b1/maven-license-plugin-1.10.b1.jar +9576f1134ebf1f0dae51d1e5cce46a6a6e5b5c5998cc12318ebfd16162702d8b /com/mycila/maven-license-plugin/maven-license-plugin/1.10.b1/maven-license-plugin-1.10.b1.pom +d190c18ef3caf788c84a49d6bc200be29a76c00d3ad6030bf11f7afaa4b24f88 /com/mycila/parent-pom/5/parent-pom-5.pom +870f9396789e2f48a7b8fb28dfc070c2f8e74b2007274ce23e69b658110fd294 /com/mycila/xmltool/xmltool/3.3/xmltool-3.3.jar +eb83f616945c8c7dfb4d80e6f909e7286f523bb11077802bcd216bd70e9c717a /com/mycila/xmltool/xmltool/3.3/xmltool-3.3.pom a661dfcb749053fc26eada2a0a8e619a8ead1ca9eda29e1698687aa2cdd80152 /com/nothome/javaxdelta/2.0.1/javaxdelta-2.0.1.jar 93bbe8babc70e175d406ac689b90e689f4915c6e39e738eb6406fa5b529ce36c /com/nothome/javaxdelta/2.0.1/javaxdelta-2.0.1.pom 6c4b4e50e608763564afa1bde2d25ece9dd715e7c9129540faa1faded4896506 /com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar @@ -122,34 +123,25 @@ c1a2438a4d35f8586c71d96c44a7e2f133ec924597147a246f8c501acca6acb5 /com/paulscode/ 9f9920b48ae5f1045fe966f08164d6b4e0a727cf17f8e4813ae5c0f2daecffbc /com/typesafe/akka/akka-actor_2.11/2.3.3/akka-actor_2.11-2.3.3.pom c160fbd78f51a0c2375a794e435ce2112524a6871f64d0331895e9e26ee8b9ee /com/typesafe/config/1.2.1/config-1.2.1.jar 62361ef10448869fff8c05150bd0449b423e3ff4498f2a4bab825b3c7685aa3c /com/typesafe/config/1.2.1/config-1.2.1.pom -a95c958f0c052e0a94d20de1d30a9151f68e66b19bdbea60a58cd41539558874 /de/oceanlabs/mcp/mcp/1.12.1/mcp-1.12.1-srg.zip -5bbf57acadec0f5ea930b793772bbbf2885098aed8d2ecf6290c170a7cd9f33e /de/oceanlabs/mcp/mcp_snapshot/20170615-1.12/mcp_snapshot-20170615-1.12.zip +68f43fed6611873d19f6dcf2d6739e1f2ddbed3cdd39e6a9f72ec1caee459f59 /de/oceanlabs/mcp/mcp/1.8/mcp-1.8-srg.zip +cf2630841a5ef712b4be22a814f1b83964850b0de4dc78f6131b66280beb3249 /de/oceanlabs/mcp/mcp_snapshot_nodoc/20141130-1.8/mcp_snapshot_nodoc-20141130-1.8.zip 22c45060f350fcaa94e503f4a420cf8237c26c0fcdb4ada4aa98389b75c7b231 /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.jar d6f165bb39aaa20ee14fdcbbdb0b8fffae38067087f333ec6e0acd3f6666b2ad /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.pom -* /de/oceanlabs/mcp/versions.json -fd5ad66cdd0a496d281b26c699f4511da7c3f95083659ebb7bae22dab876581a /io/netty/netty-all/4.1.9.Final/netty-all-4.1.9.Final.jar -8ec38a54fc6ed53201d507c6690805878158bcab25c2f476a74c0ccb1d78870b /io/netty/netty-all/4.1.9.Final/netty-all-4.1.9.Final.pom -117ff8d9069d0278585c284ab0817f826f018d9cf4e30f7e1b11f4fbc73013d1 /io/netty/netty-parent/4.1.9.Final/netty-parent-4.1.9.Final.pom -c266701bd7a4a2c36285862c1e682ccb7b5cb5b380d0de9bb1b34becf9e1c065 /it/unimi/dsi/fastutil/7.1.0/fastutil-7.1.0.jar -2846073506b6ff0361f08d0deafb2f3921797974e9685cae6c103f4a7f29100b /it/unimi/dsi/fastutil/7.1.0/fastutil-7.1.0.pom +8bc2b71a17ed1b5c6329bcc61fa9a2f7fe071074548fa137ebafec2a23d49d89 /io/netty/netty-all/4.0.15.Final/netty-all-4.0.15.Final.jar +9dfcfbce5531faa07e6afb1a2fc9579f096ffe88707bf95869d83ad81228a157 /io/netty/netty-all/4.0.15.Final/netty-all-4.0.15.Final.pom +8064a2f9d222704882928e6ff104decc071ab6b7b07dce8efb90100d1e624e30 /io/netty/netty-parent/4.0.15.Final/netty-parent-4.0.15.Final.pom 09adf7955baa6bddf57a4bdbf9a91cf690261314969b59a18085ece1e05eccf9 /java3d/vecmath/1.5.2/vecmath-1.5.2.jar a4aee4668f1b127c95c9afe1b922f4c5a0b1ad879ba811077cb7d0e048dce231 /java3d/vecmath/1.5.2/vecmath-1.5.2.pom -a6d2c9c0ddff7702662073b69c6dc4ec83011d22e4eb2dada28aa2d66ee47f97 /jline/jline/2.13/jline-2.13.jar -ba62d78eb858e241a604cdf739594cd312f0572756ea7aba4544c746d7152c43 /jline/jline/2.13/jline-2.13.pom 90a8e1603eeca48e7e879f3afbc9560715322985f39a274f6f6070b43f9d06fe /junit/junit/4.11/junit-4.11.jar 18ad8b0ae9e65a9195d04e25427dfe8b58175abcdae875a5a406aee38bddfb26 /junit/junit/4.11/junit-4.11.pom +dc67378cf428c06408e7959e83bdc1518dd22ccd313e7c28a986612d65c276c7 /log4j/log4j/1.2.12/log4j-1.2.12.jar +cb54dedc5d8c4510148dfa792701cbac1a84c383a84f48f5a32e6d7e460bbb72 /log4j/log4j/1.2.12/log4j-1.2.12.pom 0c3085cb93c3ef95d731c274b6f2dd195aa0405fe9328d69cab7f5e899d5e124 /lzma/lzma/0.0.1/lzma-0.0.1.jar a096bc9f7579cec07483874151578720eeb3189c546c19cff56a6203df17b50e /lzma/lzma/0.0.1/lzma-0.0.1.pom -142667dfce3afeb5cc6e18e893d895604060ecef9dfc0d261f0eb9b9e8c81cb0 /m2/gradle/plugin/net/minecrell/gitpatcher/0.9.0/gitpatcher-0.9.0.jar -37a6757b16b927873baefe8498fa92c5385eba0ded3852982965491da2dd8e3a /m2/gradle/plugin/net/minecrell/gitpatcher/0.9.0/gitpatcher-0.9.0.pom -19331fb29bf8b8d5ed764677c94cca9d66481e10104f660eb555894a4300cf22 /mc/game/1.12.1/client/83385d346cf7f97d1e447b888750fb88e9928b93/client.jar -848912640bccfa7ea34a2cc1c76cb2b35f8467c4216d9603917c991660f91a8b /mc/game/1.12.1/server/561c7b2d54bae80cc06b05d950633a9ac95da816/server.jar -5dcff0a65ed3b43d82328340505118e53dab5273c352e2d56733a0e498ed5655 /mc/game/2ce9731e5bafdf69014e4e6db1cc56149958c5a8/1.12.1.json -362a4831ab2e429160b91cfb373c5b282ca0a704a4e9f8f58360180c1c7c91d9 /mc/game/version_manifest.json -c4dadeeecaa90c8847902082aee5eb107fcf59c5d0e63a17fcaf273c0e2d2bd1 /net/java/dev/jna/jna/4.4.0/jna-4.4.0.jar -800bb2831dda341336ea69b7beb675f159973f64dad6aaa1ad8c4fa78e5cb19b /net/java/dev/jna/jna/4.4.0/jna-4.4.0.pom -ea89d5090c8303ba4e9a0056e6d8a20429f3e021411e950bfd9eba3b6e6cf15c /net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar -8f0c14f62912c089d81386015e78cf212f9e96f675b3bc0e519c1e2d92aa8950 /net/java/dev/jna/platform/3.4.0/platform-3.4.0.pom +ccccd0a92f76fbb24279691daad9b67f85d80471a37e59e0da76d7754982dfe8 /mc/game/1.8/client/d722504db9de2b47f46cc592b8528446272ae648/client.jar +40e23f3823d6f0e3cbadc491cedb55b8ba53f8ab516b68182ddd1536babeb291 /mc/game/1.8/server/a028f00e678ee5c6aef0e29656dca091b5df11c7/server.jar +745fdfbba409679b8347f3172109ff186ff743edfed1a9c5bf37443c05fdd480 /mc/game/d74a4b45e8877084e1bcc8121012845f28def238/1.8.json +* /mc/game/version_manifest.json 79b5a4f5829e1a49a415711f7fb8eb5b9ad22defa72929fda2da96ec30d3f018 /net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar 3199d547c1275e806e0c7be19e90dcb00d9561ec3b31fb2e780e12d7d8785810 /net/java/jinput/jinput/2.0.5/jinput-2.0.5.pom 1ab4d194277816b6105253d224c8c69f1b6d720690efe7c85f3ce884f0ea273d /net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar @@ -160,8 +152,8 @@ c3334ff39cf0ab3b54925619101054c90098b7c733b1e7834c7b75e4c41e84a5 /net/java/jutil af09ead4eb241473e7ec4d152a91a722ea09a717a202e20e4b385eac3217b7d6 /net/java/jutils/jutils/1.0.0/jutils-1.0.0.pom b47c5d5810643426a3147ddb2195ef2ab67c80b167e7c2ac64a5d0dee8c030dd /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.jar 5f374f8ae7afff8dbc23aff14e59c5bd585c230afe9a8dcaa7b928e8cb16a27e /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.pom -606b825e3920a1b7e8e2652a37e432f2b3066539e803a46212c5505a709cbff2 /net/minecraftforge/forge/1.12.1-14.22.0.2444/forge-1.12.1-14.22.0.2444.pom -c8396b067c800425d4f4e97ec6879262f2133b5c53575c6b82c4eb6feb22f2a1 /net/minecraftforge/forge/1.12.1-14.22.0.2444/forge-1.12.1-14.22.0.2444-userdev.jar +5d166a260388526b502b07c167beb8ae5cd18d46f60a10a029c1d6e1206e093a /net/minecraftforge/forge/1.8-11.14.4.1563/forge-1.8-11.14.4.1563.pom +3e33989b813090abe749334b5a9a663bd37cb20e987b91f78fc616cc7fb91ee1 /net/minecraftforge/forge/1.8-11.14.4.1563/forge-1.8-11.14.4.1563-userdev.jar * /net/minecraftforge/forge/json e74b65b8948446982a506a96176dd8baf4688237ba4903f56ca6f667b6c7ee42 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.jar 616c4971035d1e6ab4809e16daabb02aa308c1dc001c06dd547c7d3b2e916999 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.pom @@ -173,23 +165,27 @@ e74b65b8948446982a506a96176dd8baf4688237ba4903f56ca6f667b6c7ee42 /net/minecraft/ 692744a19473011539ebc1370a264b8af1c056e0ae21f5372aa9dd7d4b4e5a2b /net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.pom 9f0c8d50fa4b79b6ff1502dbec8502179d6b9497cacbe17a13074001aed537ec /net/sf/jopt-simple/jopt-simple/5.0.1/jopt-simple-5.0.1.jar 606e9b1d8e448a8f454b7eb585320b392e80f68880e92bef98cdf9dab8714340 /net/sf/jopt-simple/jopt-simple/5.0.1/jopt-simple-5.0.1.pom -6f45c00908265947c39221035250024f2caec9a15c1c8cf553ebeecee289f342 /net/sf/jopt-simple/jopt-simple/5.0.3/jopt-simple-5.0.3.jar -df75c23d079c8f1a4f5b2fda4ba271ef535993d53d5664213aa2325784e50fd3 /net/sf/jopt-simple/jopt-simple/5.0.3/jopt-simple-5.0.3.pom dc0ba5bff6140dc92339973026a0ecbddc2a3b01bdd46ed9d16becc2f6d78de6 /net/sf/opencsv/opencsv/2.3/opencsv-2.3.jar 57f5607565d6a90dee6722801d4524813d9d2785046f2954a18861dfbf4a2149 /net/sf/opencsv/opencsv/2.3/opencsv-2.3.pom 294fb88c272598b9a5dcae15f13d228e64134256de941fbc28917a994beeb075 /net/sf/trove4j/trove4j/2.1.0/trove4j-2.1.0.jar 6d486c048a84c90ad9239b7b06a7d686d43eda28f827fac08d4f4ea942d21d0a /net/sf/trove4j/trove4j/2.1.0/trove4j-2.1.0.pom 3c8616203d61a12a7e3487e8b34f3c198c2b5ba9e90da0c7ea32d99cd4958012 /net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.jar 11327b94615d0bf16d4e17334902de783c2022f5e909d51fbce993a7a9d7e1d8 /net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.pom +3b93b62c0ea3ab9b5c1c1cdb1a3f25a7eb758f9974e8998f4e1815ba33cb7a1e /nl/javadude/gradle/plugins/license-gradle-plugin/0.11.0/license-gradle-plugin-0.11.0.jar +afded103d53d00171f486ab23c35151d8b82b32e51390c30ae734e83de863c52 /nl/javadude/gradle/plugins/license-gradle-plugin/0.11.0/license-gradle-plugin-0.11.0.pom +4ead9d3e3f305a4ed26fd732e6f0df0be2524e2daf2681df1b001fbb8efc9735 /oauth/signpost/oauth-signpost/1.2.1.2/oauth-signpost-1.2.1.2.pom +e26198c1bb8e3cde5f6e85305d0c4ef7730c53406c0d2a1f36ce30661df9fc22 /oauth/signpost/signpost-commonshttp4/1.2.1.2/signpost-commonshttp4-1.2.1.2.jar +5d3ef59d3820f64a6dd09b9ad7a083bbe24a9f97ce01ad412238877594e34e56 /oauth/signpost/signpost-commonshttp4/1.2.1.2/signpost-commonshttp4-1.2.1.2.pom +a1d69c5346ebf086b0f63c382b4500ceb29304d8fe95157b060aa4cd3861f230 /oauth/signpost/signpost-core/1.2.1.2/signpost-core-1.2.1.2.jar +f3c6788ccec4e1818b3f02d32fe8b5ab9caac52b0962e98466d980710c47298c /oauth/signpost/signpost-core/1.2.1.2/signpost-core-1.2.1.2.pom 649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8 /org/apache/ant/ant/1.9.4/ant-1.9.4.jar 5ce23a18f28d04be351f863020da0136214218aface05560516b97555a5077fd /org/apache/ant/ant/1.9.4/ant-1.9.4.pom 7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d /org/apache/ant/ant-launcher/1.9.4/ant-launcher-1.9.4.jar c9193ed600adc6c7943a6c6dc6bd952edcb5f10fb2cda594b7199766fdeef698 /org/apache/ant/ant-launcher/1.9.4/ant-launcher-1.9.4.pom a93aa9c66665872b0e51360c15ae282971e36a8aa987b40ef4d82d9a5aa151c4 /org/apache/ant/ant-parent/1.9.4/ant-parent-1.9.4.pom +802feece72852dafcbd0a425a60367c72c5cb9b6ea5aae59481128569189daf9 /org/apache/apache/10/apache-10.pom ff513db0361fd41237bef4784968bc15aae478d4ec0a9496f811072ccaf3841d /org/apache/apache/13/apache-13.pom 36c2f2f979ac67b450c0cb480e4e9baf6b40f3a681f22ba9692287d1139ad494 /org/apache/apache/15/apache-15.pom -9f85ff2fd7d6cb3097aa47fb419ee7f0ebe869109f98aba9f4eca3f49e74a40e /org/apache/apache/16/apache-16.pom -7831307285fd475bbc36b20ae38e7882f11c3153b1d5930f852d44eda8f33c17 /org/apache/apache/18/apache-18.pom 9e9323a26ba8eb2394efef0c96d31b70df570808630dc147cab1e73541cc5194 /org/apache/apache/4/apache-4.pom 4946e60a547c8eda69f3bc23c5b6f0dadcf8469ea49b1d1da7de34aecfcf18dd /org/apache/apache/9/apache-9.pom 93f8dfcd20831a28d092427723f696bceb70b28e7fb89d7914f14d5ea492ce5a /org/apache/commons/commons-collections4/4.0/commons-collections4-4.0.jar @@ -200,8 +196,6 @@ cb49812dc1bfb0ea4f20f398bcae1a88c6406e213e67f7524fb10d4f8ad9347b /org/apache/com 82827f6019c0f71bd74fba886ab337ff6da291f63df9723379a209d6ad3b44f8 /org/apache/commons/commons-exec/1.3/commons-exec-1.3.pom 6b81d10754dadf184d386011486e6509c2cc0c3d33565ced4fb4402b9413d47d /org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar e1875bf575999ebc62dec34304a0d108c30a4ff8101e8ea5c9a9332715277940 /org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.pom -8ac96fc686512d777fca85e144f196cd7cfe0c0aec23127229497d1a38ff651c /org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar -45e7fbb2c231db903a5d5aadafc636a173a4d54560f78a11ff498028ef9e345e /org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.pom b9e0306f393460105b8a3fa5105250c5291b1efaa99954ace0ec1c783109a02a /org/apache/commons/commons-parent/11/commons-parent-11.pom fb8c5e55e30a7addb4ff210858a0e8d2494ed6757bbe19012da99d51586c3cbb /org/apache/commons/commons-parent/22/commons-parent-22.pom 467ae650442e876867379094e7518dfdd67d22c5352ebd39808c84259e9790ba /org/apache/commons/commons-parent/25/commons-parent-25.pom @@ -209,44 +203,94 @@ fb8c5e55e30a7addb4ff210858a0e8d2494ed6757bbe19012da99d51586c3cbb /org/apache/com e4d258af8b2ff4032148d415379def7870789a6003e80576f1504b10f26b4be8 /org/apache/commons/commons-parent/32/commons-parent-32.pom 53d0011352e2e5106f379dafccdac7754ec6f0f78243c0305e4969f5acddf8fb /org/apache/commons/commons-parent/33/commons-parent-33.pom 7098a1ab8336ecd4c9dc21cbbcac869f82c66f64b8ac4f7988d41b4fcb44e49a /org/apache/commons/commons-parent/35/commons-parent-35.pom -87cd27e1a02a5c3eb6d85059ce98696bb1b44c2b8b650f0567c86df60fa61da7 /org/apache/commons/commons-parent/39/commons-parent-39.pom -b2877c8016f8b28924c8e90dd5ae40cd11f328d02a1de98d80de22574ab36ec7 /org/apache/commons/commons-parent/41/commons-parent-41.pom 8bd632c00bdf80a7de36c22b60f12452c147d8eca2f00d79d66699ebe7daa02a /org/apache/commons/commons-parent/5/commons-parent-5.pom 01e97067a1f9bd0e0a34f2f32bbf43fe6e9b11910f3b0dfe77fd7fb418619105 /org/apache/commons/commons-parent/7/commons-parent-7.pom 752596ebdc7c9ae5d9a655de3bb06d078734679a9de23321dbf284ee44563c03 /org/apache/httpcomponents/httpclient/4.0.1/httpclient-4.0.1.jar 51b8c025a4a1700d861d17bc2332f2b5045a81bad5d55291d9b652bb782151b2 /org/apache/httpcomponents/httpclient/4.0.1/httpclient-4.0.1.pom +9d0e815461efc8fc9aa5de4dda9ae29d076430b2e93e268a31d7a47cc00a31cf /org/apache/httpcomponents/httpclient/4.2.2/httpclient-4.2.2.jar +2ee7f81822a156a897b10a934b2158fa44d574dc20488f2fb9eb4d058673cbe7 /org/apache/httpcomponents/httpclient/4.2.2/httpclient-4.2.2.pom 9844cc9b5440d65a88d28bcba9d771374d2dfdab898848cda164611091633013 /org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar 03f7d67d6547083a38413c0da921d194a6010236f8980c7585c0c8f3019c0aa8 /org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.pom 1a5cfc674477ce7fd1150e8ea841f18301da1a4bfc729a029e072e81f3f36515 /org/apache/httpcomponents/httpcomponents-client/4.0.1/httpcomponents-client-4.0.1.pom +aecd5527c274ea6ed63da7f71b69c6a61a64784ff6c7266e0d94fcbf391027e2 /org/apache/httpcomponents/httpcomponents-client/4.2.2/httpcomponents-client-4.2.2.pom 15c27734dbcedc6af2cf18fa72a8c6e248477144a3d936a0fc228aaa74a02b00 /org/apache/httpcomponents/httpcomponents-client/4.3.3/httpcomponents-client-4.3.3.pom 70d3b2bb5d199da825681559ff68aa5bdee201206c50af177bf7ca4d94226752 /org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom +ad4346d6375faa11a4d8cb45130acc86fb7ede86451194066da0559e41d5789e /org/apache/httpcomponents/httpcomponents-core/4.2.2/httpcomponents-core-4.2.2.pom aa3ec31c7dd2161cfe3a3975645ea8703db0a6d6adb7d5b1766b32764c5c1806 /org/apache/httpcomponents/httpcomponents-core/4.3.2/httpcomponents-core-4.3.2.pom 3b6bf92affa85d4169a91547ce3c7093ed993b41ad2df80469fc768ad01e6b6b /org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar d1f666e38907c9471c64a3cdf87e0b1b0469d503e51cc14661860f7f6bd70c6e /org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom +c32bbf016f1eec0581febb177c761c2f657d9635d110affdd8c63382425e50f0 /org/apache/httpcomponents/httpcore/4.2.2/httpcore-4.2.2.jar +c1695c0b0c3d7be7f02f558b56763b0024ecaae6b9f981e2e145c05e9fea0972 /org/apache/httpcomponents/httpcore/4.2.2/httpcore-4.2.2.pom abd02320e2356f89d054dae4cf02306bef20a9cf7865b3ac94ec7552b4f1528b /org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar dfe5335f45b9466af820368b95c543d7542fcfcbe5f5d379e91cf0432e2df489 /org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.pom 61434dbb2314cbb8d28025feb6ae53bbc45d1042daa34371d8911e1e7f570b36 /org/apache/httpcomponents/httpmime/4.3.3/httpmime-4.3.3.jar 30e52abf8461a7ab254f20ec2c28e01865721ad9fbdb3baf14f32251623a1f87 /org/apache/httpcomponents/httpmime/4.3.3/httpmime-4.3.3.pom a35e70c72865add3f9416194e02d6f9967dbf0c77d253933f80fbf46ad4d2169 /org/apache/httpcomponents/project/4.0/project-4.0.pom +b5d9225adb8683c1d7c5514544382add004547c93694abb5bd52b87346886f42 /org/apache/httpcomponents/project/6/project-6.pom 3d6eba428555a558de046b5d76eacc1f5a54b4f5f20b84d636ed7aff18aa48c3 /org/apache/httpcomponents/project/7/project-7.pom 9ab50a08565c7c01082266d2464b7656e2448e40788375ff5c034da17042cc24 /org/apache/logging/log4j/log4j/2.0-beta9/log4j-2.0-beta9.pom -78d4abedfb7fdd01f3276a0d17a5eaedce9e99b9d2ee83bb9fc8a609e177729a /org/apache/logging/log4j/log4j/2.8.1/log4j-2.8.1.pom eb0ca9bdd938f80711152a758d6bc331a8b0d769199d457294dc67ed03f73498 /org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar 4e10aac66cfabc8a16f0045bca650e082a190caca85d1c28376a71b9b918b40d /org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.pom -1205ab764b1326f7d96d99baa4a4e12614599bf3d735790947748ee116511fa2 /org/apache/logging/log4j/log4j-api/2.8.1/log4j-api-2.8.1.jar -af8959c619bd2c620723b83e511dea7b5018378295449bccaa21f6f72f1d2d94 /org/apache/logging/log4j/log4j-api/2.8.1/log4j-api-2.8.1.pom dcde6033b205433d6e9855c93740f798951fa3a3f252035a768d9f356fde806d /org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar f360def8ad0c62f5420a9b2ef8d6a51f87703e05c1df08494578a1d4024b05ad /org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.pom -815a73e20e90a413662eefe8594414684df3d5723edcd76070e1a5aee864616e /org/apache/logging/log4j/log4j-core/2.8.1/log4j-core-2.8.1.jar -6efbf3a19b80fb812392ac99a113138f1e909d85dfa44c0813c1c69737b82c52 /org/apache/logging/log4j/log4j-core/2.8.1/log4j-core-2.8.1.pom -34b2bf4f531a809168961672ff419d1abf96725b8dfe52980f00c8c4eb134bd6 /org/apache/logging/logging-parent/1/logging-parent-1.pom +4d223e01a6569d6655c1f4fce84969d45142cdbabdb118ea08c5c8c33ec632f6 /org/apache/maven/maven/3.0.4/maven-3.0.4.pom +4c2f8341518aeb9d488844e334c02fa66dd4bb091bfdeb965c8a848ac6ea5aa2 /org/apache/maven/maven/3.0-alpha-2/maven-3.0-alpha-2.pom +33ff4aabbd0d02e4dd8279cda8f366c69915302bc4bb97bc01814a985f5c0643 /org/apache/maven/maven-aether-provider/3.0.4/maven-aether-provider-3.0.4.jar +a5082fe0a870bd361b3ecd6ab3e4641cfe775a8da19d80d8b2e277e7861f831b /org/apache/maven/maven-aether-provider/3.0.4/maven-aether-provider-3.0.4.pom +3c199a96af9550872724f41c053d7839dfcc6512e7704fa16c675363c4146796 /org/apache/maven/maven-artifact/3.0.4/maven-artifact-3.0.4.jar +e39722dcdf98a6a245db3e0f54d0d4a5555c8c9361e3efbfed3a7be1158b9c6c /org/apache/maven/maven-artifact/3.0.4/maven-artifact-3.0.4.pom +85500348730f338599e5f454be4a9909a6d01e86effc1ed0650a71e544bc67d5 /org/apache/maven/maven-compat/3.0-alpha-2/maven-compat-3.0-alpha-2.jar +4196effcccdbe4ef8dc625e5dd8e13284971dd884dc80109cb1f44d76dd0d7e7 /org/apache/maven/maven-compat/3.0-alpha-2/maven-compat-3.0-alpha-2.pom +3dd795c0ad9742a0be65a2a5ec22428d59dd2a891a7565ae94f64661e3740528 /org/apache/maven/maven-core/3.0.4/maven-core-3.0.4.jar +61d1fc83ce71c4af6a5061d0c4884b0cad5a9bd4ef12bce0a628ece6db13a9a7 /org/apache/maven/maven-core/3.0.4/maven-core-3.0.4.pom +26b6825ea73ac4d7b1a6f5e62ac1c11b0fc272504da6dde9ba8f894cd847e1c1 /org/apache/maven/maven-model/3.0.4/maven-model-3.0.4.jar +264be3f212d59f9103d3b997c9d0197ff89489d06b7d195d80ee56356b6c662e /org/apache/maven/maven-model/3.0.4/maven-model-3.0.4.pom +b4f1d3ae53c290e1ae45694c5ce2d17bf8d577ff5ece0f9aa0cffe151a6ef4e7 /org/apache/maven/maven-model-builder/3.0.4/maven-model-builder-3.0.4.jar +ac605e66a84dd9ee63610d650b007e3c8fbb7feef73e94bdd899e60dd475a20f /org/apache/maven/maven-model-builder/3.0.4/maven-model-builder-3.0.4.pom +81fe14cb9779d36e0c610e1049e5b32a6b9974957f257921acf628b31c5486c8 /org/apache/maven/maven-parent/10/maven-parent-10.pom +fc45af8911ea307d1b57564eef1f78b69801e9c11a5619e7eb58d5d00ae9db8e /org/apache/maven/maven-parent/21/maven-parent-21.pom +3cb6712f827c80dc6b0b0b967776dba451c023a92b7741bba45d23ab7a83281a /org/apache/maven/maven-parent/8/maven-parent-8.pom +4e5ee7f7ab7e43f691788489e59f2da4a322e3e35f2a2d8b714ad929f624eead /org/apache/maven/maven-plugin-api/3.0.4/maven-plugin-api-3.0.4.jar +bd928e987661ac90495ca7cdcd5d2fd20cbed97fb9565e30d8425aadae26ee90 /org/apache/maven/maven-plugin-api/3.0.4/maven-plugin-api-3.0.4.pom +0b76d82011452170dddd21fb33da6bfc414ff6629fce6219fbf1d78ce1518e90 /org/apache/maven/maven-project/3.0-alpha-2/maven-project-3.0-alpha-2.jar +24477230086e456dff22c24dec30aab0a8ae321a2ce5645a85a8516f7dd829e3 /org/apache/maven/maven-project/3.0-alpha-2/maven-project-3.0-alpha-2.pom +f3905cb8c223c33f6121bc937b66a2f58653be766042fb6e924b9882c555d891 /org/apache/maven/maven-project-builder/3.0-alpha-2/maven-project-builder-3.0-alpha-2.jar +392f9bcc7eb6d9ab85b693cda0c3ba698fc770d32843491c8815b87f40fe02a8 /org/apache/maven/maven-project-builder/3.0-alpha-2/maven-project-builder-3.0-alpha-2.pom +a25c4db27cffda9e9229db168b1190d6a3e5439f3f67d6afec3df9470e0752d5 /org/apache/maven/maven-repository-metadata/3.0.4/maven-repository-metadata-3.0.4.jar +5fe2b1d87fd326c1a22aac3869da7935ad31760d978fdff9a073c3fbfd54e18d /org/apache/maven/maven-repository-metadata/3.0.4/maven-repository-metadata-3.0.4.pom +3e3df17f5df5e4ce1e7b7f2011c57d61d328e65678542ade2048f0d0fa295f09 /org/apache/maven/maven-settings/3.0.4/maven-settings-3.0.4.jar +beedffd7c7e49ad35ef945c3413f1819f04e43ea294a31804714c8cbb0f372b3 /org/apache/maven/maven-settings/3.0.4/maven-settings-3.0.4.pom +a38a54ec1e69a30ddfc14434e0aec2764fc268668abcc0e132d86692a5dce3e4 /org/apache/maven/maven-settings-builder/3.0.4/maven-settings-builder-3.0.4.jar +3e0b3f60267b6070a741b15db5b40fbd824c61db12a1f4f166ed658b9f62ece0 /org/apache/maven/maven-settings-builder/3.0.4/maven-settings-builder-3.0.4.pom +6c35daab503ff462f4f63317ae723bd37cae37460ea3576374a347583e7c4327 /org/apache/maven/wagon/wagon/1.0-beta-4/wagon-1.0-beta-4.pom +6a82569576cda4cae793800ed2985202de8a59e414d2140e217cf077709e7bbb /org/apache/maven/wagon/wagon-provider-api/1.0-beta-4/wagon-provider-api-1.0-beta-4.jar +1739331652c6e93dd3305a9c5b33f493c85782171e9e8a3e0c750b030dabadd1 /org/apache/maven/wagon/wagon-provider-api/1.0-beta-4/wagon-provider-api-1.0-beta-4.pom +56ab9c6c2d022a9b7079006ba500a996cd2c21411d53cac524933af20c5a4b99 /org/apache/xbean/xbean/3.4/xbean-3.4.pom +17e0efa187127034623197fb88c50c30d3baa62baa0f07d6ec693047ac92ec3b /org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.jar +01c97d4286dd3b5e5441faac3abb589f1fe123cea138bb4ae0995ffae14938df /org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom c7964f00c3d3889c5223e8fcb7476610c59453c86bccc68ef493a56d171bf655 /org/aspectj/aspectjrt/1.8.2/aspectjrt-1.8.2.jar ba5261a1f07260c3d8016623fdd27d662b9934266a75d4f57f165bfbaf9af1a8 /org/aspectj/aspectjrt/1.8.2/aspectjrt-1.8.2.pom f07694998acb204782c72cc8067b237a04097a2170f07d440614883f14a67630 /org/codehaus/groovy/groovy-backports-compat23/2.4.4/groovy-backports-compat23-2.4.4.jar 2f93f476d35dd52828e13f32a4be68ab80a3b999713079feb98c67ae9e8d858f /org/codehaus/groovy/groovy-backports-compat23/2.4.4/groovy-backports-compat23-2.4.4.pom +e246e2a062b5d989fdefc521c9c56431ba5554ff8d2344edee9218a34a546a33 /org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom 2b59062030ab0a15c5d0977ba22421706368926488739a65f25793e715cc8a74 /org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom +259d528a29722cab6349d7e7d432e3fd4877c087ffcb04985a6612e97023bba8 /org/codehaus/plexus/plexus-classworlds/2.4/plexus-classworlds-2.4.jar +c0439c2b2d850488686143e2529f521b38f2abded6ac212add8f0c637eb912e9 /org/codehaus/plexus/plexus-classworlds/2.4/plexus-classworlds-2.4.pom +4df7a6a7be64b35bbccf60b5c115697f9ea3421d22674ae67135dde375fcca1f /org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar +815f3ec316b8c5fa701385fdf4009bfb51e07d780e8f6a6e2afe720c52d7e292 /org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom +ef5dbc7fa918b6dbba71d27e5b3d7a00df624bcfa2549a7297f36fe275f634d7 /org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom +00aa0be06a029e4b45032f682089d5052b014c028f9187f83c70adc073672c46 /org/codehaus/plexus/plexus-container-default/1.0-beta-3.0.5/plexus-container-default-1.0-beta-3.0.5.jar +3d90bbd9f534020621c77453dcffdad4e761e42911c2be9adaeec724f9972a9c /org/codehaus/plexus/plexus-container-default/1.0-beta-3.0.5/plexus-container-default-1.0-beta-3.0.5.pom +f53a82db260a2910a9823d6e72a927891daae33d8eb6884ab838a2a2768c6b86 /org/codehaus/plexus/plexus-containers/1.0-beta-3.0.5/plexus-containers-1.0-beta-3.0.5.pom +1bc264824ec876b0ca6f4f5838175c541c638cbc43326a268b9aee7d4778b5ef /org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom +7fc63378d3e84663619b9bedace9f9fe78b276c2be3c62ca2245449294c84176 /org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar +d08155c497df37b2c3d9b5b0dfdb02ec0525b2070b5be3739fffde942fcac9af /org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom 8b909f4ca9788647942f883d4e559bcc642123f7c6bcd3846983a2e465469c33 /org/codehaus/plexus/plexus-utils/2.0.6/plexus-utils-2.0.6.jar fddad4fa62c82310aec43525e519cd59f27d04c7569fe21b1b03ca210887810c /org/codehaus/plexus/plexus-utils/2.0.6/plexus-utils-2.0.6.pom +35608df55aa672a195d6b01573a5630a315998b3bbd06310b20eb169113923aa /org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.jar +9f4ac6987113d09099bf43b846d2ec1d5e7a8091a6185f1f16d68e845f681243 /org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom +03cbe8dcaa909a6f72219abec105675c6df08898971c326cf7e64373bff5e769 /org/codehaus/woodstox/wstx-asl/3.2.6/wstx-asl-3.2.6.jar +784db534cc3c5051f88198e8251da9c8b13625e0eb365a347e1085387d8203b1 /org/codehaus/woodstox/wstx-asl/3.2.6/wstx-asl-3.2.6.pom e4144cbc26da195c6b22a53691fd079f70b74aa5f55bd6089cd77ec99a0ee8fe /org/eclipse/core/contenttype/3.4.200-v20130326-1255/contenttype-3.4.200-v20130326-1255.pom 4dd6ec1376693bd8ac4e2ceacc7be70880920978f3fef31db4968e6ade001c87 /org/eclipse/core/contenttype/3.4.200-v20140207-1251/contenttype-3.4.200-v20140207-1251.jar f82370a400c38f78f479df4e79c6e1563e4ec050049279601ca01d85186456a7 /org/eclipse/core/contenttype/3.4.200-v20140207-1251/contenttype-3.4.200-v20140207-1251.pom @@ -287,9 +331,12 @@ d68a303f399eeef919b681c43885481c46bf3cfe39f4ede369f7433087bbe14c /org/eclipse/eq a6833a81795978d4ad8d2e54597171e2a3447fd6983b8e902710aa1dc946fa24 /org/eclipse/equinox/registry/3.5.400-v20140428-1507/registry-3.5.400-v20140428-1507.jar cb7c954965e6b2946c2f7be78c1e089b530e0444b1fefc2d8079a5681362bfa1 /org/eclipse/equinox/registry/3.5.400-v20140428-1507/registry-3.5.400-v20140428-1507.pom d7cd093fdad45c7cc979f44f7166f259607b41cf44a8afe77561594cef4c39d3 /org/eclipse/equinox/registry/maven-metadata.xml -2082ffb0bb8f276ca164a6363e394f902163a81b7df44ede13aed33d84fdf27e /org/eclipse/jdt/org.eclipse.jdt.core/3.12.0.v20160315-2126/org.eclipse.jdt.core-3.12.0.v20160315-2126.jar -ec467beffac7ffa86b5687a0935b8d3540e8795c9bc0c0d326a1c24cb9be7fe8 /org/eclipse/jdt/org.eclipse.jdt.core/3.12.0.v20160315-2126/org.eclipse.jdt.core-3.12.0.v20160315-2126.pom +5a91ef99dc827e77c8dae1481bd5a92a0ce877304f2b25151ba4e0834e8a917d /org/eclipse/jdt/org.eclipse.jdt.core/3.10.0.v20131029-1755/org.eclipse.jdt.core-3.10.0.v20131029-1755.jar +5591ec1f9826a0506b33cb2a7bceceaf4058f667c0d5e8fd1a348c36540d9dcb /org/eclipse/jdt/org.eclipse.jdt.core/3.10.0.v20131029-1755/org.eclipse.jdt.core-3.10.0.v20131029-1755.pom d6aba7a1569952e082630de6907f460f476c20d97032cb9f7e4f3e14ddb928e7 /org/eclipse/jetty/jetty-parent/14/jetty-parent-14.pom +cf65a484e0626d6b79cc40daa820459d893ba6945cbed119859be4db0a07c1fa /org/eclipse/jgit/org.eclipse.jgit/3.2.0.201312181205-r/org.eclipse.jgit-3.2.0.201312181205-r.jar +bfe5eb76e637e740e7769f6e081c1c2815f0272f76b93b9bad0b6e686f5a9030 /org/eclipse/jgit/org.eclipse.jgit/3.2.0.201312181205-r/org.eclipse.jgit-3.2.0.201312181205-r.pom +0a6f74d2b3a411b785e305ae9678cac377aa2352815a085e4b980d5ba4323f29 /org/eclipse/jgit/org.eclipse.jgit-parent/3.2.0.201312181205-r/org.eclipse.jgit-parent-3.2.0.201312181205-r.pom fa1d59411d4d2667d8f15638af7c0ac44539234c0982c27a2b65ba06c32a0b3e /org/eclipse/osgi/3.10.0-v20140606-1445/osgi-3.10.0-v20140606-1445.jar 1e10819cdb1fe55d44ac94d37f3b1030275199979a73d04b7b53e2d6000d5d2e /org/eclipse/osgi/3.10.0-v20140606-1445/osgi-3.10.0-v20140606-1445.pom bddf4d130cb65fdfc1df7df1febde313fc2ff1ac83c8574ff97befd6c515cc30 /org/eclipse/osgi/3.9.1-v20130814-1242/osgi-3.9.1-v20130814-1242.pom @@ -299,10 +346,6 @@ bddf4d130cb65fdfc1df7df1febde313fc2ff1ac83c8574ff97befd6c515cc30 /org/eclipse/os 88b506fa09a810b19517a2d45cb8f5eaa76c22b18abfbdcf36cd07aebfd56cb0 /org/eclipse/update/configurator/3.2.100-v20070615/configurator-3.2.100-v20070615.jar 4645380254baefd0056e15cc9af6a273fb7d014b8be4ff395a5a61bfe8f4a89c /org/eclipse/update/configurator/3.2.100-v20070615/configurator-3.2.100-v20070615.pom 3c731988480eae3024b27d648aa0408a1cdc065fc523cf41a049fb97148fd30a /org/eclipse/update/configurator/maven-metadata.xml -b1f003f28c3ce1753ea0da22a6f0289197a2c369e7056b32e170af7904eff2c1 /org/fusesource/fusesource-pom/1.8/fusesource-pom-1.8.pom -9e82163ed2fc6257fe627132ce554726e796edee4e5efe9d9e523aee217d60b8 /org/fusesource/jansi/jansi/1.11/jansi-1.11.jar -b0975adc7450698033f3de4792dd6eba72a980c2b56d8e8d36d381385b37a5c9 /org/fusesource/jansi/jansi/1.11/jansi-1.11.pom -8ba9c49b55f979cf4e04d4871092eb50e834b388fca03a2274ccadff12cc9ce8 /org/fusesource/jansi/jansi-project/1.11/jansi-project-1.11.pom 66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9 /org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar fde386a7905173a1b103de6ab820727584b50d0e32282e2797787c20a64ffa93 /org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom 6d535f94efb663bdb682c9f27a50335394688009642ba7a9677504bc1be4129b /org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom @@ -313,20 +356,13 @@ ebac276b5ad62e9d312fb6ce663d55fdebaba9badc918166e7d60b1ffd1bd475 /org/jdom/jdom2 e21488c2fe8db4b23a00c3cfdeab3b600e84c1647e08fb7bee442f5fc1f83990 /org/jvnet/localizer/localizer-parent/1.12/localizer-parent-1.12.pom c118f8d84313980f79e1e7f7ae4b14b10c2f20c77ea4a1c29f6f0b02bc139077 /org/lwjgl/lwjgl/lwjgl/2.9.1/lwjgl-2.9.1.jar 1adb09c3cf35e0f55d5ecd91e4364100364d8a8031cdfa64ae61eaa64f0d79d4 /org/lwjgl/lwjgl/lwjgl/2.9.1/lwjgl-2.9.1.pom -833e721817f70d1445eec13d8ce5a86e12af70efac5014356302e2bbc68b3fe2 /org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar -65fb24fa8ee4a7efc554b15cfb447753c39e414ff00e9944d347e6f1176f0438 /org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.pom a50aaa5a89304c23a9257295cbe803e6130526a4dfaea1784076adbacacfd68e /org/lwjgl/lwjgl/lwjgl-platform/2.9.1/lwjgl-platform-2.9.1-natives-linux.jar e14afffd87719ba12034dd989d40a75540902a6286629fab1330b51c255ab792 /org/lwjgl/lwjgl/lwjgl-platform/2.9.1/lwjgl-platform-2.9.1-natives-osx.jar ade8deedceb0b60c630f3e78a7b052b7f8f02ff53d91849d1985d3146bf95590 /org/lwjgl/lwjgl/lwjgl-platform/2.9.1/lwjgl-platform-2.9.1-natives-windows.jar 82eb11d59b06700b9ff3db4e0476de1cf86501ba7cd00bb279f40a7c23ad662b /org/lwjgl/lwjgl/lwjgl-platform/2.9.1/lwjgl-platform-2.9.1.pom -d312147c3999b868fd649887f45203a4195bc10fc563cee4c4f8d22761421f94 /org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar -8831b2bd5a53dc343fd6fbed3c18f28ab33d3f28dbe62ebd4a3af81f25c0a5ab /org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar -f2e1f2c6bd7511a7504f389b8b716f5d8dc2fdc71e29c89b52644314cf0a228e /org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar -11eeed66c2d56892f3e2046121438153e516dd95d368bcf93c0714f9f2bfdd6f /org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.pom -034456b132a336b72757325bb7aaf99e075681ee5650d2bea21717bd485de42f /org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar -cb7239de51893ee5abe90c2bc550422cb336140c0866e9d1c899399eeb8a3ba2 /org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.pom +32d7e73005a2dc0ccc3c62470c435b351f6501de8e8718e26960534754570a77 /org/lwjgl/lwjgl/lwjgl_util/2.9.1/lwjgl_util-2.9.1.jar +10eab9f1aa97eef450d6c8eca8f459dcdcb9b1d3efbf54eb3dcde33b7aaea1dc /org/lwjgl/lwjgl/lwjgl_util/2.9.1/lwjgl_util-2.9.1.pom 9cf1643b0d805db942498cebf941d1c43df0a1322137291c258aec6109200858 /org/lwjgl/lwjgl/parent/2.9.1/parent-2.9.1.pom -9b3282d2065e070f5966c8b324bc8ffaa4a3d53c7d39ef7e0a3458b525bc167e /org/lwjgl/lwjgl/parent/2.9.4-nightly-20150209/parent-2.9.4-nightly-20150209.pom 21091d3a9c1349f640fdc421504a604c040ed89087ecc12afbe32353326ed4e5 /org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.jar 8169c421acc4931f9eb80b818b13a4553a8582e02d08dfc12a51e4f23b2726c6 /org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.pom b24e31635c0e6c401ff84e28905b96d1a760144c15f1deae1a22d5b3356e1667 /org/mortbay/jetty/jetty-parent/10/jetty-parent-10.pom @@ -347,12 +383,9 @@ e87ea4823ecf2dd856901da359270be904236be59c27e2781eb8d78c97e45b2a /org/ow2/asm/as 62efbf37e5068a8708541ae0a4da3d1140f4d711d30e4366445cb96ce13cc79e /org/ow2/asm/asm-debug-all/5.0.4/asm-debug-all-5.0.4.pom f7ac3f642c36c406543bb56ae3db3a53f263f71bd857b04709986e2d5798c8c4 /org/ow2/asm/asm-debug-all/5.1/asm-debug-all-5.1.jar 0a46e33f6b80bd21ac41eec33fca2e43d79253fb46a32d64ba3867ee22451fff /org/ow2/asm/asm-debug-all/5.1/asm-debug-all-5.1.pom -254b82bec9da4f8efbc8b1f93ab2b87f7465227a82b36cf3d05d9e77a0e8dd2e /org/ow2/asm/asm-debug-all/5.2/asm-debug-all-5.2.jar -491f13bd60757a7cfe76e767766b061d557010394f52cec2fb067707de702caa /org/ow2/asm/asm-debug-all/5.2/asm-debug-all-5.2.pom c2edabf4128a534df4b8b4b0b9b562e94f242ba95ac24dc61485432b8a188e32 /org/ow2/asm/asm-parent/5.0.3/asm-parent-5.0.3.pom fdf05b9df226573b331a7e5df01135e527dcc07c71626445732bd04379aa4a72 /org/ow2/asm/asm-parent/5.0.4/asm-parent-5.0.4.pom 85ec8258fafc283f61647e6a11b404890821c11db6fcf550779ecf7a14151007 /org/ow2/asm/asm-parent/5.1/asm-parent-5.1.pom -cbfacd5dd812db16dc910994007fe58d9402a25507f81a1c2218e15c2c1bedfa /org/ow2/asm/asm-parent/5.2/asm-parent-5.2.pom 347a7a9400f9964e87c91d3980e48eebdc8d024bc3b36f7f22189c662853a51c /org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar 65819ca7c5a218ff49f8ebe72f3b39219c81f137d017acc1aec15b1054cf5236 /org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.pom 51215c67d2c068d8b7d2f6f80f51372a098075deccc448d4bdd7b987ba8328fb /org/ow2/ow2/1.3/ow2-1.3.pom @@ -379,10 +412,58 @@ abe89207b0bfcbcf164c820cbba2c962ab5e9f3a0d0f37d81bde4f6c293a874b /org/scala-lang 3268a48dc36c664e7f4bd5d88b366bf098a13f7b6e8b87611e3a4413b72860d4 /org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.pom 41938d1e89670979dd783102777a8b879999f4fb00a5b811b51c105b02a9d4f8 /org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.jar 8b58df7e9e5f2f4f7d2f0dc24353f356abe965337e48504cec36a344e6294757 /org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.pom +719fe091fd3fe4c6a7b8f69c8714935138b85a2b6145068a1ccfdb57d2e500d1 /org/sonatype/aether/aether/1.13.1/aether-1.13.1.pom +ae8dc80232771f8913febfa410c5719e9ba8ded81fb99788e214fd676dbbe13f /org/sonatype/aether/aether-api/1.13.1/aether-api-1.13.1.jar +9a58a1ddbbbe5b635674a958ac9d95d4ffaba7a40b9f800cde2cdf4986c3ef2a /org/sonatype/aether/aether-api/1.13.1/aether-api-1.13.1.pom +865511994805827e88f327944a089142bb7f3d88cde271ba3dceb732cb137a93 /org/sonatype/aether/aether-impl/1.13.1/aether-impl-1.13.1.jar +5d85a54716b6c6fc043895b129c3c76a2b9ca922c3bd79158ef08b7960aaf330 /org/sonatype/aether/aether-impl/1.13.1/aether-impl-1.13.1.pom +d5de4e299be5a79feb1dbe8ff3814034c6e44314b4c00b92ffa8d97576ded5b3 /org/sonatype/aether/aether-spi/1.13.1/aether-spi-1.13.1.jar +3d0c466fe8af3983356991ca7ff01a802920e04f946675d920420e154c5edec2 /org/sonatype/aether/aether-spi/1.13.1/aether-spi-1.13.1.pom +687799a0ce988bee9e8eb9ae0ba870300adc0114248ad4a4327bdb625d27e010 /org/sonatype/aether/aether-util/1.13.1/aether-util-1.13.1.jar +abd5e7869aa58f720d8c7301004334449351ad297aeb6ba2ebabf9b38503267b /org/sonatype/aether/aether-util/1.13.1/aether-util-1.13.1.pom +c14fb9c32b59cc03251f609416db7c0cff01f811edcccb4f6a865d6e7046bd0b /org/sonatype/forge/forge-parent/10/forge-parent-10.pom +03263b68791fb11e7464ffcc2c3de7eaeae235de8c94827ce6407e0454d2aae9 /org/sonatype/forge/forge-parent/3/forge-parent-3.pom +1838d132479005b4b7459b798e9d9915515090c288082fdcd86db0b10983a24c /org/sonatype/forge/forge-parent/4/forge-parent-4.pom +e56188aa8ce51278006aa90bc7e0f304a81e2f1219f462e7d21f262535cd2795 /org/sonatype/forge/forge-parent/5/forge-parent-5.pom 1678d4120a585d8a630131aeec4c524d928398583b7eab616ee7d5a87f520d3d /org/sonatype/oss/oss-parent/5/oss-parent-5.pom +b4306d13e8f5392458a1b30866f1cff161b3d2e6999a88d059eea3932c8a8499 /org/sonatype/oss/oss-parent/6/oss-parent-6.pom b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454 /org/sonatype/oss/oss-parent/7/oss-parent-7.pom fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a /org/sonatype/oss/oss-parent/9/oss-parent-9.pom -27901e5d4d60d3502571d5e6358fc89e3fcf874138b69d495d139bcc3e169404 /oshi-project/oshi-core/1.1/oshi-core-1.1.jar -e7e154dd64e5bd87e6ae2652ab52ab88eb53d05606466faee382d11f59d0ab71 /oshi-project/oshi-core/1.1/oshi-core-1.1.pom +5a15fdba22669e0fdd06e10dcce6320879e1f7398fbc910cd0677b50672a78c4 /org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar +a63a2e23988cca7fac6c93886d6f0506fd26d88d7e8cc0cb89b9c6e0d6c994ad /org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom +3b0559bb8432f28937efe6ca193ef54a8506d0075d73fd7406b9b116c6a11063 /org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar +d5e650c50ef6958c028ed024b59af04cf3d38e1453a77d542b6b484bc0f4ca0b /org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom +a966df5e36d54a9d9690db81c459806252b924da949a42b538eba5683d6267db /org/sonatype/sisu/inject/containers/2.3.0/containers-2.3.0.pom +cfc3507491767609fb2da36dcf32ebb0055b8bd32a2af182c021df9ecce26a76 /org/sonatype/sisu/inject/guava-parent/0.9.9/guava-parent-0.9.9.pom +852f10c4ba2210c29f75d330dc81f406ab8db5cb46430c5ba4082f9c13df180d /org/sonatype/sisu/inject/guice-bean/2.3.0/guice-bean-2.3.0.pom +6c1be769d69337f1a8cc2d7e756f94b8bdc02a76c3087545aad1e374ac4bd0ce /org/sonatype/sisu/inject/guice-parent/3.1.0/guice-parent-3.1.0.pom +9188fe7eb026bf4c35309f685ea7cf14cb2ebd7c7d49572486f5a97d4b312a03 /org/sonatype/sisu/inject/guice-plexus/2.3.0/guice-plexus-2.3.0.pom +9897e80ff6c08fc45b5b5ebd81d9e943a1087bdf0ad50cda457d616abbdaacd9 /org/sonatype/sisu/sisu-guava/0.9.9/sisu-guava-0.9.9.jar +2c007ed1e50e0edc62f8e3cdf725e1f61068206bc955aec48f3eb13a3467c6e5 /org/sonatype/sisu/sisu-guava/0.9.9/sisu-guava-0.9.9.pom +4b76079f35407e5682aac1ecbe67afd5f430ae619044a9d6a413666a45750c25 /org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar +28a7c38bd751e9e2a9f8d13ddf876266f90f9d6e29c9178b524828afbc5e45f4 /org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0.pom +4b112cc2452aee6930dff95512f05041e4c66a2df0a828e95f8439c23a8759e9 /org/sonatype/sisu/sisu-inject/2.3.0/sisu-inject-2.3.0.pom +75819b29737c2bee1bfbda1011d455c7036738e0ef32ffbf85ba1d8fa157ceb2 /org/sonatype/sisu/sisu-inject-bean/2.3.0/sisu-inject-bean-2.3.0.jar +f41fc69095282c2c332cf3d9f27a2f3b2d87cd22fcb6511df59fffd90a977ec0 /org/sonatype/sisu/sisu-inject-bean/2.3.0/sisu-inject-bean-2.3.0.pom +bf9083fb846993689409b2bdbc735048e53bac6cc32707cde7ef84817b6e9365 /org/sonatype/sisu/sisu-inject-plexus/2.3.0/sisu-inject-plexus-2.3.0.jar +34feae95889f78e7d4260167736e6af444296fbc5f3794b8c1b90eb6332c4714 /org/sonatype/sisu/sisu-inject-plexus/2.3.0/sisu-inject-plexus-2.3.0.pom +aef1fd28efd25bd778aa3d3770c6f9e606ca2354149e985f1d63fc7c6a366bd2 /org/sonatype/sisu/sisu-parent/2.3.0/sisu-parent-2.3.0.pom +02161ae46462da669b1d7be3f9b64687c6347f84d04c890fa467eff6def0ae10 /org/sonatype/spice/model-builder/1.3/model-builder-1.3.jar +0d2cc363cdfc6c102203adb6a5c138c195eaf1198527a09e6a17aa0227a66bcd /org/sonatype/spice/model-builder/1.3/model-builder-1.3.pom +683c012c6bf5e1e31b232b3755c027ccd829692a09c8216652b414b09d4ae623 /org/sonatype/spice/spice-parent/10/spice-parent-10.pom +21a19b26dbe5c38ddb5114cf4eadbf5ccb411bc6b128fdd5949b1ccb12f3683e /org/sonatype/spice/spice-parent/12/spice-parent-12.pom +258f43b5e805687302a5bb400856b972a573ec42a44f949641354a84b9243758 /org/sonatype/spice/spice-parent/16/spice-parent-16.pom +d1968436fc216c901fb9b82c7e878b50fd1d30091676da95b2edd3a9c0ccf92e /stax/stax-api/1.0.1/stax-api-1.0.1.jar +87b13ae136a2bb9299271a0dfe8c351f76661b654ed8fde035c2cabb198cf259 /stax/stax-api/1.0.1/stax-api-1.0.1.pom ad68a86cfd0255a2bc0525ce11ec49640caea7e34ff91eb89c3193dcccd77f05 /trove/trove/1.0.2/trove-1.0.2.jar 83f2682bd3ded1fe417b7e98e7ac86510cd747378eae7e3a5d1d35c7c7f0d2ea /trove/trove/1.0.2/trove-1.0.2.pom +3b90f9f7ad968b9588482e3a09b6e7d0d81c6cf7c214c5cecd8120e3ee509ae9 /tv/twitch/twitch/6.5/twitch-6.5.jar +56820ae80518871ff0af04dbfa54e311f6fa54de922d201f71bd2d3f210e94ba /tv/twitch/twitch/6.5/twitch-6.5.pom +0825d6081eef7e57434cd15525d6c1e7bc5d590e08eaea5b7516820031978af9 /tv/twitch/twitch-external-platform/4.5/twitch-external-platform-4.5-natives-windows-32.jar +6428eb438f53afc563d58c7f2a563ca9fcaae80db3520af744de5e5db1c9df6a /tv/twitch/twitch-external-platform/4.5/twitch-external-platform-4.5-natives-windows-64.jar +5ac03ac36144e4aeeb57b8ccc968b1ed75ae4b9ed4b094f47cb2b7b64c23a67d /tv/twitch/twitch-external-platform/4.5/twitch-external-platform-4.5.pom +4005b7d20bc7e8c37cb0fd94bb7c44b5a6373846f3cb59e7a0095f6ebdf3e4f3 /tv/twitch/twitch-platform/6.5/twitch-platform-6.5-natives-osx.jar +8315b4943f4e1356c34b213d4f309784d5e36cbded1fb37c49efcc7d22c909cb /tv/twitch/twitch-platform/6.5/twitch-platform-6.5-natives-windows-32.jar +75337e7362e489a6f8c9712aeced9e131e82a3ce851cafbd4d03fda284cc7116 /tv/twitch/twitch-platform/6.5/twitch-platform-6.5-natives-windows-64.jar +3b5636dae28488379b110bd87a769497af8227518c273e62110cfd638f9fdcb6 /tv/twitch/twitch-platform/6.5/twitch-platform-6.5.pom +* /versions.json diff --git a/gradle/reprod/patches/forgeflower/0001-Replace-plugin-DSL-with-old-buildscript.patch b/gradle/reprod/patches/forgeflower/0001-Replace-plugin-DSL-with-old-buildscript.patch deleted file mode 100644 index f980569a..00000000 --- a/gradle/reprod/patches/forgeflower/0001-Replace-plugin-DSL-with-old-buildscript.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 798d79d8c6b5c4accda35bd4517621b19bf954a2 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Tue, 29 Aug 2017 13:47:11 +0200 -Subject: [PATCH] Replace plugin DSL with old buildscript - ---- - build.gradle | 13 +++++++++++-- - 1 file changed, 11 insertions(+), 2 deletions(-) - -diff --git a/build.gradle b/build.gradle -index da78c2f..4384886 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -1,7 +1,16 @@ --plugins { -- id 'net.minecrell.gitpatcher' version '0.9.0' -+buildscript { -+ repositories { -+ maven { -+ url "https://plugins.gradle.org/m2/" -+ } -+ } -+ dependencies { -+ classpath "gradle.plugin.net.minecrell:gitpatcher:0.9.0" -+ } - } - -+apply plugin: "net.minecrell.gitpatcher" -+ - patches { - submodule = 'FernFlower' - target = file('ForgeFlower') --- -2.5.5 - diff --git a/gradle/reprod/patches/forgegradle/0001-Fix-compilation-with-newer-gradle-versions.patch b/gradle/reprod/patches/forgegradle/0001-Fix-compilation-with-newer-gradle-versions.patch new file mode 100644 index 00000000..a74227fd --- /dev/null +++ b/gradle/reprod/patches/forgegradle/0001-Fix-compilation-with-newer-gradle-versions.patch @@ -0,0 +1,84 @@ +From 5d778fec168a72d41df672ad38ee5f01973916ce Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Sat, 2 Sep 2017 15:40:15 +0200 +Subject: [PATCH] Fix compilation with newer gradle versions + +--- + src/main/java/net/minecraftforge/gradle/tasks/CreateStartTask.java | 1 - + src/main/java/net/minecraftforge/gradle/user/TaskRecompileMc.java | 1 - + src/main/java/net/minecraftforge/gradle/user/UserBasePlugin.java | 1 - + .../java/net/minecraftforge/gradle/util/SourceDirSetSupplier.java | 4 ++-- + src/main/java/net/minecraftforge/gradle/util/json/JsonFactory.java | 1 - + 5 files changed, 2 insertions(+), 6 deletions(-) + +diff --git a/src/main/java/net/minecraftforge/gradle/tasks/CreateStartTask.java b/src/main/java/net/minecraftforge/gradle/tasks/CreateStartTask.java +index 1de9ac3..8d0a5a5 100644 +--- a/src/main/java/net/minecraftforge/gradle/tasks/CreateStartTask.java ++++ b/src/main/java/net/minecraftforge/gradle/tasks/CreateStartTask.java +@@ -128,7 +128,6 @@ public class CreateStartTask extends CachedTask + LoggingManager log = getLogging(); + LogLevel startLevel = getProject().getGradle().getStartParameter().getLogLevel(); + if (startLevel.compareTo(LogLevel.LIFECYCLE) >= 0) { +- log.setLevel(LogLevel.ERROR); + } + // INVOKE! + this.getAnt().invokeMethod("javac", ImmutableMap.builder() +diff --git a/src/main/java/net/minecraftforge/gradle/user/TaskRecompileMc.java b/src/main/java/net/minecraftforge/gradle/user/TaskRecompileMc.java +index 224292c..f61618c 100644 +--- a/src/main/java/net/minecraftforge/gradle/user/TaskRecompileMc.java ++++ b/src/main/java/net/minecraftforge/gradle/user/TaskRecompileMc.java +@@ -86,7 +86,6 @@ public class TaskRecompileMc extends CachedTask + LoggingManager log = getLogging(); + LogLevel startLevel = getProject().getGradle().getStartParameter().getLogLevel(); + if (startLevel.compareTo(LogLevel.LIFECYCLE) >= 0) { +- log.setLevel(LogLevel.ERROR); + } + + // recompile +diff --git a/src/main/java/net/minecraftforge/gradle/user/UserBasePlugin.java b/src/main/java/net/minecraftforge/gradle/user/UserBasePlugin.java +index 98391fc..9408a07 100644 +--- a/src/main/java/net/minecraftforge/gradle/user/UserBasePlugin.java ++++ b/src/main/java/net/minecraftforge/gradle/user/UserBasePlugin.java +@@ -37,7 +37,6 @@ import javax.xml.transform.TransformerFactory; + import javax.xml.transform.dom.DOMSource; + import javax.xml.transform.stream.StreamResult; + +-import com.beust.jcommander.internal.Lists; + import org.gradle.api.Action; + import org.gradle.api.DefaultTask; + import org.gradle.api.NamedDomainObjectContainer; +diff --git a/src/main/java/net/minecraftforge/gradle/util/SourceDirSetSupplier.java b/src/main/java/net/minecraftforge/gradle/util/SourceDirSetSupplier.java +index 4e9dbe5..4f3744e 100644 +--- a/src/main/java/net/minecraftforge/gradle/util/SourceDirSetSupplier.java ++++ b/src/main/java/net/minecraftforge/gradle/util/SourceDirSetSupplier.java +@@ -19,13 +19,13 @@ + */ + package net.minecraftforge.gradle.util; + +-import com.beust.jcommander.internal.Lists; ++import com.google.common.collect.Lists; ++import com.google.common.collect.Maps; + import net.minecraftforge.srg2source.util.io.InputSupplier; + import net.minecraftforge.srg2source.util.io.OutputSupplier; + import org.gradle.api.file.FileVisitDetails; + import org.gradle.api.file.FileVisitor; + import org.gradle.api.file.SourceDirectorySet; +-import org.testng.collections.Maps; + + import java.io.*; + import java.util.List; +diff --git a/src/main/java/net/minecraftforge/gradle/util/json/JsonFactory.java b/src/main/java/net/minecraftforge/gradle/util/json/JsonFactory.java +index b75f653..fa61537 100644 +--- a/src/main/java/net/minecraftforge/gradle/util/json/JsonFactory.java ++++ b/src/main/java/net/minecraftforge/gradle/util/json/JsonFactory.java +@@ -26,7 +26,6 @@ import java.io.IOException; + import java.util.*; + import java.util.Map.Entry; + +-import com.beust.jcommander.internal.Lists; + import com.google.common.base.Strings; + import com.google.common.reflect.TypeToken; + import com.google.gson.Gson; +-- +2.9.5 + diff --git a/gradle/reprod/patches/forgegradle/0001-Replace-https-urls-with-http-for-proxy-witness.patch b/gradle/reprod/patches/forgegradle/0001-Replace-https-urls-with-http-for-proxy-witness.patch index d4f77ab6..0fee26f7 100644 --- a/gradle/reprod/patches/forgegradle/0001-Replace-https-urls-with-http-for-proxy-witness.patch +++ b/gradle/reprod/patches/forgegradle/0001-Replace-https-urls-with-http-for-proxy-witness.patch @@ -12,8 +12,8 @@ diff --git a/src/main/java/net/minecraftforge/gradle/common/BasePlugin.java b/sr index df369f1..e3e50c0 100644 --- a/src/main/java/net/minecraftforge/gradle/common/BasePlugin.java +++ b/src/main/java/net/minecraftforge/gradle/common/BasePlugin.java -@@ -393,6 +393,13 @@ public abstract class BasePlugin implements Plugin implements Plugin implements Plugin implements Plugin implements Plugin implements Plugin implements Plugin implements Plugin URLS_MCP_JSON = Arrays.asList( +- public static final String URL_MC_MANIFEST = "https://launchermeta.mojang.com/mc/game/version_manifest.json"; ++ public static final String URL_MC_MANIFEST = "http://launchermeta.mojang.com/mc/game/version_manifest.json"; + public static final String URL_FF = "http://files.minecraftforge.net/fernflower-fix-1.0.zip"; + public static final String URL_ASSETS = "http://resources.download.minecraft.net"; +- public static final String URL_LIBRARY = "https://libraries.minecraft.net/"; ++ public static final String URL_LIBRARY = "http://libraries.minecraft.net/"; + public static final String URL_FORGE_MAVEN = "http://files.minecraftforge.net/maven"; + public static final String URL_MCP_JSON = "http://export.mcpbot.bspk.rs/versions.json"; + -- 2.5.5 diff --git a/gradle/reprod/patches/forgegradle/0003-Remove-all-buildscript-dependencies.patch b/gradle/reprod/patches/forgegradle/0003-Remove-all-buildscript-dependencies.patch deleted file mode 100644 index 65920ac7..00000000 --- a/gradle/reprod/patches/forgegradle/0003-Remove-all-buildscript-dependencies.patch +++ /dev/null @@ -1,161 +0,0 @@ -From a4a52f38bd660caa61531ebecd2d11f764eb3691 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 7 Aug 2017 19:52:46 +0200 -Subject: [PATCH 3/5] Remove all buildscript dependencies - ---- - build.gradle | 130 ----------------------------------------------------------- - 1 file changed, 130 deletions(-) - -diff --git a/build.gradle b/build.gradle -index 91ea99a..8959f8f 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -1,21 +1,7 @@ --buildscript { -- repositories { -- maven { -- url "https://plugins.gradle.org/m2/" -- } -- } -- dependencies { -- classpath "com.gradle.publish:plugin-publish-plugin:0.9.1" -- classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0' -- } --} -- - apply plugin: 'java' - apply plugin: 'idea' - apply plugin: 'eclipse' - apply plugin: 'maven' --apply plugin: "com.gradle.plugin-publish" --apply plugin: 'license' - - group = 'net.minecraftforge.gradle' - version = '2.3-SNAPSHOT' -@@ -188,122 +174,6 @@ test { - exclude "**/ExtensionMcpMappingTest*" - } - --license { -- ext { -- description = 'A Gradle plugin for the creation of Minecraft mods and MinecraftForge plugins.' -- year = '2013' -- fullname = 'Minecraft Forge' -- } -- header rootProject.file('HEADER') -- include '**net/minecraftforge/gradle/**/*.java' -- excludes ([ -- '**net/minecraftforge/gradle/util/ZipFileTree.java', -- '**net/minecraftforge/gradle/util/json/version/*', -- '**net/minecraftforge/gradle/util/patching/Base64.java', -- '**net/minecraftforge/gradle/util/patching/ContextualPatch.java' -- ]) -- ignoreFailures false -- strictCheck true -- mapping { -- java = 'SLASHSTAR_STYLE' -- } --} -- --pluginBundle { -- website = 'http://www.gradle.org/' -- vcsUrl = 'https://github.com/MinecraftForge/ForgeGradle' -- description = 'Gradle plugin for all Minecraft mod development needs' -- tags = ['forge', 'minecraft', 'minecraftforge', 'sponge', 'mcp'] -- -- plugins { -- patcher { -- id = 'net.minecraftforge.gradle.patcher' -- displayName = 'Minicraft Patcher Plugin' -- } -- tweakerClient { -- id = 'net.minecraftforge.gradle.tweaker-client' -- displayName = 'Mincraft Client Tweaker Plugin' -- } -- tweakerServer { -- id = 'net.minecraftforge.gradle.tweaker-server' -- displayName = 'Mincraft Server Tweaker Plugin' -- } -- forge { -- id = 'net.minecraftforge.gradle.forge' -- displayName = 'MincraftForge Mod Development Plugin' -- } -- -- launch4j { -- id = 'net.minecraftforge.gradle.launch4j' -- displayName = 'Specialized Launch4J Gradle Plugin' -- } -- } --} -- --uploadArchives { -- repositories.mavenDeployer { -- -- dependsOn 'build' -- -- if (project.hasProperty('forgeMavenPass')) -- { -- repository(url: "http://files.minecraftforge.net/maven/manage/upload") { -- authentication(userName: "forge", password: project.getProperty('forgeMavenPass')) -- } -- } -- else -- { -- // local repo folder. Might wanna juset use gradle install if you wanans end it to maven-local -- repository(url: 'file://localhost/' + project.file('repo').getAbsolutePath()) -- } -- -- -- pom { -- groupId = project.group -- version = project.version -- artifactId = project.archivesBaseName -- project { -- name project.archivesBaseName -- packaging 'jar' -- description 'Gradle plugin for Forge' -- url 'https://github.com/MinecraftForge/ForgeGradle' -- -- scm { -- url 'https://github.com/MinecraftForge/ForgeGradle' -- connection 'scm:git:git://github.com/MinecraftForge/ForgeGradle.git' -- developerConnection 'scm:git:git@github.com:MinecraftForge/ForgeGradle.git' -- } -- -- issueManagement { -- system 'github' -- url 'https://github.com/MinecraftForge/ForgeGradle/issues' -- } -- -- licenses { -- license { -- name 'Lesser GNU Public License, Version 2.1' -- url 'https://www.gnu.org/licenses/lgpl-2.1.html' -- distribution 'repo' -- } -- } -- -- developers { -- developer { -- id 'AbrarSyed' -- name 'Abrar Syed' -- roles { role 'developer' } -- } -- developer { -- id 'LexManos' -- name 'Lex Manos' -- roles { role 'developer' } -- } -- } -- } -- } -- } --} -- - // write out version so its convenient for doc deployment - file('build').mkdirs() - file('build/version.txt').text = version; --- -2.5.5 - diff --git a/gradle/reprod/patches/forgegradle/0004-Shade-all-the-things-because-we-don-t-include-deps-a.patch b/gradle/reprod/patches/forgegradle/0004-Shade-all-the-things-because-we-don-t-include-deps-a.patch index 5e0806d5..577b2408 100644 --- a/gradle/reprod/patches/forgegradle/0004-Shade-all-the-things-because-we-don-t-include-deps-a.patch +++ b/gradle/reprod/patches/forgegradle/0004-Shade-all-the-things-because-we-don-t-include-deps-a.patch @@ -12,13 +12,13 @@ diff --git a/build.gradle b/build.gradle index 8959f8f..0bf7941 100644 --- a/build.gradle +++ b/build.gradle -@@ -48,26 +48,26 @@ dependencies { +@@ -62,26 +62,26 @@ dependencies { compile gradleApi() // moved to the beginning to be the overrider -- compile 'org.ow2.asm:asm-debug-all:5.1' +- compile 'org.ow2.asm:asm-debug-all:5.0.3' - compile 'com.google.guava:guava:18.0' -+ shade 'org.ow2.asm:asm-debug-all:5.1' ++ shade 'org.ow2.asm:asm-debug-all:5.0.3' + shade 'com.google.guava:guava:18.0' - compile 'net.sf.opencsv:opencsv:2.3' // reading CSVs.. also used by SpecialSource @@ -34,12 +34,12 @@ index 8959f8f..0bf7941 100644 - compile 'com.nothome:javaxdelta:2.0.1' // GDIFF implementation for BinPatches - compile 'com.google.code.gson:gson:2.2.4' // Used instead of Argo for buuilding changelog. - compile 'com.github.tony19:named-regexp:0.2.3' // 1.7 Named regexp features -- compile 'net.minecraftforge:forgeflower:1.0.342-SNAPSHOT' // Fernflower Forge edition +- compile 'net.minecraftforge:fernflower:2.0-SNAPSHOT' // Fernflower Forge edition + shade 'com.github.jponge:lzma-java:1.3' // replaces the LZMA binary + shade 'com.nothome:javaxdelta:2.0.1' // GDIFF implementation for BinPatches + shade 'com.google.code.gson:gson:2.2.4' // Used instead of Argo for buuilding changelog. + shade 'com.github.tony19:named-regexp:0.2.3' // 1.7 Named regexp features -+ shade 'net.minecraftforge:forgeflower:1.0.342-SNAPSHOT' // Fernflower Forge edition ++ shade 'net.minecraftforge:fernflower:2.0-SNAPSHOT' // Fernflower Forge edition shade 'net.md-5:SpecialSource:1.7.4' // deobf and reobs // compile 'net.md-5:SpecialSource:1.7.4' // when md5 publishes diff --git a/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch b/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch index 9cea72a5..a138c5a4 100644 --- a/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch +++ b/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch @@ -15,7 +15,7 @@ index bfadecd..774a015 100644 shade 'com.nothome:javaxdelta:2.0.1' // GDIFF implementation for BinPatches shade 'com.google.code.gson:gson:2.2.4' // Used instead of Argo for buuilding changelog. shade 'com.github.tony19:named-regexp:0.2.3' // 1.7 Named regexp features -- shade 'net.minecraftforge:forgeflower:1.0.342-SNAPSHOT' // Fernflower Forge edition +- shade 'net.minecraftforge:fernflower:2.0-SNAPSHOT' // Fernflower Forge edition + shade files('../forgeflower.jar') // Fernflower Forge edition shade 'net.md-5:SpecialSource:1.7.4' // deobf and reobs @@ -25,7 +25,7 @@ index bfadecd..774a015 100644 // mcp stuff shade 'de.oceanlabs.mcp:RetroGuard:3.6.6' - shade 'de.oceanlabs.mcp:mcinjector:3.4-SNAPSHOT' -- shade 'net.minecraftforge.srg2source:Srg2Source:4.0-SNAPSHOT' +- shade 'net.minecraftforge.srg2source:Srg2Source:3.3-SNAPSHOT' + shade files('../mcinjector.jar') + shade files('../srg2source.jar') diff --git a/gradle/reprod/patches/mixingradle/0002-Remove-all-buildscript-dependencies.patch b/gradle/reprod/patches/mixingradle/0002-Remove-all-buildscript-dependencies.patch deleted file mode 100644 index c9c2749e..00000000 --- a/gradle/reprod/patches/mixingradle/0002-Remove-all-buildscript-dependencies.patch +++ /dev/null @@ -1,125 +0,0 @@ -From f1130f071e67235b27e2bca95584dec25a8dec37 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 7 Aug 2017 20:04:56 +0200 -Subject: [PATCH 2/3] Remove all buildscript dependencies - ---- - build.gradle | 91 ------------------------------------------------------------ - 1 file changed, 91 deletions(-) - -diff --git a/build.gradle b/build.gradle -index c34a8a2..40169df 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -1,22 +1,6 @@ --buildscript { -- repositories { -- maven { -- url "https://plugins.gradle.org/m2/" -- } -- } -- dependencies { -- classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0' -- classpath "com.gradle.publish:plugin-publish-plugin:0.9.1" -- } --} -- - apply plugin: 'groovy' --apply plugin: 'license' - apply plugin: 'maven' - apply plugin: 'eclipse' --apply plugin: "com.gradle.plugin-publish" -- --defaultTasks 'licenseFormat', 'build' - - group = 'org.spongepowered' - version = '0.4-SNAPSHOT' -@@ -43,22 +27,6 @@ processResources { - from 'LICENSE.txt' - } - --license { -- ext { -- name = project.name -- organization = project.organization -- url = project.url -- } -- include '**/*.groovy' -- header file("HEADER.txt") -- sourceSets = project.sourceSets -- ignoreFailures false -- strictCheck true -- mapping { -- java = 'SLASHSTAR_STYLE' -- } --} -- - jar.manifest.mainAttributes ( - "Built-By": System.properties['user.name'], - "Created-By": System.properties['java.vm.version'] + " (" + System.properties['java.vm.vendor'] + ")", -@@ -81,62 +49,3 @@ artifacts { - archives groovydocJar - } - --pluginBundle { -- website = 'http://www.gradle.org/' -- vcsUrl = 'https://github.com/SpongePowered/MixinGradle' -- description = 'Gradle plugin for SpongePowered Mixin' -- tags = ['spongepowered', 'sponge', 'mixin'] -- plugins { -- patcher { -- id = 'org.spongepowered.mixin' -- displayName = 'SpongePowered Mixin Gradle Plugin' -- } -- } --} -- --uploadArchives { -- repositories { -- -- mavenDeployer { -- configuration = configurations.deployerJars -- -- if (project.hasProperty("chRepo")) -- { -- repository(url: project.chRepo) { -- authentication(userName: project.chUsername, password: project.chPassword) -- } -- } -- -- pom { -- groupId = project.group -- version = project.version -- artifactId = project.archivesBaseName -- project { -- name project.archivesBaseName -- packaging 'jar' -- description 'MixinGradle' -- url 'http://www.spongepowered.org/' -- -- scm { -- url 'https://github.com/SpongePowered/Mixin' -- connection 'scm:git:git://github.com/SpongePowered/Mixin.git' -- developerConnection 'scm:git:git@github.com:SpongePowered/Mixin.git' -- } -- -- issueManagement { -- system 'GitHub Issues' -- url 'https://github.com/SpongePowered/MixinGradle/issues' -- } -- -- licenses { -- license { -- name 'MIT license' -- url 'http://opensource.org/licenses/MIT' -- distribution 'repo' -- } -- } -- } -- } -- } -- } --} --- -2.5.5 - 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 index 9000d682..8199cfed 100644 --- 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 @@ -11,7 +11,7 @@ diff --git a/build.gradle b/build.gradle index db80dfa..2f5e041 100644 --- a/build.gradle +++ b/build.gradle -@@ -42,8 +42,7 @@ processResources { +@@ -59,8 +59,7 @@ processResources { } jar.manifest.mainAttributes ( diff --git a/gradle/reprod/patches/mixingradle/0005-Disable-license-plugin.patch b/gradle/reprod/patches/mixingradle/0005-Disable-license-plugin.patch new file mode 100644 index 00000000..3ff939df --- /dev/null +++ b/gradle/reprod/patches/mixingradle/0005-Disable-license-plugin.patch @@ -0,0 +1,53 @@ +From 6b7ad7fd8c22384e62585a962e1bd74d6d003582 Mon Sep 17 00:00:00 2001 +From: Jonas Herzig +Date: Sat, 2 Sep 2017 15:10:35 +0200 +Subject: [PATCH] Disable license plugin + +--- + build.gradle | 18 ------------------ + 1 file changed, 18 deletions(-) + +diff --git a/build.gradle b/build.gradle +index 60ad57d..57aa5e4 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -5,13 +5,11 @@ buildscript { + } + } + dependencies { +- classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0' + classpath "com.gradle.publish:plugin-publish-plugin:0.9.1" + } + } + + apply plugin: 'groovy' +-apply plugin: 'license' + apply plugin: 'maven' + apply plugin: 'eclipse' + apply plugin: "com.gradle.plugin-publish" +@@ -42,22 +40,6 @@ processResources { + from 'LICENSE.txt' + } + +-license { +- ext { +- name = project.name +- organization = project.organization +- url = project.url +- } +- include '**/*.groovy' +- header file("HEADER.txt") +- sourceSets = project.sourceSets +- ignoreFailures false +- strictCheck true +- mapping { +- java = 'SLASHSTAR_STYLE' +- } +-} +- + jar.manifest.mainAttributes ( + "Built-By": 'ReplayMod reprod', + "Implementation-Title": name, +-- +2.9.5 + diff --git a/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch b/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch index c7d6dc84..492f2a66 100644 --- a/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch +++ b/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch @@ -31,8 +31,8 @@ index ee24828..42d0607 100755 - } - } dependencies { -- classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' -- classpath 'org.spongepowered:mixingradle:0.4-SNAPSHOT' +- classpath 'net.minecraftforge.gradle:ForgeGradle:2.0-SNAPSHOT' +- classpath 'org.spongepowered:mixingradle:0.3-SNAPSHOT' + classpath files('gradle/reprod/deps/forgegradle.jar') + classpath files('gradle/reprod/deps/mixingradle.jar') } diff --git a/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch b/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch index d9c21ef2..3ecc40c5 100644 --- a/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch +++ b/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch @@ -11,13 +11,11 @@ diff --git a/build.gradle b/build.gradle index 42d0607..bfa3914 100755 --- a/build.gradle +++ b/build.gradle -@@ -41,9 +41,7 @@ configurations { +@@ -44,7 +44,7 @@ configurations { dependencies { compile 'org.projectlombok:lombok:1.16.4' -- compile('org.spongepowered:mixin:0.6.11-SNAPSHOT') { -- exclude group: 'org.apache.logging.log4j' -- } +- compile 'org.spongepowered:mixin:0.6.8-SNAPSHOT' + shade files('gradle/reprod/deps/mixin.jar') shade 'com.googlecode.mp4parser:isoparser:1.1.7' shade 'org.apache.commons:commons-exec:1.3' 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 deleted file mode 100644 index 5edf7dd0..00000000 --- a/gradle/reprod/patches/srg2source/0002-Remove-non-essential-parts-of-build.gradle.patch +++ /dev/null @@ -1,141 +0,0 @@ -From 29d6f245fb91762580540180d4ec6ca4abb18322 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Sat, 26 Aug 2017 17:35:04 +0200 -Subject: [PATCH 2/2] Remove non-essential parts of build.gradle - ---- - build.gradle | 103 ----------------------------------------------------------- - 1 file changed, 103 deletions(-) - -diff --git a/build.gradle b/build.gradle -index fda0b61..eefeafe 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -1,16 +1,3 @@ --buildscript { -- repositories { -- mavenCentral() -- maven { -- name = "forge" -- url = "http://files.minecraftforge.net/maven" -- } -- maven { -- name = "eclipse" -- url = "https://repo.eclipse.org/content/groups/eclipse/" -- } -- } --} - apply plugin: 'java' - apply plugin: 'idea' - apply plugin: 'eclipse' -@@ -22,10 +9,6 @@ configurations { - targetCompatibility = '1.6' - sourceCompatibility = '1.6' - --configurations { -- deployerJars --} -- - dependencies { - testCompile "junit:junit:4.12" - -@@ -45,9 +28,6 @@ dependencies { - - // Potential Eclipse AST replacement (not used yet) - //compile 'fr.inria.gforge.spoon:spoon-core:5.1.0' -- -- // maven deployer jar -- deployerJars "org.apache.maven.wagon:wagon-ssh:2.2" - } - - repositories { -@@ -73,86 +53,3 @@ jar { - exclude 'data/**' - } - --task javadocJar(type: Jar, dependsOn: javadoc) { -- classifier = 'javadoc' -- from 'build/docs/javadoc' --} -- --task sourcesJar(type: Jar) { -- from sourceSets.main.allSource -- classifier = 'sources' --} -- --artifacts { -- archives jar -- archives javadocJar -- archives sourcesJar --} -- --uploadArchives { -- repositories.mavenDeployer { -- -- dependsOn 'build' -- -- if (project.hasProperty('forgeMavenPass')) -- { -- repository(url: "http://files.minecraftforge.net/maven/manage/upload") { -- authentication(userName: "forge", password: project.getProperty('forgeMavenPass')) -- } -- } -- else -- { -- // local repo folder. Might wanna juset use gradle install if you wanans end it to maven-local -- repository(url: 'file://localhost/' + project.file('repo').getAbsolutePath()) -- } -- -- pom { -- groupId = project.group -- version = project.version -- artifactId = project.archivesBaseName -- project { -- name project.archivesBaseName -- packaging 'jar' -- description 'Srg2Source library for ForgeGradle' -- url 'https://github.com/MinecraftForge/Srg2Source' -- -- scm { -- url 'https://github.com/MinecraftForge/Srg2Source' -- connection 'scm:git:git://github.com/MinecraftForge/Srg2Source.git' -- developerConnection 'scm:git:git@github.com:MinecraftForge/Srg2Source.git' -- } -- -- issueManagement { -- system 'github' -- url 'https://github.com/MinecraftForge/Srg2Source/issues' -- } -- -- licenses { -- license { -- name 'The BSD 3-Clause License' -- url 'http://opensource.org/licenses/BSD-3-Clause' -- distribution 'repo' -- } -- } -- -- developers { -- developer { -- id 'agaricusb' -- name 'Agaricusb' -- roles { role 'developer' } -- } -- developer { -- id 'LexManos' -- name 'Lex Manos' -- roles { role 'developer' } -- } -- developer { -- id 'AbrarSyed' -- name 'Abrar Syed' -- roles { role 'developer' } -- } -- } -- } -- } -- } --} --- -2.5.5 - diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index c38563e8..21b6a5ef 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -47,7 +47,7 @@ setup_dep () { cp ../../../../gradlew . chmod +x gradlew - ./gradlew $PROXY_SETTINGS -I ../../init.gradle build -x test + ./gradlew $PROXY_SETTINGS -I ../../init.gradle build -x test -x javadoc actual_hash=$(sha256val "$jar") if [ "$actual_hash" != "$jarhash" ]; then @@ -63,8 +63,8 @@ setup_dep () { } # Setup http(s) proxy -setup_dep "proxy-witness" "https://github.com/johni0702/proxy-witness" "1efb77a52517201181615ee8e64b5c771b35a52b" "build/libs/proxy-witness.jar" "da68227e9e8599746f87b1982d88b9aed619c76496913942b4e9b1dc6f4916b9" -java -jar deps/proxy-witness.jar "$PROXY_PORT" checksums.txt > proxy.log 2>&1 & +setup_dep "proxy-witness" "https://github.com/johni0702/proxy-witness" "17ebb2e22f812faed9a28bae6bf1d8b28f798d56" "build/libs/proxy-witness.jar" "f6846fda75a35a55a38db7c3b8215ef43377c33af0ac8118318716223da10ecc" +java -Dproxywitness.httpUris=http://export.mcpbot.bspk.rs/versions.json -jar deps/proxy-witness.jar "$PROXY_PORT" checksums.txt > proxy.log 2>&1 & proxy_pid=$! trap "kill $proxy_pid" EXIT @@ -72,13 +72,13 @@ trap "kill $proxy_pid" EXIT setup_dep "fernflower" "https://github.com/fesh0r/fernflower.git" "85f61bee8194ab69afa746b965973a18eda67608" "build/libs/fernflower.jar" "577c2c4e04f0026675cacb25ec525f2ccba5de2eecac525b28bed18f9ccfd790" # Required for forgegradle -setup_dep "forgeflower" "https://github.com/MinecraftForge/ForgeFlower.git" "32a04b9840fb6b10a8e2c178af86e20bdb85e366" "ForgeFlower/build/libs/forgeflower-1.0.342-SNAPSHOT.jar" "4b32e3140decbe39eaf77399f0390fbece6b3a1f3ff3424e4754adefe1c7c932" +setup_dep "forgeflower" "https://github.com/MinecraftForge/FernFlowerLegacy.git" "114aebe82cf40075c5c4f916c409b8aebf8096d5" "build/libs/fernflower-2.0-SNAPSHOT.jar" "2f1b3fd389628e00cc39630627885e9e6bccde7119d3ad3c88394eceaf3fc878" setup_dep "mcinjector" "https://github.com/ModCoderPack/MCInjector.git" "7258466461baf7dc4f313b06b0d589407e4e1fba" "build/libs/mcinjector-3.4-SNAPSHOT.jar" "98cd0c13030aa8103585621fdab5db6b74ea0db7b8b30bc74061e7b5d314aa01" -setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "ea4ea624672e8b75fb2a78f0fb9105db13d5a4a6" "build/libs/Srg2Source-4.0-SNAPSHOT.jar" "575e5fa1d6834edb34e0bf1d56ae7237b02b2d87a6e2d30c8605d5287fd2ef53" +setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "5f11e2933f722000dbf742ffdd0d9c5ee8044bbb" "build/libs/Srg2Source-3.3-SNAPSHOT.jar" "4336d8b61899ee2c24b69b5464117030a2444d155b647f529af51d7fa290dd74" # Required for RM -setup_dep "mixingradle" "https://github.com/SpongePowered/MixinGradle.git" "3d81c8e202ec435056fb2068fdc34cfefa99be2d" "build/libs/mixingradle-0.4-SNAPSHOT.jar" "8b3508867128a5d564631635dff898a36f9aca8db54b7bb3af6f4924e3f4bead" -setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "a228a836a2dc5ce546d2d53c48760f52f082d7ad" "build/libs/ForgeGradle-2.3-SNAPSHOT.jar" "94bf0d8be7e68a3d9828c8208024c21f2c171663dd7d56b95b3459bfc67273c0" +setup_dep "mixingradle" "https://github.com/SpongePowered/MixinGradle.git" "52217aa8ca221dcd0b9fb657b037e663db808f38" "build/libs/mixingradle-0.4-SNAPSHOT.jar" "8b3508867128a5d564631635dff898a36f9aca8db54b7bb3af6f4924e3f4bead" +setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "17806f45d20d0b55bff70a616eaeb939bd6a543c" "build/libs/ForgeGradle-2.1-SNAPSHOT.jar" "071dafb1ae078a9c50944ffa3519cd51c9cf876b09d200a9e9be314d92faf983" setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "build/libs/mixin-0.6.11-SNAPSHOT.jar" "8ec6ce24b8192f043976344305ba6afbc35b052056f1559ca5914a77c5eae71d" rm -rf tmp From 5be2f36a78f88bbda9c715ebbf93a458e0917e59 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sun, 3 Sep 2017 15:13:59 +0200 Subject: [PATCH 16/53] Use gradle-reproducible-builds-plugin instead of configuring Gradle manually --- gradle/reprod/checksums.txt | 2 ++ gradle/reprod/init.gradle | 36 ++++++++++-------------------------- gradle/reprod/setup.sh | 11 ++++++++--- 3 files changed, 20 insertions(+), 29 deletions(-) diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index 0bc11288..41f4da69 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -8,6 +8,8 @@ a30a3f89fbbea23deb5290e832eb0d12a8171ae8ba4461af2b936ed0245ee697 /com/fasterxml/ cd62bdfd946618c26b49451084361edf79cd6ddb3eae1a485ecb05319295896d /com/github/abrarsyed/jastyle/jAstyle/1.3/jAstyle-1.3.pom 33b3d79f3e27d33c46411ab7b7d81f43f12756e18c8936063f18b1a950a5f84b /com/github/jengelman/gradle/plugins/shadow/1.2.3/shadow-1.2.3.jar f00facfc855e7d5517fc57553614b4690e61df9ab44f6e93ff583ae201b5a3aa /com/github/jengelman/gradle/plugins/shadow/1.2.3/shadow-1.2.3.pom +1e7bfcc83540c5af0fbab37ce316711380d142108f96db380e18a11e111cccf0 /com/github/johni0702/gradle-reproducible-builds-plugin/4989ae9/gradle-reproducible-builds-plugin-4989ae9.jar +8fe6e84a98417cbdc7df47b3afd5c368d7fb3139b4f0e16ac6f1496d85c24b18 /com/github/johni0702/gradle-reproducible-builds-plugin/4989ae9/gradle-reproducible-builds-plugin-4989ae9.pom 75ccc0e24d37ed5b8916e1bcffad1e067c2b1cfa21b635287f968db5c3c1963a /com/github/jponge/lzma-java/1.3/lzma-java-1.3.jar fbcba81b21a8bc3c0761e4798fa05285444b43d681c03c9af49f9b2e1ecb0184 /com/github/jponge/lzma-java/1.3/lzma-java-1.3.pom f38a7028bbac3f6c6b15cb40d533c96c6e8fdb54fc93d922cfa1931b25fa8c5c /com/github/replaymod/ReplayStudio/2df8d8b/ReplayStudio-2df8d8b.jar diff --git a/gradle/reprod/init.gradle b/gradle/reprod/init.gradle index cad1fbb8..08fbbc24 100644 --- a/gradle/reprod/init.gradle +++ b/gradle/reprod/init.gradle @@ -2,6 +2,15 @@ import java.util.jar.JarEntry import java.util.jar.JarFile import java.util.jar.JarOutputStream +initscript { + repositories { + maven { url 'http://jitpack.io' } + } + dependencies { + classpath 'com.github.johni0702:gradle-reproducible-builds-plugin:4989ae9' + } +} + def convertRepoToHttp = { repo -> if (repo instanceof MavenArtifactRepository && repo.url.toString().startsWith('https://')) { URL url = repo.url.toURL() @@ -14,30 +23,5 @@ allprojects { repositories.all convertRepoToHttp } repositories.all convertRepoToHttp - - tasks.withType(AbstractArchiveTask) { - preserveFileTimestamps = false - reproducibleFileOrder = true - dirMode = 0775 - fileMode = 0664 - } - // The shadow plugin doesn't seem to support the above - def shadowJar = tasks.findByPath ':shadowJar' - if (shadowJar != null) { - shadowJar.doLast { - File newFile = new File(archivePath.parent, 'tmp-' + archiveName) - newFile.withOutputStream { fout -> - JarOutputStream out = new JarOutputStream(fout) - JarFile jf = new JarFile(archivePath) - jf.entries().unique {it.name}.sort {it.name}.each { - def copy = new JarEntry(it.name) - copy.time = 0 - out.putNextEntry(copy) - out << jf.getInputStream(it) - } - out.finish() - } - newFile.renameTo archivePath - } - } + apply plugin: de.johni0702.gradle.ReproducibleBuildsPlugin, to: project } diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index 21b6a5ef..46f8b121 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -21,6 +21,7 @@ setup_dep () { jarhash=$5 [ -f "deps/$dep.jar" ] && [ "$(sha256val "deps/$dep.jar")" == "$jarhash" ] && return + [ -f "deps/$dep.jar" ] && [ "*" == "$jarhash" ] && return rm -rf "deps/$dep.jar" if [ ! -d "deps/$dep" ] || [ "$(git -C "deps/$dep" rev-parse $commit^{commit})" != "$commit" ]; then @@ -47,10 +48,14 @@ setup_dep () { cp ../../../../gradlew . chmod +x gradlew - ./gradlew $PROXY_SETTINGS -I ../../init.gradle build -x test -x javadoc + if [ "$dep" == "proxy-witness" ]; then + ./gradlew $PROXY_SETTINGS build -x test -x javadoc + else + ./gradlew $PROXY_SETTINGS -I ../../init.gradle build -x test -x javadoc + fi actual_hash=$(sha256val "$jar") - if [ "$actual_hash" != "$jarhash" ]; then + if [ "*" != "$jarhash" ] && [ "$actual_hash" != "$jarhash" ]; then echo "Failed to verify checksum of build artifact of dependency: $dep" echo "Expected: $jarhash" echo "But was: $actual_hash" @@ -63,7 +68,7 @@ setup_dep () { } # Setup http(s) proxy -setup_dep "proxy-witness" "https://github.com/johni0702/proxy-witness" "17ebb2e22f812faed9a28bae6bf1d8b28f798d56" "build/libs/proxy-witness.jar" "f6846fda75a35a55a38db7c3b8215ef43377c33af0ac8118318716223da10ecc" +setup_dep "proxy-witness" "https://github.com/johni0702/proxy-witness" "17ebb2e22f812faed9a28bae6bf1d8b28f798d56" "build/libs/proxy-witness.jar" "*" java -Dproxywitness.httpUris=http://export.mcpbot.bspk.rs/versions.json -jar deps/proxy-witness.jar "$PROXY_PORT" checksums.txt > proxy.log 2>&1 & proxy_pid=$! trap "kill $proxy_pid" EXIT From c18644a20868c762f56536ed36ccca1fc705fba2 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sun, 3 Sep 2017 21:07:13 +0200 Subject: [PATCH 17/53] Use gradle-ecj-plugin to make reproducible builds JDK-independent --- gradle/reprod/checksums.txt | 4 ++++ gradle/reprod/init.gradle | 7 +++++++ gradle/reprod/setup.sh | 12 ++++++------ 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index 41f4da69..e1746440 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -8,6 +8,8 @@ a30a3f89fbbea23deb5290e832eb0d12a8171ae8ba4461af2b936ed0245ee697 /com/fasterxml/ cd62bdfd946618c26b49451084361edf79cd6ddb3eae1a485ecb05319295896d /com/github/abrarsyed/jastyle/jAstyle/1.3/jAstyle-1.3.pom 33b3d79f3e27d33c46411ab7b7d81f43f12756e18c8936063f18b1a950a5f84b /com/github/jengelman/gradle/plugins/shadow/1.2.3/shadow-1.2.3.jar f00facfc855e7d5517fc57553614b4690e61df9ab44f6e93ff583ae201b5a3aa /com/github/jengelman/gradle/plugins/shadow/1.2.3/shadow-1.2.3.pom +27fc3b7f0436f532c9d798dbc006d7e0b9b7c9b436f8d977f122665c633e9892 /com/github/johni0702/gradle-ecj-plugin/795736c/gradle-ecj-plugin-795736c.jar +f98b3e07c6b6a32dd6f9f70f5cef4ac9be42a9a6c850ceb8f33767da94706635 /com/github/johni0702/gradle-ecj-plugin/795736c/gradle-ecj-plugin-795736c.pom 1e7bfcc83540c5af0fbab37ce316711380d142108f96db380e18a11e111cccf0 /com/github/johni0702/gradle-reproducible-builds-plugin/4989ae9/gradle-reproducible-builds-plugin-4989ae9.jar 8fe6e84a98417cbdc7df47b3afd5c368d7fb3139b4f0e16ac6f1496d85c24b18 /com/github/johni0702/gradle-reproducible-builds-plugin/4989ae9/gradle-reproducible-builds-plugin-4989ae9.pom 75ccc0e24d37ed5b8916e1bcffad1e067c2b1cfa21b635287f968db5c3c1963a /com/github/jponge/lzma-java/1.3/lzma-java-1.3.jar @@ -333,6 +335,8 @@ d68a303f399eeef919b681c43885481c46bf3cfe39f4ede369f7433087bbe14c /org/eclipse/eq a6833a81795978d4ad8d2e54597171e2a3447fd6983b8e902710aa1dc946fa24 /org/eclipse/equinox/registry/3.5.400-v20140428-1507/registry-3.5.400-v20140428-1507.jar cb7c954965e6b2946c2f7be78c1e089b530e0444b1fefc2d8079a5681362bfa1 /org/eclipse/equinox/registry/3.5.400-v20140428-1507/registry-3.5.400-v20140428-1507.pom d7cd093fdad45c7cc979f44f7166f259607b41cf44a8afe77561594cef4c39d3 /org/eclipse/equinox/registry/maven-metadata.xml +9cddda75f4a1b4469e73f44e7b61a3e897d0f657df4797f9106ffe88c4eeade0 /org/eclipse/jdt/core/compiler/ecj/4.6.1/ecj-4.6.1.jar +536c45e8804de01321c478cfb994377f81f1e32897636616fa21b877fd137c6f /org/eclipse/jdt/core/compiler/ecj/4.6.1/ecj-4.6.1.pom 5a91ef99dc827e77c8dae1481bd5a92a0ce877304f2b25151ba4e0834e8a917d /org/eclipse/jdt/org.eclipse.jdt.core/3.10.0.v20131029-1755/org.eclipse.jdt.core-3.10.0.v20131029-1755.jar 5591ec1f9826a0506b33cb2a7bceceaf4058f667c0d5e8fd1a348c36540d9dcb /org/eclipse/jdt/org.eclipse.jdt.core/3.10.0.v20131029-1755/org.eclipse.jdt.core-3.10.0.v20131029-1755.pom d6aba7a1569952e082630de6907f460f476c20d97032cb9f7e4f3e14ddb928e7 /org/eclipse/jetty/jetty-parent/14/jetty-parent-14.pom diff --git a/gradle/reprod/init.gradle b/gradle/reprod/init.gradle index 08fbbc24..51014bc8 100644 --- a/gradle/reprod/init.gradle +++ b/gradle/reprod/init.gradle @@ -8,6 +8,7 @@ initscript { } dependencies { classpath 'com.github.johni0702:gradle-reproducible-builds-plugin:4989ae9' + classpath 'com.github.johni0702:gradle-ecj-plugin:795736c' } } @@ -22,6 +23,12 @@ allprojects { buildscript { repositories.all convertRepoToHttp } + repositories { mavenCentral() } // for ecj repositories.all convertRepoToHttp apply plugin: de.johni0702.gradle.ReproducibleBuildsPlugin, to: project + apply plugin: xink.gradle.ecj.EcjPlugin, to: project + + ecj { + warn = ['none'] + } } diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index 46f8b121..0224f28e 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -74,17 +74,17 @@ proxy_pid=$! trap "kill $proxy_pid" EXIT # Required for mixin -setup_dep "fernflower" "https://github.com/fesh0r/fernflower.git" "85f61bee8194ab69afa746b965973a18eda67608" "build/libs/fernflower.jar" "577c2c4e04f0026675cacb25ec525f2ccba5de2eecac525b28bed18f9ccfd790" +setup_dep "fernflower" "https://github.com/fesh0r/fernflower.git" "85f61bee8194ab69afa746b965973a18eda67608" "build/libs/fernflower.jar" "b69597c93e248073330da4532a857aad73b767d46f87a0aa66446fbea289ff93" # Required for forgegradle -setup_dep "forgeflower" "https://github.com/MinecraftForge/FernFlowerLegacy.git" "114aebe82cf40075c5c4f916c409b8aebf8096d5" "build/libs/fernflower-2.0-SNAPSHOT.jar" "2f1b3fd389628e00cc39630627885e9e6bccde7119d3ad3c88394eceaf3fc878" -setup_dep "mcinjector" "https://github.com/ModCoderPack/MCInjector.git" "7258466461baf7dc4f313b06b0d589407e4e1fba" "build/libs/mcinjector-3.4-SNAPSHOT.jar" "98cd0c13030aa8103585621fdab5db6b74ea0db7b8b30bc74061e7b5d314aa01" -setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "5f11e2933f722000dbf742ffdd0d9c5ee8044bbb" "build/libs/Srg2Source-3.3-SNAPSHOT.jar" "4336d8b61899ee2c24b69b5464117030a2444d155b647f529af51d7fa290dd74" +setup_dep "forgeflower" "https://github.com/MinecraftForge/FernFlowerLegacy.git" "114aebe82cf40075c5c4f916c409b8aebf8096d5" "build/libs/fernflower-2.0-SNAPSHOT.jar" "c8b4a4a13a1158008aed46da2c805184078324718697f14a67f1778168579956" +setup_dep "mcinjector" "https://github.com/ModCoderPack/MCInjector.git" "7258466461baf7dc4f313b06b0d589407e4e1fba" "build/libs/mcinjector-3.4-SNAPSHOT.jar" "f88dbfb66f2bfe0fa9f18dfc8691573d0f462040e7907beb6d9d6b1175d98a92" +setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "5f11e2933f722000dbf742ffdd0d9c5ee8044bbb" "build/libs/Srg2Source-3.3-SNAPSHOT.jar" "82b380a3f8cb0184b75bc474ed4d0cae1586f70e6d2a2c16f025f4452374dcc2" # Required for RM setup_dep "mixingradle" "https://github.com/SpongePowered/MixinGradle.git" "52217aa8ca221dcd0b9fb657b037e663db808f38" "build/libs/mixingradle-0.4-SNAPSHOT.jar" "8b3508867128a5d564631635dff898a36f9aca8db54b7bb3af6f4924e3f4bead" -setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "17806f45d20d0b55bff70a616eaeb939bd6a543c" "build/libs/ForgeGradle-2.1-SNAPSHOT.jar" "071dafb1ae078a9c50944ffa3519cd51c9cf876b09d200a9e9be314d92faf983" -setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "build/libs/mixin-0.6.11-SNAPSHOT.jar" "8ec6ce24b8192f043976344305ba6afbc35b052056f1559ca5914a77c5eae71d" +setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "17806f45d20d0b55bff70a616eaeb939bd6a543c" "build/libs/ForgeGradle-2.1-SNAPSHOT.jar" "7f93a87e0030027916c713d47c91783d5662d2e66015a0698f1fc100d9e6e3dd" +setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "build/libs/mixin-0.6.11-SNAPSHOT.jar" "cb446b614ce34372fc2084de9bb16adc3182a6e96120fdb4bcae561e41303694" rm -rf tmp mkdir tmp From 9671ee605d80d7bf1f1d9e4a8f6e07a6e5d262cb Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Wed, 27 Sep 2017 00:16:39 +0200 Subject: [PATCH 18/53] =?UTF-8?q?Add=20360=C2=B0=20screenshot=20feature=20?= =?UTF-8?q?when=20pressing=20Ctrl=20+=20Screenshot=20Keybind?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/replaymod/extras/ReplayModExtras.java | 2 + .../AdvancedScreenshots.java | 93 +++++++++++++++++++ .../advancedscreenshots/ScreenshotWriter.java | 56 +++++++++++ .../replaymod/replay/InputReplayTimer.java | 6 +- .../events/ReplayDispatchKeypressesEvent.java | 9 ++ src/main/resources/META-INF/replaymod_at.cfg | 3 + 6 files changed, 168 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java create mode 100644 src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java create mode 100644 src/main/java/com/replaymod/replay/events/ReplayDispatchKeypressesEvent.java diff --git a/src/main/java/com/replaymod/extras/ReplayModExtras.java b/src/main/java/com/replaymod/extras/ReplayModExtras.java index 93ed038a..0e34b7c7 100644 --- a/src/main/java/com/replaymod/extras/ReplayModExtras.java +++ b/src/main/java/com/replaymod/extras/ReplayModExtras.java @@ -1,6 +1,7 @@ package com.replaymod.extras; import com.replaymod.core.ReplayMod; +import com.replaymod.extras.advancedscreenshots.AdvancedScreenshots; import com.replaymod.extras.playeroverview.PlayerOverview; import com.replaymod.extras.urischeme.UriSchemeExtra; import com.replaymod.extras.youtube.YoutubeUpload; @@ -27,6 +28,7 @@ public class ReplayModExtras { public static ReplayModExtras instance; private static final List> builtin = Arrays.asList( + AdvancedScreenshots.class, PlayerOverview.class, UriSchemeExtra.class, YoutubeUpload.class, diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java b/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java new file mode 100644 index 00000000..b3dd2ae1 --- /dev/null +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java @@ -0,0 +1,93 @@ +package com.replaymod.extras.advancedscreenshots; + +import com.replaymod.core.ReplayMod; +import com.replaymod.extras.Extra; +import com.replaymod.render.RenderSettings; +import com.replaymod.render.capturer.RenderInfo; +import com.replaymod.render.hooks.ChunkLoadingRenderGlobal; +import com.replaymod.render.rendering.Pipelines; +import com.replaymod.replay.events.ReplayDispatchKeypressesEvent; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiControls; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.util.ScreenShotHelper; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.lwjgl.input.Keyboard; +import org.lwjgl.util.Dimension; +import org.lwjgl.util.ReadableDimension; + +import java.io.File; + +public class AdvancedScreenshots implements Extra { + + private final Minecraft mc = Minecraft.getMinecraft(); + + @Override + public void register(ReplayMod mod) throws Exception { + MinecraftForge.EVENT_BUS.register(this); + } + + @SubscribeEvent + public void onDispatchKeypresses(ReplayDispatchKeypressesEvent.Pre event) { + int i = Keyboard.getEventKey() == 0 ? Keyboard.getEventCharacter() : Keyboard.getEventKey(); + + // all the conditions required to trigger a screenshot condensed in a single if statement + if (i != 0 && !Keyboard.isRepeatEvent() + && (!(mc.currentScreen instanceof GuiControls) || ((GuiControls) mc.currentScreen).time <= mc.getSystemTime() - 20L) + && Keyboard.getEventKeyState() + && i == mc.gameSettings.keyBindScreenshot.getKeyCode()) { + + if (GuiScreen.isCtrlKeyDown()) { + ReplayMod.instance.runLater(() -> { + // take 360° screenshot + File screenshotFolder = new File(mc.mcDataDir, "screenshots"); + screenshotFolder.mkdir(); + File screenshotFile = ScreenShotHelper.getTimestampedPNGFileForDirectory(screenshotFolder); + + int width = 8640; + int height = 4320; + + int displayWidthBefore = mc.displayWidth; + int displayHeightBefore = mc.displayHeight; + + ChunkLoadingRenderGlobal clrg = new ChunkLoadingRenderGlobal(mc.renderGlobal); + + Pipelines.newEquirectangularPipeline(new RenderInfo() { + @Override + public ReadableDimension getFrameSize() { + return new Dimension(width, height); + } + + @Override + public int getTotalFrames() { + return 1; + } + + @Override + public float updateForNextFrame() { + return mc.timer.renderPartialTicks; + } + + @Override + public RenderSettings getRenderSettings() { + return new RenderSettings( + null, null, width, height, 0, 0, null, + true, true, true, true, null, + false, RenderSettings.AntiAliasing.NONE, null, null, false + ); + } + }, new ScreenshotWriter(screenshotFile)).run(); + + clrg.uninstall(); + + // the Equirectangular rendering changes mc.displayWidth and mc.displayHeight, + // so we have to reset it to the previous value + mc.resize(displayWidthBefore, displayHeightBefore); + }); + + event.setCanceled(true); + } + } + } +} diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java new file mode 100644 index 00000000..d487b08b --- /dev/null +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java @@ -0,0 +1,56 @@ +package com.replaymod.extras.advancedscreenshots; + +import com.replaymod.core.ReplayMod; +import com.replaymod.core.utils.Utils; +import com.replaymod.extras.ReplayModExtras; +import com.replaymod.render.frame.RGBFrame; +import com.replaymod.render.rendering.FrameConsumer; +import com.replaymod.replay.ReplayModReplay; +import net.minecraft.crash.CrashReport; +import org.lwjgl.util.ReadableDimension; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; + +public class ScreenshotWriter implements FrameConsumer { + + private final File outputFile; + + public ScreenshotWriter(File outputFile) { + this.outputFile = outputFile; + } + + @Override + public void consume(RGBFrame frame) { + try { + final ReadableDimension frameSize = frame.getSize(); + + BufferedImage img = new BufferedImage(frameSize.getWidth(), frameSize.getHeight(), BufferedImage.TYPE_INT_RGB); + for (int y = 0; y < frameSize.getHeight(); y++) { + for (int x = 0; x < frameSize.getWidth(); x++) { + byte r = frame.getByteBuffer().get(); + byte g = frame.getByteBuffer().get(); + byte b = frame.getByteBuffer().get(); + + int color = ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff); + img.setRGB(x, y, color); + } + } + + ImageIO.write(img, "PNG", outputFile); + } catch (Throwable t) { + CrashReport report = CrashReport.makeCrashReport(t, "Exporting frame"); + + ReplayMod.instance.runLater(() -> Utils.error(ReplayModExtras.LOGGER, + ReplayModReplay.instance.getReplayHandler().getOverlay(), + report, null)); + } + } + + @Override + public void close() throws IOException { + + } +} diff --git a/src/main/java/com/replaymod/replay/InputReplayTimer.java b/src/main/java/com/replaymod/replay/InputReplayTimer.java index da1bd5fb..250ba766 100644 --- a/src/main/java/com/replaymod/replay/InputReplayTimer.java +++ b/src/main/java/com/replaymod/replay/InputReplayTimer.java @@ -3,6 +3,7 @@ package com.replaymod.replay; import com.replaymod.core.utils.WrappedTimer; import com.replaymod.replay.camera.CameraController; import com.replaymod.replay.camera.CameraEntity; +import com.replaymod.replay.events.ReplayDispatchKeypressesEvent; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.settings.GameSettings; @@ -11,6 +12,7 @@ import net.minecraft.crash.CrashReport; import net.minecraft.util.ReportedException; import net.minecraft.util.Timer; import net.minecraftforge.client.ForgeHooksClient; +import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.FMLCommonHandler; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; @@ -122,7 +124,9 @@ public class InputReplayTimer extends WrappedTimer { } // Twitch, screenshot, fullscreen, etc. (stuff that works everywhere) - mc.dispatchKeypresses(); + if (!MinecraftForge.EVENT_BUS.post(new ReplayDispatchKeypressesEvent.Pre())) { + mc.dispatchKeypresses(); + } if (pressed) { // This might be subject to change as vanilla shaders are still kinda unused in 1.8 diff --git a/src/main/java/com/replaymod/replay/events/ReplayDispatchKeypressesEvent.java b/src/main/java/com/replaymod/replay/events/ReplayDispatchKeypressesEvent.java new file mode 100644 index 00000000..15b23352 --- /dev/null +++ b/src/main/java/com/replaymod/replay/events/ReplayDispatchKeypressesEvent.java @@ -0,0 +1,9 @@ +package com.replaymod.replay.events; + +import net.minecraftforge.fml.common.eventhandler.Cancelable; +import net.minecraftforge.fml.common.eventhandler.Event; + +@Cancelable +public abstract class ReplayDispatchKeypressesEvent extends Event { + public static class Pre extends ReplayDispatchKeypressesEvent {} +} diff --git a/src/main/resources/META-INF/replaymod_at.cfg b/src/main/resources/META-INF/replaymod_at.cfg index 59d3b95e..08652131 100644 --- a/src/main/resources/META-INF/replaymod_at.cfg +++ b/src/main/resources/META-INF/replaymod_at.cfg @@ -117,5 +117,8 @@ public net.minecraft.client.renderer.GlStateManager$FogState public net.minecraft.client.renderer.GlStateManager$BooleanState public net.minecraft.client.renderer.GlStateManager$BooleanState * +# ScreenShotHelper +public net.minecraft.util.ScreenShotHelper func_74290_a(Ljava/io/File;)Ljava/io/File; # getTimestampedPNGFileForDirectory + # Example # public net.minecraft.package.ClassName func_some_id(Ljava/lang/Class;IZS)V # methodName From d2d7a36139968c9c8889978bc686295b4e96f568 Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Wed, 27 Sep 2017 13:13:20 +0200 Subject: [PATCH 19/53] Added post-screenshot GUI --- .../com/replaymod/extras/ReplayModExtras.java | 1 + .../java/com/replaymod/extras/Setting.java | 8 ++ .../AdvancedScreenshots.java | 106 ++++++++-------- .../GuiUploadScreenshot.java | 114 ++++++++++++++++++ .../events/ReplayDispatchKeypressesEvent.java | 3 +- 5 files changed, 182 insertions(+), 50 deletions(-) create mode 100644 src/main/java/com/replaymod/extras/Setting.java create mode 100644 src/main/java/com/replaymod/extras/advancedscreenshots/GuiUploadScreenshot.java diff --git a/src/main/java/com/replaymod/extras/ReplayModExtras.java b/src/main/java/com/replaymod/extras/ReplayModExtras.java index 0e34b7c7..463e8805 100644 --- a/src/main/java/com/replaymod/extras/ReplayModExtras.java +++ b/src/main/java/com/replaymod/extras/ReplayModExtras.java @@ -45,6 +45,7 @@ public class ReplayModExtras { @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { LOGGER = event.getModLog(); + ReplayMod.instance.getSettingsRegistry().register(Setting.class); } @Mod.EventHandler diff --git a/src/main/java/com/replaymod/extras/Setting.java b/src/main/java/com/replaymod/extras/Setting.java new file mode 100644 index 00000000..2f69e4c1 --- /dev/null +++ b/src/main/java/com/replaymod/extras/Setting.java @@ -0,0 +1,8 @@ +package com.replaymod.extras; + +import com.replaymod.core.SettingsRegistry; + +public final class Setting { + public static final SettingsRegistry.SettingKey SKIP_POST_SCREENSHOT_GUI = + new SettingsRegistry.SettingKeys<>("advanced", "skipPostScreenshotGui", null, false); +} diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java b/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java index b3dd2ae1..ee55cd2c 100644 --- a/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java @@ -6,6 +6,7 @@ import com.replaymod.render.RenderSettings; import com.replaymod.render.capturer.RenderInfo; import com.replaymod.render.hooks.ChunkLoadingRenderGlobal; import com.replaymod.render.rendering.Pipelines; +import com.replaymod.replay.ReplayModReplay; import com.replaymod.replay.events.ReplayDispatchKeypressesEvent; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiControls; @@ -21,73 +22,80 @@ import java.io.File; public class AdvancedScreenshots implements Extra { + private ReplayMod mod; + private final Minecraft mc = Minecraft.getMinecraft(); @Override public void register(ReplayMod mod) throws Exception { + this.mod = mod; MinecraftForge.EVENT_BUS.register(this); } @SubscribeEvent public void onDispatchKeypresses(ReplayDispatchKeypressesEvent.Pre event) { - int i = Keyboard.getEventKey() == 0 ? Keyboard.getEventCharacter() : Keyboard.getEventKey(); + int keyCode = Keyboard.getEventKey() == 0 ? Keyboard.getEventCharacter() : Keyboard.getEventKey(); // all the conditions required to trigger a screenshot condensed in a single if statement - if (i != 0 && !Keyboard.isRepeatEvent() + if (keyCode != 0 && !Keyboard.isRepeatEvent() && (!(mc.currentScreen instanceof GuiControls) || ((GuiControls) mc.currentScreen).time <= mc.getSystemTime() - 20L) && Keyboard.getEventKeyState() - && i == mc.gameSettings.keyBindScreenshot.getKeyCode()) { + && keyCode == mc.gameSettings.keyBindScreenshot.getKeyCode()) { if (GuiScreen.isCtrlKeyDown()) { - ReplayMod.instance.runLater(() -> { - // take 360° screenshot - File screenshotFolder = new File(mc.mcDataDir, "screenshots"); - screenshotFolder.mkdir(); - File screenshotFile = ScreenShotHelper.getTimestampedPNGFileForDirectory(screenshotFolder); - - int width = 8640; - int height = 4320; - - int displayWidthBefore = mc.displayWidth; - int displayHeightBefore = mc.displayHeight; - - ChunkLoadingRenderGlobal clrg = new ChunkLoadingRenderGlobal(mc.renderGlobal); - - Pipelines.newEquirectangularPipeline(new RenderInfo() { - @Override - public ReadableDimension getFrameSize() { - return new Dimension(width, height); - } - - @Override - public int getTotalFrames() { - return 1; - } - - @Override - public float updateForNextFrame() { - return mc.timer.renderPartialTicks; - } - - @Override - public RenderSettings getRenderSettings() { - return new RenderSettings( - null, null, width, height, 0, 0, null, - true, true, true, true, null, - false, RenderSettings.AntiAliasing.NONE, null, null, false - ); - } - }, new ScreenshotWriter(screenshotFile)).run(); - - clrg.uninstall(); - - // the Equirectangular rendering changes mc.displayWidth and mc.displayHeight, - // so we have to reset it to the previous value - mc.resize(displayWidthBefore, displayHeightBefore); - }); + ReplayMod.instance.runLater(this::createEquirectangularScreenshot); event.setCanceled(true); } } } + + private void createEquirectangularScreenshot() { + // take 360° screenshot + File screenshotFolder = new File(mc.mcDataDir, "screenshots"); + screenshotFolder.mkdir(); + File screenshotFile = ScreenShotHelper.getTimestampedPNGFileForDirectory(screenshotFolder); + + int width = 8640; + int height = 4320; + + int displayWidthBefore = mc.displayWidth; + int displayHeightBefore = mc.displayHeight; + + ChunkLoadingRenderGlobal clrg = new ChunkLoadingRenderGlobal(mc.renderGlobal); + + Pipelines.newEquirectangularPipeline(new RenderInfo() { + @Override + public ReadableDimension getFrameSize() { + return new Dimension(width, height); + } + + @Override + public int getTotalFrames() { + return 1; + } + + @Override + public float updateForNextFrame() { + return mc.timer.renderPartialTicks; + } + + @Override + public RenderSettings getRenderSettings() { + return new RenderSettings( + null, null, width, height, 0, 0, null, + true, true, true, true, null, + false, RenderSettings.AntiAliasing.NONE, null, null, false + ); + } + }, new ScreenshotWriter(screenshotFile)).run(); + + clrg.uninstall(); + + // the Equirectangular rendering changes mc.displayWidth and mc.displayHeight, + // so we have to reset it to the previous value + mc.resize(displayWidthBefore, displayHeightBefore); + + new GuiUploadScreenshot(ReplayModReplay.instance.getReplayHandler().getOverlay(), mod, screenshotFile).open(); + } } diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/GuiUploadScreenshot.java b/src/main/java/com/replaymod/extras/advancedscreenshots/GuiUploadScreenshot.java new file mode 100644 index 00000000..828d7f65 --- /dev/null +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/GuiUploadScreenshot.java @@ -0,0 +1,114 @@ +package com.replaymod.extras.advancedscreenshots; + +import com.replaymod.core.ReplayMod; +import com.replaymod.core.SettingsRegistry; +import com.replaymod.extras.Setting; +import de.johni0702.minecraft.gui.container.GuiContainer; +import de.johni0702.minecraft.gui.container.GuiPanel; +import de.johni0702.minecraft.gui.element.GuiButton; +import de.johni0702.minecraft.gui.element.GuiCheckbox; +import de.johni0702.minecraft.gui.element.GuiLabel; +import de.johni0702.minecraft.gui.layout.HorizontalLayout; +import de.johni0702.minecraft.gui.layout.VerticalLayout; +import de.johni0702.minecraft.gui.popup.AbstractGuiPopup; +import org.lwjgl.util.ReadableColor; + +import java.awt.*; +import java.io.File; +import java.io.IOException; +import java.net.URI; + +public class GuiUploadScreenshot extends AbstractGuiPopup { + + public final ReplayMod mod; + + public final File screenshotFile; + + public final GuiLabel successLabel = new GuiLabel() + .setI18nText("replaymod.gui.advancedscreenshots.finished.description.360") + .setColor(ReadableColor.BLACK); + + public final GuiLabel veerLabel = new GuiLabel() + .setI18nText("replaymod.gui.advancedscreenshots.finished.description.veer") + .setColor(ReadableColor.BLACK); + + public final GuiButton veerUploadButton = new GuiButton() + .setSize(150, 20) + .setI18nLabel("replaymod.gui.advancedscreenshots.finished.upload.veer"); + + public final GuiButton showOnDiskButton = new GuiButton() + .setSize(150, 20) + .setI18nLabel("replaymod.gui.advancedscreenshots.finished.showfile"); + + public final GuiButton closeButton = new GuiButton() + .setSize(150, 20) + .setI18nLabel("replaymod.gui.close"); + + public final GuiCheckbox neverOpenCheckbox = new GuiCheckbox(); + + public final GuiLabel neverOpenLabel = new GuiLabel() + .setI18nText("replaymod.gui.notagain") + .setColor(ReadableColor.BLACK); + + public final GuiPanel checkboxPanel = GuiPanel.builder() + .layout(new HorizontalLayout(HorizontalLayout.Alignment.RIGHT).setSpacing(5)) + .with(neverOpenCheckbox, new HorizontalLayout.Data(0.5)) + .with(neverOpenLabel, new HorizontalLayout.Data(0.5)) + .build(); + + public GuiUploadScreenshot(GuiContainer container, ReplayMod mod, File screenshotFile) { + super(container); + this.mod = mod; + this.screenshotFile = screenshotFile; + + veerUploadButton.onClick(() -> { + try { + Desktop.getDesktop().browse(URI.create("https://veer.tv/upload")); + } catch (IOException e) { + e.printStackTrace(); + } + }); + + showOnDiskButton.onClick(() -> { + try { + Desktop.getDesktop().browse(URI.create("file://" + screenshotFile.getAbsolutePath())); + } catch (IOException e) { + e.printStackTrace(); + } + }); + + closeButton.onClick(() -> { + if (neverOpenCheckbox.isChecked()) { + SettingsRegistry settingsRegistry = mod.getSettingsRegistry(); + settingsRegistry.set(Setting.SKIP_POST_SCREENSHOT_GUI, true); + settingsRegistry.save(); + } + close(); + }); + + popup.addElements(new VerticalLayout.Data(0.5), + successLabel, + veerLabel, + veerUploadButton, + showOnDiskButton, + closeButton); + + popup.addElements(new VerticalLayout.Data(1), + checkboxPanel); + + popup.setLayout(new VerticalLayout().setSpacing(5)); + } + + @Override + protected void open() { + if (mod.getSettingsRegistry().get(Setting.SKIP_POST_SCREENSHOT_GUI)) { + return; + } + super.open(); + } + + @Override + protected GuiUploadScreenshot getThis() { + return this; + } +} diff --git a/src/main/java/com/replaymod/replay/events/ReplayDispatchKeypressesEvent.java b/src/main/java/com/replaymod/replay/events/ReplayDispatchKeypressesEvent.java index 15b23352..d3547127 100644 --- a/src/main/java/com/replaymod/replay/events/ReplayDispatchKeypressesEvent.java +++ b/src/main/java/com/replaymod/replay/events/ReplayDispatchKeypressesEvent.java @@ -3,7 +3,8 @@ package com.replaymod.replay.events; import net.minecraftforge.fml.common.eventhandler.Cancelable; import net.minecraftforge.fml.common.eventhandler.Event; -@Cancelable public abstract class ReplayDispatchKeypressesEvent extends Event { + + @Cancelable public static class Pre extends ReplayDispatchKeypressesEvent {} } From 98098ea2ed37b4bcb669b3ffd42d4ee603d6c25b Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Wed, 27 Sep 2017 13:13:49 +0200 Subject: [PATCH 20/53] Update language submodule --- src/main/resources/assets/replaymod/lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/assets/replaymod/lang b/src/main/resources/assets/replaymod/lang index 8d77fe06..94282826 160000 --- a/src/main/resources/assets/replaymod/lang +++ b/src/main/resources/assets/replaymod/lang @@ -1 +1 @@ -Subproject commit 8d77fe0697691f0b682f422e268b40383468f31d +Subproject commit 942828260079edb1e35b2e500d6763c5234f6bbb From a45dda3169c6a3fa7deb7257d808c733faac9ae1 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 3 Oct 2017 11:18:15 +0200 Subject: [PATCH 21/53] Update reproducible builds plugin --- gradle/reprod/checksums.txt | 4 ++-- gradle/reprod/init.gradle | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index e1746440..784eb35a 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -10,8 +10,8 @@ cd62bdfd946618c26b49451084361edf79cd6ddb3eae1a485ecb05319295896d /com/github/abr f00facfc855e7d5517fc57553614b4690e61df9ab44f6e93ff583ae201b5a3aa /com/github/jengelman/gradle/plugins/shadow/1.2.3/shadow-1.2.3.pom 27fc3b7f0436f532c9d798dbc006d7e0b9b7c9b436f8d977f122665c633e9892 /com/github/johni0702/gradle-ecj-plugin/795736c/gradle-ecj-plugin-795736c.jar f98b3e07c6b6a32dd6f9f70f5cef4ac9be42a9a6c850ceb8f33767da94706635 /com/github/johni0702/gradle-ecj-plugin/795736c/gradle-ecj-plugin-795736c.pom -1e7bfcc83540c5af0fbab37ce316711380d142108f96db380e18a11e111cccf0 /com/github/johni0702/gradle-reproducible-builds-plugin/4989ae9/gradle-reproducible-builds-plugin-4989ae9.jar -8fe6e84a98417cbdc7df47b3afd5c368d7fb3139b4f0e16ac6f1496d85c24b18 /com/github/johni0702/gradle-reproducible-builds-plugin/4989ae9/gradle-reproducible-builds-plugin-4989ae9.pom +11f4032947acc6ef1be538031cb0ea4d2fdfd50d97a0391af27bff3274a239f2 /com/github/johni0702/gradle-reproducible-builds-plugin/a524ada/gradle-reproducible-builds-plugin-a524ada.jar +03e3dff7f9b3ac6cd3b87684fd36a2f6996a4b164a2f8fab9c22c01cb7bfb84b /com/github/johni0702/gradle-reproducible-builds-plugin/a524ada/gradle-reproducible-builds-plugin-a524ada.pom 75ccc0e24d37ed5b8916e1bcffad1e067c2b1cfa21b635287f968db5c3c1963a /com/github/jponge/lzma-java/1.3/lzma-java-1.3.jar fbcba81b21a8bc3c0761e4798fa05285444b43d681c03c9af49f9b2e1ecb0184 /com/github/jponge/lzma-java/1.3/lzma-java-1.3.pom f38a7028bbac3f6c6b15cb40d533c96c6e8fdb54fc93d922cfa1931b25fa8c5c /com/github/replaymod/ReplayStudio/2df8d8b/ReplayStudio-2df8d8b.jar diff --git a/gradle/reprod/init.gradle b/gradle/reprod/init.gradle index 51014bc8..527f8f9f 100644 --- a/gradle/reprod/init.gradle +++ b/gradle/reprod/init.gradle @@ -7,7 +7,7 @@ initscript { maven { url 'http://jitpack.io' } } dependencies { - classpath 'com.github.johni0702:gradle-reproducible-builds-plugin:4989ae9' + classpath 'com.github.johni0702:gradle-reproducible-builds-plugin:a524ada' classpath 'com.github.johni0702:gradle-ecj-plugin:795736c' } } From c34b059ed94c362fa121f5790f7d821fab460edf Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 3 Oct 2017 11:18:42 +0200 Subject: [PATCH 22/53] Replace manual shade patch for FG with reproducible builds plugin --- ...Manually-force-reproducible-archives.patch | 53 ------------------- gradle/reprod/setup.sh | 2 +- 2 files changed, 1 insertion(+), 54 deletions(-) delete mode 100644 gradle/reprod/patches/forgegradle/0002-Manually-force-reproducible-archives.patch diff --git a/gradle/reprod/patches/forgegradle/0002-Manually-force-reproducible-archives.patch b/gradle/reprod/patches/forgegradle/0002-Manually-force-reproducible-archives.patch deleted file mode 100644 index 70fdbe7c..00000000 --- a/gradle/reprod/patches/forgegradle/0002-Manually-force-reproducible-archives.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 2f3f4c59239b66e4ce09d2bbef39d7ce4eda44e9 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 7 Aug 2017 19:53:46 +0200 -Subject: [PATCH 2/5] Manually force reproducible archives - -For some reason shading one of the libs isn't done in an -reproducible way (produces different jar whenever jar task is run). ---- - build.gradle | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -diff --git a/build.gradle b/build.gradle -index 468733e..91ea99a 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -122,6 +122,10 @@ processResources { - } - } - -+import java.util.jar.JarEntry -+import java.util.jar.JarFile -+import java.util.jar.JarOutputStream -+ - jar { - - configurations.shade.each { dep -> -@@ -136,6 +140,23 @@ jar { - attributes 'group':project.group - attributes 'Implementation-Version': project.version + getGitHash() - } -+ -+ // For some reason using gradle's reproducibleFileOrder and preserveFileTimestamps just isn't enough -+ doLast { -+ File newFile = new File(archivePath.parent, 'tmp-' + archiveName) -+ newFile.withOutputStream { fout -> -+ JarOutputStream out = new JarOutputStream(fout) -+ JarFile jf = new JarFile(archivePath) -+ jf.entries().unique {it.name}.sort {it.name}.each { -+ def copy = new JarEntry(it.name) -+ copy.time = 0 -+ out.putNextEntry(copy) -+ out << jf.getInputStream(it) -+ } -+ out.finish() -+ } -+ newFile.renameTo archivePath -+ } - } - - javadoc { --- -2.5.5 - diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index 0224f28e..63aa00dc 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -83,7 +83,7 @@ setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "5f11e # Required for RM setup_dep "mixingradle" "https://github.com/SpongePowered/MixinGradle.git" "52217aa8ca221dcd0b9fb657b037e663db808f38" "build/libs/mixingradle-0.4-SNAPSHOT.jar" "8b3508867128a5d564631635dff898a36f9aca8db54b7bb3af6f4924e3f4bead" -setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "17806f45d20d0b55bff70a616eaeb939bd6a543c" "build/libs/ForgeGradle-2.1-SNAPSHOT.jar" "7f93a87e0030027916c713d47c91783d5662d2e66015a0698f1fc100d9e6e3dd" +setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "17806f45d20d0b55bff70a616eaeb939bd6a543c" "build/libs/ForgeGradle-2.1-SNAPSHOT.jar" "400f0ca3adf6a129926ec5d3af5495258ad6ec0f7951ba3b25c10ced211bc1b2" setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "build/libs/mixin-0.6.11-SNAPSHOT.jar" "cb446b614ce34372fc2084de9bb16adc3182a6e96120fdb4bcae561e41303694" rm -rf tmp From cceed1258df9c6394d19e4c19688264649b17bfc Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 3 Oct 2017 14:01:20 +0200 Subject: [PATCH 23/53] Apply externally generated signature to replaymod.jar if requested --- gradle/reprod/setup.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index 63aa00dc..b8230679 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -99,3 +99,20 @@ popd popd # Back to root ./gradlew -Preprod $PROXY_SETTINGS -I gradle/reprod/init.gradle "$@" + +if [ "$SIGNED_JAR" == "1" ]; then + echo "Trying fetch signature for resulting jar file.." + # Note: This requires there to be one and only one jar file (ignoring source artifacts) + jar="build/libs/$(ls build/libs | grep -v sources)" + jar_hash=$(sha256val "$jar") + pushd gradle/reprod/tmp + mkdir sign_tmp + pushd sign_tmp + # Signatures are generated using: + # jarsigner -sigfile johni -signedjar signed.jar unsigned.jar replaymod + # jar xf signed.jar META-INF/MANIFEST.MF META-INF/JOHNI.SF META-INF/JOHNI.RSA + # tar cJf signature.tar.xz META-INF + wget -O - "https://www.johni0702.de/replaymod/signature/$jar_hash" | tar xJ + jar uMf "../../../../$jar" META-INF/ + popd +fi From c07e08386d5c6abe33f719793600cf2787d8660a Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 3 Oct 2017 14:36:51 +0200 Subject: [PATCH 24/53] Fetch pre-built artifact if available --- gradle/reprod/setup.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index b8230679..5c8a1d64 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -24,6 +24,19 @@ setup_dep () { [ -f "deps/$dep.jar" ] && [ "*" == "$jarhash" ] && return rm -rf "deps/$dep.jar" + if [ "*" != "$jarhash" ] && [ "$OFFLINE" != "1" ]; then + # Try to fetch the pre-built artifact + if wget -O "deps/dl.tmp" "https://www.johni0702.de/replaymod/artifact/$jarhash"; then + # Verify downloaded jar file + if [ "$(sha256val "deps/dl.tmp")" == "$jarhash" ]; then + # Got valid pre-built artifact, use it + mv "deps/dl.tmp" "deps/$dep.jar" + return + fi + fi + fi + + if [ ! -d "deps/$dep" ] || [ "$(git -C "deps/$dep" rev-parse $commit^{commit})" != "$commit" ]; then rm -rf "deps/$dep" mkdir -p "deps/$dep" From ba4aaa36544da7eaaa24e600e0692d38f3574108 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 3 Oct 2017 18:00:24 +0200 Subject: [PATCH 25/53] Produce pom.xml instead of shading deps of deps --- gradle/reprod/init.gradle | 19 +++++++ ...ings-because-we-don-t-include-deps-a.patch | 57 ------------------- ...APSHOT-deps-with-manually-built-ones.patch | 14 ++--- ...n-essential-parts-and-shade-manually.patch | 3 +- ...place-fernflower-SNAPSHOT-depencency.patch | 4 +- ...ipt-dependencies-with-manually-built.patch | 21 +++---- ...ce-mixin-dep-with-manually-built-one.patch | 2 +- .../srg2source/0003-Manually-shade-deps.patch | 25 -------- gradle/reprod/setup.sh | 50 ++++++++++------ 9 files changed, 74 insertions(+), 121 deletions(-) delete mode 100644 gradle/reprod/patches/forgegradle/0004-Shade-all-the-things-because-we-don-t-include-deps-a.patch delete mode 100644 gradle/reprod/patches/srg2source/0003-Manually-shade-deps.patch diff --git a/gradle/reprod/init.gradle b/gradle/reprod/init.gradle index 527f8f9f..37fc624a 100644 --- a/gradle/reprod/init.gradle +++ b/gradle/reprod/init.gradle @@ -27,8 +27,27 @@ allprojects { repositories.all convertRepoToHttp apply plugin: de.johni0702.gradle.ReproducibleBuildsPlugin, to: project apply plugin: xink.gradle.ecj.EcjPlugin, to: project + apply plugin: 'maven', to: project ecj { warn = ['none'] } + + repositories { + maven { + url(project.file('gradle/reprod').exists() ? 'gradle/reprod/deps/repo' : '../repo') + } + } + task createPom { + doLast { + pom { + project { + groupId 'reprod' + artifactId project.file('.').name + version '0' + } + }.writeTo("pom.xml") + } + } + build.dependsOn createPom } diff --git a/gradle/reprod/patches/forgegradle/0004-Shade-all-the-things-because-we-don-t-include-deps-a.patch b/gradle/reprod/patches/forgegradle/0004-Shade-all-the-things-because-we-don-t-include-deps-a.patch deleted file mode 100644 index 577b2408..00000000 --- a/gradle/reprod/patches/forgegradle/0004-Shade-all-the-things-because-we-don-t-include-deps-a.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 130d406cbe105303f9b14c342f02fc9a20782e32 Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Mon, 7 Aug 2017 19:54:54 +0200 -Subject: [PATCH 4/5] Shade all the things (because we don't include deps as - maven deps) - ---- - build.gradle | 26 +++++++++++++------------- - 1 file changed, 13 insertions(+), 13 deletions(-) - -diff --git a/build.gradle b/build.gradle -index 8959f8f..0bf7941 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -62,26 +62,26 @@ dependencies { - compile gradleApi() - - // moved to the beginning to be the overrider -- compile 'org.ow2.asm:asm-debug-all:5.0.3' -- compile 'com.google.guava:guava:18.0' -+ shade 'org.ow2.asm:asm-debug-all:5.0.3' -+ shade 'com.google.guava:guava:18.0' - -- compile 'net.sf.opencsv:opencsv:2.3' // reading CSVs.. also used by SpecialSource -- compile 'com.cloudbees:diff4j:1.1' // for difing and patching -- compile 'com.github.abrarsyed.jastyle:jAstyle:1.3' // formatting -- compile 'net.sf.trove4j:trove4j:2.1.0' // because its awesome. -+ shade 'net.sf.opencsv:opencsv:2.3' // reading CSVs.. also used by SpecialSource -+ shade 'com.cloudbees:diff4j:1.1' // for difing and patching -+ shade 'com.github.abrarsyed.jastyle:jAstyle:1.3' // formatting -+ shade 'net.sf.trove4j:trove4j:2.1.0' // because its awesome. - -- compile 'com.github.jponge:lzma-java:1.3' // replaces the LZMA binary -- compile 'com.nothome:javaxdelta:2.0.1' // GDIFF implementation for BinPatches -- compile 'com.google.code.gson:gson:2.2.4' // Used instead of Argo for buuilding changelog. -- compile 'com.github.tony19:named-regexp:0.2.3' // 1.7 Named regexp features -- compile 'net.minecraftforge:fernflower:2.0-SNAPSHOT' // Fernflower Forge edition -+ shade 'com.github.jponge:lzma-java:1.3' // replaces the LZMA binary -+ shade 'com.nothome:javaxdelta:2.0.1' // GDIFF implementation for BinPatches -+ shade 'com.google.code.gson:gson:2.2.4' // Used instead of Argo for buuilding changelog. -+ shade 'com.github.tony19:named-regexp:0.2.3' // 1.7 Named regexp features -+ shade 'net.minecraftforge:fernflower:2.0-SNAPSHOT' // Fernflower Forge edition - - shade 'net.md-5:SpecialSource:1.7.4' // deobf and reobs - // compile 'net.md-5:SpecialSource:1.7.4' // when md5 publishes - - // because curse -- compile 'org.apache.httpcomponents:httpclient:4.3.3' -- compile 'org.apache.httpcomponents:httpmime:4.3.3' -+ shade 'org.apache.httpcomponents:httpclient:4.3.3' -+ shade 'org.apache.httpcomponents:httpmime:4.3.3' - - // mcp stuff - shade 'de.oceanlabs.mcp:RetroGuard:3.6.6' --- -2.5.5 - diff --git a/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch b/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch index a138c5a4..70ec92f9 100644 --- a/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch +++ b/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch @@ -12,11 +12,11 @@ index bfadecd..774a015 100644 --- a/build.gradle +++ b/build.gradle @@ -67,7 +67,7 @@ dependencies { - shade 'com.nothome:javaxdelta:2.0.1' // GDIFF implementation for BinPatches - shade 'com.google.code.gson:gson:2.2.4' // Used instead of Argo for buuilding changelog. - shade 'com.github.tony19:named-regexp:0.2.3' // 1.7 Named regexp features -- shade 'net.minecraftforge:fernflower:2.0-SNAPSHOT' // Fernflower Forge edition -+ shade files('../forgeflower.jar') // Fernflower Forge edition + compile 'com.nothome:javaxdelta:2.0.1' // GDIFF implementation for BinPatches + compile 'com.google.code.gson:gson:2.2.4' // Used instead of Argo for buuilding changelog. + compile 'com.github.tony19:named-regexp:0.2.3' // 1.7 Named regexp features +- compile 'net.minecraftforge:fernflower:2.0-SNAPSHOT' // Fernflower Forge edition ++ compile 'reprod:forgeflower:0' // Fernflower Forge edition shade 'net.md-5:SpecialSource:1.7.4' // deobf and reobs // compile 'net.md-5:SpecialSource:1.7.4' // when md5 publishes @@ -26,8 +26,8 @@ index bfadecd..774a015 100644 shade 'de.oceanlabs.mcp:RetroGuard:3.6.6' - shade 'de.oceanlabs.mcp:mcinjector:3.4-SNAPSHOT' - shade 'net.minecraftforge.srg2source:Srg2Source:3.3-SNAPSHOT' -+ shade files('../mcinjector.jar') -+ shade files('../srg2source.jar') ++ shade 'reprod:mcinjector:0' ++ shade 'reprod:srg2source:0' //Stuff used in the GradleStart classes compileOnly 'com.mojang:authlib:1.5.16' diff --git a/gradle/reprod/patches/mcinjector/0001-Remove-non-essential-parts-and-shade-manually.patch b/gradle/reprod/patches/mcinjector/0001-Remove-non-essential-parts-and-shade-manually.patch index b84754e6..a24af1a7 100644 --- a/gradle/reprod/patches/mcinjector/0001-Remove-non-essential-parts-and-shade-manually.patch +++ b/gradle/reprod/patches/mcinjector/0001-Remove-non-essential-parts-and-shade-manually.patch @@ -27,11 +27,10 @@ index 2e5f949..b6c63bb 100644 apply plugin: 'maven' group = 'de.oceanlabs.mcp' -@@ -22,93 +12,13 @@ repositories { +@@ -22,93 +12,12 @@ repositories { } jar { -+ from ({files(configurations.compile).collect {it.isDirectory() ? filesTree(it) : zipTree(it)}}) manifest.attributes('Main-Class': 'de.oceanlabs.mcp.mcinjector.MCInjector') } -fatJar { diff --git a/gradle/reprod/patches/mixin/0005-Replace-fernflower-SNAPSHOT-depencency.patch b/gradle/reprod/patches/mixin/0005-Replace-fernflower-SNAPSHOT-depencency.patch index c78662d2..5393e88a 100644 --- a/gradle/reprod/patches/mixin/0005-Replace-fernflower-SNAPSHOT-depencency.patch +++ b/gradle/reprod/patches/mixin/0005-Replace-fernflower-SNAPSHOT-depencency.patch @@ -17,8 +17,8 @@ index f8598a3..e9a965b 100644 fernflowerCompile 'com.google.guava:guava:17.0' - fernflowerCompile 'org.jetbrains.java.decompiler:fernflower:sponge-SNAPSHOT' - compile 'org.jetbrains.java.decompiler:fernflower:sponge-SNAPSHOT' -+ fernflowerCompile files('../fernflower.jar') -+ compile files('../fernflower.jar') ++ fernflowerCompile 'reprod:fernflower:0' ++ compile 'reprod:fernflower:0' compile('net.minecraft:launchwrapper:1.11') { exclude module: 'lwjgl' diff --git a/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch b/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch index 492f2a66..09a0dc0c 100644 --- a/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch +++ b/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch @@ -11,12 +11,12 @@ diff --git a/build.gradle b/build.gradle index ee24828..42d0607 100755 --- a/build.gradle +++ b/build.gradle -@@ -1,24 +1,9 @@ +@@ -1,24 +1,17 @@ import groovy.json.JsonOutput buildscript { -- repositories { -- mavenCentral() + repositories { + mavenCentral() - maven { - name = "forge" - url = "http://files.minecraftforge.net/maven" @@ -25,16 +25,17 @@ index ee24828..42d0607 100755 - name = "sponge" - url = "https://repo.spongepowered.org/maven" - } -- maven { -- name = "sonatype" -- url = "https://oss.sonatype.org/content/repositories/snapshots/" -- } -- } + maven { + name = "sonatype" + url = "https://oss.sonatype.org/content/repositories/snapshots/" + } ++ maven { url 'gradle/reprod/deps/repo' } + } dependencies { - classpath 'net.minecraftforge.gradle:ForgeGradle:2.0-SNAPSHOT' - classpath 'org.spongepowered:mixingradle:0.3-SNAPSHOT' -+ classpath files('gradle/reprod/deps/forgegradle.jar') -+ classpath files('gradle/reprod/deps/mixingradle.jar') ++ classpath 'reprod:forgegradle:0' ++ classpath 'reprod:mixingradle:0' } } diff --git a/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch b/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch index 3ecc40c5..7cb7fcd8 100644 --- a/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch +++ b/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch @@ -16,7 +16,7 @@ index 42d0607..bfa3914 100755 compile 'org.projectlombok:lombok:1.16.4' - compile 'org.spongepowered:mixin:0.6.8-SNAPSHOT' -+ shade files('gradle/reprod/deps/mixin.jar') ++ 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' diff --git a/gradle/reprod/patches/srg2source/0003-Manually-shade-deps.patch b/gradle/reprod/patches/srg2source/0003-Manually-shade-deps.patch deleted file mode 100644 index dda26a73..00000000 --- a/gradle/reprod/patches/srg2source/0003-Manually-shade-deps.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7266eb65165cfe18ea21a3c183da4efc37ff54cf Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Sat, 26 Aug 2017 17:46:46 +0200 -Subject: [PATCH] Manually shade deps - ---- - build.gradle | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/build.gradle b/build.gradle -index eefeafe..368f6be 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -61,6 +61,8 @@ jar { - } - - jar { -+ duplicatesStrategy = DuplicatesStrategy.EXCLUDE -+ from (files(configurations.compile).collect {it.isDirectory() ? filesTree(it) : zipTree(it)}) - exclude 'data/**' - } - --- -2.5.5 - diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index 5c8a1d64..ed2636bf 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -19,18 +19,25 @@ setup_dep () { commit=$3 jar=$4 jarhash=$5 + pomhash=$6 - [ -f "deps/$dep.jar" ] && [ "$(sha256val "deps/$dep.jar")" == "$jarhash" ] && return - [ -f "deps/$dep.jar" ] && [ "*" == "$jarhash" ] && return - rm -rf "deps/$dep.jar" + depjar="deps/repo/reprod/$dep/0/$dep-0.jar" + deppom="deps/repo/reprod/$dep/0/$dep-0.pom" + + [ -f "$depjar" ] && [ "$(sha256val "$depjar")" == "$jarhash" ] && [ -f "$deppom" ] && [ "$(sha256val "$deppom")" == "$pomhash" ] && return + [ -f "$depjar" ] && [ "*" == "$jarhash" ] && return + rm -rf "$depjar" "$deppom" + + mkdir -p "deps/repo/reprod/$dep/0" if [ "*" != "$jarhash" ] && [ "$OFFLINE" != "1" ]; then # Try to fetch the pre-built artifact - if wget -O "deps/dl.tmp" "https://www.johni0702.de/replaymod/artifact/$jarhash"; then - # Verify downloaded jar file - if [ "$(sha256val "deps/dl.tmp")" == "$jarhash" ]; then + if wget -O "deps/dl.jar" "https://www.johni0702.de/replaymod/artifact/$jarhash" && wget -O "deps/dl.pom" "https://www.johni0702.de/replaymod/artifact/$pomhash"; then + # Verify downloaded jar/pom files + if [ "$(sha256val "deps/dl.jar")" == "$jarhash" ] && [ "$(sha256val "deps/dl.pom")" == "$pomhash" ]; then # Got valid pre-built artifact, use it - mv "deps/dl.tmp" "deps/$dep.jar" + mv "deps/dl.jar" "$depjar" + mv "deps/dl.pom" "$deppom" return fi fi @@ -75,29 +82,38 @@ setup_dep () { exit 1 fi + actual_hash=$(sha256val "pom.xml") + if [ "*" != "$jarhash" ] && [ "$actual_hash" != "$pomhash" ]; then + echo "Failed to verify checksum of build artifact pom of dependency: $dep" + echo "Expected: $pomhash" + echo "But was: $actual_hash" + exit 1 + fi + # Subshell to allow for expansion of * - cp "$(echo $jar)" "../$dep.jar" + cp "$(echo $jar)" "../../$depjar" + [ "$dep" == "proxy-witness" ] || cp "pom.xml" "../../$deppom" popd } # Setup http(s) proxy -setup_dep "proxy-witness" "https://github.com/johni0702/proxy-witness" "17ebb2e22f812faed9a28bae6bf1d8b28f798d56" "build/libs/proxy-witness.jar" "*" -java -Dproxywitness.httpUris=http://export.mcpbot.bspk.rs/versions.json -jar deps/proxy-witness.jar "$PROXY_PORT" checksums.txt > proxy.log 2>&1 & +setup_dep "proxy-witness" "https://github.com/johni0702/proxy-witness" "17ebb2e22f812faed9a28bae6bf1d8b28f798d56" "build/libs/proxy-witness.jar" "*" "*" +java -Dproxywitness.httpUris=http://export.mcpbot.bspk.rs/versions.json -jar deps/repo/reprod/proxy-witness/0/proxy-witness-0.jar "$PROXY_PORT" checksums.txt > proxy.log 2>&1 & proxy_pid=$! trap "kill $proxy_pid" EXIT # Required for mixin -setup_dep "fernflower" "https://github.com/fesh0r/fernflower.git" "85f61bee8194ab69afa746b965973a18eda67608" "build/libs/fernflower.jar" "b69597c93e248073330da4532a857aad73b767d46f87a0aa66446fbea289ff93" +setup_dep "fernflower" "https://github.com/fesh0r/fernflower.git" "85f61bee8194ab69afa746b965973a18eda67608" "build/libs/fernflower.jar" "b69597c93e248073330da4532a857aad73b767d46f87a0aa66446fbea289ff93" "901b8a76ceb15db97d4dd19c5e8fcb0fc226ae602ef38ea906eb5258be9b929a" # Required for forgegradle -setup_dep "forgeflower" "https://github.com/MinecraftForge/FernFlowerLegacy.git" "114aebe82cf40075c5c4f916c409b8aebf8096d5" "build/libs/fernflower-2.0-SNAPSHOT.jar" "c8b4a4a13a1158008aed46da2c805184078324718697f14a67f1778168579956" -setup_dep "mcinjector" "https://github.com/ModCoderPack/MCInjector.git" "7258466461baf7dc4f313b06b0d589407e4e1fba" "build/libs/mcinjector-3.4-SNAPSHOT.jar" "f88dbfb66f2bfe0fa9f18dfc8691573d0f462040e7907beb6d9d6b1175d98a92" -setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "5f11e2933f722000dbf742ffdd0d9c5ee8044bbb" "build/libs/Srg2Source-3.3-SNAPSHOT.jar" "82b380a3f8cb0184b75bc474ed4d0cae1586f70e6d2a2c16f025f4452374dcc2" +setup_dep "forgeflower" "https://github.com/MinecraftForge/FernFlowerLegacy.git" "114aebe82cf40075c5c4f916c409b8aebf8096d5" "build/libs/fernflower-2.0-SNAPSHOT.jar" "c8b4a4a13a1158008aed46da2c805184078324718697f14a67f1778168579956" "fbda3f30d54624fe4c59a69e145b644d8642afc0dd4eb0d732ccdaa0ebd5d8a3" +setup_dep "mcinjector" "https://github.com/ModCoderPack/MCInjector.git" "7258466461baf7dc4f313b06b0d589407e4e1fba" "build/libs/mcinjector-3.4-SNAPSHOT.jar" "98b685ea0d3ae9fad8b8a7e7b885512f7fe0b61becf27d9c74b91a626d107efc" "3c08655c11e6509bfc62ff87d0770cefa0ecbd8dccece9e083c9b7b89779a8c5" +setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "5f11e2933f722000dbf742ffdd0d9c5ee8044bbb" "build/libs/Srg2Source-3.3-SNAPSHOT.jar" "9aa601ade2c33ce52fe09894efd4c1bb69c68a238c2dd260605881863083362e" "cbfdd113cd054b80ce3a1e5636d254fea4f59a82af9874ae9f3786cb1901920d" # Required for RM -setup_dep "mixingradle" "https://github.com/SpongePowered/MixinGradle.git" "52217aa8ca221dcd0b9fb657b037e663db808f38" "build/libs/mixingradle-0.4-SNAPSHOT.jar" "8b3508867128a5d564631635dff898a36f9aca8db54b7bb3af6f4924e3f4bead" -setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "17806f45d20d0b55bff70a616eaeb939bd6a543c" "build/libs/ForgeGradle-2.1-SNAPSHOT.jar" "400f0ca3adf6a129926ec5d3af5495258ad6ec0f7951ba3b25c10ced211bc1b2" -setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "build/libs/mixin-0.6.11-SNAPSHOT.jar" "cb446b614ce34372fc2084de9bb16adc3182a6e96120fdb4bcae561e41303694" +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" "17806f45d20d0b55bff70a616eaeb939bd6a543c" "build/libs/ForgeGradle-2.1-SNAPSHOT.jar" "8e60c5da202cdc7843cff956a23093fbd3f9e6061d925daefcf9cdaa6116ebd4" "4c670a05fbd9aeaa581ae8ba7597df1d1def7b04160e1c6b076ed6778dd45e58" +setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "build/libs/mixin-0.6.11-SNAPSHOT.jar" "cb446b614ce34372fc2084de9bb16adc3182a6e96120fdb4bcae561e41303694" "a2f59b03529fed676b64ed4f57fff16bfe27f7131c216f69308ca4d2b6e8e754" rm -rf tmp mkdir tmp From cfee84acbc10f19970ee5d80b1b09881fe79daa8 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Fri, 27 Oct 2017 14:39:54 +0200 Subject: [PATCH 26/53] Manually re-pack FG jar --- gradle/reprod/init.gradle | 11 +++++++++++ gradle/reprod/setup.sh | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gradle/reprod/init.gradle b/gradle/reprod/init.gradle index 37fc624a..1a4ef5da 100644 --- a/gradle/reprod/init.gradle +++ b/gradle/reprod/init.gradle @@ -50,4 +50,15 @@ allprojects { } } build.dependsOn createPom + + reproducibleBuilds { + if (project.file('.').name == 'forgegradle') { + project.tasks.all { + if (it.name == 'jar') { + println 'Manually repacking archive after jar task' + repackAfter it + } + } + } + } } diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index ed2636bf..ba93b79e 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -112,7 +112,7 @@ setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "5f11e # 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" "17806f45d20d0b55bff70a616eaeb939bd6a543c" "build/libs/ForgeGradle-2.1-SNAPSHOT.jar" "8e60c5da202cdc7843cff956a23093fbd3f9e6061d925daefcf9cdaa6116ebd4" "4c670a05fbd9aeaa581ae8ba7597df1d1def7b04160e1c6b076ed6778dd45e58" +setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "17806f45d20d0b55bff70a616eaeb939bd6a543c" "build/libs/ForgeGradle-2.1-SNAPSHOT.jar" "dc3da35074bbb1c55e68f7863a8fc8660803da3192aa8d0a7e33280424d3c8d0" "4c670a05fbd9aeaa581ae8ba7597df1d1def7b04160e1c6b076ed6778dd45e58" setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "build/libs/mixin-0.6.11-SNAPSHOT.jar" "cb446b614ce34372fc2084de9bb16adc3182a6e96120fdb4bcae561e41303694" "a2f59b03529fed676b64ed4f57fff16bfe27f7131c216f69308ca4d2b6e8e754" rm -rf tmp From f82d0e9f9f41ce8bf0f479861a0b5d4cde079e09 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Fri, 27 Oct 2017 14:47:39 +0200 Subject: [PATCH 27/53] Skip pom generation for root project --- gradle/reprod/init.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gradle/reprod/init.gradle b/gradle/reprod/init.gradle index 1a4ef5da..2bd3aef1 100644 --- a/gradle/reprod/init.gradle +++ b/gradle/reprod/init.gradle @@ -49,7 +49,9 @@ allprojects { }.writeTo("pom.xml") } } - build.dependsOn createPom + if (!project.file('gradle/reprod').exists()) { + build.dependsOn createPom + } reproducibleBuilds { if (project.file('.').name == 'forgegradle') { From 4ad7d612803505a6c5624e83d8a4324982ae8a28 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Fri, 27 Oct 2017 17:30:39 +0200 Subject: [PATCH 28/53] Update reprod mixin dep --- gradle/reprod/checksums.txt | 5 ++++- gradle/reprod/init.gradle | 3 +++ .../patches/mixin/0003-Fix-for-Gradle-3.patch | 8 ++++---- ...eplace-fernflower-SNAPSHOT-depencency.patch | 18 ++++++++---------- ...n-ReferenceMapper-for-reproducibility.patch | 2 +- ...ace-mixin-dep-with-manually-built-one.patch | 2 +- gradle/reprod/setup.sh | 4 ++-- 7 files changed, 23 insertions(+), 19 deletions(-) diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index 784eb35a..dfe945dc 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -384,14 +384,17 @@ a3d6e7608155600a73c763ccac74e6b321f8c23dc4747f90635fc2f7cfc1548a /org/mortbay/je e87ea4823ecf2dd856901da359270be904236be59c27e2781eb8d78c97e45b2a /org/ow2/asm/asm-commons/5.0.3/asm-commons-5.0.3.pom 2969356ac1e40fe4141948c563690238f5d79d76aec7fd873536867a331ede81 /org/ow2/asm/asm-debug-all/5.0.3/asm-debug-all-5.0.3.jar 9c99d7a555725bc2f8379977935cdba16d687d9c93b6e0725e196180d490c995 /org/ow2/asm/asm-debug-all/5.0.3/asm-debug-all-5.0.3.pom -1e9ee309d909b3dbf33291fcfd36c76adba4ed1215b8156c3ac61a774cc86bf1 /org/ow2/asm/asm-debug-all/5.0.3/asm-debug-all-5.0.3-sources.jar 2341a72bba5e38c1028a332c11607e1706c13fa600fee6fb546b9a1708418097 /org/ow2/asm/asm-debug-all/5.0.4/asm-debug-all-5.0.4.jar 62efbf37e5068a8708541ae0a4da3d1140f4d711d30e4366445cb96ce13cc79e /org/ow2/asm/asm-debug-all/5.0.4/asm-debug-all-5.0.4.pom f7ac3f642c36c406543bb56ae3db3a53f263f71bd857b04709986e2d5798c8c4 /org/ow2/asm/asm-debug-all/5.1/asm-debug-all-5.1.jar 0a46e33f6b80bd21ac41eec33fca2e43d79253fb46a32d64ba3867ee22451fff /org/ow2/asm/asm-debug-all/5.1/asm-debug-all-5.1.pom +254b82bec9da4f8efbc8b1f93ab2b87f7465227a82b36cf3d05d9e77a0e8dd2e /org/ow2/asm/asm-debug-all/5.2/asm-debug-all-5.2.jar +491f13bd60757a7cfe76e767766b061d557010394f52cec2fb067707de702caa /org/ow2/asm/asm-debug-all/5.2/asm-debug-all-5.2.pom +b4845405fee9fe4f5f665dfe19badcf32581e3eea51b99a45e9f76a0a830c09d /org/ow2/asm/asm-debug-all/5.2/asm-debug-all-5.2-sources.jar c2edabf4128a534df4b8b4b0b9b562e94f242ba95ac24dc61485432b8a188e32 /org/ow2/asm/asm-parent/5.0.3/asm-parent-5.0.3.pom fdf05b9df226573b331a7e5df01135e527dcc07c71626445732bd04379aa4a72 /org/ow2/asm/asm-parent/5.0.4/asm-parent-5.0.4.pom 85ec8258fafc283f61647e6a11b404890821c11db6fcf550779ecf7a14151007 /org/ow2/asm/asm-parent/5.1/asm-parent-5.1.pom +cbfacd5dd812db16dc910994007fe58d9402a25507f81a1c2218e15c2c1bedfa /org/ow2/asm/asm-parent/5.2/asm-parent-5.2.pom 347a7a9400f9964e87c91d3980e48eebdc8d024bc3b36f7f22189c662853a51c /org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar 65819ca7c5a218ff49f8ebe72f3b39219c81f137d017acc1aec15b1054cf5236 /org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.pom 51215c67d2c068d8b7d2f6f80f51372a098075deccc448d4bdd7b987ba8328fb /org/ow2/ow2/1.3/ow2-1.3.pom diff --git a/gradle/reprod/init.gradle b/gradle/reprod/init.gradle index 2bd3aef1..1fc57309 100644 --- a/gradle/reprod/init.gradle +++ b/gradle/reprod/init.gradle @@ -46,6 +46,9 @@ allprojects { artifactId project.file('.').name version '0' } + whenConfigured { + dependencies.removeAll { it.artifactId == 'mixin-asm-debug-all' } + } }.writeTo("pom.xml") } } diff --git a/gradle/reprod/patches/mixin/0003-Fix-for-Gradle-3.patch b/gradle/reprod/patches/mixin/0003-Fix-for-Gradle-3.patch index 0c79a7ed..2b198da3 100644 --- a/gradle/reprod/patches/mixin/0003-Fix-for-Gradle-3.patch +++ b/gradle/reprod/patches/mixin/0003-Fix-for-Gradle-3.patch @@ -15,11 +15,11 @@ index 165dbe4..0f189ec 100644 // Task to read ASM library and rename packages task renamedASM { -- outputs.file files(configurations.asm.files.findAll{!it.name.contains("sources")}.collect { file -> -+ outputs.files files(configurations.asm.files.findAll{!it.name.contains("sources")}.collect { file -> - new File(project.repositories['renamed-packages'].dirs[0], "mixin-" + file.name).path +- 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 }) - doLast { + ant { -- 2.5.5 diff --git a/gradle/reprod/patches/mixin/0005-Replace-fernflower-SNAPSHOT-depencency.patch b/gradle/reprod/patches/mixin/0005-Replace-fernflower-SNAPSHOT-depencency.patch index 5393e88a..4c92d2cd 100644 --- a/gradle/reprod/patches/mixin/0005-Replace-fernflower-SNAPSHOT-depencency.patch +++ b/gradle/reprod/patches/mixin/0005-Replace-fernflower-SNAPSHOT-depencency.patch @@ -11,17 +11,15 @@ diff --git a/build.gradle b/build.gradle index f8598a3..e9a965b 100644 --- a/build.gradle +++ b/build.gradle -@@ -143,8 +143,8 @@ dependencies { - fernflowerCompile 'commons-io:commons-io:2.4' - fernflowerCompile 'org.apache.logging.log4j:log4j-core:2.0-beta9' - fernflowerCompile 'com.google.guava:guava:17.0' -- fernflowerCompile 'org.jetbrains.java.decompiler:fernflower:sponge-SNAPSHOT' -- compile 'org.jetbrains.java.decompiler:fernflower:sponge-SNAPSHOT' -+ fernflowerCompile 'reprod:fernflower:0' -+ compile 'reprod:fernflower:0' +@@ -143,7 +143,7 @@ dependencies { - compile('net.minecraft:launchwrapper:1.11') { - exclude module: 'lwjgl' + // 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 diff --git a/gradle/reprod/patches/mixin/0006-Use-TreeMap-in-ReferenceMapper-for-reproducibility.patch b/gradle/reprod/patches/mixin/0006-Use-TreeMap-in-ReferenceMapper-for-reproducibility.patch index 07bbca64..102d778d 100644 --- a/gradle/reprod/patches/mixin/0006-Use-TreeMap-in-ReferenceMapper-for-reproducibility.patch +++ b/gradle/reprod/patches/mixin/0006-Use-TreeMap-in-ReferenceMapper-for-reproducibility.patch @@ -18,7 +18,7 @@ index 2a368e7..082b5dd 100644 -import java.util.HashMap; import java.util.Map; - import org.apache.logging.log4j.LogManager; + 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 diff --git a/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch b/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch index 7cb7fcd8..f05ab1dc 100644 --- a/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch +++ b/gradle/reprod/patches/replaymod/0002-Replace-mixin-dep-with-manually-built-one.patch @@ -15,7 +15,7 @@ index 42d0607..bfa3914 100755 dependencies { compile 'org.projectlombok:lombok:1.16.4' -- compile 'org.spongepowered:mixin:0.6.8-SNAPSHOT' +- 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' diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index ba93b79e..b51cedc4 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -103,7 +103,7 @@ proxy_pid=$! trap "kill $proxy_pid" EXIT # Required for mixin -setup_dep "fernflower" "https://github.com/fesh0r/fernflower.git" "85f61bee8194ab69afa746b965973a18eda67608" "build/libs/fernflower.jar" "b69597c93e248073330da4532a857aad73b767d46f87a0aa66446fbea289ff93" "901b8a76ceb15db97d4dd19c5e8fcb0fc226ae602ef38ea906eb5258be9b929a" +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/FernFlowerLegacy.git" "114aebe82cf40075c5c4f916c409b8aebf8096d5" "build/libs/fernflower-2.0-SNAPSHOT.jar" "c8b4a4a13a1158008aed46da2c805184078324718697f14a67f1778168579956" "fbda3f30d54624fe4c59a69e145b644d8642afc0dd4eb0d732ccdaa0ebd5d8a3" @@ -113,7 +113,7 @@ setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "5f11e # 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" "17806f45d20d0b55bff70a616eaeb939bd6a543c" "build/libs/ForgeGradle-2.1-SNAPSHOT.jar" "dc3da35074bbb1c55e68f7863a8fc8660803da3192aa8d0a7e33280424d3c8d0" "4c670a05fbd9aeaa581ae8ba7597df1d1def7b04160e1c6b076ed6778dd45e58" -setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "b558323da3bd6ce94aeb442bfd7357f6c40d2fd4" "build/libs/mixin-0.6.11-SNAPSHOT.jar" "cb446b614ce34372fc2084de9bb16adc3182a6e96120fdb4bcae561e41303694" "a2f59b03529fed676b64ed4f57fff16bfe27f7131c216f69308ca4d2b6e8e754" +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 From faf5c681de106f751ed9645d66c636cf68d04456 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sat, 28 Oct 2017 15:13:40 +0200 Subject: [PATCH 29/53] Add script for online-cache building --- gradle/reprod/prepareCache.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100755 gradle/reprod/prepareCache.sh diff --git a/gradle/reprod/prepareCache.sh b/gradle/reprod/prepareCache.sh new file mode 100755 index 00000000..849692d0 --- /dev/null +++ b/gradle/reprod/prepareCache.sh @@ -0,0 +1,21 @@ +# Collects build artifacts that aren't present in the online cache +# into a subfolder that can be merged with the online cache +# This script isn't expected to function on OSX. + +set -e +set -x + +# Step one: copy all artifacts into subfolder under new name +rm -rf artifactCache +mkdir artifactCache +cd artifactCache +for f in $(find ../deps/repo -type f); do + cp $f $(sha256sum $f | cut -d' ' -f1) +done + +# Step two: remove all files that are already in the cache +for f in *; do + if wget -q --spider "https://www.johni0702.de/replaymod/artifact/$f"; then + rm $f + fi +done From 6c0f63c4d2d560cc39978fffdb61756689f44c0c Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sat, 28 Oct 2017 15:16:02 +0200 Subject: [PATCH 30/53] Enable reproducible builds on drone --- .drone.yml | 5 ++--- .drone.yml.sig | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index 9107c50d..be78ff1d 100644 --- a/.drone.yml +++ b/.drone.yml @@ -6,9 +6,8 @@ pipeline: image: maven:3.3.9-jdk-8 commands: - curl --fail --create-dirs -o $HOME/.gradle/init.d/mirror.gradle https://maven.johni0702.de/config/gradle - - curl --fail --create-dirs -o $HOME/.m2/settings.xml https://maven.johni0702.de/config/maven - - ./gradlew setupCIWorkspace - - ./gradlew :build + - git config --global user.email "replaymod@drone" && git config --global user.name "Drone" + - SIGNED_JAR=$(! git describe --exact 2>&1 > /dev/null; echo $?) REPRODUCIBLE_BUILD=1 ./gradlew :build archive: image: plugins/s3 acl: public-read diff --git a/.drone.yml.sig b/.drone.yml.sig index 5f4f9015..ed8895d0 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgY2xvbmU6CiAgICBpbWFnZTogcGx1Z2lucy9naXQKICAgIHRhZ3M6IHRydWUKICBidWlsZDoKICAgIGltYWdlOiBtYXZlbjozLjMuOS1qZGstOAogICAgY29tbWFuZHM6CiAgICAgIC0gY3VybCAtLWZhaWwgLS1jcmVhdGUtZGlycyAtbyAkSE9NRS8uZ3JhZGxlL2luaXQuZC9taXJyb3IuZ3JhZGxlIGh0dHBzOi8vbWF2ZW4uam9obmkwNzAyLmRlL2NvbmZpZy9ncmFkbGUKICAgICAgLSBjdXJsIC0tZmFpbCAtLWNyZWF0ZS1kaXJzIC1vICRIT01FLy5tMi9zZXR0aW5ncy54bWwgaHR0cHM6Ly9tYXZlbi5qb2huaTA3MDIuZGUvY29uZmlnL21hdmVuCiAgICAgIC0gLi9ncmFkbGV3IHNldHVwQ0lXb3Jrc3BhY2UKICAgICAgLSAuL2dyYWRsZXcgOmJ1aWxkCiAgYXJjaGl2ZToKICAgIGltYWdlOiBwbHVnaW5zL3MzCiAgICBhY2w6IHB1YmxpYy1yZWFkCiAgICByZWdpb246ICJ1cy1lYXN0LTEiCiAgICBidWNrZXQ6ICJyZXBsYXltb2QiCiAgICBwYXRoX3N0eWxlOiB0cnVlCiAgICBzb3VyY2U6IGJ1aWxkL2xpYnMvKgogICAgc3RyaXBfcHJlZml4OiBidWlsZC9saWJzLwogICAgdGFyZ2V0OiAvCg.riE6lhwfdNUhI7LO2SxEKFOjzjaX40ne7Ae9gyP75KE \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgY2xvbmU6CiAgICBpbWFnZTogcGx1Z2lucy9naXQKICAgIHRhZ3M6IHRydWUKICBidWlsZDoKICAgIGltYWdlOiBtYXZlbjozLjMuOS1qZGstOAogICAgY29tbWFuZHM6CiAgICAgIC0gY3VybCAtLWZhaWwgLS1jcmVhdGUtZGlycyAtbyAkSE9NRS8uZ3JhZGxlL2luaXQuZC9taXJyb3IuZ3JhZGxlIGh0dHBzOi8vbWF2ZW4uam9obmkwNzAyLmRlL2NvbmZpZy9ncmFkbGUKICAgICAgLSBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgInJlcGxheW1vZEBkcm9uZSIgJiYgZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgIkRyb25lIgogICAgICAtIFNJR05FRF9KQVI9JCghIGdpdCBkZXNjcmliZSAtLWV4YWN0IDI-JjEgPiAvZGV2L251bGw7IGVjaG8gJD8pIFJFUFJPRFVDSUJMRV9CVUlMRD0xIC4vZ3JhZGxldyA6YnVpbGQKICBhcmNoaXZlOgogICAgaW1hZ2U6IHBsdWdpbnMvczMKICAgIGFjbDogcHVibGljLXJlYWQKICAgIHJlZ2lvbjogInVzLWVhc3QtMSIKICAgIGJ1Y2tldDogInJlcGxheW1vZCIKICAgIHBhdGhfc3R5bGU6IHRydWUKICAgIHNvdXJjZTogYnVpbGQvbGlicy8qCiAgICBzdHJpcF9wcmVmaXg6IGJ1aWxkL2xpYnMvCiAgICB0YXJnZXQ6IC8K.cFk9CFCSYjJSwQhcJJp0BqSMwigKYCBd6r-KkvxlQZ0 \ No newline at end of file From 45cc789add859354a9f169d78f945b5809729a07 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Fri, 27 Oct 2017 22:32:32 +0200 Subject: [PATCH 31/53] Update reprod to 1.8.9 --- gradle/reprod/checksums.txt | 47 +++++++++++++------ ...ipt-dependencies-with-manually-built.patch | 2 +- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index dfe945dc..9138086a 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -86,8 +86,8 @@ ce7a9c86ebebf30b89929026f4a0a3c58ce0f4d47937d6dc086ae4fd0c77544a /com/mojang/aut d59283c7303b42e416518d8f5c265895295c11690fd8d36079f1a04c6a56b17c /com/mojang/authlib/1.5.21/authlib-1.5.21.pom 3120fd24c09ab9bc088cb9c1eb2065be86718608450fdbc27b5d371729a619cb /com/mojang/netty/1.6/netty-1.6.jar 568cc3fad81e5e389bad0012a07eca5db073e287200c6c9cb02caf3dc489e9f6 /com/mojang/netty/1.6/netty-1.6.pom -0ad91190cd480af14954d361d7b9ffc53ab3c5344797e3c9fd90c29bf5d28499 /com/mojang/realms/1.6.1/realms-1.6.1.jar -6c724ad415af96416e035a5ae96b113b1df9247d5833fbf73135c66b23263904 /com/mojang/realms/1.6.1/realms-1.6.1.pom +4a6a90ed956609d6cd3a7f84622fcac87d22e9a5d4858c6d1e965af860d07a63 /com/mojang/realms/1.7.59/realms-1.7.59.jar +5f414ea81dc3e809603844498228bba4dfd5d0fa6f1236b8a5553e9c74f9e36d /com/mojang/realms/1.7.59/realms-1.7.59.pom e7cd8951956d349b568b7ccfd4f5b2529a8c113e67c32b028f52ffda371259d9 /commons-cli/commons-cli/1.2/commons-cli-1.2.jar 18f3e92076e08c2fde48317025098e9f6baaa85f6912eb43f2d7e68d570e4561 /commons-cli/commons-cli/1.2/commons-cli-1.2.pom 1bafd2ece2e88db4cdf835a7f8f0de65fab5b1147977a5dcc59b7c1b8c6f5080 /commons-codec/commons-codec/1.3/commons-codec-1.3.jar @@ -127,25 +127,31 @@ c1a2438a4d35f8586c71d96c44a7e2f133ec924597147a246f8c501acca6acb5 /com/paulscode/ 9f9920b48ae5f1045fe966f08164d6b4e0a727cf17f8e4813ae5c0f2daecffbc /com/typesafe/akka/akka-actor_2.11/2.3.3/akka-actor_2.11-2.3.3.pom c160fbd78f51a0c2375a794e435ce2112524a6871f64d0331895e9e26ee8b9ee /com/typesafe/config/1.2.1/config-1.2.1.jar 62361ef10448869fff8c05150bd0449b423e3ff4498f2a4bab825b3c7685aa3c /com/typesafe/config/1.2.1/config-1.2.1.pom -68f43fed6611873d19f6dcf2d6739e1f2ddbed3cdd39e6a9f72ec1caee459f59 /de/oceanlabs/mcp/mcp/1.8/mcp-1.8-srg.zip -cf2630841a5ef712b4be22a814f1b83964850b0de4dc78f6131b66280beb3249 /de/oceanlabs/mcp/mcp_snapshot_nodoc/20141130-1.8/mcp_snapshot_nodoc-20141130-1.8.zip +ea6fdd37e68569a378fd149b0ab7cfede1de7fa3e794f4ed81f9018366fbdc51 /de/oceanlabs/mcp/mcp/1.8.9/mcp-1.8.9-srg.zip +aeed0aaba9d159b7ce60a21e2dcc36adb249fade65ce2f76c730dd0ec7270763 /de/oceanlabs/mcp/mcp_stable/22-1.8.9/mcp_stable-22-1.8.9.zip 22c45060f350fcaa94e503f4a420cf8237c26c0fcdb4ada4aa98389b75c7b231 /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.jar d6f165bb39aaa20ee14fdcbbdb0b8fffae38067087f333ec6e0acd3f6666b2ad /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.pom -8bc2b71a17ed1b5c6329bcc61fa9a2f7fe071074548fa137ebafec2a23d49d89 /io/netty/netty-all/4.0.15.Final/netty-all-4.0.15.Final.jar -9dfcfbce5531faa07e6afb1a2fc9579f096ffe88707bf95869d83ad81228a157 /io/netty/netty-all/4.0.15.Final/netty-all-4.0.15.Final.pom -8064a2f9d222704882928e6ff104decc071ab6b7b07dce8efb90100d1e624e30 /io/netty/netty-parent/4.0.15.Final/netty-parent-4.0.15.Final.pom +50510e9c9874b539b98ef931fe7eeeb002f6b5b1976ea37669b9493426294561 /io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar +990a10af14db6b136d3a539eadca5dc7b4d0ceab9a1c90c5268b0ca8ae27b14b /io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.pom +f7f1bd6f1e1df0b300730f1551b7222f13871e40ba5a464978bd3eed94e2212d /io/netty/netty-parent/4.0.23.Final/netty-parent-4.0.23.Final.pom 09adf7955baa6bddf57a4bdbf9a91cf690261314969b59a18085ece1e05eccf9 /java3d/vecmath/1.5.2/vecmath-1.5.2.jar a4aee4668f1b127c95c9afe1b922f4c5a0b1ad879ba811077cb7d0e048dce231 /java3d/vecmath/1.5.2/vecmath-1.5.2.pom +a6d2c9c0ddff7702662073b69c6dc4ec83011d22e4eb2dada28aa2d66ee47f97 /jline/jline/2.13/jline-2.13.jar +ba62d78eb858e241a604cdf739594cd312f0572756ea7aba4544c746d7152c43 /jline/jline/2.13/jline-2.13.pom 90a8e1603eeca48e7e879f3afbc9560715322985f39a274f6f6070b43f9d06fe /junit/junit/4.11/junit-4.11.jar 18ad8b0ae9e65a9195d04e25427dfe8b58175abcdae875a5a406aee38bddfb26 /junit/junit/4.11/junit-4.11.pom dc67378cf428c06408e7959e83bdc1518dd22ccd313e7c28a986612d65c276c7 /log4j/log4j/1.2.12/log4j-1.2.12.jar cb54dedc5d8c4510148dfa792701cbac1a84c383a84f48f5a32e6d7e460bbb72 /log4j/log4j/1.2.12/log4j-1.2.12.pom 0c3085cb93c3ef95d731c274b6f2dd195aa0405fe9328d69cab7f5e899d5e124 /lzma/lzma/0.0.1/lzma-0.0.1.jar a096bc9f7579cec07483874151578720eeb3189c546c19cff56a6203df17b50e /lzma/lzma/0.0.1/lzma-0.0.1.pom -ccccd0a92f76fbb24279691daad9b67f85d80471a37e59e0da76d7754982dfe8 /mc/game/1.8/client/d722504db9de2b47f46cc592b8528446272ae648/client.jar -40e23f3823d6f0e3cbadc491cedb55b8ba53f8ab516b68182ddd1536babeb291 /mc/game/1.8/server/a028f00e678ee5c6aef0e29656dca091b5df11c7/server.jar -745fdfbba409679b8347f3172109ff186ff743edfed1a9c5bf37443c05fdd480 /mc/game/d74a4b45e8877084e1bcc8121012845f28def238/1.8.json * /mc/game/version_manifest.json +14f0d96d1a56fb4f5c3b2233d00699525893fe5ce3dcf181e7de59120595d298 /mc/game/1.8.9/client/3870888a6c3d349d3771a3e9d16c9bf5e076b908/client.jar +c18e4245073aaff580eb7359902f0251436568b1647a9e443a924cdb73fa8312 /mc/game/1.8.9/server/b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd/server.jar +96ef70491d03b17823178bad7d2e562d742e36a9006e32acb6003b700833e612 /mc/game/42c67f1d38e55da24741c9e40ef5253f289177f1/1.8.9.json +3bff6a1489b8e54cf130344bc5e8744db331045ad2fc736612576e1d80eb1f48 /net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar +cf4605822bd56d135dd7031603f122a11a0ec772373f466a4f2aac72dd9a1761 /net/java/dev/jna/jna/3.4.0/jna-3.4.0.pom +ea89d5090c8303ba4e9a0056e6d8a20429f3e021411e950bfd9eba3b6e6cf15c /net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar +8f0c14f62912c089d81386015e78cf212f9e96f675b3bc0e519c1e2d92aa8950 /net/java/dev/jna/platform/3.4.0/platform-3.4.0.pom 79b5a4f5829e1a49a415711f7fb8eb5b9ad22defa72929fda2da96ec30d3f018 /net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar 3199d547c1275e806e0c7be19e90dcb00d9561ec3b31fb2e780e12d7d8785810 /net/java/jinput/jinput/2.0.5/jinput-2.0.5.pom 1ab4d194277816b6105253d224c8c69f1b6d720690efe7c85f3ce884f0ea273d /net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar @@ -156,9 +162,9 @@ c3334ff39cf0ab3b54925619101054c90098b7c733b1e7834c7b75e4c41e84a5 /net/java/jutil af09ead4eb241473e7ec4d152a91a722ea09a717a202e20e4b385eac3217b7d6 /net/java/jutils/jutils/1.0.0/jutils-1.0.0.pom b47c5d5810643426a3147ddb2195ef2ab67c80b167e7c2ac64a5d0dee8c030dd /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.jar 5f374f8ae7afff8dbc23aff14e59c5bd585c230afe9a8dcaa7b928e8cb16a27e /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.pom -5d166a260388526b502b07c167beb8ae5cd18d46f60a10a029c1d6e1206e093a /net/minecraftforge/forge/1.8-11.14.4.1563/forge-1.8-11.14.4.1563.pom -3e33989b813090abe749334b5a9a663bd37cb20e987b91f78fc616cc7fb91ee1 /net/minecraftforge/forge/1.8-11.14.4.1563/forge-1.8-11.14.4.1563-userdev.jar * /net/minecraftforge/forge/json +029ba9ca09212fbb850ea78a6b53b96b1288195b4e191194793cf5cf80d5758a /net/minecraftforge/forge/1.8.9-11.15.1.1722/forge-1.8.9-11.15.1.1722.pom +521a5faf35432ea33ec342b6fd104311fabe6254366c601a63671508b27517fe /net/minecraftforge/forge/1.8.9-11.15.1.1722/forge-1.8.9-11.15.1.1722-userdev.jar e74b65b8948446982a506a96176dd8baf4688237ba4903f56ca6f667b6c7ee42 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.jar 616c4971035d1e6ab4809e16daabb02aa308c1dc001c06dd547c7d3b2e916999 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.pom 57f402b626d16cc2705bf2a37add7adbb074f0ca3b3102fa6e23aa303dae682f /net/minecraft/launchwrapper/1.12/launchwrapper-1.12.jar @@ -352,6 +358,10 @@ bddf4d130cb65fdfc1df7df1febde313fc2ff1ac83c8574ff97befd6c515cc30 /org/eclipse/os 88b506fa09a810b19517a2d45cb8f5eaa76c22b18abfbdcf36cd07aebfd56cb0 /org/eclipse/update/configurator/3.2.100-v20070615/configurator-3.2.100-v20070615.jar 4645380254baefd0056e15cc9af6a273fb7d014b8be4ff395a5a61bfe8f4a89c /org/eclipse/update/configurator/3.2.100-v20070615/configurator-3.2.100-v20070615.pom 3c731988480eae3024b27d648aa0408a1cdc065fc523cf41a049fb97148fd30a /org/eclipse/update/configurator/maven-metadata.xml +b1f003f28c3ce1753ea0da22a6f0289197a2c369e7056b32e170af7904eff2c1 /org/fusesource/fusesource-pom/1.8/fusesource-pom-1.8.pom +9e82163ed2fc6257fe627132ce554726e796edee4e5efe9d9e523aee217d60b8 /org/fusesource/jansi/jansi/1.11/jansi-1.11.jar +b0975adc7450698033f3de4792dd6eba72a980c2b56d8e8d36d381385b37a5c9 /org/fusesource/jansi/jansi/1.11/jansi-1.11.pom +8ba9c49b55f979cf4e04d4871092eb50e834b388fca03a2274ccadff12cc9ce8 /org/fusesource/jansi/jansi-project/1.11/jansi-project-1.11.pom 66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9 /org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar fde386a7905173a1b103de6ab820727584b50d0e32282e2797787c20a64ffa93 /org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom 6d535f94efb663bdb682c9f27a50335394688009642ba7a9677504bc1be4129b /org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom @@ -362,13 +372,20 @@ ebac276b5ad62e9d312fb6ce663d55fdebaba9badc918166e7d60b1ffd1bd475 /org/jdom/jdom2 e21488c2fe8db4b23a00c3cfdeab3b600e84c1647e08fb7bee442f5fc1f83990 /org/jvnet/localizer/localizer-parent/1.12/localizer-parent-1.12.pom c118f8d84313980f79e1e7f7ae4b14b10c2f20c77ea4a1c29f6f0b02bc139077 /org/lwjgl/lwjgl/lwjgl/2.9.1/lwjgl-2.9.1.jar 1adb09c3cf35e0f55d5ecd91e4364100364d8a8031cdfa64ae61eaa64f0d79d4 /org/lwjgl/lwjgl/lwjgl/2.9.1/lwjgl-2.9.1.pom +833e721817f70d1445eec13d8ce5a86e12af70efac5014356302e2bbc68b3fe2 /org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar +65fb24fa8ee4a7efc554b15cfb447753c39e414ff00e9944d347e6f1176f0438 /org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.pom a50aaa5a89304c23a9257295cbe803e6130526a4dfaea1784076adbacacfd68e /org/lwjgl/lwjgl/lwjgl-platform/2.9.1/lwjgl-platform-2.9.1-natives-linux.jar e14afffd87719ba12034dd989d40a75540902a6286629fab1330b51c255ab792 /org/lwjgl/lwjgl/lwjgl-platform/2.9.1/lwjgl-platform-2.9.1-natives-osx.jar ade8deedceb0b60c630f3e78a7b052b7f8f02ff53d91849d1985d3146bf95590 /org/lwjgl/lwjgl/lwjgl-platform/2.9.1/lwjgl-platform-2.9.1-natives-windows.jar 82eb11d59b06700b9ff3db4e0476de1cf86501ba7cd00bb279f40a7c23ad662b /org/lwjgl/lwjgl/lwjgl-platform/2.9.1/lwjgl-platform-2.9.1.pom -32d7e73005a2dc0ccc3c62470c435b351f6501de8e8718e26960534754570a77 /org/lwjgl/lwjgl/lwjgl_util/2.9.1/lwjgl_util-2.9.1.jar -10eab9f1aa97eef450d6c8eca8f459dcdcb9b1d3efbf54eb3dcde33b7aaea1dc /org/lwjgl/lwjgl/lwjgl_util/2.9.1/lwjgl_util-2.9.1.pom +d312147c3999b868fd649887f45203a4195bc10fc563cee4c4f8d22761421f94 /org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar +8831b2bd5a53dc343fd6fbed3c18f28ab33d3f28dbe62ebd4a3af81f25c0a5ab /org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar +f2e1f2c6bd7511a7504f389b8b716f5d8dc2fdc71e29c89b52644314cf0a228e /org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar +11eeed66c2d56892f3e2046121438153e516dd95d368bcf93c0714f9f2bfdd6f /org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.pom +034456b132a336b72757325bb7aaf99e075681ee5650d2bea21717bd485de42f /org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar +cb7239de51893ee5abe90c2bc550422cb336140c0866e9d1c899399eeb8a3ba2 /org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.pom 9cf1643b0d805db942498cebf941d1c43df0a1322137291c258aec6109200858 /org/lwjgl/lwjgl/parent/2.9.1/parent-2.9.1.pom +9b3282d2065e070f5966c8b324bc8ffaa4a3d53c7d39ef7e0a3458b525bc167e /org/lwjgl/lwjgl/parent/2.9.4-nightly-20150209/parent-2.9.4-nightly-20150209.pom 21091d3a9c1349f640fdc421504a604c040ed89087ecc12afbe32353326ed4e5 /org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.jar 8169c421acc4931f9eb80b818b13a4553a8582e02d08dfc12a51e4f23b2726c6 /org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.pom b24e31635c0e6c401ff84e28905b96d1a760144c15f1deae1a22d5b3356e1667 /org/mortbay/jetty/jetty-parent/10/jetty-parent-10.pom @@ -462,6 +479,8 @@ aef1fd28efd25bd778aa3d3770c6f9e606ca2354149e985f1d63fc7c6a366bd2 /org/sonatype/s 683c012c6bf5e1e31b232b3755c027ccd829692a09c8216652b414b09d4ae623 /org/sonatype/spice/spice-parent/10/spice-parent-10.pom 21a19b26dbe5c38ddb5114cf4eadbf5ccb411bc6b128fdd5949b1ccb12f3683e /org/sonatype/spice/spice-parent/12/spice-parent-12.pom 258f43b5e805687302a5bb400856b972a573ec42a44f949641354a84b9243758 /org/sonatype/spice/spice-parent/16/spice-parent-16.pom +27901e5d4d60d3502571d5e6358fc89e3fcf874138b69d495d139bcc3e169404 /oshi-project/oshi-core/1.1/oshi-core-1.1.jar +e7e154dd64e5bd87e6ae2652ab52ab88eb53d05606466faee382d11f59d0ab71 /oshi-project/oshi-core/1.1/oshi-core-1.1.pom d1968436fc216c901fb9b82c7e878b50fd1d30091676da95b2edd3a9c0ccf92e /stax/stax-api/1.0.1/stax-api-1.0.1.jar 87b13ae136a2bb9299271a0dfe8c351f76661b654ed8fde035c2cabb198cf259 /stax/stax-api/1.0.1/stax-api-1.0.1.pom ad68a86cfd0255a2bc0525ce11ec49640caea7e34ff91eb89c3193dcccd77f05 /trove/trove/1.0.2/trove-1.0.2.jar diff --git a/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch b/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch index 09a0dc0c..4bb25b9c 100644 --- a/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch +++ b/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch @@ -32,7 +32,7 @@ index ee24828..42d0607 100755 + maven { url 'gradle/reprod/deps/repo' } } dependencies { -- classpath 'net.minecraftforge.gradle:ForgeGradle:2.0-SNAPSHOT' +- classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT' - classpath 'org.spongepowered:mixingradle:0.3-SNAPSHOT' + classpath 'reprod:forgegradle:0' + classpath 'reprod:mixingradle:0' From 4ea0da3fe6df7ef6273d39c355a52c00e06273ae Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sat, 28 Oct 2017 16:54:06 +0200 Subject: [PATCH 32/53] Update reprod to 1.9.4 --- gradle/reprod/checksums.txt | 55 +++++------- ...mpilation-with-newer-gradle-versions.patch | 84 ------------------- ...tps-urls-with-http-for-proxy-witness.patch | 20 ++--- ...APSHOT-deps-with-manually-built-ones.patch | 2 +- ...ipt-dependencies-with-manually-built.patch | 4 +- gradle/reprod/setup.sh | 4 +- 6 files changed, 35 insertions(+), 134 deletions(-) delete mode 100644 gradle/reprod/patches/forgegradle/0001-Fix-compilation-with-newer-gradle-versions.patch diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index 9138086a..ea7763f0 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -14,8 +14,8 @@ f98b3e07c6b6a32dd6f9f70f5cef4ac9be42a9a6c850ceb8f33767da94706635 /com/github/joh 03e3dff7f9b3ac6cd3b87684fd36a2f6996a4b164a2f8fab9c22c01cb7bfb84b /com/github/johni0702/gradle-reproducible-builds-plugin/a524ada/gradle-reproducible-builds-plugin-a524ada.pom 75ccc0e24d37ed5b8916e1bcffad1e067c2b1cfa21b635287f968db5c3c1963a /com/github/jponge/lzma-java/1.3/lzma-java-1.3.jar fbcba81b21a8bc3c0761e4798fa05285444b43d681c03c9af49f9b2e1ecb0184 /com/github/jponge/lzma-java/1.3/lzma-java-1.3.pom -f38a7028bbac3f6c6b15cb40d533c96c6e8fdb54fc93d922cfa1931b25fa8c5c /com/github/replaymod/ReplayStudio/2df8d8b/ReplayStudio-2df8d8b.jar -1075c4246911339023a15bc962d6408925b959656443cad3193bbe7ca3dae5fb /com/github/replaymod/ReplayStudio/2df8d8b/ReplayStudio-2df8d8b.pom +a37e00769fb00b8fdcfd939b92d1b7adbabebdc96e060991ee72053f5509439f /com/github/replaymod/ReplayStudio/c7ed696/ReplayStudio-c7ed696.jar +a98a18a476c0b4b861e86701f0442c90040dc7f086d097fe3adde0553cd217ad /com/github/replaymod/ReplayStudio/c7ed696/ReplayStudio-c7ed696.pom c6ebd74cd6108b8c372c95b842725ee5bd6d3303ba26cb00f18bc92f80b47956 /com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.jar 7cdd89a892927998beab59398ef073232588f6e83e411cf4f0905833bf300487 /com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.pom 47c625c83a8cf97b8bbdff2acde923ff8fd3174e62aabcfc5d1b86692594ffba /com/google/api-client/google-api-client/1.22.0/google-api-client-1.22.0.jar @@ -30,8 +30,8 @@ d8e9ec26a01cc19c530ab781cc71185acb9f9d576716e3d585a1d4f12f2089c8 /com/google/api 4dad29307c34e923ebb6d29e2c265850a0f0b691c7a63384279aa8353eae28b9 /com/google/apis/google-api-services-youtube/v3-rev178-1.22.0/google-api-services-youtube-v3-rev178-1.22.0.pom 905721a0eea90a81534abb7ee6ef4ea2e5e645fa1def0a5cd88402df1b46c9ed /com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar feab9191311c3d7aeef2b66d6064afc80d3d1d52d980fb07ae43c78c987ba93a /com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom -1e7f53fa5b8b5c807e986ba335665da03f18d660802d8bf061823089d1bee468 /com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar -02c12c3c2ae12dd475219ff691c82a4d9ea21f44bc594a181295bf6d43dcfbb0 /com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.pom +c885ce34249682bc0236b4a7d56efcc12048e6135a5baf7a9cde8ad8cda13fcd /com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar +4170a761dc5bfd3981a8e6f7aab9e2acdce82d34fd5aa9bb11e3c090d25314ce /com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.pom 8cc1f0813a186079f82d300a43156bdf852a88008f4f1a1fa71e788fb3b9a86d /com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530.jar 7d131d6a082a33363bdfbf55d2fee2219d9bc8d1c455cc3f7c6403cf2a4496a5 /com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530.pom 35c94198255e95f6f11501eb4b3d43a5276bfdd142ab7c904722e69bff51f69e /com/google/code/gson/gson/2.1/gson-2.1.jar @@ -40,8 +40,6 @@ c0328cd07ca9e363a5acd00c1cf4afe8cf554bd6d373834981ba05cebec687fb /com/google/cod ae984d5d19894ce6dc4689866eaa12f8fc31409113e60ee3b44853b8ac4fd380 /com/google/code/gson/gson/2.2.4/gson-2.2.4.pom 4838f4f29a027522363cef1bcda1b48808880b0de4953fab6db4121ee27b649b /com/googlecode/jarjar/jarjar/1.1/jarjar-1.1.jar be4f53c0bc04da4e3d6c65c8f3243d1ea4135e35c7d7dda88af1c582687263d7 /com/googlecode/jarjar/jarjar/1.1/jarjar-1.1.pom -d1296fa8926f71743be61cb4bfdac2ac3deb9ffe1a4948b1f293cb7a1bdb1800 /com/googlecode/javaewah/JavaEWAH/0.5.6/JavaEWAH-0.5.6.jar -fa5c2d7edcd57c6e1b402773dc32a180f82c111af44bfc2d483a2c7be1862e8f /com/googlecode/javaewah/JavaEWAH/0.5.6/JavaEWAH-0.5.6.pom ddbbf392f8e61f770a509a49aed5f32ead19768283b4b512c626e09e1ba5cc46 /com/googlecode/mp4parser/isoparser/1.1.7/isoparser-1.1.7.jar 6890ebacb23d3ab51a5751a830f5269b7e8fdd19d08b7e055bc739f62b4bd174 /com/googlecode/mp4parser/isoparser/1.1.7/isoparser-1.1.7.pom 8c36a80ea613d0b6b8040a17cf837c5bbe3677bc1b06a058a6c174fdb787ebbc /com/google/guava/guava/17.0/guava-17.0.jar @@ -78,16 +76,14 @@ bbc21cab2e0b0c76c9977fdf8b80c311788094d81e6910a2a6e63d80910102c7 /com/gradle/pub 89aa507536b0a93d8c9d3087d738255eefffc002cefa255ebdbd6891b8165447 /com/gradle/publish/plugin-publish-plugin/0.9.1/plugin-publish-plugin-0.9.1.pom 147592c5eb8e11fc8394125954f877acf25918bae13aa210c2825aefc3030ed8 /com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar 06b382efe9d60474aa3df7f4851397b3ae0c4f142567f0fc66a8fa2706a665e4 /com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.pom -48cd629c3081dff4d8c35e7da4efb3bcc4ed4b35c8a7e8198d5c30e0312bd912 /com/jcraft/jsch/0.1.46/jsch-0.1.46.jar -eb60cec1e570efad3d750afd9a86b763dba49e47c3c106a599c05e708260efc4 /com/jcraft/jsch/0.1.46/jsch-0.1.46.pom 2c149735a093b6c65a27db760896ad5c5b06e29100bb8969937667784fef4ba0 /com/mojang/authlib/1.5.16/authlib-1.5.16.jar d05175230d79f518b5c4664d24e3d115f5f3888e3806f3b6076cd0b4943e6ca6 /com/mojang/authlib/1.5.16/authlib-1.5.16.pom -ce7a9c86ebebf30b89929026f4a0a3c58ce0f4d47937d6dc086ae4fd0c77544a /com/mojang/authlib/1.5.21/authlib-1.5.21.jar -d59283c7303b42e416518d8f5c265895295c11690fd8d36079f1a04c6a56b17c /com/mojang/authlib/1.5.21/authlib-1.5.21.pom +dc07988e5bb1609e8e027cc89c2993a19586e219c02ff74ea4298e73e97b0efb /com/mojang/authlib/1.5.22/authlib-1.5.22.jar +3e70bac893bb04ac2992baa6fc438f6fc33c0d0213c4edcc40d295e7938091ca /com/mojang/authlib/1.5.22/authlib-1.5.22.pom 3120fd24c09ab9bc088cb9c1eb2065be86718608450fdbc27b5d371729a619cb /com/mojang/netty/1.6/netty-1.6.jar 568cc3fad81e5e389bad0012a07eca5db073e287200c6c9cb02caf3dc489e9f6 /com/mojang/netty/1.6/netty-1.6.pom -4a6a90ed956609d6cd3a7f84622fcac87d22e9a5d4858c6d1e965af860d07a63 /com/mojang/realms/1.7.59/realms-1.7.59.jar -5f414ea81dc3e809603844498228bba4dfd5d0fa6f1236b8a5553e9c74f9e36d /com/mojang/realms/1.7.59/realms-1.7.59.pom +c5bbcbcfba1c7444af30b94f7c3eb2ff215ec3cc17c57a9be6b2c815f9a93a0f /com/mojang/realms/1.8.19/realms-1.8.19.jar +c9a429757023ac6daa636205efebd16ef8c21e2ec4e45621fc134a5692c14380 /com/mojang/realms/1.8.19/realms-1.8.19.pom e7cd8951956d349b568b7ccfd4f5b2529a8c113e67c32b028f52ffda371259d9 /commons-cli/commons-cli/1.2/commons-cli-1.2.jar 18f3e92076e08c2fde48317025098e9f6baaa85f6912eb43f2d7e68d570e4561 /commons-cli/commons-cli/1.2/commons-cli-1.2.pom 1bafd2ece2e88db4cdf835a7f8f0de65fab5b1147977a5dcc59b7c1b8c6f5080 /commons-codec/commons-codec/1.3/commons-codec-1.3.jar @@ -127,13 +123,16 @@ c1a2438a4d35f8586c71d96c44a7e2f133ec924597147a246f8c501acca6acb5 /com/paulscode/ 9f9920b48ae5f1045fe966f08164d6b4e0a727cf17f8e4813ae5c0f2daecffbc /com/typesafe/akka/akka-actor_2.11/2.3.3/akka-actor_2.11-2.3.3.pom c160fbd78f51a0c2375a794e435ce2112524a6871f64d0331895e9e26ee8b9ee /com/typesafe/config/1.2.1/config-1.2.1.jar 62361ef10448869fff8c05150bd0449b423e3ff4498f2a4bab825b3c7685aa3c /com/typesafe/config/1.2.1/config-1.2.1.pom -ea6fdd37e68569a378fd149b0ab7cfede1de7fa3e794f4ed81f9018366fbdc51 /de/oceanlabs/mcp/mcp/1.8.9/mcp-1.8.9-srg.zip -aeed0aaba9d159b7ce60a21e2dcc36adb249fade65ce2f76c730dd0ec7270763 /de/oceanlabs/mcp/mcp_stable/22-1.8.9/mcp_stable-22-1.8.9.zip +83b111d3d1a8e8cf06cacf2c877f40bc4fce23c3b04941fe9a1a582374e6d924 /de/oceanlabs/mcp/mcp/1.9.4/mcp-1.9.4-srg.zip +16f933fe337c265ed20fd616a2acadbd119a0b1d1fb186ca26fc8964aeebe0c2 /de/oceanlabs/mcp/mcp_snapshot/20160518-1.9.4/mcp_snapshot-20160518-1.9.4.zip 22c45060f350fcaa94e503f4a420cf8237c26c0fcdb4ada4aa98389b75c7b231 /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.jar d6f165bb39aaa20ee14fdcbbdb0b8fffae38067087f333ec6e0acd3f6666b2ad /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.pom +* /de/oceanlabs/mcp/versions.json 50510e9c9874b539b98ef931fe7eeeb002f6b5b1976ea37669b9493426294561 /io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar 990a10af14db6b136d3a539eadca5dc7b4d0ceab9a1c90c5268b0ca8ae27b14b /io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.pom f7f1bd6f1e1df0b300730f1551b7222f13871e40ba5a464978bd3eed94e2212d /io/netty/netty-parent/4.0.23.Final/netty-parent-4.0.23.Final.pom +b4533f3b4029e480288d85187fc9ee6789f3d362c6633d8e9b092ec455ad2f28 /it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar +2b3db089f1f78a49a628d9015cca6a95e87421fa04262553cd2c4c79d66d04a7 /it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.pom 09adf7955baa6bddf57a4bdbf9a91cf690261314969b59a18085ece1e05eccf9 /java3d/vecmath/1.5.2/vecmath-1.5.2.jar a4aee4668f1b127c95c9afe1b922f4c5a0b1ad879ba811077cb7d0e048dce231 /java3d/vecmath/1.5.2/vecmath-1.5.2.pom a6d2c9c0ddff7702662073b69c6dc4ec83011d22e4eb2dada28aa2d66ee47f97 /jline/jline/2.13/jline-2.13.jar @@ -145,9 +144,9 @@ cb54dedc5d8c4510148dfa792701cbac1a84c383a84f48f5a32e6d7e460bbb72 /log4j/log4j/1. 0c3085cb93c3ef95d731c274b6f2dd195aa0405fe9328d69cab7f5e899d5e124 /lzma/lzma/0.0.1/lzma-0.0.1.jar a096bc9f7579cec07483874151578720eeb3189c546c19cff56a6203df17b50e /lzma/lzma/0.0.1/lzma-0.0.1.pom * /mc/game/version_manifest.json -14f0d96d1a56fb4f5c3b2233d00699525893fe5ce3dcf181e7de59120595d298 /mc/game/1.8.9/client/3870888a6c3d349d3771a3e9d16c9bf5e076b908/client.jar -c18e4245073aaff580eb7359902f0251436568b1647a9e443a924cdb73fa8312 /mc/game/1.8.9/server/b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd/server.jar -96ef70491d03b17823178bad7d2e562d742e36a9006e32acb6003b700833e612 /mc/game/42c67f1d38e55da24741c9e40ef5253f289177f1/1.8.9.json +23e90103a1ca2ac71100004c6d5846de09f85695f579843ef8da41571e60c908 /mc/game/1.9.4/client/4a61c873be90bb1196d68dac7b29870408c56969/client.jar +13fea7aa10d804dd14ed7ebde2493dc64c7d3c8173369309bd7f6ea4c0ea40ad /mc/game/1.9.4/server/edbb7b1758af33d365bf835eb9d13de005b1e274/server.jar +045c639666c64d61efcdd7be61dbd6a3b1ce5108a11d7d4fc9ad5584937bce19 /mc/game/cdcd308b7cbd15bc595850ce6557d4ade48cee7a/1.9.4.json 3bff6a1489b8e54cf130344bc5e8744db331045ad2fc736612576e1d80eb1f48 /net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar cf4605822bd56d135dd7031603f122a11a0ec772373f466a4f2aac72dd9a1761 /net/java/dev/jna/jna/3.4.0/jna-3.4.0.pom ea89d5090c8303ba4e9a0056e6d8a20429f3e021411e950bfd9eba3b6e6cf15c /net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar @@ -163,8 +162,8 @@ af09ead4eb241473e7ec4d152a91a722ea09a717a202e20e4b385eac3217b7d6 /net/java/jutil b47c5d5810643426a3147ddb2195ef2ab67c80b167e7c2ac64a5d0dee8c030dd /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.jar 5f374f8ae7afff8dbc23aff14e59c5bd585c230afe9a8dcaa7b928e8cb16a27e /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.pom * /net/minecraftforge/forge/json -029ba9ca09212fbb850ea78a6b53b96b1288195b4e191194793cf5cf80d5758a /net/minecraftforge/forge/1.8.9-11.15.1.1722/forge-1.8.9-11.15.1.1722.pom -521a5faf35432ea33ec342b6fd104311fabe6254366c601a63671508b27517fe /net/minecraftforge/forge/1.8.9-11.15.1.1722/forge-1.8.9-11.15.1.1722-userdev.jar +95f1435c1638b942f4a63d5c5b3cbc85653183caa5357e4586fb792e2d7a819b /net/minecraftforge/forge/1.9.4-12.17.0.1976/forge-1.9.4-12.17.0.1976.pom +f317d5572442e9c072046247a5f1c9e5643c5cf5af8900a2c2f878a44d07bbf1 /net/minecraftforge/forge/1.9.4-12.17.0.1976/forge-1.9.4-12.17.0.1976-userdev.jar e74b65b8948446982a506a96176dd8baf4688237ba4903f56ca6f667b6c7ee42 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.jar 616c4971035d1e6ab4809e16daabb02aa308c1dc001c06dd547c7d3b2e916999 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.pom 57f402b626d16cc2705bf2a37add7adbb074f0ca3b3102fa6e23aa303dae682f /net/minecraft/launchwrapper/1.12/launchwrapper-1.12.jar @@ -343,12 +342,9 @@ cb7c954965e6b2946c2f7be78c1e089b530e0444b1fefc2d8079a5681362bfa1 /org/eclipse/eq d7cd093fdad45c7cc979f44f7166f259607b41cf44a8afe77561594cef4c39d3 /org/eclipse/equinox/registry/maven-metadata.xml 9cddda75f4a1b4469e73f44e7b61a3e897d0f657df4797f9106ffe88c4eeade0 /org/eclipse/jdt/core/compiler/ecj/4.6.1/ecj-4.6.1.jar 536c45e8804de01321c478cfb994377f81f1e32897636616fa21b877fd137c6f /org/eclipse/jdt/core/compiler/ecj/4.6.1/ecj-4.6.1.pom -5a91ef99dc827e77c8dae1481bd5a92a0ce877304f2b25151ba4e0834e8a917d /org/eclipse/jdt/org.eclipse.jdt.core/3.10.0.v20131029-1755/org.eclipse.jdt.core-3.10.0.v20131029-1755.jar -5591ec1f9826a0506b33cb2a7bceceaf4058f667c0d5e8fd1a348c36540d9dcb /org/eclipse/jdt/org.eclipse.jdt.core/3.10.0.v20131029-1755/org.eclipse.jdt.core-3.10.0.v20131029-1755.pom +2082ffb0bb8f276ca164a6363e394f902163a81b7df44ede13aed33d84fdf27e /org/eclipse/jdt/org.eclipse.jdt.core/3.12.0.v20160315-2126/org.eclipse.jdt.core-3.12.0.v20160315-2126.jar +ec467beffac7ffa86b5687a0935b8d3540e8795c9bc0c0d326a1c24cb9be7fe8 /org/eclipse/jdt/org.eclipse.jdt.core/3.12.0.v20160315-2126/org.eclipse.jdt.core-3.12.0.v20160315-2126.pom d6aba7a1569952e082630de6907f460f476c20d97032cb9f7e4f3e14ddb928e7 /org/eclipse/jetty/jetty-parent/14/jetty-parent-14.pom -cf65a484e0626d6b79cc40daa820459d893ba6945cbed119859be4db0a07c1fa /org/eclipse/jgit/org.eclipse.jgit/3.2.0.201312181205-r/org.eclipse.jgit-3.2.0.201312181205-r.jar -bfe5eb76e637e740e7769f6e081c1c2815f0272f76b93b9bad0b6e686f5a9030 /org/eclipse/jgit/org.eclipse.jgit/3.2.0.201312181205-r/org.eclipse.jgit-3.2.0.201312181205-r.pom -0a6f74d2b3a411b785e305ae9678cac377aa2352815a085e4b980d5ba4323f29 /org/eclipse/jgit/org.eclipse.jgit-parent/3.2.0.201312181205-r/org.eclipse.jgit-parent-3.2.0.201312181205-r.pom fa1d59411d4d2667d8f15638af7c0ac44539234c0982c27a2b65ba06c32a0b3e /org/eclipse/osgi/3.10.0-v20140606-1445/osgi-3.10.0-v20140606-1445.jar 1e10819cdb1fe55d44ac94d37f3b1030275199979a73d04b7b53e2d6000d5d2e /org/eclipse/osgi/3.10.0-v20140606-1445/osgi-3.10.0-v20140606-1445.pom bddf4d130cb65fdfc1df7df1febde313fc2ff1ac83c8574ff97befd6c515cc30 /org/eclipse/osgi/3.9.1-v20130814-1242/osgi-3.9.1-v20130814-1242.pom @@ -452,7 +448,6 @@ c14fb9c32b59cc03251f609416db7c0cff01f811edcccb4f6a865d6e7046bd0b /org/sonatype/f 1838d132479005b4b7459b798e9d9915515090c288082fdcd86db0b10983a24c /org/sonatype/forge/forge-parent/4/forge-parent-4.pom e56188aa8ce51278006aa90bc7e0f304a81e2f1219f462e7d21f262535cd2795 /org/sonatype/forge/forge-parent/5/forge-parent-5.pom 1678d4120a585d8a630131aeec4c524d928398583b7eab616ee7d5a87f520d3d /org/sonatype/oss/oss-parent/5/oss-parent-5.pom -b4306d13e8f5392458a1b30866f1cff161b3d2e6999a88d059eea3932c8a8499 /org/sonatype/oss/oss-parent/6/oss-parent-6.pom b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454 /org/sonatype/oss/oss-parent/7/oss-parent-7.pom fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a /org/sonatype/oss/oss-parent/9/oss-parent-9.pom 5a15fdba22669e0fdd06e10dcce6320879e1f7398fbc910cd0677b50672a78c4 /org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar @@ -485,13 +480,3 @@ d1968436fc216c901fb9b82c7e878b50fd1d30091676da95b2edd3a9c0ccf92e /stax/stax-api/ 87b13ae136a2bb9299271a0dfe8c351f76661b654ed8fde035c2cabb198cf259 /stax/stax-api/1.0.1/stax-api-1.0.1.pom ad68a86cfd0255a2bc0525ce11ec49640caea7e34ff91eb89c3193dcccd77f05 /trove/trove/1.0.2/trove-1.0.2.jar 83f2682bd3ded1fe417b7e98e7ac86510cd747378eae7e3a5d1d35c7c7f0d2ea /trove/trove/1.0.2/trove-1.0.2.pom -3b90f9f7ad968b9588482e3a09b6e7d0d81c6cf7c214c5cecd8120e3ee509ae9 /tv/twitch/twitch/6.5/twitch-6.5.jar -56820ae80518871ff0af04dbfa54e311f6fa54de922d201f71bd2d3f210e94ba /tv/twitch/twitch/6.5/twitch-6.5.pom -0825d6081eef7e57434cd15525d6c1e7bc5d590e08eaea5b7516820031978af9 /tv/twitch/twitch-external-platform/4.5/twitch-external-platform-4.5-natives-windows-32.jar -6428eb438f53afc563d58c7f2a563ca9fcaae80db3520af744de5e5db1c9df6a /tv/twitch/twitch-external-platform/4.5/twitch-external-platform-4.5-natives-windows-64.jar -5ac03ac36144e4aeeb57b8ccc968b1ed75ae4b9ed4b094f47cb2b7b64c23a67d /tv/twitch/twitch-external-platform/4.5/twitch-external-platform-4.5.pom -4005b7d20bc7e8c37cb0fd94bb7c44b5a6373846f3cb59e7a0095f6ebdf3e4f3 /tv/twitch/twitch-platform/6.5/twitch-platform-6.5-natives-osx.jar -8315b4943f4e1356c34b213d4f309784d5e36cbded1fb37c49efcc7d22c909cb /tv/twitch/twitch-platform/6.5/twitch-platform-6.5-natives-windows-32.jar -75337e7362e489a6f8c9712aeced9e131e82a3ce851cafbd4d03fda284cc7116 /tv/twitch/twitch-platform/6.5/twitch-platform-6.5-natives-windows-64.jar -3b5636dae28488379b110bd87a769497af8227518c273e62110cfd638f9fdcb6 /tv/twitch/twitch-platform/6.5/twitch-platform-6.5.pom -* /versions.json diff --git a/gradle/reprod/patches/forgegradle/0001-Fix-compilation-with-newer-gradle-versions.patch b/gradle/reprod/patches/forgegradle/0001-Fix-compilation-with-newer-gradle-versions.patch deleted file mode 100644 index a74227fd..00000000 --- a/gradle/reprod/patches/forgegradle/0001-Fix-compilation-with-newer-gradle-versions.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 5d778fec168a72d41df672ad38ee5f01973916ce Mon Sep 17 00:00:00 2001 -From: Jonas Herzig -Date: Sat, 2 Sep 2017 15:40:15 +0200 -Subject: [PATCH] Fix compilation with newer gradle versions - ---- - src/main/java/net/minecraftforge/gradle/tasks/CreateStartTask.java | 1 - - src/main/java/net/minecraftforge/gradle/user/TaskRecompileMc.java | 1 - - src/main/java/net/minecraftforge/gradle/user/UserBasePlugin.java | 1 - - .../java/net/minecraftforge/gradle/util/SourceDirSetSupplier.java | 4 ++-- - src/main/java/net/minecraftforge/gradle/util/json/JsonFactory.java | 1 - - 5 files changed, 2 insertions(+), 6 deletions(-) - -diff --git a/src/main/java/net/minecraftforge/gradle/tasks/CreateStartTask.java b/src/main/java/net/minecraftforge/gradle/tasks/CreateStartTask.java -index 1de9ac3..8d0a5a5 100644 ---- a/src/main/java/net/minecraftforge/gradle/tasks/CreateStartTask.java -+++ b/src/main/java/net/minecraftforge/gradle/tasks/CreateStartTask.java -@@ -128,7 +128,6 @@ public class CreateStartTask extends CachedTask - LoggingManager log = getLogging(); - LogLevel startLevel = getProject().getGradle().getStartParameter().getLogLevel(); - if (startLevel.compareTo(LogLevel.LIFECYCLE) >= 0) { -- log.setLevel(LogLevel.ERROR); - } - // INVOKE! - this.getAnt().invokeMethod("javac", ImmutableMap.builder() -diff --git a/src/main/java/net/minecraftforge/gradle/user/TaskRecompileMc.java b/src/main/java/net/minecraftforge/gradle/user/TaskRecompileMc.java -index 224292c..f61618c 100644 ---- a/src/main/java/net/minecraftforge/gradle/user/TaskRecompileMc.java -+++ b/src/main/java/net/minecraftforge/gradle/user/TaskRecompileMc.java -@@ -86,7 +86,6 @@ public class TaskRecompileMc extends CachedTask - LoggingManager log = getLogging(); - LogLevel startLevel = getProject().getGradle().getStartParameter().getLogLevel(); - if (startLevel.compareTo(LogLevel.LIFECYCLE) >= 0) { -- log.setLevel(LogLevel.ERROR); - } - - // recompile -diff --git a/src/main/java/net/minecraftforge/gradle/user/UserBasePlugin.java b/src/main/java/net/minecraftforge/gradle/user/UserBasePlugin.java -index 98391fc..9408a07 100644 ---- a/src/main/java/net/minecraftforge/gradle/user/UserBasePlugin.java -+++ b/src/main/java/net/minecraftforge/gradle/user/UserBasePlugin.java -@@ -37,7 +37,6 @@ import javax.xml.transform.TransformerFactory; - import javax.xml.transform.dom.DOMSource; - import javax.xml.transform.stream.StreamResult; - --import com.beust.jcommander.internal.Lists; - import org.gradle.api.Action; - import org.gradle.api.DefaultTask; - import org.gradle.api.NamedDomainObjectContainer; -diff --git a/src/main/java/net/minecraftforge/gradle/util/SourceDirSetSupplier.java b/src/main/java/net/minecraftforge/gradle/util/SourceDirSetSupplier.java -index 4e9dbe5..4f3744e 100644 ---- a/src/main/java/net/minecraftforge/gradle/util/SourceDirSetSupplier.java -+++ b/src/main/java/net/minecraftforge/gradle/util/SourceDirSetSupplier.java -@@ -19,13 +19,13 @@ - */ - package net.minecraftforge.gradle.util; - --import com.beust.jcommander.internal.Lists; -+import com.google.common.collect.Lists; -+import com.google.common.collect.Maps; - import net.minecraftforge.srg2source.util.io.InputSupplier; - import net.minecraftforge.srg2source.util.io.OutputSupplier; - import org.gradle.api.file.FileVisitDetails; - import org.gradle.api.file.FileVisitor; - import org.gradle.api.file.SourceDirectorySet; --import org.testng.collections.Maps; - - import java.io.*; - import java.util.List; -diff --git a/src/main/java/net/minecraftforge/gradle/util/json/JsonFactory.java b/src/main/java/net/minecraftforge/gradle/util/json/JsonFactory.java -index b75f653..fa61537 100644 ---- a/src/main/java/net/minecraftforge/gradle/util/json/JsonFactory.java -+++ b/src/main/java/net/minecraftforge/gradle/util/json/JsonFactory.java -@@ -26,7 +26,6 @@ import java.io.IOException; - import java.util.*; - import java.util.Map.Entry; - --import com.beust.jcommander.internal.Lists; - import com.google.common.base.Strings; - import com.google.common.reflect.TypeToken; - import com.google.gson.Gson; --- -2.9.5 - diff --git a/gradle/reprod/patches/forgegradle/0001-Replace-https-urls-with-http-for-proxy-witness.patch b/gradle/reprod/patches/forgegradle/0001-Replace-https-urls-with-http-for-proxy-witness.patch index 0fee26f7..2e531bee 100644 --- a/gradle/reprod/patches/forgegradle/0001-Replace-https-urls-with-http-for-proxy-witness.patch +++ b/gradle/reprod/patches/forgegradle/0001-Replace-https-urls-with-http-for-proxy-witness.patch @@ -13,7 +13,7 @@ index df369f1..e3e50c0 100644 --- a/src/main/java/net/minecraftforge/gradle/common/BasePlugin.java +++ b/src/main/java/net/minecraftforge/gradle/common/BasePlugin.java @@ -350,6 +350,13 @@ public abstract class BasePlugin implements Plugin URLS_MCP_JSON = Arrays.asList( -- 2.5.5 diff --git a/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch b/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch index 70ec92f9..40d3c5d1 100644 --- a/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch +++ b/gradle/reprod/patches/forgegradle/0006-Replace-SNAPSHOT-deps-with-manually-built-ones.patch @@ -25,7 +25,7 @@ index bfadecd..774a015 100644 // mcp stuff shade 'de.oceanlabs.mcp:RetroGuard:3.6.6' - shade 'de.oceanlabs.mcp:mcinjector:3.4-SNAPSHOT' -- shade 'net.minecraftforge.srg2source:Srg2Source:3.3-SNAPSHOT' +- shade 'net.minecraftforge.srg2source:Srg2Source:4.0-SNAPSHOT' + shade 'reprod:mcinjector:0' + shade 'reprod:srg2source:0' diff --git a/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch b/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch index 4bb25b9c..2116109f 100644 --- a/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch +++ b/gradle/reprod/patches/replaymod/0001-Replace-buildscript-dependencies-with-manually-built.patch @@ -32,8 +32,8 @@ index ee24828..42d0607 100755 + maven { url 'gradle/reprod/deps/repo' } } dependencies { -- classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT' -- classpath 'org.spongepowered:mixingradle:0.3-SNAPSHOT' +- classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT' +- classpath 'org.spongepowered:mixingradle:0.4-SNAPSHOT' + classpath 'reprod:forgegradle:0' + classpath 'reprod:mixingradle:0' } diff --git a/gradle/reprod/setup.sh b/gradle/reprod/setup.sh index b51cedc4..fb1d44aa 100755 --- a/gradle/reprod/setup.sh +++ b/gradle/reprod/setup.sh @@ -108,11 +108,11 @@ setup_dep "fernflower" "https://github.com/fesh0r/fernflower.git" "adbf29f8ce902 # Required for forgegradle setup_dep "forgeflower" "https://github.com/MinecraftForge/FernFlowerLegacy.git" "114aebe82cf40075c5c4f916c409b8aebf8096d5" "build/libs/fernflower-2.0-SNAPSHOT.jar" "c8b4a4a13a1158008aed46da2c805184078324718697f14a67f1778168579956" "fbda3f30d54624fe4c59a69e145b644d8642afc0dd4eb0d732ccdaa0ebd5d8a3" setup_dep "mcinjector" "https://github.com/ModCoderPack/MCInjector.git" "7258466461baf7dc4f313b06b0d589407e4e1fba" "build/libs/mcinjector-3.4-SNAPSHOT.jar" "98b685ea0d3ae9fad8b8a7e7b885512f7fe0b61becf27d9c74b91a626d107efc" "3c08655c11e6509bfc62ff87d0770cefa0ecbd8dccece9e083c9b7b89779a8c5" -setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "5f11e2933f722000dbf742ffdd0d9c5ee8044bbb" "build/libs/Srg2Source-3.3-SNAPSHOT.jar" "9aa601ade2c33ce52fe09894efd4c1bb69c68a238c2dd260605881863083362e" "cbfdd113cd054b80ce3a1e5636d254fea4f59a82af9874ae9f3786cb1901920d" +setup_dep "srg2source" "https://github.com/MinecraftForge/Srg2Source.git" "ea4ea624672e8b75fb2a78f0fb9105db13d5a4a6" "build/libs/Srg2Source-4.0-SNAPSHOT.jar" "727445a7b946535217be658726c537acf1921f0a9e2ac0ea717dff9b36dc529f" "4ebd7b738f368ee5c25a1028a167257e7012cef7c72c8b5b06149286992c631e" # 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" "17806f45d20d0b55bff70a616eaeb939bd6a543c" "build/libs/ForgeGradle-2.1-SNAPSHOT.jar" "dc3da35074bbb1c55e68f7863a8fc8660803da3192aa8d0a7e33280424d3c8d0" "4c670a05fbd9aeaa581ae8ba7597df1d1def7b04160e1c6b076ed6778dd45e58" +setup_dep "forgegradle" "https://github.com/MinecraftForge/ForgeGradle.git" "d13a6c892f51937567b3d01d85bea4f3d128e71d" "build/libs/ForgeGradle-2.2-SNAPSHOT.jar" "355a8bd6f49f3d11c40d58da9bb388e05b634ddfac43ab222bf2326aa40f0be4" "45966ee785c42e34c36be3e73046aca1a581a919fb02a9028970d19d35488b18" setup_dep "mixin" "https://github.com/SpongePowered/Mixin.git" "404f5da0b6b18980b4e44c7f1cfeddcd47fe4aa6" "build/libs/mixin-0.7.5-SNAPSHOT.jar" "7d181a5e7c317c00c07da14e7770e4356b0f201414cd2a836e987be9fa133d43" "11000383a5051f25a70c2bff3a3167b6859ae4f9838a0ab45560e9f9c9d9def7" rm -rf tmp From fd7da227a013a4631ffa315efc4b2ac14fe9ecca Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sat, 28 Oct 2017 17:42:58 +0200 Subject: [PATCH 33/53] Update reprod to 1.10.2 --- gradle/reprod/checksums.txt | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index ea7763f0..2b4b74d2 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -14,8 +14,8 @@ f98b3e07c6b6a32dd6f9f70f5cef4ac9be42a9a6c850ceb8f33767da94706635 /com/github/joh 03e3dff7f9b3ac6cd3b87684fd36a2f6996a4b164a2f8fab9c22c01cb7bfb84b /com/github/johni0702/gradle-reproducible-builds-plugin/a524ada/gradle-reproducible-builds-plugin-a524ada.pom 75ccc0e24d37ed5b8916e1bcffad1e067c2b1cfa21b635287f968db5c3c1963a /com/github/jponge/lzma-java/1.3/lzma-java-1.3.jar fbcba81b21a8bc3c0761e4798fa05285444b43d681c03c9af49f9b2e1ecb0184 /com/github/jponge/lzma-java/1.3/lzma-java-1.3.pom -a37e00769fb00b8fdcfd939b92d1b7adbabebdc96e060991ee72053f5509439f /com/github/replaymod/ReplayStudio/c7ed696/ReplayStudio-c7ed696.jar -a98a18a476c0b4b861e86701f0442c90040dc7f086d097fe3adde0553cd217ad /com/github/replaymod/ReplayStudio/c7ed696/ReplayStudio-c7ed696.pom +49909c260253727229da7c7690af85ea886b020188faa3190e1c75e6fefd6f59 /com/github/replaymod/ReplayStudio/cc35b80/ReplayStudio-cc35b80.jar +6b3bc9f49a86caa03fa4eb1a4d5fc0d50f24cebcedab3305b7caebd212f9946b /com/github/replaymod/ReplayStudio/cc35b80/ReplayStudio-cc35b80.pom c6ebd74cd6108b8c372c95b842725ee5bd6d3303ba26cb00f18bc92f80b47956 /com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.jar 7cdd89a892927998beab59398ef073232588f6e83e411cf4f0905833bf300487 /com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.pom 47c625c83a8cf97b8bbdff2acde923ff8fd3174e62aabcfc5d1b86692594ffba /com/google/api-client/google-api-client/1.22.0/google-api-client-1.22.0.jar @@ -82,8 +82,8 @@ dc07988e5bb1609e8e027cc89c2993a19586e219c02ff74ea4298e73e97b0efb /com/mojang/aut 3e70bac893bb04ac2992baa6fc438f6fc33c0d0213c4edcc40d295e7938091ca /com/mojang/authlib/1.5.22/authlib-1.5.22.pom 3120fd24c09ab9bc088cb9c1eb2065be86718608450fdbc27b5d371729a619cb /com/mojang/netty/1.6/netty-1.6.jar 568cc3fad81e5e389bad0012a07eca5db073e287200c6c9cb02caf3dc489e9f6 /com/mojang/netty/1.6/netty-1.6.pom -c5bbcbcfba1c7444af30b94f7c3eb2ff215ec3cc17c57a9be6b2c815f9a93a0f /com/mojang/realms/1.8.19/realms-1.8.19.jar -c9a429757023ac6daa636205efebd16ef8c21e2ec4e45621fc134a5692c14380 /com/mojang/realms/1.8.19/realms-1.8.19.pom +fe558457679bc0734c83a80f579bbe73415d02a83709d19c6d78c011843ca17c /com/mojang/realms/1.9.8/realms-1.9.8.jar +28bcfc79565f33a1b6382f6ae2ed7841f456f088488083e199764de46c99efd6 /com/mojang/realms/1.9.8/realms-1.9.8.pom e7cd8951956d349b568b7ccfd4f5b2529a8c113e67c32b028f52ffda371259d9 /commons-cli/commons-cli/1.2/commons-cli-1.2.jar 18f3e92076e08c2fde48317025098e9f6baaa85f6912eb43f2d7e68d570e4561 /commons-cli/commons-cli/1.2/commons-cli-1.2.pom 1bafd2ece2e88db4cdf835a7f8f0de65fab5b1147977a5dcc59b7c1b8c6f5080 /commons-codec/commons-codec/1.3/commons-codec-1.3.jar @@ -123,7 +123,7 @@ c1a2438a4d35f8586c71d96c44a7e2f133ec924597147a246f8c501acca6acb5 /com/paulscode/ 9f9920b48ae5f1045fe966f08164d6b4e0a727cf17f8e4813ae5c0f2daecffbc /com/typesafe/akka/akka-actor_2.11/2.3.3/akka-actor_2.11-2.3.3.pom c160fbd78f51a0c2375a794e435ce2112524a6871f64d0331895e9e26ee8b9ee /com/typesafe/config/1.2.1/config-1.2.1.jar 62361ef10448869fff8c05150bd0449b423e3ff4498f2a4bab825b3c7685aa3c /com/typesafe/config/1.2.1/config-1.2.1.pom -83b111d3d1a8e8cf06cacf2c877f40bc4fce23c3b04941fe9a1a582374e6d924 /de/oceanlabs/mcp/mcp/1.9.4/mcp-1.9.4-srg.zip +f2ce9e7cdc3e3598390a495a07cc18aa930a8b9e1480d97bfae31f29e1e75a19 /de/oceanlabs/mcp/mcp/1.10.2/mcp-1.10.2-srg.zip 16f933fe337c265ed20fd616a2acadbd119a0b1d1fb186ca26fc8964aeebe0c2 /de/oceanlabs/mcp/mcp_snapshot/20160518-1.9.4/mcp_snapshot-20160518-1.9.4.zip 22c45060f350fcaa94e503f4a420cf8237c26c0fcdb4ada4aa98389b75c7b231 /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.jar d6f165bb39aaa20ee14fdcbbdb0b8fffae38067087f333ec6e0acd3f6666b2ad /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.pom @@ -144,9 +144,9 @@ cb54dedc5d8c4510148dfa792701cbac1a84c383a84f48f5a32e6d7e460bbb72 /log4j/log4j/1. 0c3085cb93c3ef95d731c274b6f2dd195aa0405fe9328d69cab7f5e899d5e124 /lzma/lzma/0.0.1/lzma-0.0.1.jar a096bc9f7579cec07483874151578720eeb3189c546c19cff56a6203df17b50e /lzma/lzma/0.0.1/lzma-0.0.1.pom * /mc/game/version_manifest.json -23e90103a1ca2ac71100004c6d5846de09f85695f579843ef8da41571e60c908 /mc/game/1.9.4/client/4a61c873be90bb1196d68dac7b29870408c56969/client.jar -13fea7aa10d804dd14ed7ebde2493dc64c7d3c8173369309bd7f6ea4c0ea40ad /mc/game/1.9.4/server/edbb7b1758af33d365bf835eb9d13de005b1e274/server.jar -045c639666c64d61efcdd7be61dbd6a3b1ce5108a11d7d4fc9ad5584937bce19 /mc/game/cdcd308b7cbd15bc595850ce6557d4ade48cee7a/1.9.4.json +7cdf7fcdc1c92584a233bf3c42bd7f0df1bdad3007d306831fe50410692be1e9 /mc/game/1.10.2/client/dc8e75ac7274ff6af462b0dcec43c307de668e40/client.jar +195f468227c5f9218f3919538b9b16ba34adced67fc7d7b652c508a5e8d07a21 /mc/game/1.10.2/server/3d501b23df53c548254f5e3f66492d178a48db63/server.jar +48841dde28888f147bef0f2656b589427cd1ec6ad355b9434f3bc3038bdb698f /mc/game/1920a2b4e996bae0af1a67d38d63706bac10ac47/1.10.2.json 3bff6a1489b8e54cf130344bc5e8744db331045ad2fc736612576e1d80eb1f48 /net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar cf4605822bd56d135dd7031603f122a11a0ec772373f466a4f2aac72dd9a1761 /net/java/dev/jna/jna/3.4.0/jna-3.4.0.pom ea89d5090c8303ba4e9a0056e6d8a20429f3e021411e950bfd9eba3b6e6cf15c /net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar @@ -162,8 +162,8 @@ af09ead4eb241473e7ec4d152a91a722ea09a717a202e20e4b385eac3217b7d6 /net/java/jutil b47c5d5810643426a3147ddb2195ef2ab67c80b167e7c2ac64a5d0dee8c030dd /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.jar 5f374f8ae7afff8dbc23aff14e59c5bd585c230afe9a8dcaa7b928e8cb16a27e /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.pom * /net/minecraftforge/forge/json -95f1435c1638b942f4a63d5c5b3cbc85653183caa5357e4586fb792e2d7a819b /net/minecraftforge/forge/1.9.4-12.17.0.1976/forge-1.9.4-12.17.0.1976.pom -f317d5572442e9c072046247a5f1c9e5643c5cf5af8900a2c2f878a44d07bbf1 /net/minecraftforge/forge/1.9.4-12.17.0.1976/forge-1.9.4-12.17.0.1976-userdev.jar +df07ca74ae02f9879c6e5dd49eac661ddb907e65ba1536694aa0f27932ac9b99 /net/minecraftforge/forge/1.10.2-12.18.2.2099/forge-1.10.2-12.18.2.2099.pom +305dbc9c547d87f650de3b1ded42d48a28533f45c857c9e05f217b61238fc1cb /net/minecraftforge/forge/1.10.2-12.18.2.2099/forge-1.10.2-12.18.2.2099-userdev.jar e74b65b8948446982a506a96176dd8baf4688237ba4903f56ca6f667b6c7ee42 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.jar 616c4971035d1e6ab4809e16daabb02aa308c1dc001c06dd547c7d3b2e916999 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.pom 57f402b626d16cc2705bf2a37add7adbb074f0ca3b3102fa6e23aa303dae682f /net/minecraft/launchwrapper/1.12/launchwrapper-1.12.jar From b0a65b11037abea3b3ac0ca3abc0dec5c6bcfe75 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sat, 28 Oct 2017 18:04:27 +0200 Subject: [PATCH 34/53] Update reprod to 1.11 --- gradle/reprod/checksums.txt | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index 2b4b74d2..550c4e68 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -14,8 +14,8 @@ f98b3e07c6b6a32dd6f9f70f5cef4ac9be42a9a6c850ceb8f33767da94706635 /com/github/joh 03e3dff7f9b3ac6cd3b87684fd36a2f6996a4b164a2f8fab9c22c01cb7bfb84b /com/github/johni0702/gradle-reproducible-builds-plugin/a524ada/gradle-reproducible-builds-plugin-a524ada.pom 75ccc0e24d37ed5b8916e1bcffad1e067c2b1cfa21b635287f968db5c3c1963a /com/github/jponge/lzma-java/1.3/lzma-java-1.3.jar fbcba81b21a8bc3c0761e4798fa05285444b43d681c03c9af49f9b2e1ecb0184 /com/github/jponge/lzma-java/1.3/lzma-java-1.3.pom -49909c260253727229da7c7690af85ea886b020188faa3190e1c75e6fefd6f59 /com/github/replaymod/ReplayStudio/cc35b80/ReplayStudio-cc35b80.jar -6b3bc9f49a86caa03fa4eb1a4d5fc0d50f24cebcedab3305b7caebd212f9946b /com/github/replaymod/ReplayStudio/cc35b80/ReplayStudio-cc35b80.pom +1f17338aea042f4d3f6c896f1f88d7f6731333ce74bc3a93e873a949e87cf221 /com/github/replaymod/ReplayStudio/a5618f7/ReplayStudio-a5618f7.jar +2915572072721ae75467f881a912286d414394a11b325771f941628c52057e69 /com/github/replaymod/ReplayStudio/a5618f7/ReplayStudio-a5618f7.pom c6ebd74cd6108b8c372c95b842725ee5bd6d3303ba26cb00f18bc92f80b47956 /com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.jar 7cdd89a892927998beab59398ef073232588f6e83e411cf4f0905833bf300487 /com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.pom 47c625c83a8cf97b8bbdff2acde923ff8fd3174e62aabcfc5d1b86692594ffba /com/google/api-client/google-api-client/1.22.0/google-api-client-1.22.0.jar @@ -78,12 +78,12 @@ bbc21cab2e0b0c76c9977fdf8b80c311788094d81e6910a2a6e63d80910102c7 /com/gradle/pub 06b382efe9d60474aa3df7f4851397b3ae0c4f142567f0fc66a8fa2706a665e4 /com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.pom 2c149735a093b6c65a27db760896ad5c5b06e29100bb8969937667784fef4ba0 /com/mojang/authlib/1.5.16/authlib-1.5.16.jar d05175230d79f518b5c4664d24e3d115f5f3888e3806f3b6076cd0b4943e6ca6 /com/mojang/authlib/1.5.16/authlib-1.5.16.pom -dc07988e5bb1609e8e027cc89c2993a19586e219c02ff74ea4298e73e97b0efb /com/mojang/authlib/1.5.22/authlib-1.5.22.jar -3e70bac893bb04ac2992baa6fc438f6fc33c0d0213c4edcc40d295e7938091ca /com/mojang/authlib/1.5.22/authlib-1.5.22.pom +795f783dc6301d10e356d1f3db9952d71692ed8004ffdd843f0049f813a0d1a5 /com/mojang/authlib/1.5.24/authlib-1.5.24.jar +0ff47d5e96e67c629513d5cc743a5180dc935603e5957b11ea05fe021bacd5f9 /com/mojang/authlib/1.5.24/authlib-1.5.24.pom 3120fd24c09ab9bc088cb9c1eb2065be86718608450fdbc27b5d371729a619cb /com/mojang/netty/1.6/netty-1.6.jar 568cc3fad81e5e389bad0012a07eca5db073e287200c6c9cb02caf3dc489e9f6 /com/mojang/netty/1.6/netty-1.6.pom -fe558457679bc0734c83a80f579bbe73415d02a83709d19c6d78c011843ca17c /com/mojang/realms/1.9.8/realms-1.9.8.jar -28bcfc79565f33a1b6382f6ae2ed7841f456f088488083e199764de46c99efd6 /com/mojang/realms/1.9.8/realms-1.9.8.pom +9076a115056a4a3ce85b3f8b8c06b8e4ea723d856ab87592d72ac9fd3fa67c9f /com/mojang/realms/1.10.4/realms-1.10.4.jar +0e436798162614ebaa8a04c225ff0100d046848759a3d8a5f5bc3c73dcdaea13 /com/mojang/realms/1.10.4/realms-1.10.4.pom e7cd8951956d349b568b7ccfd4f5b2529a8c113e67c32b028f52ffda371259d9 /commons-cli/commons-cli/1.2/commons-cli-1.2.jar 18f3e92076e08c2fde48317025098e9f6baaa85f6912eb43f2d7e68d570e4561 /commons-cli/commons-cli/1.2/commons-cli-1.2.pom 1bafd2ece2e88db4cdf835a7f8f0de65fab5b1147977a5dcc59b7c1b8c6f5080 /commons-codec/commons-codec/1.3/commons-codec-1.3.jar @@ -123,8 +123,8 @@ c1a2438a4d35f8586c71d96c44a7e2f133ec924597147a246f8c501acca6acb5 /com/paulscode/ 9f9920b48ae5f1045fe966f08164d6b4e0a727cf17f8e4813ae5c0f2daecffbc /com/typesafe/akka/akka-actor_2.11/2.3.3/akka-actor_2.11-2.3.3.pom c160fbd78f51a0c2375a794e435ce2112524a6871f64d0331895e9e26ee8b9ee /com/typesafe/config/1.2.1/config-1.2.1.jar 62361ef10448869fff8c05150bd0449b423e3ff4498f2a4bab825b3c7685aa3c /com/typesafe/config/1.2.1/config-1.2.1.pom -f2ce9e7cdc3e3598390a495a07cc18aa930a8b9e1480d97bfae31f29e1e75a19 /de/oceanlabs/mcp/mcp/1.10.2/mcp-1.10.2-srg.zip -16f933fe337c265ed20fd616a2acadbd119a0b1d1fb186ca26fc8964aeebe0c2 /de/oceanlabs/mcp/mcp_snapshot/20160518-1.9.4/mcp_snapshot-20160518-1.9.4.zip +9346e52ec542a990ea18722a7ff61a208b14796ba4a117bf0a1a043dee3cfc7c /de/oceanlabs/mcp/mcp/1.11/mcp-1.11-srg.zip +912bc85953e769198afbc52ac1b7f324a86990529706b36d4771415cab5f3a3d /de/oceanlabs/mcp/mcp_snapshot/20161111-1.10.2/mcp_snapshot-20161111-1.10.2.zip 22c45060f350fcaa94e503f4a420cf8237c26c0fcdb4ada4aa98389b75c7b231 /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.jar d6f165bb39aaa20ee14fdcbbdb0b8fffae38067087f333ec6e0acd3f6666b2ad /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.pom * /de/oceanlabs/mcp/versions.json @@ -144,9 +144,9 @@ cb54dedc5d8c4510148dfa792701cbac1a84c383a84f48f5a32e6d7e460bbb72 /log4j/log4j/1. 0c3085cb93c3ef95d731c274b6f2dd195aa0405fe9328d69cab7f5e899d5e124 /lzma/lzma/0.0.1/lzma-0.0.1.jar a096bc9f7579cec07483874151578720eeb3189c546c19cff56a6203df17b50e /lzma/lzma/0.0.1/lzma-0.0.1.pom * /mc/game/version_manifest.json -7cdf7fcdc1c92584a233bf3c42bd7f0df1bdad3007d306831fe50410692be1e9 /mc/game/1.10.2/client/dc8e75ac7274ff6af462b0dcec43c307de668e40/client.jar -195f468227c5f9218f3919538b9b16ba34adced67fc7d7b652c508a5e8d07a21 /mc/game/1.10.2/server/3d501b23df53c548254f5e3f66492d178a48db63/server.jar -48841dde28888f147bef0f2656b589427cd1ec6ad355b9434f3bc3038bdb698f /mc/game/1920a2b4e996bae0af1a67d38d63706bac10ac47/1.10.2.json +f0d11987ea743f55a2c03bf77216e6dc9baea7201cc7bf498ceb18043e984634 /mc/game/1.11/client/780e46b3a96091a7f42c028c615af45974629072/client.jar +3277965fd83d26944dfbd1b9740d95cf206985da330a1b3733868e4de7dc6f83 /mc/game/1.11/server/48820c84cb1ed502cb5b2fe23b8153d5e4fa61c0/server.jar +80c42a047af4aa89a43fff83f56b3a657e3e969b8ce1f23413b814fb7e1e4605 /mc/game/7a3e41e164f3e3124c05a8bc782bba466d20c431/1.11.json 3bff6a1489b8e54cf130344bc5e8744db331045ad2fc736612576e1d80eb1f48 /net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar cf4605822bd56d135dd7031603f122a11a0ec772373f466a4f2aac72dd9a1761 /net/java/dev/jna/jna/3.4.0/jna-3.4.0.pom ea89d5090c8303ba4e9a0056e6d8a20429f3e021411e950bfd9eba3b6e6cf15c /net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar @@ -162,8 +162,8 @@ af09ead4eb241473e7ec4d152a91a722ea09a717a202e20e4b385eac3217b7d6 /net/java/jutil b47c5d5810643426a3147ddb2195ef2ab67c80b167e7c2ac64a5d0dee8c030dd /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.jar 5f374f8ae7afff8dbc23aff14e59c5bd585c230afe9a8dcaa7b928e8cb16a27e /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.pom * /net/minecraftforge/forge/json -df07ca74ae02f9879c6e5dd49eac661ddb907e65ba1536694aa0f27932ac9b99 /net/minecraftforge/forge/1.10.2-12.18.2.2099/forge-1.10.2-12.18.2.2099.pom -305dbc9c547d87f650de3b1ded42d48a28533f45c857c9e05f217b61238fc1cb /net/minecraftforge/forge/1.10.2-12.18.2.2099/forge-1.10.2-12.18.2.2099-userdev.jar +c12e3e3e269007f40dab08d4632fa907a89c8cc2edcf0e0366cd230b99dfe1d4 /net/minecraftforge/forge/1.11-13.19.1.2188/forge-1.11-13.19.1.2188.pom +bca39299eb708ab47ec91b4adcfd1817da7ae7d049ced32469fd24d17bdd503f /net/minecraftforge/forge/1.11-13.19.1.2188/forge-1.11-13.19.1.2188-userdev.jar e74b65b8948446982a506a96176dd8baf4688237ba4903f56ca6f667b6c7ee42 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.jar 616c4971035d1e6ab4809e16daabb02aa308c1dc001c06dd547c7d3b2e916999 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.pom 57f402b626d16cc2705bf2a37add7adbb074f0ca3b3102fa6e23aa303dae682f /net/minecraft/launchwrapper/1.12/launchwrapper-1.12.jar From 5f7e4fd9dd523636f6b4821e71507c8ea4a58268 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sat, 28 Oct 2017 18:25:22 +0200 Subject: [PATCH 35/53] Update reprod to 1.11.2 --- gradle/reprod/checksums.txt | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index 550c4e68..4f565890 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -14,8 +14,8 @@ f98b3e07c6b6a32dd6f9f70f5cef4ac9be42a9a6c850ceb8f33767da94706635 /com/github/joh 03e3dff7f9b3ac6cd3b87684fd36a2f6996a4b164a2f8fab9c22c01cb7bfb84b /com/github/johni0702/gradle-reproducible-builds-plugin/a524ada/gradle-reproducible-builds-plugin-a524ada.pom 75ccc0e24d37ed5b8916e1bcffad1e067c2b1cfa21b635287f968db5c3c1963a /com/github/jponge/lzma-java/1.3/lzma-java-1.3.jar fbcba81b21a8bc3c0761e4798fa05285444b43d681c03c9af49f9b2e1ecb0184 /com/github/jponge/lzma-java/1.3/lzma-java-1.3.pom -1f17338aea042f4d3f6c896f1f88d7f6731333ce74bc3a93e873a949e87cf221 /com/github/replaymod/ReplayStudio/a5618f7/ReplayStudio-a5618f7.jar -2915572072721ae75467f881a912286d414394a11b325771f941628c52057e69 /com/github/replaymod/ReplayStudio/a5618f7/ReplayStudio-a5618f7.pom +2b2fd0f60563664b55ac08ac0cd8ed1337b9fd536ad587481f5bf0dd5f96a6b7 /com/github/replaymod/ReplayStudio/a4a75b3/ReplayStudio-a4a75b3.jar +9ffc82dca07ffea525eef3b7ee1efe3b69a957076c7e93e83b3700cf614c7a03 /com/github/replaymod/ReplayStudio/a4a75b3/ReplayStudio-a4a75b3.pom c6ebd74cd6108b8c372c95b842725ee5bd6d3303ba26cb00f18bc92f80b47956 /com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.jar 7cdd89a892927998beab59398ef073232588f6e83e411cf4f0905833bf300487 /com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.pom 47c625c83a8cf97b8bbdff2acde923ff8fd3174e62aabcfc5d1b86692594ffba /com/google/api-client/google-api-client/1.22.0/google-api-client-1.22.0.jar @@ -82,8 +82,8 @@ d05175230d79f518b5c4664d24e3d115f5f3888e3806f3b6076cd0b4943e6ca6 /com/mojang/aut 0ff47d5e96e67c629513d5cc743a5180dc935603e5957b11ea05fe021bacd5f9 /com/mojang/authlib/1.5.24/authlib-1.5.24.pom 3120fd24c09ab9bc088cb9c1eb2065be86718608450fdbc27b5d371729a619cb /com/mojang/netty/1.6/netty-1.6.jar 568cc3fad81e5e389bad0012a07eca5db073e287200c6c9cb02caf3dc489e9f6 /com/mojang/netty/1.6/netty-1.6.pom -9076a115056a4a3ce85b3f8b8c06b8e4ea723d856ab87592d72ac9fd3fa67c9f /com/mojang/realms/1.10.4/realms-1.10.4.jar -0e436798162614ebaa8a04c225ff0100d046848759a3d8a5f5bc3c73dcdaea13 /com/mojang/realms/1.10.4/realms-1.10.4.pom +a74b4370bc60e368b9c29940d3b6aae334aef3f5cf16b5c2ee5d0b775ef6ea18 /com/mojang/realms/1.10.16/realms-1.10.16.jar +23c16b609458580d2f12abba28604264bfc71451374584a673bd52ad3b99c25c /com/mojang/realms/1.10.16/realms-1.10.16.pom e7cd8951956d349b568b7ccfd4f5b2529a8c113e67c32b028f52ffda371259d9 /commons-cli/commons-cli/1.2/commons-cli-1.2.jar 18f3e92076e08c2fde48317025098e9f6baaa85f6912eb43f2d7e68d570e4561 /commons-cli/commons-cli/1.2/commons-cli-1.2.pom 1bafd2ece2e88db4cdf835a7f8f0de65fab5b1147977a5dcc59b7c1b8c6f5080 /commons-codec/commons-codec/1.3/commons-codec-1.3.jar @@ -123,8 +123,8 @@ c1a2438a4d35f8586c71d96c44a7e2f133ec924597147a246f8c501acca6acb5 /com/paulscode/ 9f9920b48ae5f1045fe966f08164d6b4e0a727cf17f8e4813ae5c0f2daecffbc /com/typesafe/akka/akka-actor_2.11/2.3.3/akka-actor_2.11-2.3.3.pom c160fbd78f51a0c2375a794e435ce2112524a6871f64d0331895e9e26ee8b9ee /com/typesafe/config/1.2.1/config-1.2.1.jar 62361ef10448869fff8c05150bd0449b423e3ff4498f2a4bab825b3c7685aa3c /com/typesafe/config/1.2.1/config-1.2.1.pom -9346e52ec542a990ea18722a7ff61a208b14796ba4a117bf0a1a043dee3cfc7c /de/oceanlabs/mcp/mcp/1.11/mcp-1.11-srg.zip -912bc85953e769198afbc52ac1b7f324a86990529706b36d4771415cab5f3a3d /de/oceanlabs/mcp/mcp_snapshot/20161111-1.10.2/mcp_snapshot-20161111-1.10.2.zip +be95745a7052c11e232fe1b307e5e75444d8408b4d4127c32660e07fea338511 /de/oceanlabs/mcp/mcp/1.11.2/mcp-1.11.2-srg.zip +755416d68281e0c6998fc743929f36e14563510467d1c749d4bf66ba5bf82b19 /de/oceanlabs/mcp/mcp_snapshot/20161220-1.11/mcp_snapshot-20161220-1.11.zip 22c45060f350fcaa94e503f4a420cf8237c26c0fcdb4ada4aa98389b75c7b231 /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.jar d6f165bb39aaa20ee14fdcbbdb0b8fffae38067087f333ec6e0acd3f6666b2ad /de/oceanlabs/mcp/RetroGuard/3.6.6/RetroGuard-3.6.6.pom * /de/oceanlabs/mcp/versions.json @@ -144,9 +144,9 @@ cb54dedc5d8c4510148dfa792701cbac1a84c383a84f48f5a32e6d7e460bbb72 /log4j/log4j/1. 0c3085cb93c3ef95d731c274b6f2dd195aa0405fe9328d69cab7f5e899d5e124 /lzma/lzma/0.0.1/lzma-0.0.1.jar a096bc9f7579cec07483874151578720eeb3189c546c19cff56a6203df17b50e /lzma/lzma/0.0.1/lzma-0.0.1.pom * /mc/game/version_manifest.json -f0d11987ea743f55a2c03bf77216e6dc9baea7201cc7bf498ceb18043e984634 /mc/game/1.11/client/780e46b3a96091a7f42c028c615af45974629072/client.jar -3277965fd83d26944dfbd1b9740d95cf206985da330a1b3733868e4de7dc6f83 /mc/game/1.11/server/48820c84cb1ed502cb5b2fe23b8153d5e4fa61c0/server.jar -80c42a047af4aa89a43fff83f56b3a657e3e969b8ce1f23413b814fb7e1e4605 /mc/game/7a3e41e164f3e3124c05a8bc782bba466d20c431/1.11.json +be3fff4f2cc005a1310a96389efdeb983d2bcb4b8e747c402acd616ae73d0ba2 /mc/game/1.11.2/client/db5aa600f0b0bf508aaf579509b345c4e34087be/client.jar +dec47d36b429fd05076b90b1f42c2a25138bc39204aa51b9674ef2a98d64d88a /mc/game/1.11.2/server/f00c294a1576e03fddcac777c3cf4c7d404c4ba4/server.jar +fc6387a60a18b8d649590324a4d16ea489eea7a10e5633a4ae406f73ac868505 /mc/game/12f260fc1976f6dd688a211f1a906f956344abdd/1.11.2.json 3bff6a1489b8e54cf130344bc5e8744db331045ad2fc736612576e1d80eb1f48 /net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar cf4605822bd56d135dd7031603f122a11a0ec772373f466a4f2aac72dd9a1761 /net/java/dev/jna/jna/3.4.0/jna-3.4.0.pom ea89d5090c8303ba4e9a0056e6d8a20429f3e021411e950bfd9eba3b6e6cf15c /net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar @@ -162,8 +162,8 @@ af09ead4eb241473e7ec4d152a91a722ea09a717a202e20e4b385eac3217b7d6 /net/java/jutil b47c5d5810643426a3147ddb2195ef2ab67c80b167e7c2ac64a5d0dee8c030dd /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.jar 5f374f8ae7afff8dbc23aff14e59c5bd585c230afe9a8dcaa7b928e8cb16a27e /net/md-5/SpecialSource/1.7.4/SpecialSource-1.7.4.pom * /net/minecraftforge/forge/json -c12e3e3e269007f40dab08d4632fa907a89c8cc2edcf0e0366cd230b99dfe1d4 /net/minecraftforge/forge/1.11-13.19.1.2188/forge-1.11-13.19.1.2188.pom -bca39299eb708ab47ec91b4adcfd1817da7ae7d049ced32469fd24d17bdd503f /net/minecraftforge/forge/1.11-13.19.1.2188/forge-1.11-13.19.1.2188-userdev.jar +b55cbfab15e7258d6d1640f655d5fcaf0e28222c81120b9d9be6b7853db34ccc /net/minecraftforge/forge/1.11.2-13.20.0.2216/forge-1.11.2-13.20.0.2216.pom +43734366d24d801abecd5b2dee8bfbb120d81622d0614838ef07e7f602beea27 /net/minecraftforge/forge/1.11.2-13.20.0.2216/forge-1.11.2-13.20.0.2216-userdev.jar e74b65b8948446982a506a96176dd8baf4688237ba4903f56ca6f667b6c7ee42 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.jar 616c4971035d1e6ab4809e16daabb02aa308c1dc001c06dd547c7d3b2e916999 /net/minecraft/launchwrapper/1.11/launchwrapper-1.11.pom 57f402b626d16cc2705bf2a37add7adbb074f0ca3b3102fa6e23aa303dae682f /net/minecraft/launchwrapper/1.12/launchwrapper-1.12.jar From bfbaec44ba3de26f210ba13c0d9171c769fef203 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 31 Oct 2017 11:11:03 +0100 Subject: [PATCH 36/53] Add logging to BetterSprinting compat class --- src/main/java/com/replaymod/compat/ReplayModCompat.java | 9 +++++++++ .../compat/bettersprinting/DisableBetterSprinting.java | 8 +++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/replaymod/compat/ReplayModCompat.java b/src/main/java/com/replaymod/compat/ReplayModCompat.java index 9347cd2f..7de27c26 100644 --- a/src/main/java/com/replaymod/compat/ReplayModCompat.java +++ b/src/main/java/com/replaymod/compat/ReplayModCompat.java @@ -7,7 +7,9 @@ import com.replaymod.compat.shaders.ShaderBeginRender; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.eventhandler.EventBus; +import org.apache.logging.log4j.Logger; @Mod(modid = ReplayModCompat.MOD_ID, version = "@MOD_VERSION@", @@ -17,6 +19,13 @@ import net.minecraftforge.fml.common.eventhandler.EventBus; public class ReplayModCompat { public static final String MOD_ID = "replaymod-compat"; + public static Logger LOGGER; + + @Mod.EventHandler + public void preInit(FMLPreInitializationEvent event) { + LOGGER = event.getModLog(); + } + @Mod.EventHandler public void init(FMLInitializationEvent event) { EventBus bus = FMLCommonHandler.instance().bus(); diff --git a/src/main/java/com/replaymod/compat/bettersprinting/DisableBetterSprinting.java b/src/main/java/com/replaymod/compat/bettersprinting/DisableBetterSprinting.java index 57ab557a..e6a743c2 100644 --- a/src/main/java/com/replaymod/compat/bettersprinting/DisableBetterSprinting.java +++ b/src/main/java/com/replaymod/compat/bettersprinting/DisableBetterSprinting.java @@ -20,6 +20,8 @@ import net.minecraftforge.fml.common.versioning.VersionRange; import java.util.Collections; +import static com.replaymod.compat.ReplayModCompat.LOGGER; + /** * Old Better Sprinting versions replace the vanilla player with their own, overridden instance (replacing the camera entity). * @@ -39,7 +41,9 @@ public class DisableBetterSprinting { .ifPresent($_ -> MinecraftForge.EVENT_BUS.register(new DisableBetterSprinting())); } - private DisableBetterSprinting() {} + private DisableBetterSprinting() { + LOGGER.info("BetterSprinting workaround enabled"); + } private final Minecraft mc = Minecraft.getMinecraft(); private PlayerControllerMP originalController; @@ -66,6 +70,7 @@ public class DisableBetterSprinting { // Suppress this message if it's the Better Sprinting warning message for (StackTraceElement elem : Thread.currentThread().getStackTrace()) { if (LOGIC_CLASS_NAME.equals(elem.getClassName())) { + LOGGER.info("BetterSprinting warning message suppressed."); event.setCanceled(true); return; } @@ -78,6 +83,7 @@ public class DisableBetterSprinting { if (mc.playerController != null && mc.playerController.getClass().getName().equals(CONTROLLER_OVERRIDE_CLASS_NAME)) { // Someone has secretly swapped out the player controller and is about to substitute their own player entity. // This is the right time to destroy their plan. + LOGGER.info("Preventing player controller {} from being replaced by BetterSprinting with {}.", originalController, mc.playerController); mc.playerController = originalController; } } From 434efd16d183af3ae9a9e1811a2f1093408078e2 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 31 Oct 2017 11:11:33 +0100 Subject: [PATCH 37/53] Fix BetterSprinting compat class not actually functioning (fixes #103) --- .../compat/bettersprinting/DisableBetterSprinting.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/replaymod/compat/bettersprinting/DisableBetterSprinting.java b/src/main/java/com/replaymod/compat/bettersprinting/DisableBetterSprinting.java index e6a743c2..c8928d6b 100644 --- a/src/main/java/com/replaymod/compat/bettersprinting/DisableBetterSprinting.java +++ b/src/main/java/com/replaymod/compat/bettersprinting/DisableBetterSprinting.java @@ -31,7 +31,7 @@ public class DisableBetterSprinting { private static final VersionRange OLD_VERSION = VersionRange.newRange(null, Collections.singletonList(new Restriction(null, false, new DefaultArtifactVersion("2.0.0"), false))); private static final String LOGIC_CLASS_NAME = "chylex.bettersprinting.client.player.impl.LogicImplOverride"; - private static final String CONTROLLER_OVERRIDE_CLASS_NAME = LOGIC_CLASS_NAME + ".PlayerControllerMPOverride"; + private static final String CONTROLLER_OVERRIDE_CLASS_NAME = LOGIC_CLASS_NAME + "$PlayerControllerMPOverride"; public static void register() { Loader.instance().getModList().stream() From 7d380e770a0c884def0e2b45fcf31c5e085e728d Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Tue, 31 Oct 2017 17:28:21 +0100 Subject: [PATCH 38/53] =?UTF-8?q?Properly=20handle=20OOMExceptions=20when?= =?UTF-8?q?=20creating=20a=20360=C2=B0=20screenshot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AdvancedScreenshots.java | 79 ++++++++++--------- .../advancedscreenshots/ScreenshotWriter.java | 5 ++ 2 files changed, 48 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java b/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java index ee55cd2c..4e891b67 100644 --- a/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java @@ -11,6 +11,7 @@ import com.replaymod.replay.events.ReplayDispatchKeypressesEvent; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiControls; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.crash.CrashReport; import net.minecraft.util.ScreenShotHelper; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -51,51 +52,57 @@ public class AdvancedScreenshots implements Extra { } private void createEquirectangularScreenshot() { - // take 360° screenshot - File screenshotFolder = new File(mc.mcDataDir, "screenshots"); - screenshotFolder.mkdir(); - File screenshotFile = ScreenShotHelper.getTimestampedPNGFileForDirectory(screenshotFolder); + try { + // take 360° screenshot + File screenshotFolder = new File(mc.mcDataDir, "screenshots"); + screenshotFolder.mkdir(); + File screenshotFile = ScreenShotHelper.getTimestampedPNGFileForDirectory(screenshotFolder); - int width = 8640; - int height = 4320; + int height = 4 * 4320; + int width = 2 * height; - int displayWidthBefore = mc.displayWidth; - int displayHeightBefore = mc.displayHeight; + int displayWidthBefore = mc.displayWidth; + int displayHeightBefore = mc.displayHeight; - ChunkLoadingRenderGlobal clrg = new ChunkLoadingRenderGlobal(mc.renderGlobal); + ChunkLoadingRenderGlobal clrg = new ChunkLoadingRenderGlobal(mc.renderGlobal); - Pipelines.newEquirectangularPipeline(new RenderInfo() { - @Override - public ReadableDimension getFrameSize() { - return new Dimension(width, height); - } + Pipelines.newEquirectangularPipeline(new RenderInfo() { + @Override + public ReadableDimension getFrameSize() { + return new Dimension(width, height); + } - @Override - public int getTotalFrames() { - return 1; - } + @Override + public int getTotalFrames() { + return 1; + } - @Override - public float updateForNextFrame() { - return mc.timer.renderPartialTicks; - } + @Override + public float updateForNextFrame() { + return mc.timer.renderPartialTicks; + } - @Override - public RenderSettings getRenderSettings() { - return new RenderSettings( - null, null, width, height, 0, 0, null, - true, true, true, true, null, - false, RenderSettings.AntiAliasing.NONE, null, null, false - ); - } - }, new ScreenshotWriter(screenshotFile)).run(); + @Override + public RenderSettings getRenderSettings() { + return new RenderSettings( + null, null, width, height, 0, 0, null, + true, true, true, true, null, + false, RenderSettings.AntiAliasing.NONE, null, null, false + ); + } + }, new ScreenshotWriter(screenshotFile)).run(); - clrg.uninstall(); + clrg.uninstall(); - // the Equirectangular rendering changes mc.displayWidth and mc.displayHeight, - // so we have to reset it to the previous value - mc.resize(displayWidthBefore, displayHeightBefore); + // the Equirectangular rendering changes mc.displayWidth and mc.displayHeight, + // so we have to reset it to the previous value + mc.resize(displayWidthBefore, displayHeightBefore); - new GuiUploadScreenshot(ReplayModReplay.instance.getReplayHandler().getOverlay(), mod, screenshotFile).open(); + new GuiUploadScreenshot(ReplayModReplay.instance.getReplayHandler().getOverlay(), mod, screenshotFile).open(); + } catch (OutOfMemoryError e) { + e.printStackTrace(); + CrashReport report = CrashReport.makeCrashReport(e, "Creating Equirectangular Screenshot"); + Minecraft.getMinecraft().crashed(report); + } } } diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java index d487b08b..e04d1b59 100644 --- a/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java @@ -6,6 +6,7 @@ import com.replaymod.extras.ReplayModExtras; import com.replaymod.render.frame.RGBFrame; import com.replaymod.render.rendering.FrameConsumer; import com.replaymod.replay.ReplayModReplay; +import net.minecraft.client.Minecraft; import net.minecraft.crash.CrashReport; import org.lwjgl.util.ReadableDimension; @@ -40,6 +41,10 @@ public class ScreenshotWriter implements FrameConsumer { } ImageIO.write(img, "PNG", outputFile); + } catch (OutOfMemoryError e) { + e.printStackTrace(); + CrashReport report = CrashReport.makeCrashReport(e, "Exporting frame"); + Minecraft.getMinecraft().crashed(report); } catch (Throwable t) { CrashReport report = CrashReport.makeCrashReport(t, "Exporting frame"); From 2ebec358e0ceee0ad9374b8faac53bc599fffe97 Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Wed, 1 Nov 2017 13:24:52 +0100 Subject: [PATCH 39/53] Added Screenshot export settings GUI --- .../AdvancedScreenshots.java | 75 +--------------- .../GuiCreateScreenshot.java | 87 +++++++++++++++++++ .../GuiUploadScreenshot.java | 44 ++++++---- .../ScreenshotRenderer.java | 65 ++++++++++++++ .../render/gui/GuiRenderSettings.java | 4 +- 5 files changed, 187 insertions(+), 88 deletions(-) create mode 100644 src/main/java/com/replaymod/extras/advancedscreenshots/GuiCreateScreenshot.java create mode 100644 src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java b/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java index 4e891b67..a3e7b36b 100644 --- a/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/AdvancedScreenshots.java @@ -2,24 +2,12 @@ package com.replaymod.extras.advancedscreenshots; import com.replaymod.core.ReplayMod; import com.replaymod.extras.Extra; -import com.replaymod.render.RenderSettings; -import com.replaymod.render.capturer.RenderInfo; -import com.replaymod.render.hooks.ChunkLoadingRenderGlobal; -import com.replaymod.render.rendering.Pipelines; -import com.replaymod.replay.ReplayModReplay; import com.replaymod.replay.events.ReplayDispatchKeypressesEvent; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiControls; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.crash.CrashReport; -import net.minecraft.util.ScreenShotHelper; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import org.lwjgl.input.Keyboard; -import org.lwjgl.util.Dimension; -import org.lwjgl.util.ReadableDimension; - -import java.io.File; public class AdvancedScreenshots implements Extra { @@ -43,66 +31,11 @@ public class AdvancedScreenshots implements Extra { && Keyboard.getEventKeyState() && keyCode == mc.gameSettings.keyBindScreenshot.getKeyCode()) { - if (GuiScreen.isCtrlKeyDown()) { - ReplayMod.instance.runLater(this::createEquirectangularScreenshot); + ReplayMod.instance.runLater(() -> { + new GuiCreateScreenshot(mod).display(); + }); - event.setCanceled(true); - } - } - } - - private void createEquirectangularScreenshot() { - try { - // take 360° screenshot - File screenshotFolder = new File(mc.mcDataDir, "screenshots"); - screenshotFolder.mkdir(); - File screenshotFile = ScreenShotHelper.getTimestampedPNGFileForDirectory(screenshotFolder); - - int height = 4 * 4320; - int width = 2 * height; - - int displayWidthBefore = mc.displayWidth; - int displayHeightBefore = mc.displayHeight; - - ChunkLoadingRenderGlobal clrg = new ChunkLoadingRenderGlobal(mc.renderGlobal); - - Pipelines.newEquirectangularPipeline(new RenderInfo() { - @Override - public ReadableDimension getFrameSize() { - return new Dimension(width, height); - } - - @Override - public int getTotalFrames() { - return 1; - } - - @Override - public float updateForNextFrame() { - return mc.timer.renderPartialTicks; - } - - @Override - public RenderSettings getRenderSettings() { - return new RenderSettings( - null, null, width, height, 0, 0, null, - true, true, true, true, null, - false, RenderSettings.AntiAliasing.NONE, null, null, false - ); - } - }, new ScreenshotWriter(screenshotFile)).run(); - - clrg.uninstall(); - - // the Equirectangular rendering changes mc.displayWidth and mc.displayHeight, - // so we have to reset it to the previous value - mc.resize(displayWidthBefore, displayHeightBefore); - - new GuiUploadScreenshot(ReplayModReplay.instance.getReplayHandler().getOverlay(), mod, screenshotFile).open(); - } catch (OutOfMemoryError e) { - e.printStackTrace(); - CrashReport report = CrashReport.makeCrashReport(e, "Creating Equirectangular Screenshot"); - Minecraft.getMinecraft().crashed(report); + event.setCanceled(true); } } } diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/GuiCreateScreenshot.java b/src/main/java/com/replaymod/extras/advancedscreenshots/GuiCreateScreenshot.java new file mode 100644 index 00000000..d4512d98 --- /dev/null +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/GuiCreateScreenshot.java @@ -0,0 +1,87 @@ +package com.replaymod.extras.advancedscreenshots; + +import com.replaymod.core.ReplayMod; +import com.replaymod.render.RenderSettings; +import com.replaymod.render.gui.GuiRenderSettings; +import com.replaymod.replay.ReplayModReplay; +import de.johni0702.minecraft.gui.container.GuiContainer; +import de.johni0702.minecraft.gui.container.GuiPanel; +import de.johni0702.minecraft.gui.element.GuiLabel; +import de.johni0702.minecraft.gui.layout.GridLayout; +import de.johni0702.minecraft.gui.layout.VerticalLayout; +import net.minecraft.crash.CrashReport; +import net.minecraft.util.ScreenShotHelper; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.config.Property; + +import java.io.File; +import java.util.ArrayList; + +import static com.replaymod.core.utils.Utils.error; +import static com.replaymod.render.ReplayModRender.LOGGER; + +public class GuiCreateScreenshot extends GuiRenderSettings { + + private final ReplayMod mod; + + public GuiCreateScreenshot(ReplayMod mod) { + super(null, null); + + this.mod = mod; + + resetChildren(settingsList.getListPanel()).addElements(new VerticalLayout.Data(0.5), + new GuiLabel().setI18nText("replaymod.gui.advancedscreenshots.title"), mainPanel, new GuiPanel(), + new GuiLabel().setI18nText("replaymod.gui.rendersettings.advanced"), advancedPanel, new GuiPanel()); + + resetChildren(mainPanel).addElements(new GridLayout.Data(1, 0.5), + new GuiLabel().setI18nText("replaymod.gui.rendersettings.renderer"), renderMethodDropdown, + new GuiLabel().setI18nText("replaymod.gui.advancedscreenshots.resolution"), videoResolutionPanel, + new GuiLabel().setI18nText("replaymod.gui.rendersettings.outputfile"), outputFileButton); + + resetChildren(advancedPanel).addElements(null, nametagCheckbox, new GuiPanel().setLayout( + new GridLayout().setCellsEqualSize(false).setColumns(2).setSpacingX(5).setSpacingY(15)) + .addElements(new GridLayout.Data(0, 0.5), + new GuiLabel().setI18nText("replaymod.gui.rendersettings.stabilizecamera"), stabilizePanel, + chromaKeyingCheckbox, chromaKeyingColor)); + + exportArguments.setText(""); // To disable any preset-based checks + buttonPanel.removeElement(queueButton); + renderButton.setI18nLabel("replaymod.gui.advancedscreenshots.create").onClick(() -> { + // Closing this GUI ensures that settings are saved + getMinecraft().displayGuiScreen(null); + + mod.runLater(() -> { + try { + RenderSettings settings = save(false); + + boolean success = new ScreenshotRenderer(settings).renderScreenshot(); + if (success) { + new GuiUploadScreenshot(ReplayModReplay.instance.getReplayHandler().getOverlay(), mod, + settings).open(); + } + + } catch (Throwable t) { + error(LOGGER, GuiCreateScreenshot.this, CrashReport.makeCrashReport(t, "Rendering video"), () -> {}); + display(); // Re-show the render settings gui and the new error popup + } + }); + }); + } + + private > T resetChildren(T container) { + new ArrayList<>(container.getChildren()).forEach(container::removeElement); + return container; + } + + @Override + protected File generateOutputFile(RenderSettings.EncodingPreset encodingPreset) { + File screenshotFolder = new File(getMinecraft().mcDataDir, "screenshots"); + return ScreenShotHelper.getTimestampedPNGFileForDirectory(screenshotFolder); + } + + @Override + protected Property getConfigProperty(Configuration configuration) { + return configuration.get("screenshotsettings", "settings", "{}", + "Last state of the screenshot settings GUI. Internal use only."); + } +} \ No newline at end of file diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/GuiUploadScreenshot.java b/src/main/java/com/replaymod/extras/advancedscreenshots/GuiUploadScreenshot.java index 828d7f65..e2168da5 100644 --- a/src/main/java/com/replaymod/extras/advancedscreenshots/GuiUploadScreenshot.java +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/GuiUploadScreenshot.java @@ -3,6 +3,7 @@ package com.replaymod.extras.advancedscreenshots; import com.replaymod.core.ReplayMod; import com.replaymod.core.SettingsRegistry; import com.replaymod.extras.Setting; +import com.replaymod.render.RenderSettings; import de.johni0702.minecraft.gui.container.GuiContainer; import de.johni0702.minecraft.gui.container.GuiPanel; import de.johni0702.minecraft.gui.element.GuiButton; @@ -14,7 +15,6 @@ import de.johni0702.minecraft.gui.popup.AbstractGuiPopup; import org.lwjgl.util.ReadableColor; import java.awt.*; -import java.io.File; import java.io.IOException; import java.net.URI; @@ -22,10 +22,10 @@ public class GuiUploadScreenshot extends AbstractGuiPopup { public final ReplayMod mod; - public final File screenshotFile; + public final RenderSettings renderSettings; public final GuiLabel successLabel = new GuiLabel() - .setI18nText("replaymod.gui.advancedscreenshots.finished.description.360") + .setI18nText("replaymod.gui.advancedscreenshots.finished.description") .setColor(ReadableColor.BLACK); public final GuiLabel veerLabel = new GuiLabel() @@ -56,22 +56,30 @@ public class GuiUploadScreenshot extends AbstractGuiPopup { .with(neverOpenLabel, new HorizontalLayout.Data(0.5)) .build(); - public GuiUploadScreenshot(GuiContainer container, ReplayMod mod, File screenshotFile) { + public GuiUploadScreenshot(GuiContainer container, ReplayMod mod, RenderSettings renderSettings) { super(container); this.mod = mod; - this.screenshotFile = screenshotFile; + this.renderSettings = renderSettings; - veerUploadButton.onClick(() -> { - try { - Desktop.getDesktop().browse(URI.create("https://veer.tv/upload")); - } catch (IOException e) { - e.printStackTrace(); - } - }); + boolean veer = renderSettings.getRenderMethod() == RenderSettings.RenderMethod.EQUIRECTANGULAR; + + if (renderSettings.getRenderMethod() == RenderSettings.RenderMethod.EQUIRECTANGULAR) { + successLabel.setI18nText("replaymod.gui.advancedscreenshots.finished.description.360"); + } + + if (veer) { + veerUploadButton.onClick(() -> { + try { + Desktop.getDesktop().browse(URI.create("https://veer.tv/upload")); + } catch (IOException e) { + e.printStackTrace(); + } + }); + } showOnDiskButton.onClick(() -> { try { - Desktop.getDesktop().browse(URI.create("file://" + screenshotFile.getAbsolutePath())); + Desktop.getDesktop().browse(URI.create("file://" + renderSettings.getOutputFile().getAbsolutePath())); } catch (IOException e) { e.printStackTrace(); } @@ -86,10 +94,16 @@ public class GuiUploadScreenshot extends AbstractGuiPopup { close(); }); + popup.addElements(new VerticalLayout.Data(0.5), successLabel); + + if (veer) { + popup.addElements(new VerticalLayout.Data(0.5), + veerLabel, + veerUploadButton); + } + popup.addElements(new VerticalLayout.Data(0.5), successLabel, - veerLabel, - veerUploadButton, showOnDiskButton, closeButton); diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java new file mode 100644 index 00000000..72aad0ac --- /dev/null +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java @@ -0,0 +1,65 @@ +package com.replaymod.extras.advancedscreenshots; + +import com.replaymod.render.RenderSettings; +import com.replaymod.render.capturer.RenderInfo; +import com.replaymod.render.hooks.ChunkLoadingRenderGlobal; +import com.replaymod.render.rendering.Pipelines; +import lombok.RequiredArgsConstructor; +import net.minecraft.client.Minecraft; +import net.minecraft.crash.CrashReport; +import org.lwjgl.util.Dimension; +import org.lwjgl.util.ReadableDimension; + +@RequiredArgsConstructor +public class ScreenshotRenderer implements RenderInfo { + + private final Minecraft mc = Minecraft.getMinecraft(); + + private final RenderSettings settings; + + public boolean renderScreenshot() throws Throwable { + try { + int displayWidthBefore = mc.displayWidth; + int displayHeightBefore = mc.displayHeight; + + ChunkLoadingRenderGlobal clrg = new ChunkLoadingRenderGlobal(mc.renderGlobal); + + Pipelines.newPipeline(settings.getRenderMethod(),this, + new ScreenshotWriter(settings.getOutputFile())).run(); + + clrg.uninstall(); + + mc.resize(displayWidthBefore, displayHeightBefore); + return true; + } catch (OutOfMemoryError e) { + e.printStackTrace(); + CrashReport report = CrashReport.makeCrashReport(e, "Creating Equirectangular Screenshot"); + Minecraft.getMinecraft().crashed(report); + } + return false; + } + + @Override + public ReadableDimension getFrameSize() { + return new Dimension(settings.getVideoWidth(), settings.getVideoHeight()); + } + + @Override + public int getTotalFrames() { + return 1; + } + + @Override + public float updateForNextFrame() { + return mc.timer.renderPartialTicks; + } + + @Override + public RenderSettings getRenderSettings() { + return new RenderSettings( + null, null, settings.getVideoWidth(), settings.getVideoHeight(), 0, 0, null, + true, true, true, true, null, + false, RenderSettings.AntiAliasing.NONE, null, null, false + ); + } +} diff --git a/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java b/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java index f712dd0d..a07f801e 100644 --- a/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java +++ b/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java @@ -427,7 +427,7 @@ public class GuiRenderSettings extends GuiScreen implements Closeable { ); } - private File generateOutputFile(RenderSettings.EncodingPreset encodingPreset) { + protected File generateOutputFile(RenderSettings.EncodingPreset encodingPreset) { String fileName = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss").format(new Date()); File folder = ReplayModRender.instance.getVideoFolder(); return new File(folder, fileName + "." + encodingPreset.getFileExtension()); @@ -447,7 +447,7 @@ public class GuiRenderSettings extends GuiScreen implements Closeable { config.save(); } - private Property getConfigProperty(Configuration configuration) { + protected Property getConfigProperty(Configuration configuration) { return configuration.get("rendersettings", "settings", "{}", "Last state of the render settings GUI. Internal use only."); } From a4a9473111b30d01359b5491b7519093fcf10ef1 Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Wed, 1 Nov 2017 15:36:15 +0100 Subject: [PATCH 40/53] Hide GUI when exporting screenshot Workaround not all chunks being loaded in screenshot Fix wrong RenderSettings being exposed in ScreenshotRenderer Update Language submodule --- .../advancedscreenshots/GuiCreateScreenshot.java | 9 ++++++++- .../advancedscreenshots/ScreenshotRenderer.java | 12 ++++++------ .../extras/advancedscreenshots/ScreenshotWriter.java | 3 +++ src/main/resources/assets/replaymod/lang | 2 +- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/GuiCreateScreenshot.java b/src/main/java/com/replaymod/extras/advancedscreenshots/GuiCreateScreenshot.java index d4512d98..3ef09234 100644 --- a/src/main/java/com/replaymod/extras/advancedscreenshots/GuiCreateScreenshot.java +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/GuiCreateScreenshot.java @@ -7,6 +7,7 @@ import com.replaymod.replay.ReplayModReplay; import de.johni0702.minecraft.gui.container.GuiContainer; import de.johni0702.minecraft.gui.container.GuiPanel; import de.johni0702.minecraft.gui.element.GuiLabel; +import de.johni0702.minecraft.gui.function.Loadable; import de.johni0702.minecraft.gui.layout.GridLayout; import de.johni0702.minecraft.gui.layout.VerticalLayout; import net.minecraft.crash.CrashReport; @@ -20,7 +21,7 @@ import java.util.ArrayList; import static com.replaymod.core.utils.Utils.error; import static com.replaymod.render.ReplayModRender.LOGGER; -public class GuiCreateScreenshot extends GuiRenderSettings { +public class GuiCreateScreenshot extends GuiRenderSettings implements Loadable { private final ReplayMod mod; @@ -73,6 +74,12 @@ public class GuiCreateScreenshot extends GuiRenderSettings { return container; } + @Override + public void load() { + // pause replay when opening this gui + ReplayModReplay.instance.getReplayHandler().getReplaySender().setReplaySpeed(0); + } + @Override protected File generateOutputFile(RenderSettings.EncodingPreset encodingPreset) { File screenshotFolder = new File(getMinecraft().mcDataDir, "screenshots"); diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java index 72aad0ac..2133432d 100644 --- a/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java @@ -22,6 +22,8 @@ public class ScreenshotRenderer implements RenderInfo { int displayWidthBefore = mc.displayWidth; int displayHeightBefore = mc.displayHeight; + boolean hideGUIBefore = mc.gameSettings.hideGUI; + ChunkLoadingRenderGlobal clrg = new ChunkLoadingRenderGlobal(mc.renderGlobal); Pipelines.newPipeline(settings.getRenderMethod(),this, @@ -29,6 +31,7 @@ public class ScreenshotRenderer implements RenderInfo { clrg.uninstall(); + mc.gameSettings.hideGUI = hideGUIBefore; mc.resize(displayWidthBefore, displayHeightBefore); return true; } catch (OutOfMemoryError e) { @@ -46,7 +49,8 @@ public class ScreenshotRenderer implements RenderInfo { @Override public int getTotalFrames() { - return 1; + // render 2 frames, because only the second contains all frames fully loaded + return 2; } @Override @@ -56,10 +60,6 @@ public class ScreenshotRenderer implements RenderInfo { @Override public RenderSettings getRenderSettings() { - return new RenderSettings( - null, null, settings.getVideoWidth(), settings.getVideoHeight(), 0, 0, null, - true, true, true, true, null, - false, RenderSettings.AntiAliasing.NONE, null, null, false - ); + return settings; } } diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java index e04d1b59..c601f28f 100644 --- a/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java @@ -25,6 +25,9 @@ public class ScreenshotWriter implements FrameConsumer { @Override public void consume(RGBFrame frame) { + // skip the first frame, in which not all chunks are properly loaded + if (frame.getFrameId() == 0) return; + try { final ReadableDimension frameSize = frame.getSize(); diff --git a/src/main/resources/assets/replaymod/lang b/src/main/resources/assets/replaymod/lang index 94282826..75edb999 160000 --- a/src/main/resources/assets/replaymod/lang +++ b/src/main/resources/assets/replaymod/lang @@ -1 +1 @@ -Subproject commit 942828260079edb1e35b2e500d6763c5234f6bbb +Subproject commit 75edb99901404c1364de54352b5ad8b5a21d9536 From 666a3611bbb61a9abdbf268d8dab99192f15e0b4 Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Wed, 1 Nov 2017 15:43:49 +0100 Subject: [PATCH 41/53] Actually hide the GUI when exporting a screenshot --- .../replaymod/extras/advancedscreenshots/ScreenshotRenderer.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java index 2133432d..6fe7af62 100644 --- a/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java @@ -23,6 +23,7 @@ public class ScreenshotRenderer implements RenderInfo { int displayHeightBefore = mc.displayHeight; boolean hideGUIBefore = mc.gameSettings.hideGUI; + mc.gameSettings.hideGUI = true; ChunkLoadingRenderGlobal clrg = new ChunkLoadingRenderGlobal(mc.renderGlobal); From 650cc1036dc233f3f5243b25d02a5977fcb91e59 Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Fri, 22 Dec 2017 15:14:20 +0100 Subject: [PATCH 42/53] Fix GuiUploadScreenshot showOnDiskButton crashing the game on Windows --- .../extras/advancedscreenshots/GuiUploadScreenshot.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/GuiUploadScreenshot.java b/src/main/java/com/replaymod/extras/advancedscreenshots/GuiUploadScreenshot.java index e2168da5..4c2cf396 100644 --- a/src/main/java/com/replaymod/extras/advancedscreenshots/GuiUploadScreenshot.java +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/GuiUploadScreenshot.java @@ -79,7 +79,7 @@ public class GuiUploadScreenshot extends AbstractGuiPopup { showOnDiskButton.onClick(() -> { try { - Desktop.getDesktop().browse(URI.create("file://" + renderSettings.getOutputFile().getAbsolutePath())); + Desktop.getDesktop().browse(renderSettings.getOutputFile().toURI()); } catch (IOException e) { e.printStackTrace(); } From 2e62cdf838c10c4117a65f3b1c471fe8ecfcf2de Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 16 Jan 2018 11:42:28 +0100 Subject: [PATCH 43/53] Fix dead lock when rendering without immediate jump in time setupTerrain will loop until (among other conditions) the chunksToUpdate set is empty. However its size is never decreased during setupTerrain. Having a (backwards) jump in time right before rendering the first frame would reset the RenderGlobal due to the world change, leaving the chunksToUpdate set empty to begin with and due to other changes, chunks are never inserted into it during rendering (because they're always updated immediately). The new screenshot feature and rendering a path that's in the future will not trigger any world change, leaving the render process stuck in a life lock. --- src/main/java/com/replaymod/render/mixin/MixinRenderGlobal.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/replaymod/render/mixin/MixinRenderGlobal.java b/src/main/java/com/replaymod/render/mixin/MixinRenderGlobal.java index 7f5cae0a..07b90620 100644 --- a/src/main/java/com/replaymod/render/mixin/MixinRenderGlobal.java +++ b/src/main/java/com/replaymod/render/mixin/MixinRenderGlobal.java @@ -37,6 +37,7 @@ public abstract class MixinRenderGlobal { do { setupTerrain(viewEntity, partialTicks, camera, replayModRender_hook.nextFrameId(), playerSpectator); + replayModRender_hook.updateChunks(); } while (displayListEntitiesDirty); displayListEntitiesDirty = true; From 08e0d656856fbd99fd23d6a17555fd3c6455132c Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 16 Jan 2018 14:02:17 +0100 Subject: [PATCH 44/53] Remove preshadowJar steps from README.md (no longer required as of a8f2c74) --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c462bf7d..f05cdaea 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ to access private fields is a good indication that this has happened). You can build the mod by running `./gradlew :build`. You can then find the final jar files in `build/libs/`. ### IntelliJ -For the initial setup run `./gradlew preshadowJar idea genIntellijRuns`. +For the initial setup run `./gradlew idea genIntellijRuns`. You also need to enable the Mixin annotation processor: 1. Go to File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors 2. Tick "Enable annotation processing" @@ -20,8 +20,8 @@ You also need to enable the Mixin annotation processor: 4. Set the name to "reobfSrgFile" and the value to "$path/build/mcp-srg.srg" where you replace $path with the full path to the folder containing the gradlew file -Whenever you switch to another branch, you can either just run `./gradlew preshadowJar idea` or instead run -`./gradlew preshadowJar copySrg` and then refresh the gradle project from within IntelliJ. +Whenever you switch to another branch, you can either just run `./gradlew idea` or instead run +`./gradlew copySrg` and then refresh the gradle project from within IntelliJ. ### Eclipse From 5bc5ef5fb8deba64853b56dd7adc23348f77d7e0 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 16 Jan 2018 14:21:38 +0100 Subject: [PATCH 45/53] Add buttons in SP/MP menu for quick en-/disabling of recording --- jGui | 2 +- .../recording/ReplayModRecording.java | 3 ++ .../recording/handler/GuiHandler.java | 52 +++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/replaymod/recording/handler/GuiHandler.java diff --git a/jGui b/jGui index 9e84e724..59ef5390 160000 --- a/jGui +++ b/jGui @@ -1 +1 @@ -Subproject commit 9e84e724aaf7de21a06fd534faccdfdc6740fc28 +Subproject commit 59ef53903386beda93850351b78c420e7f84b31f diff --git a/src/main/java/com/replaymod/recording/ReplayModRecording.java b/src/main/java/com/replaymod/recording/ReplayModRecording.java index b2458985..afdd4340 100644 --- a/src/main/java/com/replaymod/recording/ReplayModRecording.java +++ b/src/main/java/com/replaymod/recording/ReplayModRecording.java @@ -3,6 +3,7 @@ package com.replaymod.recording; import com.replaymod.core.ReplayMod; import com.replaymod.core.utils.Restrictions; import com.replaymod.recording.handler.ConnectionEventHandler; +import com.replaymod.recording.handler.GuiHandler; import com.replaymod.recording.packet.PacketListener; import io.netty.channel.ChannelDuplexHandler; import io.netty.channel.ChannelHandler; @@ -57,6 +58,8 @@ public class ReplayModRecording { EventBus bus = FMLCommonHandler.instance().bus(); bus.register(connectionEventHandler = new ConnectionEventHandler(logger, core)); + new GuiHandler(core).register(); + NetworkRegistry.INSTANCE.newChannel(Restrictions.PLUGIN_CHANNEL, new RestrictionsChannelHandler()); } diff --git a/src/main/java/com/replaymod/recording/handler/GuiHandler.java b/src/main/java/com/replaymod/recording/handler/GuiHandler.java new file mode 100644 index 00000000..dc6869d4 --- /dev/null +++ b/src/main/java/com/replaymod/recording/handler/GuiHandler.java @@ -0,0 +1,52 @@ +package com.replaymod.recording.handler; + +import com.replaymod.core.ReplayMod; +import com.replaymod.core.SettingsRegistry; +import com.replaymod.recording.Setting; +import de.johni0702.minecraft.gui.container.GuiScreen; +import de.johni0702.minecraft.gui.container.VanillaGuiScreen; +import de.johni0702.minecraft.gui.element.GuiCheckbox; +import de.johni0702.minecraft.gui.layout.CustomLayout; +import net.minecraft.client.gui.GuiMultiplayer; +import net.minecraft.client.gui.GuiSelectWorld; +import net.minecraftforge.client.event.GuiScreenEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +public class GuiHandler { + + private final ReplayMod mod; + + public GuiHandler(ReplayMod mod) { + this.mod = mod; + } + + public void register() { + MinecraftForge.EVENT_BUS.register(this); + } + + @SubscribeEvent + public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) { + if (event.gui instanceof GuiSelectWorld || event.gui instanceof GuiMultiplayer) { + SettingsRegistry settingsRegistry = mod.getSettingsRegistry(); + boolean sp = event.gui instanceof GuiSelectWorld; + Setting setting = sp ? Setting.RECORD_SINGLEPLAYER : Setting.RECORD_SERVER; + + GuiCheckbox recordingCheckbox = new GuiCheckbox() + .setI18nLabel("replaymod.gui.settings.record" + (sp ? "singleplayer" : "server")) + .setChecked(settingsRegistry.get(setting)); + recordingCheckbox.onClick(() -> { + settingsRegistry.set(setting, recordingCheckbox.isChecked()); + settingsRegistry.save(); + }); + + VanillaGuiScreen.setup(event.gui).setLayout(new CustomLayout() { + @Override + protected void layout(GuiScreen container, int width, int height) { + //size(recordingCheckbox, 200, 20); + pos(recordingCheckbox, width - width(recordingCheckbox) - 5, 5); + } + }).addElements(null, recordingCheckbox); + } + } +} From e854635a34e8b8f94ff7492ec7424d213b218d9d Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 16 Jan 2018 14:51:07 +0100 Subject: [PATCH 46/53] Allow hiding of server IPs in replay viewer by pressing F1 (fixes #105) --- .../java/com/replaymod/replay/Setting.java | 5 ++++ .../replay/gui/screen/GuiReplayViewer.java | 23 +++++++++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/replaymod/replay/Setting.java b/src/main/java/com/replaymod/replay/Setting.java index aa2a6256..a16e42e7 100644 --- a/src/main/java/com/replaymod/replay/Setting.java +++ b/src/main/java/com/replaymod/replay/Setting.java @@ -4,6 +4,7 @@ import com.replaymod.core.SettingsRegistry; public final class Setting extends SettingsRegistry.SettingKeys { public static final Setting SHOW_CHAT = make("showChat", "showchat", true); + public static final Setting SHOW_SERVER_IPS = new Setting<>("showServerIPs", true); public static final SettingsRegistry.MultipleChoiceSettingKeys CAMERA = new SettingsRegistry.MultipleChoiceSettingKeys<>( "replay", "camera", "replaymod.gui.settings.camera", "replaymod.camera.classic"); @@ -15,4 +16,8 @@ public final class Setting extends SettingsRegistry.SettingKeys { public Setting(String key, String displayString, T defaultValue) { super("replay", key, "replaymod.gui.settings." + displayString, defaultValue); } + + public Setting(String key, T defaultValue) { + super("replay", key, null, defaultValue); + } } diff --git a/src/main/java/com/replaymod/replay/gui/screen/GuiReplayViewer.java b/src/main/java/com/replaymod/replay/gui/screen/GuiReplayViewer.java index e9bd1d4e..6ce4bb39 100755 --- a/src/main/java/com/replaymod/replay/gui/screen/GuiReplayViewer.java +++ b/src/main/java/com/replaymod/replay/gui/screen/GuiReplayViewer.java @@ -5,9 +5,12 @@ import com.google.common.base.Supplier; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.mojang.realmsclient.gui.ChatFormatting; +import com.replaymod.core.ReplayMod; +import com.replaymod.core.SettingsRegistry; import com.replaymod.core.gui.GuiReplaySettings; import com.replaymod.core.utils.Utils; import com.replaymod.replay.ReplayModReplay; +import com.replaymod.replay.Setting; import com.replaymod.replaystudio.replay.ReplayFile; import com.replaymod.replaystudio.replay.ReplayMetaData; import com.replaymod.replaystudio.replay.ZipReplayFile; @@ -18,6 +21,7 @@ import de.johni0702.minecraft.gui.container.GuiPanel; import de.johni0702.minecraft.gui.container.GuiScreen; import de.johni0702.minecraft.gui.element.*; import de.johni0702.minecraft.gui.element.advanced.GuiResourceLoadingList; +import de.johni0702.minecraft.gui.function.Typeable; import de.johni0702.minecraft.gui.layout.CustomLayout; import de.johni0702.minecraft.gui.layout.GridLayout; import de.johni0702.minecraft.gui.layout.HorizontalLayout; @@ -34,8 +38,10 @@ import org.apache.commons.io.filefilter.SuffixFileFilter; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.core.helpers.Strings; import org.lwjgl.Sys; +import org.lwjgl.input.Keyboard; import org.lwjgl.util.Dimension; import org.lwjgl.util.ReadableDimension; +import org.lwjgl.util.ReadablePoint; import java.awt.*; import java.awt.image.BufferedImage; @@ -47,7 +53,7 @@ import java.util.Date; import static com.replaymod.replay.ReplayModReplay.LOGGER; -public class GuiReplayViewer extends GuiScreen { +public class GuiReplayViewer extends GuiScreen implements Typeable { private final ReplayModReplay mod; public final GuiResourceLoadingList list = new GuiResourceLoadingList(this).onSelectionChanged(new Runnable() { @@ -272,6 +278,18 @@ public class GuiReplayViewer extends GuiScreen { } private final GuiImage defaultThumbnail = new GuiImage().setTexture(Utils.DEFAULT_THUMBNAIL); + + @Override + public boolean typeKey(ReadablePoint mousePosition, int keyCode, char keyChar, boolean ctrlDown, boolean shiftDown) { + if (keyCode == Keyboard.KEY_F1) { + SettingsRegistry reg = ReplayMod.instance.getSettingsRegistry(); + reg.set(Setting.SHOW_SERVER_IPS, !reg.get(Setting.SHOW_SERVER_IPS)); + reg.save(); + list.load(); + } + return false; + } + public class GuiReplayEntry extends AbstractGuiContainer implements Comparable { public final File file; public final GuiLabel name = new GuiLabel(); @@ -303,7 +321,8 @@ public class GuiReplayViewer extends GuiScreen { this.file = file; name.setText(ChatFormatting.UNDERLINE + Utils.fileNameToReplayName(file.getName())); - if (Strings.isEmpty(metaData.getServerName())) { + if (Strings.isEmpty(metaData.getServerName()) + || !ReplayMod.instance.getSettingsRegistry().get(Setting.SHOW_SERVER_IPS)) { server.setI18nText("replaymod.gui.iphidden").setColor(Colors.DARK_RED); } else { server.setText(metaData.getServerName()); From 5a1e893a45061f0e444cbabe8318d56eaedffee3 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 16 Jan 2018 15:08:17 +0100 Subject: [PATCH 47/53] Deselect marker when selecting keyframe (and vice versa) (fixes #104) --- .../simplepathing/ReplayModSimplePathing.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/replaymod/simplepathing/ReplayModSimplePathing.java b/src/main/java/com/replaymod/simplepathing/ReplayModSimplePathing.java index ecb1e436..6d61e4f1 100644 --- a/src/main/java/com/replaymod/simplepathing/ReplayModSimplePathing.java +++ b/src/main/java/com/replaymod/simplepathing/ReplayModSimplePathing.java @@ -2,8 +2,10 @@ package com.replaymod.simplepathing; import com.replaymod.core.ReplayMod; import com.replaymod.core.events.SettingsChangedEvent; +import com.replaymod.replay.ReplayModReplay; import com.replaymod.replay.events.ReplayCloseEvent; import com.replaymod.replay.events.ReplayOpenEvent; +import com.replaymod.replay.gui.overlay.GuiReplayOverlay; import com.replaymod.replaystudio.pathing.path.Keyframe; import com.replaymod.simplepathing.SPTimeline.SPPath; import com.replaymod.simplepathing.gui.GuiPathing; @@ -81,20 +83,34 @@ public class ReplayModSimplePathing { } } + private GuiReplayOverlay getReplayOverlay() { + return ReplayModReplay.instance.getReplayHandler().getOverlay(); + } + private SPTimeline currentTimeline; - @Getter private SPPath selectedPath; @Getter private long selectedTime; + public SPPath getSelectedPath() { + if (getReplayOverlay().timeline.getSelectedMarker() != null) { + selectedPath = null; + selectedTime = 0; + } + return selectedPath; + } + public boolean isSelected(Keyframe keyframe) { - return selectedPath != null && currentTimeline.getKeyframe(selectedPath, selectedTime) == keyframe; + return getSelectedPath() != null && currentTimeline.getKeyframe(selectedPath, selectedTime) == keyframe; } public void setSelected(SPPath path, long time) { selectedPath = path; selectedTime = time; + if (selectedPath != null) { + getReplayOverlay().timeline.setSelectedMarker(null); + } } public void setCurrentTimeline(SPTimeline newTimeline) { From 23c5df5aaadf6d86b198845eb7a40b1e236413ff Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 16 Jan 2018 16:01:59 +0100 Subject: [PATCH 48/53] Allow the mod to be loaded in a dedicated server environment --- src/main/java/com/replaymod/compat/ReplayModCompat.java | 1 + src/main/java/com/replaymod/core/ReplayMod.java | 1 + src/main/java/com/replaymod/editor/ReplayModEditor.java | 1 + src/main/java/com/replaymod/extras/ReplayModExtras.java | 1 + src/main/java/com/replaymod/online/ReplayModOnline.java | 1 + .../java/com/replaymod/recording/ReplayModRecording.java | 1 + src/main/java/com/replaymod/render/ReplayModRender.java | 1 + src/main/java/com/replaymod/replay/ReplayModReplay.java | 1 + .../com/replaymod/simplepathing/ReplayModSimplePathing.java | 1 + src/main/resources/mixins.render.replaymod.json | 6 +++--- src/main/resources/mixins.replay.replaymod.json | 6 +++--- 11 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/replaymod/compat/ReplayModCompat.java b/src/main/java/com/replaymod/compat/ReplayModCompat.java index 7de27c26..a5a23fea 100644 --- a/src/main/java/com/replaymod/compat/ReplayModCompat.java +++ b/src/main/java/com/replaymod/compat/ReplayModCompat.java @@ -15,6 +15,7 @@ import org.apache.logging.log4j.Logger; version = "@MOD_VERSION@", acceptedMinecraftVersions = "@MC_VERSION@", acceptableRemoteVersions = "*", + clientSideOnly = true, useMetadata = true) public class ReplayModCompat { public static final String MOD_ID = "replaymod-compat"; diff --git a/src/main/java/com/replaymod/core/ReplayMod.java b/src/main/java/com/replaymod/core/ReplayMod.java index 86cf4877..70f9a81c 100755 --- a/src/main/java/com/replaymod/core/ReplayMod.java +++ b/src/main/java/com/replaymod/core/ReplayMod.java @@ -41,6 +41,7 @@ import java.util.Queue; version = "@MOD_VERSION@", acceptedMinecraftVersions = "@MC_VERSION@", acceptableRemoteVersions = "*", + clientSideOnly = true, updateJSON = "https://raw.githubusercontent.com/ReplayMod/ReplayMod/master/versions.json", guiFactory = "com.replaymod.core.gui.GuiFactory") public class ReplayMod { diff --git a/src/main/java/com/replaymod/editor/ReplayModEditor.java b/src/main/java/com/replaymod/editor/ReplayModEditor.java index 7749f5c0..ddc9b61c 100644 --- a/src/main/java/com/replaymod/editor/ReplayModEditor.java +++ b/src/main/java/com/replaymod/editor/ReplayModEditor.java @@ -12,6 +12,7 @@ import org.apache.logging.log4j.Logger; version = "@MOD_VERSION@", acceptedMinecraftVersions = "@MC_VERSION@", acceptableRemoteVersions = "*", + clientSideOnly = true, useMetadata = true) public class ReplayModEditor { public static final String MOD_ID = "replaymod-editor"; diff --git a/src/main/java/com/replaymod/extras/ReplayModExtras.java b/src/main/java/com/replaymod/extras/ReplayModExtras.java index 463e8805..3dd7a033 100644 --- a/src/main/java/com/replaymod/extras/ReplayModExtras.java +++ b/src/main/java/com/replaymod/extras/ReplayModExtras.java @@ -20,6 +20,7 @@ import java.util.Optional; version = "@MOD_VERSION@", acceptedMinecraftVersions = "@MC_VERSION@", acceptableRemoteVersions = "*", + clientSideOnly = true, useMetadata = true) public class ReplayModExtras { public static final String MOD_ID = "replaymod-extras"; diff --git a/src/main/java/com/replaymod/online/ReplayModOnline.java b/src/main/java/com/replaymod/online/ReplayModOnline.java index 44092066..cf1d7f6e 100644 --- a/src/main/java/com/replaymod/online/ReplayModOnline.java +++ b/src/main/java/com/replaymod/online/ReplayModOnline.java @@ -30,6 +30,7 @@ import static net.minecraft.client.Minecraft.getMinecraft; version = "@MOD_VERSION@", acceptedMinecraftVersions = "@MC_VERSION@", acceptableRemoteVersions = "*", + clientSideOnly = true, useMetadata = true) public class ReplayModOnline { public static final String MOD_ID = "replaymod-online"; diff --git a/src/main/java/com/replaymod/recording/ReplayModRecording.java b/src/main/java/com/replaymod/recording/ReplayModRecording.java index afdd4340..c8d68dd6 100644 --- a/src/main/java/com/replaymod/recording/ReplayModRecording.java +++ b/src/main/java/com/replaymod/recording/ReplayModRecording.java @@ -21,6 +21,7 @@ import org.lwjgl.input.Keyboard; version = "@MOD_VERSION@", acceptedMinecraftVersions = "@MC_VERSION@", acceptableRemoteVersions = "*", + clientSideOnly = true, useMetadata = true) public class ReplayModRecording { public static final String MOD_ID = "replaymod-recording"; diff --git a/src/main/java/com/replaymod/render/ReplayModRender.java b/src/main/java/com/replaymod/render/ReplayModRender.java index 6b7f3668..3a5852de 100644 --- a/src/main/java/com/replaymod/render/ReplayModRender.java +++ b/src/main/java/com/replaymod/render/ReplayModRender.java @@ -22,6 +22,7 @@ import java.util.List; version = "@MOD_VERSION@", acceptedMinecraftVersions = "@MC_VERSION@", acceptableRemoteVersions = "*", + clientSideOnly = true, useMetadata = true) public class ReplayModRender { public static final String MOD_ID = "replaymod-render"; diff --git a/src/main/java/com/replaymod/replay/ReplayModReplay.java b/src/main/java/com/replaymod/replay/ReplayModReplay.java index d6ef677d..88a65f19 100644 --- a/src/main/java/com/replaymod/replay/ReplayModReplay.java +++ b/src/main/java/com/replaymod/replay/ReplayModReplay.java @@ -36,6 +36,7 @@ import java.util.Optional; version = "@MOD_VERSION@", acceptedMinecraftVersions = "@MC_VERSION@", acceptableRemoteVersions = "*", + clientSideOnly = true, useMetadata = true) public class ReplayModReplay { public static final String MOD_ID = "replaymod-replay"; diff --git a/src/main/java/com/replaymod/simplepathing/ReplayModSimplePathing.java b/src/main/java/com/replaymod/simplepathing/ReplayModSimplePathing.java index 6d61e4f1..86cb94ca 100644 --- a/src/main/java/com/replaymod/simplepathing/ReplayModSimplePathing.java +++ b/src/main/java/com/replaymod/simplepathing/ReplayModSimplePathing.java @@ -22,6 +22,7 @@ import org.lwjgl.input.Keyboard; version = "@MOD_VERSION@", acceptedMinecraftVersions = "@MC_VERSION@", acceptableRemoteVersions = "*", + clientSideOnly = true, useMetadata = true) public class ReplayModSimplePathing { public static final String MOD_ID = "replaymod-simplepathing"; diff --git a/src/main/resources/mixins.render.replaymod.json b/src/main/resources/mixins.render.replaymod.json index 539d1c55..58617e59 100644 --- a/src/main/resources/mixins.render.replaymod.json +++ b/src/main/resources/mixins.render.replaymod.json @@ -1,7 +1,9 @@ { "required": true, "package": "com.replaymod.render.mixin", - "mixins": [ + "mixins": [], + "server": [], + "client": [ "MixinEffectRenderer", "MixinEntityRenderer", "MixinFrustum", @@ -10,8 +12,6 @@ "MixinRenderGlobal", "MixinRenderManager" ], - "server": [], - "client": [], "compatibilityLevel": "JAVA_8", "minVersion": "0.6.11", "refmap": "mixins.replaymod.refmap.json" diff --git a/src/main/resources/mixins.replay.replaymod.json b/src/main/resources/mixins.replay.replaymod.json index e92257fb..c3471556 100644 --- a/src/main/resources/mixins.replay.replaymod.json +++ b/src/main/resources/mixins.replay.replaymod.json @@ -1,7 +1,9 @@ { "required": true, "package": "com.replaymod.replay.mixin", - "mixins": [ + "mixins": [], + "server": [], + "client": [ "MixinGuiSpectator", "MixinPlayerControllerMP", "MixinRenderArrow", @@ -12,8 +14,6 @@ "MixinViewFrustum", "MixinWorldClient" ], - "server": [], - "client": [], "compatibilityLevel": "JAVA_8", "minVersion": "0.6.11", "refmap": "mixins.replaymod.refmap.json" From eb916c395b39cc682c483d717ae12e8994ed669e Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 16 Jan 2018 16:03:04 +0100 Subject: [PATCH 49/53] Add forge server mod for ReplayRestrictions (fixes #102) --- .../restrictions/ReplayModRestrictions.java | 95 +++++++++++++++++++ .../com/replaymod/restrictions/Setting.java | 19 ++++ src/main/resources/mcmod.info | 16 ++++ 3 files changed, 130 insertions(+) create mode 100644 src/main/java/com/replaymod/restrictions/ReplayModRestrictions.java create mode 100644 src/main/java/com/replaymod/restrictions/Setting.java diff --git a/src/main/java/com/replaymod/restrictions/ReplayModRestrictions.java b/src/main/java/com/replaymod/restrictions/ReplayModRestrictions.java new file mode 100644 index 00000000..9a0fbd28 --- /dev/null +++ b/src/main/java/com/replaymod/restrictions/ReplayModRestrictions.java @@ -0,0 +1,95 @@ +package com.replaymod.restrictions; + +import com.replaymod.core.SettingsRegistry; +import com.replaymod.core.utils.Restrictions; +import io.netty.buffer.Unpooled; +import io.netty.channel.ChannelDuplexHandler; +import io.netty.channel.ChannelFutureListener; +import io.netty.channel.ChannelHandler; +import net.minecraft.network.PacketBuffer; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import net.minecraftforge.fml.common.eventhandler.EventBus; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.PlayerEvent; +import net.minecraftforge.fml.common.network.FMLEmbeddedChannel; +import net.minecraftforge.fml.common.network.FMLOutboundHandler; +import net.minecraftforge.fml.common.network.NetworkRegistry; +import net.minecraftforge.fml.common.network.internal.FMLProxyPacket; +import net.minecraftforge.fml.relauncher.Side; +import org.apache.logging.log4j.Logger; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +@Mod(modid = ReplayModRestrictions.MOD_ID, + version = "@MOD_VERSION@", + acceptedMinecraftVersions = "@MC_VERSION@", + acceptableRemoteVersions = "*", + serverSideOnly = true, + useMetadata = true) +public class ReplayModRestrictions { + public static final String MOD_ID = "replaymod-restrictions"; + + public static Logger LOGGER; + + private final SettingsRegistry settingsRegistry = new SettingsRegistry(); + private FMLEmbeddedChannel channel; + + @Mod.EventHandler + public void preInit(FMLPreInitializationEvent event) { + LOGGER = event.getModLog(); + + Configuration config = new Configuration(event.getSuggestedConfigurationFile()); + config.load(); + settingsRegistry.setConfiguration(config); + + settingsRegistry.register(Setting.class); + } + + @Mod.EventHandler + public void init(FMLInitializationEvent event) { + EventBus bus = FMLCommonHandler.instance().bus(); + bus.register(this); + + channel = NetworkRegistry.INSTANCE.newChannel(Restrictions.PLUGIN_CHANNEL, new RestrictionsChannelHandler()).get(Side.SERVER); + } + + @Mod.EventHandler + public void postInit(FMLPostInitializationEvent event) throws IOException { + settingsRegistry.save(); // Save default values to disk + } + + @ChannelHandler.Sharable + private static class RestrictionsChannelHandler extends ChannelDuplexHandler {} + + @SubscribeEvent + public void onUserJoin(PlayerEvent.PlayerLoggedInEvent event) { + Map restrictions = new HashMap<>(); + if (settingsRegistry.get(Setting.NO_XRAY)) restrictions.put("no_xray", new byte[0]); + if (settingsRegistry.get(Setting.NO_NOCLIP)) restrictions.put("no_noclip", new byte[0]); + if (settingsRegistry.get(Setting.ONLY_FIRST_PERSON)) restrictions.put("only_first_person", new byte[0]); + if (settingsRegistry.get(Setting.ONLY_RECORDING_PLAYER)) restrictions.put("only_recording_player", new byte[0]); + if (settingsRegistry.get(Setting.HIDE_COORDINATES)) restrictions.put("hide_coordinates", new byte[0]); + + PacketBuffer buf = new PacketBuffer(Unpooled.buffer()); + for (Map.Entry e : restrictions.entrySet()) { + byte[] bytes = e.getKey().getBytes(); + buf.writeByte(bytes.length); + buf.writeBytes(bytes); + buf.writeByte(1); + buf.writeBytes(e.getValue()); + } + + FMLProxyPacket packet = new FMLProxyPacket(buf, Restrictions.PLUGIN_CHANNEL); + + channel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.PLAYER); + channel.attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(event.player); + channel.writeAndFlush(packet).addListener(ChannelFutureListener.FIRE_EXCEPTION_ON_FAILURE); + } +} diff --git a/src/main/java/com/replaymod/restrictions/Setting.java b/src/main/java/com/replaymod/restrictions/Setting.java new file mode 100644 index 00000000..7a36e936 --- /dev/null +++ b/src/main/java/com/replaymod/restrictions/Setting.java @@ -0,0 +1,19 @@ +package com.replaymod.restrictions; + +import com.replaymod.core.SettingsRegistry; + +public final class Setting extends SettingsRegistry.SettingKeys { + public static final Setting NO_XRAY = make("no_xray", false); + public static final Setting NO_NOCLIP = make("no_noclip", false); + public static final Setting ONLY_FIRST_PERSON = make("only_first_person", false); + public static final Setting ONLY_RECORDING_PLAYER = make("only_recording_player", false); + public static final Setting HIDE_COORDINATES = make("hide_coordinates", false); + + private static Setting make(String key, T defaultValue) { + return new Setting<>("restrictions", key, defaultValue); + } + + public Setting(String category, String key, T defaultValue) { + super(category, key, null, defaultValue); + } +} diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 065f181d..3cd255eb 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -134,6 +134,22 @@ "screenshots": [], "dependencies": [] }, + { + "modid": "replaymod-restrictions", + "name": "Replay Mod - Restrictions", + "description": "Server-side Restrictions Module of the ReplayMod - Restrict what clients can do in replays", + "version": "${version}", + "mcversion": "${mcversion}", + "url": "https://replaymod.com", + "updateUrl": "https://replaymod.com/download", + "authorList": [ + "CrushedPixel", + "johni0702" + ], + "logoFile": "replaymod_logo.png", + "screenshots": [], + "dependencies": [] + }, { "modid": "replaymod-compat", "name": "Replay Mod - Compatibility", From d7368d8c87b454f94029cce9e4f6a363951b93be Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 16 Jan 2018 16:05:08 +0100 Subject: [PATCH 50/53] Remove 5 character restriction from user names (fixes #97) --- src/main/java/com/replaymod/online/gui/GuiRegister.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/replaymod/online/gui/GuiRegister.java b/src/main/java/com/replaymod/online/gui/GuiRegister.java index 574a6c05..08c78f29 100644 --- a/src/main/java/com/replaymod/online/gui/GuiRegister.java +++ b/src/main/java/com/replaymod/online/gui/GuiRegister.java @@ -110,7 +110,7 @@ public class GuiRegister extends AbstractGuiScreen { @Override public void run() { String status = null; - if (usernameInput.getText().length() < 5) { + if (usernameInput.getText().length() < 1) { status = "replaymod.gui.register.error.shortusername"; } else if(!Patterns.ALPHANUMERIC_UNDERSCORE.matcher(usernameInput.getText().trim()).matches()) { status = "replaymod.gui.register.error.invalidname"; From 22e4ce4584492c15eaa74688903eb1e3c29de02b Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 16 Jan 2018 16:14:03 +0100 Subject: [PATCH 51/53] Make sure the replay is stopped if the main menu is opened (fixes #95) --- .../com/replaymod/replay/ReplayModReplay.java | 4 ++++ .../com/replaymod/replay/handler/GuiHandler.java | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/main/java/com/replaymod/replay/ReplayModReplay.java b/src/main/java/com/replaymod/replay/ReplayModReplay.java index 88a65f19..a19741ca 100644 --- a/src/main/java/com/replaymod/replay/ReplayModReplay.java +++ b/src/main/java/com/replaymod/replay/ReplayModReplay.java @@ -195,6 +195,10 @@ public class ReplayModReplay { replayHandler = new ReplayHandler(replayFile, true); } + public void forcefullyStopReplay() { + replayHandler = null; + } + public ReplayMod getCore() { return core; } diff --git a/src/main/java/com/replaymod/replay/handler/GuiHandler.java b/src/main/java/com/replaymod/replay/handler/GuiHandler.java index f05d2971..cad20d5a 100644 --- a/src/main/java/com/replaymod/replay/handler/GuiHandler.java +++ b/src/main/java/com/replaymod/replay/handler/GuiHandler.java @@ -16,6 +16,8 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import static com.replaymod.replay.ReplayModReplay.LOGGER; + public class GuiHandler { private static final int BUTTON_EXIT_SERVER = 1; private static final int BUTTON_ACHIEVEMENTS = 5; @@ -102,6 +104,20 @@ public class GuiHandler { return; } + if (mod.getReplayHandler() != null) { + // Something went terribly wrong and we ended up in the main menu with the replay still active. + // To prevent players from joining live servers and using the CameraEntity, try to stop the replay now. + try { + mod.getReplayHandler().endReplay(); + } catch (IOException e) { + LOGGER.error("Trying to stop broken replay: ", e); + } finally { + if (mod.getReplayHandler() != null) { + mod.forcefullyStopReplay(); + } + } + } + @SuppressWarnings("unchecked") List buttonList = event.buttonList; GuiButton button = new GuiButton(BUTTON_REPLAY_VIEWER, event.gui.width / 2 - 100, From ea2427a73c54781fa73d5074b9476bf2ac4d1bcc Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 16 Jan 2018 21:52:05 +0100 Subject: [PATCH 52/53] Create screenshot folder it it does not yet exist --- .../replaymod/extras/advancedscreenshots/ScreenshotWriter.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java index c601f28f..fcabe95c 100644 --- a/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotWriter.java @@ -43,6 +43,7 @@ public class ScreenshotWriter implements FrameConsumer { } } + outputFile.getParentFile().mkdirs(); ImageIO.write(img, "PNG", outputFile); } catch (OutOfMemoryError e) { e.printStackTrace(); From 87335cd243d00d7ee5ed1166023555c596a9c755 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Wed, 17 Jan 2018 00:12:42 +0100 Subject: [PATCH 53/53] Add lombok-1.16.4.jar to checksums list --- gradle/reprod/checksums.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/gradle/reprod/checksums.txt b/gradle/reprod/checksums.txt index 5c937d3d..c5241a1b 100644 --- a/gradle/reprod/checksums.txt +++ b/gradle/reprod/checksums.txt @@ -411,6 +411,7 @@ cbfacd5dd812db16dc910994007fe58d9402a25507f81a1c2218e15c2c1bedfa /org/ow2/asm/as 347a7a9400f9964e87c91d3980e48eebdc8d024bc3b36f7f22189c662853a51c /org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar 65819ca7c5a218ff49f8ebe72f3b39219c81f137d017acc1aec15b1054cf5236 /org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.pom 51215c67d2c068d8b7d2f6f80f51372a098075deccc448d4bdd7b987ba8328fb /org/ow2/ow2/1.3/ow2-1.3.pom +3ca225ce3917eac8bf4b7d2186845df4e70dcdede356dca8537b6d78a535c91e /org/projectlombok/lombok/1.16.4/lombok-1.16.4.jar fcb8d5745f776567f1cce332282750b1653568324621ecef03288c8a25919d0e /org/projectlombok/lombok/1.16.4/lombok-1.16.4.pom e0a471be03e1e6b02bf019480cec7a3ac9801702bf7bf62f15d077ad4df8dd5d /org/projectlombok/lombok/1.16.6/lombok-1.16.6.jar 32ac0a2363ccc0c5086b62cfc05e28a355b74e155efef6b426f5498a0dfc9e4c /org/projectlombok/lombok/1.16.6/lombok-1.16.6.pom