From 4bf0872e616d19ed594256afdb477fa6af4226f5 Mon Sep 17 00:00:00 2001 From: Jiri Date: Wed, 15 Mar 2023 10:33:27 +0100 Subject: [PATCH] moved to jrd 7.1 todo: asm7/g/procyonassembler wrappers new launchers new classpath (diff, cplc api...) ? --- .gitignore | 1 + java-runtime-decompiler.spec | 26 ++++++++++++++++++-------- removeMultilineSpotbugs.patch | 13 +++++++++++++ sources | 2 +- systemJasm.patch | 5 ++--- systemJcoder.patch | 4 ++-- systemProcyon.patch | 14 +++++++------- 7 files changed, 44 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index c014da0..741bd3d 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /java-runtime-decompiler-6.0.0.pre.2.tar.gz /java-runtime-decompiler-6.0.0.pre.3.tar.gz /java-runtime-decompiler-6.1.tar.gz +/java-runtime-decompiler-7.1.tar.gz diff --git a/java-runtime-decompiler.spec b/java-runtime-decompiler.spec index 2bb7dcb..45a3fa2 100644 --- a/java-runtime-decompiler.spec +++ b/java-runtime-decompiler.spec @@ -1,7 +1,7 @@ Summary: Application for extraction and decompilation of JVM byte code Name: java-runtime-decompiler -Version: 6.1 -Release: 6%{?dist} +Version: 7.1 +Release: 1%{?dist} License: GPLv3 URL: https://github.com/pmikova/java-runtime-decompiler Source0: https://github.com/pmikova/%{name}/archive/%{name}-%{version}.tar.gz @@ -24,6 +24,7 @@ BuildRequires: junit5 BuildRequires: ant-junit5 BuildRequires: junit BuildRequires: ant-junit +BuildRequires: java-diff-utils BuildRequires: maven-surefire-provider-junit BuildRequires: maven-surefire-provider-junit5 BuildRequires: maven-surefire @@ -36,14 +37,17 @@ BuildRequires: classpathless-compiler Requires: java-headless Recommends: java Requires: classpathless-compiler +Requires: java-diff-utils Recommends: fernflower -Recommends: procyon-decompiler +Recommends: procyon-decompiler >= 0.6 Recommends: CFR -Recommends: openjdk-asmtools +Recommends: openjdk-asmtools >= 8.0 +Recommends: openjdk-asmtools7 %description This application can access JVM memory at runtime, extract byte code from the JVM and decompile it. +In addition, it can modify the obtained code and comple it back %package javadoc Summary: Javadoc for %{name} @@ -75,9 +79,13 @@ for x in $a ; do #grep -e ".*SuppressFBWarnings.*" $x && echo "^ $x ^" sed "s/.*SuppressFBWarnings.*//g" $x -i done - +xmvn --version +echo $JAVA_HOME +export JAVA_HOME=/usr/lib/jvm/java-17-openjdk #why? +xmvn --version %mvn_build -f --xmvn-javadoc -- -Plegacy -java -cp /usr/share/java/classpathless-compiler/classpathless-compiler.jar:runtime-decompiler/target/runtime-decompiler-%{version}.jar org.jrd.backend.data.Help > %{name}.1 +CPLC=/usr/share/java/classpathless-compiler +java -cp $CPLC/classpathless-compiler.jar:$CPLC/classpathless-compiler-api.jar:$CPLC/classpathless-compiler-util.jar:runtime-decompiler/target/runtime-decompiler-%{version}.jar org.jrd.backend.data.cli.Help > %{name}.1 %install %mvn_install @@ -118,8 +126,10 @@ desktop-file-install --vendor="fedora" \ %license LICENSE %changelog -* Thu Jan 19 2023 Fedora Release Engineering - 6.1-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild +* Thu Mar 15 2023 Fedora Release Engineering - 7.1-1 +- moved to jrd 7.1 +- todo:asm7/g/procyonassembler wrappers, new launchers, new classpath (diff, cplc api...) +- verify current wrappers * Thu Jul 21 2022 Fedora Release Engineering - 6.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild diff --git a/removeMultilineSpotbugs.patch b/removeMultilineSpotbugs.patch index 51763b5..e612855 100644 --- a/removeMultilineSpotbugs.patch +++ b/removeMultilineSpotbugs.patch @@ -36,4 +36,17 @@ class FileSelectorArrayRowTest { @BeforeAll static void setup() { +--- a/runtime-decompiler/src/main/java/org/jrd/backend/data/cli/utils/CompileArguments.java ++++ a/runtime-decompiler/src/main/java/org/jrd/backend/data/cli/utils/CompileArguments.java +@@ -77,10 +77,6 @@ + return new RuntimeCompilerConnector.JrdClassesProvider(localVmInfo, vmManager); + } + +- @SuppressFBWarnings( +- value = "NP_LOAD_OF_KNOWN_NULL_VALUE", +- justification = "Classpath is only used for FS VMs, in other cases getCp() does not get called" +- ) + /** + * Warning, possibly unused, rotten code. + */ diff --git a/sources b/sources index 2c65d53..2d86801 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (java-runtime-decompiler-6.1.tar.gz) = 41bd87f0311d47819107fbd34173e4e1cebef71eb8651a337fb71a30947ffbb6bcaea6877508e0a02b0b2fcead7fe51497ed6251329a0254a8ee48220275e86f +SHA512 (java-runtime-decompiler-7.1.tar.gz) = 09f76e0f82823089ce122a02b66664535afba3a5bbd30a48f2cf1ba505647d75ba67b2c361eadd084d025ff77298f6973c9eaaef970ff5a83d69573c3ab5fd7b diff --git a/systemJasm.patch b/systemJasm.patch index b5099af..eff068f 100644 --- a/systemJasm.patch +++ b/systemJasm.patch @@ -6,9 +6,8 @@ - "WrapperURL": "file://${XDG_CONFIG_HOME}/plugins/JasmDecompilerWrapper.java", + "WrapperURL": "file:/etc/java-runtime-decompiler/plugins/JasmDecompilerWrapper.java", "DependencyURL": [ -- "file://${HOME}/.m2/repository/org/openjdk/asmtools/asmtools-core/7.0.b10-ea/asmtools-core-7.0.b10-ea.jar" -+ "file:/usr/share/java/openjdk-asmtools/asmtools-core.jar" +- "file://${HOME}/.m2/repository/org/openjdk/asmtools/8.0.b02-ea/asmtools-8.0.b02-ea.jar" ++ "file:/usr/share/java/openjdk-asmtools/asmtools.jar" ], "DecompilerDownloadURL": "https://github.com/openjdk/asmtools" } - diff --git a/systemJcoder.patch b/systemJcoder.patch index bdbacc7..cf6ce68 100644 --- a/systemJcoder.patch +++ b/systemJcoder.patch @@ -6,8 +6,8 @@ - "WrapperURL": "file://${XDG_CONFIG_HOME}/plugins/JcoderDecompilerWrapper.java", + "WrapperURL": "file:/etc/java-runtime-decompiler/plugins/JcoderDecompilerWrapper.java", "DependencyURL": [ -- "file://${HOME}/.m2/repository/org/openjdk/asmtools/asmtools-core/7.0.b10-ea/asmtools-core-7.0.b10-ea.jar" -+ "file:/usr/share/java/openjdk-asmtools/asmtools-core.jar" +- "file://${HOME}/.m2/repository/org/openjdk/asmtools/8.0.b02-ea/asmtools-8.0.b02-ea.jar" ++ "file:/usr/share/java/openjdk-asmtools/asmtools.jar" ], "DecompilerDownloadURL": "https://github.com/openjdk/asmtools" } diff --git a/systemProcyon.patch b/systemProcyon.patch index 342a998..74bf4e5 100644 --- a/systemProcyon.patch +++ b/systemProcyon.patch @@ -1,17 +1,17 @@ --- runtime-decompiler/src/plugins/ProcyonDecompilerWrapper.json 2018-11-12 15:25:47.000000000 +0100 +++ runtime-decompiler/src/plugins/ProcyonDecompilerWrapper.json 2019-01-16 12:13:37.317778036 +0100 -@@ -1,9 +1,10 @@ - { +@@ -2,9 +2,9 @@ "Name": "Procyon", -- "WrapperURL": "file://${XDG_CONFIG_HOME}/plugins/ProcyonDecompilerWrapper.java", -+ "WrapperURL": "file:///etc/java-runtime-decompiler/plugins/ProcyonDecompilerWrapper.java", + "WrapperURL": "file://${XDG_CONFIG_HOME}/plugins/ProcyonDecompilerWrapper.java", "DependencyURL": [ -- "file://${HOME}/.m2/repository/org/bitbucket/mstrobel/procyon-core/0.5.36/procyon-core-0.5.36.jar", -- "file://${HOME}/.m2/repository/org/bitbucket/mstrobel/procyon-compilertools/0.5.36/procyon-compilertools-0.5.36.jar" +- "file://${HOME}/.m2/repository/com/github/mstrobel/procyon-core/1.0-SNAPSHOT/procyon-core-1.0-SNAPSHOT.jar", +- "file://${HOME}/.m2/repository/com/github/mstrobel/procyon-compilertools/1.0-SNAPSHOT/procyon-compilertools-1.0-SNAPSHOT.jar", +- "file://${HOME}/.m2/repository/com/github/mstrobel/procyon-decompiler/1.0-SNAPSHOT/procyon-decompiler-1.0-SNAPSHOT.jar" + "/usr/share/java/procyon/procyon-core.jar", + "/usr/share/java/procyon/procyon-compilertools.jar", + "/usr/share/java/procyon/procyon-decompiler.jar" ], - "DecompilerDownloadURL": "https://bitbucket.org/mstrobel/procyon/downloads/" + "DecompilerDownloadURL": "https://github.com/mstrobel/procyon/git " } +