Compare commits
29 commits
epel8-play
...
rawhide
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
346c5983aa | ||
|
|
cd24147d41 | ||
|
|
145f40ad1e | ||
|
|
495ce98a25 | ||
|
|
f8175c2dd3 | ||
|
|
dc75f0c262 | ||
|
|
da3903dd34 | ||
|
|
11ad99b2a9 | ||
|
|
694958e372 | ||
|
|
fd180cf228 | ||
|
|
0a7ec1c3ec | ||
|
|
4b5b17b2e4 | ||
|
|
b37df9aa70 | ||
|
|
0588887729 | ||
|
|
1b1c5d42b7 | ||
|
|
1c04504e35 | ||
|
|
5c3d724305 | ||
|
|
06121b3df0 | ||
|
|
932abd2e86 | ||
|
|
d422f7f356 | ||
|
|
6b403667ce | ||
|
|
3608fc5cc0 | ||
|
|
3adfe19f83 | ||
|
|
18adabb7e4 | ||
|
|
4356c02886 | ||
|
|
38f67dd265 | ||
|
|
c91345d468 | ||
|
|
450a5de6f0 | ||
|
|
93147ba933 |
8 changed files with 263 additions and 1 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
/fernflower-183.5153.8.tar.gz
|
||||
/fernflower-211.7442.40.tar.gz
|
||||
|
|
@ -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
31
create-sources.sh
Normal 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
7
fernflower
Normal 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
185
fernflower.spec
Normal 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
13
port_to_java_8.patch
Normal 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
18
remove_main.patch
Normal 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
1
sources
Normal file
|
|
@ -0,0 +1 @@
|
|||
SHA512 (fernflower-211.7442.40.tar.gz) = 54138ec2987f27887dc7a882d0e4d5bf6a1a7c4d9f8e73bafd7cd957181779bb59a413117cd65dd29973c9072f5b89f797c78581113f83043191894b0631ab31
|
||||
Loading…
Add table
Add a link
Reference in a new issue