Compare commits
4 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5f5162b64 | ||
|
|
30e74764f9 | ||
|
|
9f6a613b6d | ||
|
|
6507994c19 |
2 changed files with 73 additions and 261 deletions
30
madeToPasXlint.patch
Normal file
30
madeToPasXlint.patch
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
--- a/Procyon.CompilerTools/src/main/java/com/strobel/assembler/metadata/MethodBinder.java
|
||||
+++ b/Procyon.CompilerTools/src/main/java/com/strobel/assembler/metadata/MethodBinder.java2
|
||||
@@ -213,7 +213,7 @@
|
||||
|
||||
//
|
||||
// Find the most specific method based on the parameters. On the first pass, prohibit
|
||||
- // auto-(un)boxing and variable arity (see JLS §15.12.2.2).
|
||||
+ // auto-(un)boxing and variable arity (see JLS 15.12.2.2).
|
||||
//
|
||||
int result = findMostSpecific(
|
||||
m1.getParameters(),
|
||||
@@ -229,7 +229,7 @@
|
||||
|
||||
//
|
||||
// If the first attempt produced an ambiguous result, try again with boxing conversions
|
||||
- // allowed (see JLS §15.12.2.3).
|
||||
+ // allowed (see JLS 15.12.2.3).
|
||||
//
|
||||
if (result == 0) {
|
||||
result = findMostSpecific(
|
||||
@@ -247,7 +247,7 @@
|
||||
|
||||
//
|
||||
// If the second attempt produced an ambiguous result, try again with both boxing
|
||||
- // conversions and variable arity allowed (see JLS §15.12.2.4).
|
||||
+ // conversions and variable arity allowed (see JLS 15.12.2.4).
|
||||
//
|
||||
if (result == 0) {
|
||||
result = findMostSpecific(
|
||||
|
||||
304
procyon.spec
304
procyon.spec
|
|
@ -1,12 +1,10 @@
|
|||
#in noarch? why...
|
||||
%define debug_package %{nil}
|
||||
# assembled single-jar decompiler can not be currently packed in fedora, but can be build locally
|
||||
%global enable_fat_jar 0
|
||||
%global remove_tests 1
|
||||
|
||||
Name: procyon
|
||||
Version: 0.5.33
|
||||
Release: 0.1.pre02%{?dist}
|
||||
Release: 0.1.pre03%{?dist}
|
||||
Summary: procyon java decompiler and other tools
|
||||
Group: Development/Tools
|
||||
License: ASL 2.0
|
||||
|
|
@ -21,37 +19,20 @@ Patch0: removeSigningAndIfDecompilerAndMain.patch
|
|||
Patch1: disableFatJar.patch
|
||||
# patch should be proposed to upstream.
|
||||
Patch2: adaptToNewerJcommander.patch
|
||||
Patch3: madeToPasXlint.patch
|
||||
BuildArch: noarch
|
||||
BuildRequires: javapackages-tools
|
||||
BuildRequires: jpackage-utils
|
||||
BuildRequires: java-devel
|
||||
%if %{enable_fat_jar}
|
||||
BuildRequires: gradle
|
||||
%else
|
||||
BuildRequires: gradle-local
|
||||
%endif
|
||||
BuildRequires: dos2unix
|
||||
BuildRequires: beust-jcommander
|
||||
Requires: java-headless
|
||||
Requires: javapackages-tools
|
||||
Requires: jpackage-utils
|
||||
# main package is just meta package for all subprojects andtheirs artifacts
|
||||
Recommends: %{name}-compilertools = %{version}-%{release}
|
||||
Recommends: %{name}-core = %{version}-%{release}
|
||||
Recommends: %{name}-expressions = %{version}-%{release}
|
||||
Recommends: %{name}-reflection = %{version}-%{release}
|
||||
Recommends: %{name}-decompiler = %{version}-%{release}
|
||||
%if %{enable_fat_jar}
|
||||
Recommends: %{name}-decompiler-all = %{version}-%{release}
|
||||
%endif
|
||||
Recommends: %{name}-compilertools-javadoc = %{version}-%{release}
|
||||
Recommends: %{name}-core-javadoc = %{version}-%{release}
|
||||
Recommends: %{name}-expressions-javadoc = %{version}-%{release}
|
||||
Recommends: %{name}-reflection-javadoc = %{version}-%{release}
|
||||
Recommends: %{name}-decompiler-javadoc = %{version}-%{release}
|
||||
Recommends: %{name}-compilertools-srcs = %{version}-%{release}
|
||||
Recommends: %{name}-core-srcs = %{version}-%{release}
|
||||
Recommends: %{name}-expressions-srcs = %{version}-%{release}
|
||||
Recommends: %{name}-reflection-srcs = %{version}-%{release}
|
||||
Recommends: %{name}-decompiler-srcs = %{version}-%{release}
|
||||
Requires: %{name}-compilertools = %{version}-%{release}
|
||||
Requires: %{name}-core = %{version}-%{release}
|
||||
Requires: %{name}-expressions = %{version}-%{release}
|
||||
Requires: %{name}-reflection = %{version}-%{release}
|
||||
Requires: %{name}-decompiler = %{version}-%{release}
|
||||
|
||||
%description
|
||||
Procyon is a suite of Java metaprogramming tools focused on code generation and analysis.
|
||||
|
|
@ -112,19 +93,6 @@ procyon-decompiler is a front-end for the Java decompiler included in procyon-co
|
|||
For more information about the decompiler, see the Java Decompiler wiki page -
|
||||
https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler
|
||||
|
||||
%if %{enable_fat_jar}
|
||||
%package decompiler-all
|
||||
Summary: procyon-decompiler-all is library with assembled core and compiler-tools together with cli
|
||||
Group: Development/Tools
|
||||
BuildArch: noarch
|
||||
Requires: javapackages-tools
|
||||
|
||||
%description decompiler-all
|
||||
procyon-decompiler is a front-end for the Java decompiler with all depndencies packed
|
||||
For more information about the decompiler, see the Java Decompiler wiki page -
|
||||
https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler
|
||||
%endif
|
||||
|
||||
%package reflection
|
||||
Summary: The procyon-reflection framework provides a rich reflection and code generation API
|
||||
Group: Development/Tools
|
||||
|
|
@ -138,90 +106,6 @@ Emit APIs and is meant to address many of the shortcomings of the core Java refl
|
|||
limited and cumbersome support for generic type inspection. Its code generation facilities include a TypeBuilder,
|
||||
MethodBuilder, and a bytecode emitter.
|
||||
|
||||
%package compilertools-javadoc
|
||||
Summary: The procyon-compilertools project javadoc
|
||||
Group: Documentation
|
||||
BuildArch: noarch
|
||||
|
||||
%description compilertools-javadoc
|
||||
javadoc
|
||||
|
||||
%package core-javadoc
|
||||
Summary: The procyon-core framework javadoc
|
||||
Group: Documentation
|
||||
BuildArch: noarch
|
||||
|
||||
%description core-javadoc
|
||||
javadoc
|
||||
|
||||
%package expressions-javadoc
|
||||
Summary: The procyon-expressions framework provides javadoc
|
||||
Group: Documentation
|
||||
BuildArch: noarch
|
||||
|
||||
%description expressions-javadoc
|
||||
javadoc
|
||||
|
||||
%package decompiler-javadoc
|
||||
Summary: procyon-decompiler javadoc
|
||||
Group: Documentation
|
||||
BuildArch: noarch
|
||||
|
||||
%description decompiler-javadoc
|
||||
javadoc
|
||||
|
||||
%package reflection-javadoc
|
||||
Summary: The procyon-reflection framework javadoc
|
||||
Group: Documentation
|
||||
BuildArch: noarch
|
||||
|
||||
%description reflection-javadoc
|
||||
javadoc
|
||||
|
||||
%package compilertools-srcs
|
||||
Summary: The procyon-compilertools project sources
|
||||
Group: Documentation
|
||||
BuildArch: noarch
|
||||
Requires: javapackages-tools
|
||||
|
||||
%description compilertools-srcs
|
||||
sources
|
||||
|
||||
%package core-srcs
|
||||
Summary: The procyon-core framework sources
|
||||
Group: Documentation
|
||||
BuildArch: noarch
|
||||
Requires: javapackages-tools
|
||||
|
||||
%description core-srcs
|
||||
sources
|
||||
|
||||
%package expressions-srcs
|
||||
Summary: The procyon-expressions framework provides sources
|
||||
Group: Documentation
|
||||
BuildArch: noarch
|
||||
Requires: javapackages-tools
|
||||
|
||||
%description expressions-srcs
|
||||
sources
|
||||
|
||||
%package decompiler-srcs
|
||||
Summary: procyon-decompiler sources
|
||||
Group: Documentation
|
||||
BuildArch: noarch
|
||||
Requires: javapackages-tools
|
||||
|
||||
%description decompiler-srcs
|
||||
sources
|
||||
|
||||
%package reflection-srcs
|
||||
Summary: The procyon-reflection framework sources
|
||||
Group: Documentation
|
||||
BuildArch: noarch
|
||||
Requires: javapackages-tools
|
||||
|
||||
%description reflection-srcs
|
||||
sources
|
||||
|
||||
%prep
|
||||
%setup -q -n mstrobel-procyon-ee404caa9a29
|
||||
|
|
@ -238,81 +122,59 @@ dos2unix build.gradle
|
|||
dos2unix README.md
|
||||
# also removing main method from enter point jar
|
||||
%patch0 -p1
|
||||
%if %{enable_fat_jar}
|
||||
echo "not applying patch1, enabeld fat jar"
|
||||
%else
|
||||
%patch1 -p1
|
||||
%endif
|
||||
%patch2 -p1
|
||||
dos2unix Procyon.CompilerTools/src/main/java/com/strobel/assembler/metadata/MethodBinder.java
|
||||
%patch3 -p1
|
||||
|
||||
%build
|
||||
#gradle build -x test
|
||||
%gradle_build -f
|
||||
|
||||
mkdir -p build/Procyon.CompilerTools/{libs,classes}
|
||||
mkdir -p build/Procyon.Core/{libs,classes}
|
||||
mkdir -p build/Procyon.Decompiler/{libs,classes}
|
||||
mkdir -p build/Procyon.Expressions/{libs,classes}
|
||||
mkdir -p build/Procyon.Reflection/{libs,classes}
|
||||
|
||||
javac -d build/Procyon.Core/classes/ ` find Procyon.Core/src/main/java -type f | grep "\.java"`
|
||||
javac -d build/Procyon.Reflection/classes/ -cp build/Procyon.Core/classes/ ` find Procyon.Reflection/src/main/java -type f | grep "\.java"`
|
||||
javac -d build/Procyon.Expressions/classes/ -cp build/Procyon.Core/classes/:build/Procyon.Reflection/classes/ ` find Procyon.Expressions/src/main/java -type f | grep "\.java"`
|
||||
javac -d build/Procyon.CompilerTools/classes/ -cp build/Procyon.Core/classes/ ` find Procyon.CompilerTools/src/main/java -type f | grep "\.java"`
|
||||
|
||||
# pack the jars
|
||||
for x in Procyon.CompilerTools Procyon.Core Procyon.Reflection Procyon.Expressions ; do
|
||||
pushd build/$x/classes/
|
||||
project=`echo $x | sed -e "s/Procyon.//" | sed -e 's/\(.*\)/\L\1/'`
|
||||
jar -cf ../../../build/$x/libs/%{name}-$project-%{version}.jar com
|
||||
popd
|
||||
done
|
||||
|
||||
# create just launcher jar to be used in fedora
|
||||
mkdir launcher-minimal
|
||||
mkdir launcher-minimal/classes
|
||||
javac -cp build/Procyon.Core/libs/%{name}-core-%{version}.jar:build/Procyon.CompilerTools/libs/%{name}-compilertools-%{version}.jar:%{_javadir}/beust-jcommander.jar -d launcher-minimal/classes ` find Procyon.Decompiler/src/main/java -type f | grep "\.java"`
|
||||
%if %{enable_fat_jar}
|
||||
# some dependent packages depnds on this assembeld decompiler jar (we build without its main in manifest (good idea?), see patch0
|
||||
gradle fatjar -x test
|
||||
# rename
|
||||
mv build/Procyon.Decompiler/libs/%{name}-decompiler-%{version}.jar build/Procyon.Decompiler/libs/%{name}-decompiler-all-%{version}.jar
|
||||
%endif
|
||||
mkdir build/launcher-minimal
|
||||
mkdir build/launcher-minimal/classes
|
||||
javac -cp build/Procyon.Core/classes/:build/Procyon.CompilerTools/classes/:%{_javadir}/beust-jcommander.jar -d build/launcher-minimal/classes ` find Procyon.Decompiler/src/main/java -type f | grep "\.java"`
|
||||
# pack the minimal jar
|
||||
pushd launcher-minimal/classes/
|
||||
jar -cf ../../build/Procyon.Decompiler/libs/%{name}-decompiler-%{version}.jar com
|
||||
pushd build/launcher-minimal/classes/
|
||||
jar -cf ../../../build/Procyon.Decompiler/libs/%{name}-decompiler-%{version}.jar com
|
||||
popd
|
||||
|
||||
%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}/%{name}/
|
||||
mkdir -p $RPM_BUILD_ROOT/%{_javadir}/%{name}/srcs
|
||||
mkdir -p $RPM_BUILD_ROOT/%{_javadocdir}/%{name}/
|
||||
cp build/Procyon.CompilerTools/libs/%{name}-compilertools-%{version}.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/
|
||||
cp build/Procyon.Core/libs/%{name}-core-%{version}.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/
|
||||
cp build/Procyon.Decompiler/libs/%{name}-decompiler-%{version}.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/
|
||||
%if %{enable_fat_jar}
|
||||
cp build/Procyon.Decompiler/libs/%{name}-decompiler-all-%{version}.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/
|
||||
%endif
|
||||
cp build/Procyon.Expressions/libs/%{name}-expressions-%{version}.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/
|
||||
cp build/Procyon.Reflection/libs/%{name}-reflection-%{version}.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/
|
||||
|
||||
cp build/Procyon.CompilerTools/libs/%{name}-compilertools-%{version}-javadoc.jar $RPM_BUILD_ROOT/%{_javadocdir}/%{name}/
|
||||
cp build/Procyon.Core/libs/%{name}-core-%{version}-javadoc.jar $RPM_BUILD_ROOT/%{_javadocdir}/%{name}/
|
||||
cp build/Procyon.Decompiler/libs/%{name}-decompiler-%{version}-javadoc.jar $RPM_BUILD_ROOT/%{_javadocdir}/%{name}/
|
||||
cp build/Procyon.Expressions/libs/%{name}-expressions-%{version}-javadoc.jar $RPM_BUILD_ROOT/%{_javadocdir}/%{name}/
|
||||
cp build/Procyon.Reflection/libs/%{name}-reflection-%{version}-javadoc.jar $RPM_BUILD_ROOT/%{_javadocdir}/%{name}/
|
||||
|
||||
cp build/Procyon.CompilerTools/libs/%{name}-compilertools-%{version}-sources.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/srcs/
|
||||
cp build/Procyon.Core/libs/%{name}-core-%{version}-sources.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/srcs/
|
||||
cp build/Procyon.Decompiler/libs/%{name}-decompiler-%{version}-sources.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/srcs/
|
||||
cp build/Procyon.Expressions/libs/%{name}-expressions-%{version}-sources.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/srcs/
|
||||
cp build/Procyon.Reflection/libs/%{name}-reflection-%{version}-sources.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/srcs/
|
||||
pushd $RPM_BUILD_ROOT/%{_javadir}/%{name}/
|
||||
ln -s %{name}-compilertools-%{version}.jar %{name}-compilertools.jar
|
||||
ln -s %{name}-core-%{version}.jar %{name}-core.jar
|
||||
ln -s %{name}-decompiler-%{version}.jar %{name}-decompiler.jar
|
||||
%if %{enable_fat_jar}
|
||||
ln -s %{name}-decompiler-all-%{version}.jar %{name}-decompiler-all.jar
|
||||
%endif
|
||||
ln -s %{name}-expressions-%{version}.jar %{name}-expressions.jar
|
||||
ln -s %{name}-reflection-%{version}.jar %{name}-reflection.jar
|
||||
popd
|
||||
pushd $RPM_BUILD_ROOT/%{_javadocdir}/%{name}/
|
||||
ln -s %{name}-compilertools-%{version}-javadoc.jar %{name}-compilertools-javadoc.jar
|
||||
ln -s %{name}-core-%{version}-javadoc.jar %{name}-core-javadoc.jar
|
||||
ln -s %{name}-decompiler-%{version}-javadoc.jar %{name}-decompiler-javadoc.jar
|
||||
ln -s %{name}-expressions-%{version}-javadoc.jar %{name}-expressions-javadoc.jar
|
||||
ln -s %{name}-reflection-%{version}-javadoc.jar %{name}-reflection-javadoc.jar
|
||||
popd
|
||||
pushd $RPM_BUILD_ROOT/%{_javadir}/%{name}/srcs
|
||||
ln -s %{name}-compilertools-%{version}-sources.jar %{name}-compilertools-sources.jar
|
||||
ln -s %{name}-core-%{version}-sources.jar %{name}-core-sources.jar
|
||||
ln -s %{name}-decompiler-%{version}-sources.jar %{name}-decompiler-sources.jar
|
||||
ln -s %{name}-expressions-%{version}-sources.jar %{name}-expressions-sources.jar
|
||||
ln -s %{name}-reflection-%{version}-sources.jar %{name}-reflection-sources.jar
|
||||
popd
|
||||
|
||||
|
||||
%files
|
||||
%license License.txt
|
||||
|
|
@ -347,16 +209,6 @@ popd
|
|||
%license License.txt
|
||||
%doc README.md
|
||||
|
||||
%if %{enable_fat_jar}
|
||||
%files decompiler-all
|
||||
%dir %{_javadir}/%{name}
|
||||
%{_bindir}/%{name}-decompiler
|
||||
%{_javadir}/%{name}/%{name}-decompiler-all-%{version}.jar
|
||||
%{_javadir}/%{name}/%{name}-decompiler-all.jar
|
||||
%license License.txt
|
||||
%doc README.md
|
||||
%endif
|
||||
|
||||
%files reflection
|
||||
%dir %{_javadir}/%{name}/
|
||||
%{_javadir}/%{name}/%{name}-reflection-%{version}.jar
|
||||
|
|
@ -364,84 +216,14 @@ popd
|
|||
%license License.txt
|
||||
%doc README.md
|
||||
|
||||
%files compilertools-javadoc
|
||||
%dir %{_javadocdir}/%{name}/
|
||||
%{_javadocdir}/%{name}/%{name}-compilertools-%{version}-javadoc.jar
|
||||
%{_javadocdir}/%{name}/%{name}-compilertools-javadoc.jar
|
||||
%license License.txt
|
||||
%doc README.md
|
||||
|
||||
%files core-javadoc
|
||||
%dir %{_javadocdir}/%{name}/
|
||||
%{_javadocdir}/%{name}/%{name}-core-%{version}-javadoc.jar
|
||||
%{_javadocdir}/%{name}/%{name}-core-javadoc.jar
|
||||
%license License.txt
|
||||
%doc README.md
|
||||
|
||||
%files expressions-javadoc
|
||||
%dir %{_javadocdir}/%{name}/
|
||||
%{_javadocdir}/%{name}/%{name}-expressions-%{version}-javadoc.jar
|
||||
%{_javadocdir}/%{name}/%{name}-expressions-javadoc.jar
|
||||
%license License.txt
|
||||
%doc README.md
|
||||
|
||||
%files decompiler-javadoc
|
||||
%dir %{_javadocdir}/%{name}/
|
||||
%{_bindir}/%{name}-decompiler
|
||||
%{_javadocdir}/%{name}/%{name}-decompiler-%{version}-javadoc.jar
|
||||
%{_javadocdir}/%{name}/%{name}-decompiler-javadoc.jar
|
||||
%license License.txt
|
||||
%doc README.md
|
||||
|
||||
%files reflection-javadoc
|
||||
%dir %{_javadocdir}/%{name}/
|
||||
%{_javadocdir}/%{name}/%{name}-reflection-%{version}-javadoc.jar
|
||||
%{_javadocdir}/%{name}/%{name}-reflection-javadoc.jar
|
||||
%license License.txt
|
||||
%doc README.md
|
||||
|
||||
%files compilertools-srcs
|
||||
%dir %{_javadir}/%{name}
|
||||
%dir %{_javadir}/%{name}/srcs
|
||||
%{_javadir}/%{name}/srcs/%{name}-compilertools-%{version}-sources.jar
|
||||
%{_javadir}/%{name}/srcs/%{name}-compilertools-sources.jar
|
||||
%license License.txt
|
||||
%doc README.md
|
||||
|
||||
%files core-srcs
|
||||
%dir %{_javadir}/%{name}
|
||||
%dir %{_javadir}/%{name}/srcs
|
||||
%{_javadir}/%{name}/srcs/%{name}-core-%{version}-sources.jar
|
||||
%{_javadir}/%{name}/srcs/%{name}-core-sources.jar
|
||||
%license License.txt
|
||||
%doc README.md
|
||||
|
||||
%files expressions-srcs
|
||||
%dir %{_javadir}/%{name}
|
||||
%dir %{_javadir}/%{name}/srcs
|
||||
%{_javadir}/%{name}/srcs/%{name}-expressions-%{version}-sources.jar
|
||||
%{_javadir}/%{name}/srcs/%{name}-expressions-sources.jar
|
||||
%license License.txt
|
||||
%doc README.md
|
||||
|
||||
%files decompiler-srcs
|
||||
%dir %{_javadir}/%{name}
|
||||
%dir %{_javadir}/%{name}/srcs
|
||||
%{_bindir}/%{name}-decompiler
|
||||
%{_javadir}/%{name}/srcs/%{name}-decompiler-%{version}-sources.jar
|
||||
%{_javadir}/%{name}/srcs/%{name}-decompiler-sources.jar
|
||||
%license License.txt
|
||||
%doc README.md
|
||||
|
||||
%files reflection-srcs
|
||||
%dir %{_javadir}/%{name}
|
||||
%dir %{_javadir}/%{name}/srcs
|
||||
%{_javadir}/%{name}/srcs/%{name}-reflection-%{version}-sources.jar
|
||||
%{_javadir}/%{name}/srcs/%{name}-reflection-sources.jar
|
||||
%license License.txt
|
||||
%doc README.md
|
||||
|
||||
%changelog
|
||||
* Fri Jan 18 2019 Jiri Vanek <jvanek@redhat.com> 0.5.33-0.1.pre03
|
||||
- removed fat jar, as epel have no gradle
|
||||
- removed javadoc and srcs artifacts. will eb building by javac
|
||||
- adapted br/r/provides to epel7
|
||||
- buit by javac instead of gradle
|
||||
|
||||
* Fri Dec 21 2018 Jiri Vanek <jvanek@redhat.com> 0.5.33-0.1.pre02
|
||||
- created special package for assembled fat jar
|
||||
- adapted rest of package to include and cooperate with minimal decompiler frontend
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue