diff --git a/.gitignore b/.gitignore index 3dfb296..70ae512 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /fernflower-183.5153.8.tar.gz +/fernflower-211.7442.40.tar.gz diff --git a/create-sources.sh b/create-sources.sh index d21de1d..6a9b44c 100644 --- a/create-sources.sh +++ b/create-sources.sh @@ -1,13 +1,13 @@ # idea soources have 280MB # decompiler itself is 375kB now, including test classes... -VERSION=183.5153.8 +VERSION=211.7442.40 INPUT=$VERSION.tar.gz TOP_DIR=intellij-community-idea-$VERSION DECOMPILER_DIR=$TOP_DIR/plugins/java-decompiler NAME=fernflower OUT_NAME=$NAME-$VERSION OUTPUT=$OUT_NAME.tar.gz -TEST=true; + if [ -e $OUTPUT ] ; then echo "$OUTPUT already exists" else @@ -29,12 +29,3 @@ else mv $DECOMPILER_DIR/$OUTPUT . rm -rf $TOP_DIR fi -if [ $TEST == "true" ] ; then - tar -xvf $OUTPUT - pushd $OUT_NAME - gradle-local jar - find | grep $NAME.jar - popd -fi - - diff --git a/fernflower b/fernflower index 07e3d6a..5adcf15 100644 --- a/fernflower +++ b/fernflower @@ -5,4 +5,3 @@ MAIN_CLASS=org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler set_classpath fernflower run ${@} - diff --git a/fernflower.spec b/fernflower.spec index fe5f799..daa1e57 100644 --- a/fernflower.spec +++ b/fernflower.spec @@ -4,12 +4,13 @@ %global with_javadoc 1 Name: fernflower -Version: 183.5153.8 -Release: 1%{?dist} +Version: 211.7442.40 +Release: 16%{?dist} Summary: JIdea's java decompiler -Group: Development/Tools -License: ASL 2.0 +# Automatically converted from old format: ASL 2.0 - review is highly recommended. +License: Apache-2.0 URL: https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine + #Source0: https://github.com/JetBrains/intellij-community/archive/idea/%%{version}.tar.gz # this source is 280MB big, so only the decompiler is repacked via create-sources.sh and has 350kB # generated by source2; `create-sources.sh 183.5153.8` @@ -17,17 +18,21 @@ Source0: %{name}-%{version}.tar.gz # launcher Source1: %{name} Source2: create-sources.sh + Patch0: remove_main.patch +Patch1: port_to_java_8.patch + BuildArch: noarch +ExclusiveArch: %{java_arches} noarch + BuildRequires: javapackages-tools -BuildRequires: java-devel -BuildRequires: gradle-local +BuildRequires: java-25-devel %if %{with_javadoc} BuildRequires: zip %endif -Requires: java-headless +Requires: java-25-headless Requires: javapackages-tools - +Provides: %{name}-decompiler %description JIdea's decompiler is the first actually working analytical decompiler for Java and probably @@ -37,9 +42,9 @@ please send your bug reports and improvement suggestions to the issue tracker. %if %{with_javadoc} %package javadoc Summary: %{name} API documentation -Group: Documentation Requires: javapackages-filesystem BuildArch: noarch +Provides: %{name}-decompiler-javadoc %description javadoc The %{name} 100% empty API documentation. @@ -57,10 +62,17 @@ rm -vf gradle/wrapper/gradle-wrapper.jar find | grep "\\.class$" && exit 1 find | grep "\\.jar$" && exit 1 #removing main method from entry point jar -%patch0 +%patch -P0 +%patch -P1 -p1 %build -%gradle_build --skip-install jar +mkdir build +javac -source 8 -target 8 -d build `find src -type f` +cd build +jar -cf ../%{name}.jar org +cd .. +mkdir build/libs +mv %{name}.jar build/libs/ %if %{with_javadoc} # this is sad. Javadoc is really 100% empty mkdir fernflower-javadoc @@ -70,7 +82,6 @@ cd .. zip -r %{name}.zip fernflower-javadoc %endif - %install mkdir -p $RPM_BUILD_ROOT/%{_bindir}/ cp %{SOURCE1} $RPM_BUILD_ROOT/%{_bindir}/ # cusotm launcher for main method in main jar @@ -95,5 +106,80 @@ cp %{name}.zip $RPM_BUILD_ROOT/%{_javadocdir}/ %endif %changelog +* Mon Jul 28 2025 jiri vanek - 211.7442.40-16 +- Rebuilt for java-25-openjdk as preffered jdk + +* Wed Jul 23 2025 Fedora Release Engineering - 211.7442.40-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Thu Jan 16 2025 Fedora Release Engineering - 211.7442.40-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Jul 24 2024 Miroslav Suchý - 211.7442.40-13 +- convert license to SPDX + +* Wed Jul 17 2024 Fedora Release Engineering - 211.7442.40-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Feb 27 2024 Jiri Vanek - 211.7442.40-11 +- Rebuilt for java-21-openjdk as system jdk + +* Wed Jan 24 2024 Fedora Release Engineering - 211.7442.40-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 211.7442.40-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 211.7442.40-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 211.7442.40-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Fedora Release Engineering - 211.7442.40-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jul 08 2022 Jiri Vanek - 211.7442.40-5 +- Rebuilt for Drop i686 JDKs + +* Sat Feb 05 2022 Jiri Vanek - 211.7442.40-4 +- Rebuilt for java-17-openjdk as system jdk + +* Thu Jan 20 2022 Fedora Release Engineering - 211.7442.40-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 211.7442.40-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jun 02 2021 Marian Koncek - 211.7442.40-1 +- Update to upstream version 211.7442.40 + +* Tue Jan 26 2021 Fedora Release Engineering - 183.5153.8-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Dec 10 2020 Jiri Vanek - 183.5153.8-9 +- set source/target of 8 + +* Mon Jul 27 2020 Fedora Release Engineering - 183.5153.8-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jul 10 2020 Jiri Vanek - 183.5153.8-7 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Tue Feb 18 2020 Jiri Vanek - 183.5153.8-6 +- moved to gradle-less build + +* Tue Jan 28 2020 Fedora Release Engineering - 183.5153.8-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 183.5153.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 183.5153.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jan 18 2019 Jiri Vanek - 183.5153.8-2 +- added virtual provides of fernflower-decompiler and fernflower-decompiler-javadoc + * Wed Jan 09 2019 Jiri Vanek - 183.5153.8-1 - initial package diff --git a/port_to_java_8.patch b/port_to_java_8.patch new file mode 100644 index 0000000..20ae101 --- /dev/null +++ b/port_to_java_8.patch @@ -0,0 +1,13 @@ +diff --git a/src/org/jetbrains/java/decompiler/util/SFormsFastMapDirect.java b/src/org/jetbrains/java/decompiler/util/SFormsFastMapDirect.java +index bb8b4dd..30fcb9b 100644 +--- a/src/org/jetbrains/java/decompiler/util/SFormsFastMapDirect.java ++++ b/src/org/jetbrains/java/decompiler/util/SFormsFastMapDirect.java +@@ -342,7 +342,7 @@ public class SFormsFastMapDirect { + if (ent != null) { + final int key = i == 0 ? ikey : (i == 1 ? ikey + VarExprent.STACK_BASE : -ikey); + +- list.add(new Entry<>() { ++ list.add(new Entry>() { + + private final Integer var = key; + private final FastSparseSet val = ent; diff --git a/remove_main.patch b/remove_main.patch index c144656..6490081 100644 --- a/remove_main.patch +++ b/remove_main.patch @@ -1,13 +1,13 @@ ---- build.gradle 2018-12-24 11:27:21.000000000 +0100 -+++ build.gradle.orig 2019-01-02 15:29:35.875645761 +0100 -@@ -10,15 +10,6 @@ +--- build.gradle 2021-05-31 12:00:45.000000000 +0200 ++++ build.gradle.rej 2021-06-02 14:27:41.778875605 +0200 +@@ -11,15 +11,6 @@ test.java.srcDirs 'test' } -repositories { jcenter() } -dependencies { -- testCompile 'junit:junit:4.+' -- testCompile 'org.assertj:assertj-core:3.+' +- testCompile 'junit:junit:4.12' +- testCompile 'org.assertj:assertj-core:3.12.2' -} - jar { @@ -15,6 +15,4 @@ - manifest { - attributes 'Main-Class': 'org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler' - } --} -\ No newline at end of file -+} + } diff --git a/sources b/sources index 377aa4b..472a918 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (fernflower-183.5153.8.tar.gz) = efaa1dc107ba62e38cda59fdfddfd6f5d22d01ecbd22bdeff29ec3a57622309e5f89a7025af52f018f7250b6d840bb7ccd64a4a51dc92bbc470911d1b289372a +SHA512 (fernflower-211.7442.40.tar.gz) = 54138ec2987f27887dc7a882d0e4d5bf6a1a7c4d9f8e73bafd7cd957181779bb59a413117cd65dd29973c9072f5b89f797c78581113f83043191894b0631ab31