diff --git a/.gitignore b/.gitignore index 25ad59e..9a636c6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +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 diff --git a/adaptToNewerJcommander.patch b/adaptToNewerJcommander.patch deleted file mode 100644 index bab3d59..0000000 --- a/adaptToNewerJcommander.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/Procyon.Decompiler/src/main/java/com/strobel/decompiler/CommandLineOptions.java_nw -+++ b/Procyon.Decompiler/src/main/java/com/strobel/decompiler/CommandLineOptions.java -@@ -23,7 +23,7 @@ - - public class CommandLineOptions { - @Parameter(description = "") -- private final List _inputs = new ArrayList<>(); -+ private List _inputs = new ArrayList<>(); - - @Parameter( - names = { "-?", "--help" }, - diff --git a/disableFatJar.patch b/disableFatJar.patch deleted file mode 100644 index 5d8bbef..0000000 --- a/disableFatJar.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -r ee404caa9a29 Procyon.Decompiler/build.gradle ---- a/Procyon.Decompiler/build.gradle -+++ b/Procyon.Decompiler/build.gradle.nw -@@ -3,23 +3,10 @@ - jcenter() - } - -- dependencies { -- classpath 'eu.appsatori:gradle-fatjar-plugin:0.3' -- } - } - - jar.enabled = true - uploadArchives.enabled = false -- --apply plugin: 'eu.appsatori.fatjar' -- --fatJar { --// from rootProject.allprojects.collect({ it.sourceSets.main.allSource }) -- -- manifest { -- attributes 'Title': archivesBaseName, 'Manifest-Version': '1.0', 'Version': version -- } --} - - dependencies { - compile 'com.beust:jcommander:1.30' - diff --git a/generate-tarball.sh b/generate-tarball.sh new file mode 100755 index 0000000..817fc26 --- /dev/null +++ b/generate-tarball.sh @@ -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}" diff --git a/newJcommander.patch b/newJcommander.patch deleted file mode 100644 index 140fc73..0000000 --- a/newJcommander.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/Procyon.Decompiler/src/main/java/com/strobel/decompiler/DecompilerDriver.java -+++ a/Procyon.Decompiler/src/main/java/com/strobel/decompiler/DecompilerDriver.java -@@ -64,7 +64,7 @@ - final boolean decompileJar = !StringUtilities.isNullOrWhitespace(jarFile); - - if (options.getPrintVersion()) { -- JCommander.getConsole().println(Procyon.version()); -+ jCommander.getConsole().println(Procyon.version()); - if (options.getPrintUsage()) { - jCommander.usage(); - } - diff --git a/procyon.spec b/procyon.spec index 3b36204..08caf50 100644 --- a/procyon.spec +++ b/procyon.spec @@ -2,31 +2,34 @@ %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.5.36 -Release: 0.1%{?dist} +Version: 0.6.0 +Release: 0.11.%{commitdate}.git%{shortcommit}%{?dist} Summary: procyon java decompiler and other tools -License: ASL 2.0 -URL: https://bitbucket.org/mstrobel/procyon/ -Source0: https://bitbucket.org/mstrobel/procyon/get/v0.5.36.tar.gz +# 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 -# main removal is not upstream-able, and is enforced by fedora policy -# signature is touching online world, necessary for packaging, not usptream able -Patch0: removeSigningAndIfDecompilerAndMain.patch -# fat jar do not have much sense for fedora packagin. not upstream-able -Patch1: disableFatJar.patch -# patch should be proposed to upstream. -Patch2: adaptToNewerJcommander.patch Patch3: madeToPasXlint.patch -Patch4: newJcommander.patch + + BuildArch: noarch +ExclusiveArch: %{java_arches} noarch + BuildRequires: javapackages-tools -BuildRequires: java-devel +BuildRequires: java-25-devel BuildRequires: dos2unix BuildRequires: beust-jcommander -Requires: java-headless +Requires: java-25-headless Requires: javapackages-tools -# main package is just meta package for all subprojects andtheirs artifacts +# 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} @@ -42,6 +45,7 @@ The Procyon libraries are available from Maven Central under group ID org.bitbuc %package compilertools Summary: The procyon-compilertools project BuildArch: noarch +ExclusiveArch: %{java_arches} noarch Requires: javapackages-tools %description compilertools @@ -53,6 +57,7 @@ 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 @@ -64,6 +69,7 @@ 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 @@ -78,6 +84,7 @@ minus the dynamic callsite support (and with more relaxed rules regarding type c %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 @@ -91,6 +98,7 @@ 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 @@ -100,9 +108,8 @@ 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. - %prep -%setup -q -n mstrobel-procyon-9f7822463e41 +%setup -q -n %{name}-%{commit} %if %{remove_tests} find | grep "\\.class$" #find | grep "\\.jar$" @@ -114,27 +121,22 @@ find | grep "\\.jar$" && exit 1 dos2unix Procyon.Decompiler/build.gradle dos2unix build.gradle dos2unix README.md -# also removing main method from enter point jar -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 dos2unix Procyon.CompilerTools/src/main/java/com/strobel/assembler/metadata/MethodBinder.java -%patch3 -p1 -%patch4 -p1 - +%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} -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"` +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 @@ -147,7 +149,7 @@ done # create just launcher jar to be used in fedora 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"` +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 @@ -171,7 +173,6 @@ 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 @@ -212,26 +213,5 @@ popd %license License.txt %doc README.md - %changelog -* Tue Feb 18 2020 Jiri Vanek - 0.5.36-0.1 -- bumped to latest tagged forest 0.5.36 -- fixed bug in usage of newer jcommander - -* Tue Feb 18 2020 Jiri Vanek - 0.5.33-0.5.pre02 -- removed fat jar, as gradle is gone -- removed javadoc and srcs artifacts. will eb building by javac -- buit by javac instead of gradle - -* Fri Jul 26 2019 Fedora Release Engineering - 0.5.33-0.3.pre02 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Sat Feb 02 2019 Fedora Release Engineering - 0.5.33-0.2.pre02 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Fri Dec 21 2018 Jiri Vanek 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 - -* Fri Dec 21 2018 Jiri Vanek 0.5.33-0.1.pre01 -- inital load +%autochangelog diff --git a/removeSigningAndIfDecompilerAndMain.patch b/removeSigningAndIfDecompilerAndMain.patch deleted file mode 100644 index 31315a9..0000000 --- a/removeSigningAndIfDecompilerAndMain.patch +++ /dev/null @@ -1,127 +0,0 @@ -diff -r ee404caa9a29 Procyon.Decompiler/build.gradle ---- a/Procyon.Decompiler/build.gradle Thu Jul 26 07:08:30 2018 -0400 -+++ b/Procyon.Decompiler/build.gradle Fri Dec 21 17:02:23 2018 +0100 -@@ -8,7 +8,7 @@ - } - } - --jar.enabled = false -+jar.enabled = true - uploadArchives.enabled = false - - apply plugin: 'eu.appsatori.fatjar' -@@ -17,7 +17,7 @@ - // from rootProject.allprojects.collect({ it.sourceSets.main.allSource }) - - manifest { -- attributes 'Title': archivesBaseName, 'Manifest-Version': '1.0', 'Version': version, 'Main-Class' : 'com.strobel.decompiler.DecompilerDriver' -+ attributes 'Title': archivesBaseName, 'Manifest-Version': '1.0', 'Version': version - } - } - -@@ -25,4 +25,4 @@ - compile 'com.beust:jcommander:1.30' - compile project(':Procyon.Core') - compile project(':Procyon.CompilerTools') --} -\ No newline at end of file -+} -diff -r ee404caa9a29 build.gradle ---- a/build.gradle Thu Jul 26 07:08:30 2018 -0400 -+++ b/build.gradle Fri Dec 21 17:02:23 2018 +0100 -@@ -59,7 +59,6 @@ - - subprojects { - apply plugin: 'maven' -- apply plugin: 'signing' - - archivesBaseName = 'procyon-' + it.name.split("\\.")[1].toLowerCase() - -@@ -80,7 +79,7 @@ - from sourceSets.main.allSource - } - -- if (project.name != "Procyon.Decompiler") { -+ - javadoc { - options.encoding = 'UTF-8' - } -@@ -91,78 +90,6 @@ - archives sourcesJar - } - -- signing { -- sign configurations.archives -- } - -- uploadArchives { -- repositories.mavenDeployer { -- beforeDeployment { MavenDeployment deployment -> -- signing.signPom(deployment) -- } -- snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots") { -- authentication(userName: project.properties.get("sonatypeUsername"), password: project.properties.get("sonatypePassword")) -- } -- -- repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2") { -- authentication(userName: project.properties.get("sonatypeUsername"), password: project.properties.get("sonatypePassword")) -- } -- -- pom { -- groupId = project.group -- version = project.version -- artifactId = project.archivesBaseName -- -- project { -- name project.archivesBaseName -- packaging 'jar' -- description 'Procyon' -- url 'https://bitbucket.org/mstrobel/procyon' -- -- scm { -- url 'https://bitbucket.org/mstrobel/procyon' -- connection 'scm:hg:https://hg@bitbucket.org/mstrobel/procyon' -- developerConnection 'scm:hg:https://mstrobel@bitbucket.org/mstrobel/procyon' -- } -- -- issueManagement { -- system 'jira' -- url 'https://bitbucket.org/mstrobel/procyon/issues' -- } -- -- licenses { -- license { -- name 'The Apache Software License, Version 2.0' -- url 'http://www.apache.org/licenses/LICENSE-2.0.txt' -- distribution 'repo' -- } -- } -- -- developers { -- developer { -- id 'mstrobel' -- name 'Mike Strobel' -- roles { -- role 'owner' -- role 'packager' -- role 'developer' -- } -- } -- } -- -- dependencies { -- dependency { -- groupId 'junit' -- artifactId 'junit' -- version '4.11' -- scope 'test' --// optional = true -- } -- } -- } -- } -- } -- } -- } - } - diff --git a/sources b/sources index 77ab89d..1dfc060 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (v0.5.36.tar.gz) = 4f70f1b6886cb14a10e7686350bc13b7f5b0a3d09295982e6d03814f329fe426b503900e57c285b4f6906f824c623d142fd7cb3131cf6729dcf3044d0beb48c6 +SHA512 (procyon-88a95fa93c58322393174f84543edc7a0a2ca44d.tar.gz) = 69c782cb8648f5c8f6ed1999d301df2318f64a3d3479a16ef340891deaef7a1b161d4d2808d98e70372381626dbe5488d9d0dc9b6c17feacc8e0d38f1747985e