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.
230 lines
7.9 KiB
RPMSpec
230 lines
7.9 KiB
RPMSpec
Summary: Application for extraction and decompilation of JVM byte code
|
|
Name: java-runtime-decompiler
|
|
Version: 9.1
|
|
Release: %autorelease
|
|
# Automatically converted from old format: GPLv3 - review is highly recommended.
|
|
License: GPL-3.0-only
|
|
URL: https://github.com/pmikova/java-runtime-decompiler
|
|
Source0: https://github.com/judovana/%{name}/archive/%{name}-%{version}.tar.gz
|
|
Source1: %{name}
|
|
Source3: jrd.desktop
|
|
Source4: jrd-hex.desktop
|
|
Patch1: systemFernflower.patch
|
|
Patch2: systemProcyon.patch
|
|
Patch21: systemProcyonAssembler.patch
|
|
Patch3: rsyntaxVersion.patch
|
|
Patch4: systemCfr.patch
|
|
Patch5: systemJasm.patch
|
|
Patch51: systemJasm7.patch
|
|
Patch52: systemJasmG.patch
|
|
Patch53: systemJasmG7.patch
|
|
Patch6: systemJcoder.patch
|
|
Patch61: systemJcoder7.patch
|
|
Patch62: systemJcoderG.patch
|
|
Patch63: systemJcoderG7.patch
|
|
Patch7: removeMultilineSpotbugs.patch
|
|
|
|
BuildArch: noarch
|
|
ExclusiveArch: %{java_arches} noarch
|
|
BuildRequires: maven-local-openjdk25
|
|
BuildRequires: byteman
|
|
BuildRequires: rsyntaxtextarea
|
|
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
|
|
BuildRequires: maven-surefire-plugin
|
|
BuildRequires: maven-clean-plugin
|
|
BuildRequires: java-25-devel
|
|
BuildRequires: google-gson
|
|
BuildRequires: desktop-file-utils
|
|
BuildRequires: classpathless-compiler
|
|
BuildRequires: jurand
|
|
Requires: google-gson
|
|
Requires: byteman
|
|
Requires: rsyntaxtextarea
|
|
Requires: javapackages-tools
|
|
Requires: classpathless-compiler
|
|
Requires: java-diff-utils
|
|
Recommends: java
|
|
Recommends: %{name}-fernflower-plugin
|
|
Recommends: %{name}-procyon-plugin
|
|
Recommends: %{name}-cfr-plugin
|
|
Recommends: %{name}-asmtools-plugin
|
|
Recommends: %{name}-asmtools7-plugin
|
|
|
|
%description
|
|
This application can access JVM at runtime,
|
|
extract byte code from the JVM and decompile it, modify the obtained code and compile it back.
|
|
It also works with local classpath and source path and provide standalone hex, with binary diff.
|
|
|
|
%package javadoc
|
|
Summary: Javadoc for %{name}
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
%description javadoc
|
|
This package contains the API documentation for %{name}.
|
|
|
|
%package fernflower-plugin
|
|
Requires: fernflower
|
|
Summary: fernflower decompiler plugin for %{name}
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
%description fernflower-plugin
|
|
This package provides bindings and requirements to fernflower decompiler for %{name}.
|
|
|
|
%package procyon-plugin
|
|
Requires: procyon-decompiler >= 0.6
|
|
Summary: procyon decompiler plugin for %{name}
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
%description procyon-plugin
|
|
This package provides bindings and requirements to procyon decompiler for %{name}.
|
|
|
|
%package cfr-plugin
|
|
Requires: CFR
|
|
Summary: CFR decompiler plugin for %{name}
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
%description cfr-plugin
|
|
This package provides bindings and requirements to CFR decompiler for %{name}.
|
|
|
|
%package asmtools-plugin
|
|
Requires: openjdk-asmtools >= 8.0.b09
|
|
Summary: asmtools disassembler and assembler plugin for %{name}
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
%description asmtools-plugin
|
|
This package provides bindings and requirements to asmtools disassembler and assembler for %{name}.
|
|
|
|
%package asmtools7-plugin
|
|
Requires: openjdk-asmtools7
|
|
Summary: asmtools7 disassembler and assembler plugin for %{name}
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
%description asmtools7-plugin
|
|
This package provides bindings and requirements to asmtools7 disassembler and assembler for %{name}.
|
|
|
|
%prep
|
|
%setup -q -n %{name}-%{name}-%{version}
|
|
%patch 1 -p0
|
|
%patch 2 -p0
|
|
%patch 21 -p0
|
|
%patch 3 -p0
|
|
%patch 4 -p0
|
|
%patch 5 -p0
|
|
%patch 51 -p0
|
|
%patch 52 -p0
|
|
%patch 53 -p0
|
|
%patch 6 -p0
|
|
%patch 61 -p0
|
|
%patch 62 -p0
|
|
%patch 63 -p0
|
|
%patch 7 -p1
|
|
|
|
%java_remove_annotations decompiler_agent runtime-decompiler -s -n SuppressFBWarnings
|
|
|
|
%build
|
|
pushd runtime-decompiler
|
|
%pom_remove_plugin :maven-jar-plugin
|
|
popd
|
|
%pom_remove_plugin :spotbugs-maven-plugin
|
|
%pom_remove_plugin :maven-checkstyle-plugin
|
|
%pom_remove_plugin :formatter-maven-plugin
|
|
%pom_remove_dep :spotbugs-annotations
|
|
xmvn --version
|
|
echo $JAVA_HOME
|
|
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk #why?
|
|
xmvn --version
|
|
%mvn_build -f --xmvn-javadoc -- -Plegacy
|
|
CPLC=/usr/share/java/classpathless-compiler
|
|
$JAVA_HOME/bin/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
|
|
install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1/
|
|
install -m 644 %{name}.1 $RPM_BUILD_ROOT%{_mandir}/man1/
|
|
pushd $RPM_BUILD_ROOT%{_mandir}/man1/
|
|
ln -s %{name}.1 jrd.1
|
|
ln -s %{name}.1 %{name}-hex.1
|
|
ln -s %{name}.1 jrd-hex.1
|
|
popd
|
|
|
|
install -d -m 755 $RPM_BUILD_ROOT%{_bindir}
|
|
install -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/
|
|
install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/
|
|
pushd $RPM_BUILD_ROOT%{_bindir}
|
|
cp %{name} %{name}-hex
|
|
sed 's/^run .*/run -hex "$@"/' -i %{name}-hex
|
|
ln -s %{name} jrd
|
|
ln -s %{name}-hex jrd-hex
|
|
popd
|
|
|
|
cp -r %{_builddir}/%{name}-%{name}-%{version}/runtime-decompiler/src/plugins/ $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/
|
|
|
|
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/applications
|
|
desktop-file-install --vendor="fedora" --dir=${RPM_BUILD_ROOT}%{_datadir}/applications %{SOURCE3}
|
|
desktop-file-install --vendor="fedora" --dir=${RPM_BUILD_ROOT}%{_datadir}/applications %{SOURCE4}
|
|
|
|
#jd is not yet packed and sucks anyway
|
|
rm $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/plugins/JdDecompilerWrapper.java
|
|
rm $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/plugins/JdDecompilerWrapper.json
|
|
|
|
%files -f .mfiles
|
|
%attr(755, root, -) %{_bindir}/java-runtime-decompiler
|
|
%attr(755, root, -) %{_bindir}/java-runtime-decompiler-hex
|
|
%{_bindir}/jrd
|
|
%{_bindir}/jrd-hex
|
|
%{_mandir}/man1/java-runtime-decompiler*.1*
|
|
%{_mandir}/man1/jrd*.1*
|
|
# wrappers for decompilers
|
|
%dir %{_sysconfdir}/%{name}
|
|
%dir %{_sysconfdir}/%{name}/plugins
|
|
%dir %{_datadir}/applications
|
|
%{_datadir}/applications/fedora-jrd.desktop
|
|
%{_datadir}/applications/fedora-jrd-hex.desktop
|
|
|
|
%files fernflower-plugin
|
|
%config %{_sysconfdir}/%{name}/plugins/FernflowerDecompilerWrapper.java
|
|
%config(noreplace) %{_sysconfdir}/%{name}/plugins/FernflowerDecompilerWrapper.json
|
|
|
|
%files procyon-plugin
|
|
%config %{_sysconfdir}/%{name}/plugins/ProcyonDecompilerWrapper.java
|
|
%config(noreplace) %{_sysconfdir}/%{name}/plugins/ProcyonDecompilerWrapper.json
|
|
%config %{_sysconfdir}/%{name}/plugins/ProcyonAssemblerDecompilerWrapper.java
|
|
%config(noreplace) %{_sysconfdir}/%{name}/plugins/ProcyonAssemblerDecompilerWrapper.json
|
|
|
|
%files cfr-plugin
|
|
%config %{_sysconfdir}/%{name}/plugins/CfrDecompilerWrapper.java
|
|
%config(noreplace) %{_sysconfdir}/%{name}/plugins/CfrDecompilerWrapper.json
|
|
|
|
%files asmtools-plugin
|
|
%config %{_sysconfdir}/%{name}/plugins/JasmDecompilerWrapper.java
|
|
%config(noreplace) %{_sysconfdir}/%{name}/plugins/JasmDecompilerWrapper.json
|
|
%config %{_sysconfdir}/%{name}/plugins/JasmGDecompilerWrapper.java
|
|
%config(noreplace) %{_sysconfdir}/%{name}/plugins/JasmGDecompilerWrapper.json
|
|
%config %{_sysconfdir}/%{name}/plugins/JcoderDecompilerWrapper.java
|
|
%config(noreplace) %{_sysconfdir}/%{name}/plugins/JcoderDecompilerWrapper.json
|
|
%config %{_sysconfdir}/%{name}/plugins/JcoderGDecompilerWrapper.java
|
|
%config(noreplace) %{_sysconfdir}/%{name}/plugins/JcoderGDecompilerWrapper.json
|
|
|
|
%files asmtools7-plugin
|
|
%config %{_sysconfdir}/%{name}/plugins/Jasm7DecompilerWrapper.java
|
|
%config(noreplace) %{_sysconfdir}/%{name}/plugins/Jasm7DecompilerWrapper.json
|
|
%config %{_sysconfdir}/%{name}/plugins/JasmG7DecompilerWrapper.java
|
|
%config(noreplace) %{_sysconfdir}/%{name}/plugins/JasmG7DecompilerWrapper.json
|
|
%config %{_sysconfdir}/%{name}/plugins/Jcoder7DecompilerWrapper.java
|
|
%config(noreplace) %{_sysconfdir}/%{name}/plugins/Jcoder7DecompilerWrapper.json
|
|
%config %{_sysconfdir}/%{name}/plugins/JcoderG7DecompilerWrapper.java
|
|
%config(noreplace) %{_sysconfdir}/%{name}/plugins/JcoderG7DecompilerWrapper.json
|
|
%license LICENSE
|
|
|
|
%files javadoc -f .mfiles-javadoc
|
|
%license LICENSE
|
|
|
|
%changelog
|
|
%autochangelog
|