Compare commits

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

32 commits

Author SHA1 Message Date
Jiri Vanek
be7ad1b428 Building eith -f and for 1.8 2025-10-16 17:15:17 +02:00
Jiri Vanek
c7e1cf24ff 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 19:19:55 +02:00
Fedora Release Engineering
eec9e10016 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 06:09:58 +00:00
Fedora Release Engineering
75ebafd594 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-18 10:50:29 +00:00
Miroslav Suchý
4c1e5ca290 convert ASL 2.0 license to SPDX
This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4
2024-07-24 16:55:05 +02:00
Fedora Release Engineering
edfc778439 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-19 08:30:58 +00:00
Software Management Team
4d21205f01 Eliminate use of obsolete %patchN syntax (#2283636) 2024-05-30 12:46:49 +02:00
Fedora Release Engineering
c3684204ee Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-26 00:09:41 +00:00
Fedora Release Engineering
c8306f2990 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 22:23:00 +00:00
Fedora Release Engineering
dd66f936e6 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-21 06:18:35 +00:00
Fedora Release Engineering
70384ae6e6 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-20 10:18:06 +00:00
Jiri
434dd52be6 bumped to 0.6.0 2022-11-10 19:09:55 +01:00
Fedora Release Engineering
a8de1c6cb6 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-22 15:26:09 +00:00
Jiri
6b7999d26a Rebuilt for Drop i686 JDKs
https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs
2022-07-08 16:36:36 +02:00
Jiri
dfe48a0a23 Rebuilt for java-17-openjdk as system jdk
https://fedoraproject.org/wiki/Changes/Java17
2022-02-05 23:51:59 +01:00
Fedora Release Engineering
3eff6c8e82 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-21 09:28:26 +00:00
Fedora Release Engineering
96b04f279a - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 04:05:13 +00:00
Jiri
b50dc0234c moved to commit versioning 2021-06-22 13:30:44 +02:00
Marian Koncek
5c87dab60f Update to upstream version 1.0~SNAPSHOT 2021-06-03 11:20:35 +02:00
Fedora Release Engineering
25241799b0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 08:36:11 +00:00
Jiri Vanek
7a6736462e Added changelog and bumped release 2020-12-10 13:47:15 +01:00
Jiri Vanek
2328bdd6ee Build in jdk8 comaptible way 2020-12-10 13:43:58 +01:00
Fedora Release Engineering
1bf07c6019 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 23:01:17 +00:00
Jiri
5a33239155 Rebuilt for JDK-11 2020-07-11 05:20:00 +02:00
Jiri
f300aa2b69 Adapted procyon to jdk11 defineClass in lookup 2020-05-04 16:43:36 +02:00
Jiri Vanek
bfe1377e2b bumped to latest tagged forest 0.5.36 + fixed bug in usage of newer jcommander 2020-02-18 13:47:08 +01:00
Jiri Vanek
0cd199db77 Moved to gradle-less build 2020-02-18 10:26:24 +01:00
Fedora Release Engineering
d3f4e18e07 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-30 09:46:47 +00:00
Fedora Release Engineering
31fbcec6af - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-26 11:19:34 +00:00
Fedora Release Engineering
64f4e4326e - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-02 04:49:53 +00:00
Igor Gnatenko
65f725e128 Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:24:38 +01:00
Jiri
333fe5ba20 Initial import (#1661602). 2019-01-17 20:54:07 +01:00
6 changed files with 284 additions and 0 deletions

5
.gitignore vendored Normal file
View file

@ -0,0 +1,5 @@
/mstrobel-procyon-ee404caa9a29.zip
/v0.5.36.tar.gz
/procyon-1.0~SNAPSHOT.tar.gz
/procyon-92ba3f44b8f2b755a21efcdc05dec347ab4df552.tar.gz
/procyon-88a95fa93c58322393174f84543edc7a0a2ca44d.tar.gz

23
generate-tarball.sh Executable file
View file

@ -0,0 +1,23 @@
#!/bin/bash
set -ex
name=procyon
version=`cat procyon.spec | grep "%global commit " | sed "s/.*commit //"`
# RETRIEVE
rm -rf procyon
git clone "https://github.com/mstrobel/procyon.git"
# CLEAN TARBALL
pushd procyon
git checkout "$version"
rm -rf .git .idea docs
rm -rf gradle*
popd
rm -rf "${name}-${version}"
mv procyon "${name}-${version}"
tar -czf "${name}-${version}.tar.gz" "${name}-${version}"
rm -rf "${name}-${version}"

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(

8
procyon-decompiler Executable file
View file

@ -0,0 +1,8 @@
#!/bin/bash
. /usr/share/java-utils/java-functions
MAIN_CLASS=com.strobel.decompiler.DecompilerDriver
set_classpath procyon-decompiler procyon-compilertools procyon-core beust-jcommander
run ${@}

217
procyon.spec Normal file
View file

@ -0,0 +1,217 @@
#in noarch? why...
%define debug_package %{nil}
%global remove_tests 1
%global commit 88a95fa93c58322393174f84543edc7a0a2ca44d
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commitdate 20220221
Name: procyon
Version: 0.6.0
Release: 0.11.%{commitdate}.git%{shortcommit}%{?dist}
Summary: procyon java decompiler and other tools
# Automatically converted from old format: ASL 2.0 - review is highly recommended.
License: Apache-2.0
URL: https://github.com/mstrobel/procyon
# ./generate-tarball.sh
# This script uses a fork of the original project
Source0: %{name}-%{commit}.tar.gz
Source1: procyon-decompiler
Patch3: madeToPasXlint.patch
BuildArch: noarch
ExclusiveArch: %{java_arches} noarch
BuildRequires: javapackages-tools
BuildRequires: java-25-devel
BuildRequires: dos2unix
BuildRequires: beust-jcommander
Requires: java-25-headless
Requires: javapackages-tools
# main package is just meta package for all subprojects and their 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}
%description
Procyon is a suite of Java metaprogramming tools focused on code generation and analysis.
It includes the following libraries: Core Framework, Reflection Framework,
Expressions Framework, Compiler Toolset (Experimental), Java Decompiler.
The Procyon libraries are available from Maven Central under group ID org.bitbucket.mstrobel.
%package compilertools
Summary: The procyon-compilertools project
BuildArch: noarch
ExclusiveArch: %{java_arches} noarch
Requires: javapackages-tools
%description compilertools
The procyon-compilertools project is a work in progress that includes:
Class metadata and bytecode inspection/manipulation facilities based on Mono.Cecil and
An optimization and decompiler framework based on ILSpy
The Compiler Toolset is still early in development and subject to change.
%package core
Summary: The procyon-core framework contains common support classes
BuildArch: noarch
ExclusiveArch: %{java_arches} noarch
Requires: javapackages-tools
%description core
The procyon-core framework contains common support classes used by the other
Procyon APIs. Its facilities include string manipulation, collection extensions,
filesystem/path utilities, freezable objects and collections, attached data stores,
and some runtime type helpers.
%package expressions
Summary: The procyon-expressions framework provides a more natural form of Linq-like code generation
BuildArch: noarch
ExclusiveArch: %{java_arches} noarch
Requires: javapackages-tools
%description expressions
The procyon-expressions framework provides a more natural form of code generation.
Rather than requiring bytecode to be emitted directly, as with procyon-reflection
and other popular libraries like ASM, procyon-expressions enables code composition
using declarative expression trees. These expression trees may then be compiled directly
into callbacks or coupled with a MethodBuilder. The procyon-expressions API is
almost a direct port of System.Linq.Expressions from .NET's Dynamic Language Runtime,
minus the dynamic callsite support (and with more relaxed rules regarding type conversions).
%package decompiler
Summary: procyon-decompiler is a front-end for the Java decompiler
BuildArch: noarch
ExclusiveArch: %{java_arches} noarch
Requires: %{name}-core
Requires: %{name}-compilertools
Requires: beust-jcommander
Requires: javapackages-tools
%description decompiler
procyon-decompiler is a front-end for the Java decompiler included in procyon-compilertools.
For more information about the decompiler, see the Java Decompiler wiki page -
https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler
%package reflection
Summary: The procyon-reflection framework provides a rich reflection and code generation API
BuildArch: noarch
ExclusiveArch: %{java_arches} noarch
Requires: javapackages-tools
%description reflection
The procyon-reflection framework provides a rich reflection and code generation API with full support for generics,
wildcards, and other high-level Java type concepts. It is based on .NET's System.Reflection and System.Reflection.
Emit APIs and is meant to address many of the shortcomings of the core Java reflection API, which offers rather
limited and cumbersome support for generic type inspection. Its code generation facilities include a TypeBuilder,
MethodBuilder, and a bytecode emitter.
%prep
%setup -q -n %{name}-%{commit}
%if %{remove_tests}
find | grep "\\.class$"
#find | grep "\\.jar$"
rm -rvf Procyon.CompilerTools/src/test/
find | grep "\\.class$" && exit 1
find | grep "\\.jar$" && exit 1
%endif
#to allow smooth patching
dos2unix Procyon.Decompiler/build.gradle
dos2unix build.gradle
dos2unix README.md
dos2unix Procyon.CompilerTools/src/main/java/com/strobel/assembler/metadata/MethodBinder.java
%patch -P3 -p1
%build
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}
sourceVersion="-source 8 -target 8 -g"
javac $sourceVersion -d build/Procyon.Core/classes/ ` find Procyon.Core/src/main/java -type f | grep "\.java"`
javac $sourceVersion -d build/Procyon.Reflection/classes/ -cp build/Procyon.Core/classes/ ` find Procyon.Reflection/src/main/java -type f | grep "\.java"`
javac $sourceVersion -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 $sourceVersion -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 build/launcher-minimal
mkdir build/launcher-minimal/classes
javac -source 8 -target 8 -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 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}/
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}/
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}/
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
ln -s %{name}-expressions-%{version}.jar %{name}-expressions.jar
ln -s %{name}-reflection-%{version}.jar %{name}-reflection.jar
popd
%files
%license License.txt
%doc README.md
%files compilertools
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/%{name}-compilertools-%{version}.jar
%{_javadir}/%{name}/%{name}-compilertools.jar
%license License.txt
%doc README.md
%files core
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/%{name}-core-%{version}.jar
%{_javadir}/%{name}/%{name}-core.jar
%license License.txt
%doc README.md
%files expressions
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/%{name}-expressions-%{version}.jar
%{_javadir}/%{name}/%{name}-expressions.jar
%license License.txt
%doc README.md
%files decompiler
%dir %{_javadir}/%{name}
%{_bindir}/%{name}-decompiler
%{_javadir}/%{name}/%{name}-decompiler-%{version}.jar
%{_javadir}/%{name}/%{name}-decompiler.jar
%license License.txt
%doc README.md
%files reflection
%dir %{_javadir}/%{name}/
%{_javadir}/%{name}/%{name}-reflection-%{version}.jar
%{_javadir}/%{name}/%{name}-reflection.jar
%license License.txt
%doc README.md
%changelog
%autochangelog

1
sources Normal file
View file

@ -0,0 +1 @@
SHA512 (procyon-88a95fa93c58322393174f84543edc7a0a2ca44d.tar.gz) = 69c782cb8648f5c8f6ed1999d301df2318f64a3d3479a16ef340891deaef7a1b161d4d2808d98e70372381626dbe5488d9d0dc9b6c17feacc8e0d38f1747985e