Compare commits

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

4 commits

Author SHA1 Message Date
Jiri
d5f5162b64 Built by javac instead of gradle 2019-01-18 18:52:16 +01:00
Jiri
30e74764f9 Adapted br/r/provides to el7 2019-01-18 18:22:22 +01:00
Jiri
9f6a613b6d Removed javadoc and srcs to target build by javac 2019-01-18 18:17:06 +01:00
Jiri
6507994c19 - removed fat jar, as epel have no gradle 2019-01-18 18:10:48 +01:00
2 changed files with 73 additions and 261 deletions

30
madeToPasXlint.patch Normal file
View 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(

View file

@ -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