Compare commits

...
Sign in to create a new pull request.

29 commits

Author SHA1 Message Date
Jiri Vanek
346c5983aa Rebuilt for java-25-openjdk as preffered jdk
https://fedoraproject.org/wiki/Changes/Java25AndNoMoreSystemJdk
Note, that since f43, you should be always explicit on what jdk to use.
This commit should do exactly that.
2025-07-28 18:57:09 +02:00
Fedora Release Engineering
cd24147d41 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 20:28:40 +00:00
Fedora Release Engineering
145f40ad1e Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 18:10:39 +00:00
Miroslav Suchý
495ce98a25 convert ASL 2.0 license to SPDX
This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4
2024-07-24 15:35:00 +02:00
Fedora Release Engineering
f8175c2dd3 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-17 23:03:12 +00:00
Software Management Team
dc75f0c262 Eliminate use of obsolete %patchN syntax (#2283636) 2024-05-30 12:46:46 +02:00
Jiri Vanek
da3903dd34 Rebuilt for java-21-openjdk as system jdk
https://fedoraproject.org/wiki/Changes/Java21
2024-02-27 15:26:55 +01:00
Fedora Release Engineering
11ad99b2a9 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-24 11:29:26 +00:00
Fedora Release Engineering
694958e372 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 19:13:27 +00:00
Fedora Release Engineering
fd180cf228 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 19:36:36 +00:00
Fedora Release Engineering
0a7ec1c3ec Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 03:21:53 +00:00
Fedora Release Engineering
4b5b17b2e4 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 03:05:58 +00:00
Jiri
b37df9aa70 Rebuilt for Drop i686 JDKs
https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs
2022-07-08 15:17:00 +02:00
Jiri
0588887729 Rebuilt for java-17-openjdk as system jdk
https://fedoraproject.org/wiki/Changes/Java17
2022-02-05 20:37:01 +01:00
Fedora Release Engineering
1b1c5d42b7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 02:56:18 +00:00
Fedora Release Engineering
1c04504e35 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-21 22:54:06 +00:00
Marian Koncek
5c3d724305 Update to upstream version 211.7442.40 2021-06-02 15:08:59 +02:00
Fedora Release Engineering
06121b3df0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 05:28:31 +00:00
Jiri Vanek
932abd2e86 set source/target of 8 2020-12-10 13:50:33 +01:00
Fedora Release Engineering
d422f7f356 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-27 17:22:47 +00:00
Jiri
6b403667ce Rebuilt for JDK-11 2020-07-10 19:09:58 +02:00
Jiri Vanek
3608fc5cc0 moved to gradle-less build 2020-02-18 10:17:45 +01:00
Fedora Release Engineering
3adfe19f83 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-28 18:24:20 +00:00
Fedora Release Engineering
18adabb7e4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 00:29:22 +00:00
Fedora Release Engineering
4356c02886 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-01-31 19:37:54 +00:00
Igor Gnatenko
38f67dd265 Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:24:01 +01:00
Jiri
c91345d468 added virtual provides of fernflower-decompiler and fernflower-decompiler-javadoc 2019-01-18 19:03:39 +01:00
Jiri Vanek
450a5de6f0 Initial import (#1662974). 2019-01-10 16:20:16 +01:00
Jiri Vanek
93147ba933 Enahced readme 2019-01-10 16:18:06 +01:00
8 changed files with 263 additions and 1 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
/fernflower-183.5153.8.tar.gz
/fernflower-211.7442.40.tar.gz

View file

@ -1,3 +1,8 @@
# fernflower
The fernflower package
The fernflower package
JIdea's decompiler is the first actually working analytical decompiler for Java and probably
for a high-level programming language in general. Naturally it is still under development,
please send your bug reports and improvement suggestions to the issue tracker.

31
create-sources.sh Normal file
View file

@ -0,0 +1,31 @@
# idea soources have 280MB
# decompiler itself is 375kB now, including test classes...
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
if [ -e $OUTPUT ] ; then
echo "$OUTPUT already exists"
else
if [ -e $INPUT ] ; then
echo "$INPUT already exists, not downloading"
set -ex
else
set -ex
wget https://github.com/JetBrains/intellij-community/archive/idea/$INPUT
fi
tar tzf $INPUT | grep -e decompiler -e LICENSE
tar -xvf $INPUT $DECOMPILER_DIR/engine
tar -xvf $INPUT $TOP_DIR/LICENSE.txt
mv $TOP_DIR/LICENSE.txt $DECOMPILER_DIR/engine
pushd $DECOMPILER_DIR/
mv engine $OUT_NAME
tar -cJf $OUTPUT $OUT_NAME
popd
mv $DECOMPILER_DIR/$OUTPUT .
rm -rf $TOP_DIR
fi

7
fernflower Normal file
View file

@ -0,0 +1,7 @@
#!/bin/bash
. /usr/share/java-utils/java-functions
MAIN_CLASS=org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler
set_classpath fernflower
run ${@}

185
fernflower.spec Normal file
View file

@ -0,0 +1,185 @@
#in noarch? why...
%global debug_package %{nil}
#javadoc is empty. Keep building it now with hope for bright future
%global with_javadoc 1
Name: fernflower
Version: 211.7442.40
Release: 16%{?dist}
Summary: JIdea's java decompiler
# 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`
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-25-devel
%if %{with_javadoc}
BuildRequires: zip
%endif
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
for a high-level programming language in general. Naturally it is still under development,
please send your bug reports and improvement suggestions to the issue tracker.
%if %{with_javadoc}
%package javadoc
Summary: %{name} API documentation
Requires: javapackages-filesystem
BuildArch: noarch
Provides: %{name}-decompiler-javadoc
%description javadoc
The %{name} 100% empty API documentation.
%endif
%prep
%setup
# removing test classes and jars, tests are not run in rpm build anyway (but can be run out of it)
# maybe to pack them as demos?
find | grep "\\.class$"
find | grep "\\.jar$"
rm -rvf test
rm -rvf testData
rm -vf gradle/wrapper/gradle-wrapper.jar
find | grep "\\.class$" && exit 1
find | grep "\\.jar$" && exit 1
#removing main method from entry point jar
%patch -P0
%patch -P1 -p1
%build
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
cd fernflower-javadoc
javadoc `find ../src -type f`
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
mkdir -p $RPM_BUILD_ROOT/%{_javadir}/
cp build/libs/%{name}.jar $RPM_BUILD_ROOT/%{_javadir}
%if %{with_javadoc}
mkdir -p $RPM_BUILD_ROOT/%{_javadocdir}/%{name}
cp %{name}.zip $RPM_BUILD_ROOT/%{_javadocdir}/
%endif
%files
%license LICENSE.txt
%doc README.md
%{_javadir}/%{name}.jar
%attr(755, root, root) %{_bindir}/%{name}
%if %{with_javadoc}
%files javadoc
%license LICENSE.txt
%doc README.md
%{_javadocdir}/%{name}.zip
%endif
%changelog
* Mon Jul 28 2025 jiri vanek <jvanek@redhat.com> - 211.7442.40-16
- Rebuilt for java-25-openjdk as preffered jdk
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 211.7442.40-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 211.7442.40-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Jul 24 2024 Miroslav Suchý <msuchy@redhat.com> - 211.7442.40-13
- convert license to SPDX
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 211.7442.40-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Tue Feb 27 2024 Jiri Vanek <jvanek@redhat.com> - 211.7442.40-11
- Rebuilt for java-21-openjdk as system jdk
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 211.7442.40-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 211.7442.40-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 211.7442.40-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 211.7442.40-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 211.7442.40-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jul 08 2022 Jiri Vanek <jvanek@redhat.com> - 211.7442.40-5
- Rebuilt for Drop i686 JDKs
* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 211.7442.40-4
- Rebuilt for java-17-openjdk as system jdk
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 211.7442.40-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 211.7442.40-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jun 02 2021 Marian Koncek <mkoncek@redhat.com> - 211.7442.40-1
- Update to upstream version 211.7442.40
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 183.5153.8-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Dec 10 2020 Jiri Vanek <jvanek@redhat.com> - 183.5153.8-9
- set source/target of 8
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 183.5153.8-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jul 10 2020 Jiri Vanek <jvanek@redhat.com> - 183.5153.8-7
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
* Tue Feb 18 2020 Jiri Vanek <jvanek@redhat.com> - 183.5153.8-6
- moved to gradle-less build
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 183.5153.8-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 183.5153.8-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 183.5153.8-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jan 18 2019 Jiri Vanek <jvanek@redhat.com> - 183.5153.8-2
- added virtual provides of fernflower-decompiler and fernflower-decompiler-javadoc
* Wed Jan 09 2019 Jiri Vanek <jvanek@redhat.com> - 183.5153.8-1
- initial package

13
port_to_java_8.patch Normal file
View file

@ -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<Integer, FastSparseSet<Integer>>() {
private final Integer var = key;
private final FastSparseSet<Integer> val = ent;

18
remove_main.patch Normal file
View file

@ -0,0 +1,18 @@
--- 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.12'
- testCompile 'org.assertj:assertj-core:3.12.2'
-}
-
jar {
archiveName 'fernflower.jar'
- manifest {
- attributes 'Main-Class': 'org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler'
- }
}

1
sources Normal file
View file

@ -0,0 +1 @@
SHA512 (fernflower-211.7442.40.tar.gz) = 54138ec2987f27887dc7a882d0e4d5bf6a1a7c4d9f8e73bafd7cd957181779bb59a413117cd65dd29973c9072f5b89f797c78581113f83043191894b0631ab31