This is an automated email from the git hooks/post-receive script. ebourg-guest pushed a commit to branch master in repository procyon.
commit e8252b1a9480ead65a2e6fa539a791f7d9534f6e Author: Emmanuel Bourg <ebo...@apache.org> Date: Sat Oct 15 00:35:14 2016 +0200 Initial packaging --- debian/changelog | 5 + debian/clean | 1 + debian/compat | 1 + debian/completion/procyon | 33 ++++ debian/control | 45 ++++++ debian/copyright | 109 +++++++++++++ debian/libprocyon-java.poms | 33 ++++ debian/maven.ignoreRules | 2 + debian/maven.rules | 2 + debian/patches/01-disable-fatjar-plugin.patch | 30 ++++ debian/patches/02-cli-program-name.patch | 13 ++ debian/patches/series | 2 + debian/poms/procyon-compilertools.pom.xml | 64 ++++++++ debian/poms/procyon-core.pom.xml | 52 ++++++ debian/poms/procyon-expressions.pom.xml | 58 +++++++ debian/poms/procyon-reflection.pom.xml | 58 +++++++ debian/procyon-decompiler.classpath | 1 + debian/procyon-decompiler.install | 2 + debian/procyon-decompiler.jlibs | 1 + debian/procyon-decompiler.manifest | 2 + debian/procyon-decompiler.manpages | 1 + debian/procyon.1 | 221 ++++++++++++++++++++++++++ debian/rules | 14 ++ debian/scripts/procyon | 9 ++ debian/source/format | 1 + debian/watch | 2 + 26 files changed, 762 insertions(+) diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..02954c2 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +procyon (0.5.32-1) unstable; urgency=medium + + * Initial release (Closes: #771861) + + -- Emmanuel Bourg <ebo...@apache.org> Fri, 14 Oct 2016 23:58:28 +0200 diff --git a/debian/clean b/debian/clean new file mode 100644 index 0000000..567609b --- /dev/null +++ b/debian/clean @@ -0,0 +1 @@ +build/ diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/completion/procyon b/debian/completion/procyon new file mode 100644 index 0000000..cd826c1 --- /dev/null +++ b/debian/completion/procyon @@ -0,0 +1,33 @@ +# +# procyon(1) completion +# + +_procyon() +{ + local cur prev options + + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + options=(-b --bytecode-ast -ci --collapse-imports -cp --constant-pool -dl --debug-line-numbers --disable-foreach -eml --eager-method-loading -ent --exclude-nested -eta --explicit-type-arguments -fsb --flatten-switch-blocks -? --help -lc --light -lv --local-variables -ll --log-level -mv --merge-variables -o --output-directory -r --raw-bytecode -ec --retain-explicit-casts -ps --retain-pointless-switches -ss --show-synthetic -sm --simplify-member-references -sl --stretch-lines -ta --typ [...] + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '${options[@]}' -- $cur ) ) + return 0 + fi + + case "$prev" in + -ll|--log-level) + COMPREPLY=( $( compgen -W '0 1 2 3' -- $cur ) ) + ;; + -?|--help) + COMPREPLY=( ) + ;; + *) + COMPREPLY=( $( compgen -f -X "!*.jar" -- "$cur" ) $( compgen -d -- "$cur" ) ) + ;; + esac + + return 0 +} && +complete -F _procyon -o filenames procyon diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..b0421cc --- /dev/null +++ b/debian/control @@ -0,0 +1,45 @@ +Source: procyon +Section: java +Priority: optional +Maintainer: Debian Java Maintainers <pkg-java-maintain...@lists.alioth.debian.org> +Uploaders: Emmanuel Bourg <ebo...@apache.org> +Build-Depends: + debhelper (>= 9), + default-jdk, + gradle-debian-helper, + javahelper, + libjcommander-java, + maven-repo-helper +Standards-Version: 3.9.8 +Vcs-Git: https://anonscm.debian.org/git/pkg-java/procyon.git +Vcs-Browser: https://anonscm.debian.org/cgit/pkg-java/procyon.git +Homepage: https://bitbucket.org/mstrobel/procyon + +Package: libprocyon-java +Architecture: all +Depends: ${misc:Depends} +Description: Procyon Framework + 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 + * Java Decompiler + +Package: procyon-decompiler +Architecture: all +Depends: + ${misc:Depends}, + default-jre-headless (>= 2:1.7), + libjcommander-java, + libprocyon-java +Description: Procyon Java Decompiler + Procyon is a Java decompiler handling language enhancements from Java 5 + and beyond that most other decompilers don't. It also excels in areas + where others fall short. Procyon in particular does well with: + * Enum declarations + * Enum and String switch statements + * Local classes (both anonymous and named) + * Annotations + * Java 8 Lambdas and method references diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..3880e5c --- /dev/null +++ b/debian/copyright @@ -0,0 +1,109 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Procyon +Source: https://bitbucket.org/mstrobel/procyon +Files-Excluded: .hg* + .flow + .idea + +Files: * +Copyright: 2012-2015, Mike Strobel +License: Apache-2.0 + +Files: Procyon.CompilerTools/src/main/java/com/strobel/* +Copyright: 2012-2015, Mike Strobel + 2004-2016, Jean-Baptiste Evain + 2011, AlphaSierraPapa +License: Apache-2.0 and MIT +Comment: + This source code is based on Mono.Cecil from Jean-Baptiste Evain and ILSpy/ICSharpCode from SharpDevelop. + +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a copy of this + software and associated documentation files (the "Software"), to deal in the Software + without restriction, including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons + to whom the Software is furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +Files: Procyon.Core/src/main/java/com/strobel/core/OS.java + Procyon.Core/src/main/java/com/strobel/io/Ansi.java +Copyright: 2009, Santhosh Kumar Tekuri +Comment: Copied from JLibs (https://github.com/santhosh-tekuri/jlibs) +License: LGPL-2.1+ + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + . + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + . + On Debian systems, the full text of the LGPL-2.1 license + can be found in the file '/usr/share/common-licenses/LGPL-2.1' + +Files: Procyon.CompilerTools/src/main/java/com/strobel/assembler/metadata/signatures/* +Copyright: 2003-2006, Oracle and/or its affiliates +License: GPL-2 with Classpath exception + This code is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License version 2 only, as + published by the Free Software Foundation. Oracle designates this + particular file as subject to the "Classpath" exception as provided + by Oracle in the LICENSE file that accompanied this code. + . + This code is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + version 2 for more details (a copy is included in the LICENSE file that + accompanied this code). + . + On Debian systems, the full text of the GPL-2 license + can be found in the file '/usr/share/common-licenses/GPL-2' + . + "CLASSPATH" EXCEPTION TO THE GPL + . + Certain source files distributed by Oracle America and/or its affiliates are + subject to the following clarification and special exception to the GPL, but + only where Oracle has expressly included in the particular source file's header + the words "Oracle designates this particular file as subject to the "Classpath" + exception as provided by Oracle in the LICENSE file that accompanied this code." + . + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + . + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. + +Files: Procyon.Expressions/src/main/java/com/strobel/expressions/* + Procyon.Reflection/src/main/java/com/strobel/reflection/emit/SwitchOptions.java +Copyright: Microsoft Corporation +License: Apache-2.0 +Comment: + This source code is based on the Dynamic Language Runtime from Microsoft, + +Files: debian/* +Copyright: 2016, Emmanuel Bourg <ebo...@apache.org> +License: Apache-2.0 + +License: Apache-2.0 + On Debian systems, the full text of the Apache-2.0 license + can be found in the file '/usr/share/common-licenses/Apache-2.0' diff --git a/debian/libprocyon-java.poms b/debian/libprocyon-java.poms new file mode 100644 index 0000000..19d44f7 --- /dev/null +++ b/debian/libprocyon-java.poms @@ -0,0 +1,33 @@ +# List of POM files for the package +# Format of this file is: +# <path to pom file> [option]* +# where option can be: +# --ignore: ignore this POM and its artifact if any +# --ignore-pom: don't install the POM. To use on POM files that are created +# temporarily for certain artifacts such as Javadoc jars. [mh_install, mh_installpoms] +# --no-parent: remove the <parent> tag from the POM +# --package=<package>: an alternative package to use when installing this POM +# and its artifact +# --has-package-version: to indicate that the original version of the POM is the same as the upstream part +# of the version for the package. +# --keep-elements=<elem1,elem2>: a list of XML elements to keep in the POM +# during a clean operation with mh_cleanpom or mh_installpom +# --artifact=<path>: path to the build artifact associated with this POM, +# it will be installed when using the command mh_install. [mh_install] +# --java-lib: install the jar into /usr/share/java to comply with Debian +# packaging guidelines +# --usj-name=<name>: name to use when installing the library in /usr/share/java +# --usj-version=<version>: version to use when installing the library in /usr/share/java +# --no-usj-versionless: don't install the versionless link in /usr/share/java +# --dest-jar=<path>: the destination for the real jar. +# It will be installed with mh_install. [mh_install] +# --classifier=<classifier>: Optional, the classifier for the jar. Empty by default. +# --site-xml=<location>: Optional, the location for site.xml if it needs to be installed. +# Empty by default. [mh_install] +# +debian/poms/procyon-core.pom.xml --has-package-version --java-lib --artifact=build/Procyon.Core/libs/procyon-core-*.jar +debian/poms/procyon-expressions.pom.xml --has-package-version --java-lib --artifact=build/Procyon.Expressions/libs/procyon-expressions-*.jar +debian/poms/procyon-reflection.pom.xml --has-package-version --java-lib --artifact=build/Procyon.Reflection/libs/procyon-reflection-*.jar +debian/poms/procyon-compilertools.pom.xml --has-package-version --java-lib --artifact=build/Procyon.CompilerTools/libs/procyon-compilertools-*.jar + +#./build/Procyon.Decompiler/libs/procyon-decompiler-0.5.32.jar diff --git a/debian/maven.ignoreRules b/debian/maven.ignoreRules new file mode 100644 index 0000000..d693936 --- /dev/null +++ b/debian/maven.ignoreRules @@ -0,0 +1,2 @@ + +eu.appsatori gradle-fatjar-plugin * * * * diff --git a/debian/maven.rules b/debian/maven.rules new file mode 100644 index 0000000..7a4df1a --- /dev/null +++ b/debian/maven.rules @@ -0,0 +1,2 @@ + +com.beust jcommander * s/.*/1.x/ * * diff --git a/debian/patches/01-disable-fatjar-plugin.patch b/debian/patches/01-disable-fatjar-plugin.patch new file mode 100644 index 0000000..14061fd --- /dev/null +++ b/debian/patches/01-disable-fatjar-plugin.patch @@ -0,0 +1,30 @@ +Description: Disables the fatjar plugin (not in Debian) +Author: Emmanuel Bourg <ebo...@apache.org> +Forwarded: not-needed +--- a/Procyon.Decompiler/build.gradle ++++ b/Procyon.Decompiler/build.gradle +@@ -8,21 +8,11 @@ + } + } + +-jar.enabled = false ++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, 'Main-Class' : 'com.strobel.decompiler.DecompilerDriver' +- } +-} +- + dependencies { + compile 'com.beust:jcommander:1.30' + compile project(':Procyon.Core') + compile project(':Procyon.CompilerTools') +-} +\ No newline at end of file ++} diff --git a/debian/patches/02-cli-program-name.patch b/debian/patches/02-cli-program-name.patch new file mode 100644 index 0000000..8ca6a1c --- /dev/null +++ b/debian/patches/02-cli-program-name.patch @@ -0,0 +1,13 @@ +Description: Set the name of the program for the help page +Author: Emmanuel Bourg <ebo...@apache.org> +Forwarded: not-needed +--- a/Procyon.Decompiler/src/main/java/com/strobel/decompiler/DecompilerDriver.java ++++ b/Procyon.Decompiler/src/main/java/com/strobel/decompiler/DecompilerDriver.java +@@ -49,6 +49,7 @@ + try { + jCommander = new JCommander(options); + jCommander.setAllowAbbreviatedOptions(false); ++ jCommander.setProgramName("procyon"); + jCommander.parse(args); + typeNames = options.getInputs(); + } diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..5acf0d1 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,2 @@ +01-disable-fatjar-plugin.patch +02-cli-program-name.patch diff --git a/debian/poms/procyon-compilertools.pom.xml b/debian/poms/procyon-compilertools.pom.xml new file mode 100644 index 0000000..dbf2d60 --- /dev/null +++ b/debian/poms/procyon-compilertools.pom.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.bitbucket.mstrobel</groupId> + <artifactId>procyon-compilertools</artifactId> + <version>0.5.32</version> + <name>procyon-compilertools</name> + <description>Procyon</description> + <url>https://bitbucket.org/mstrobel/procyon</url> + <licenses> + <license> + <name>The Apache Software License, Version 2.0</name> + <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> + <distribution>repo</distribution> + </license> + </licenses> + <developers> + <developer> + <id>mstrobel</id> + <name>Mike Strobel</name> + <roles> + <role>owner</role> + <role>packager</role> + <role>developer</role> + </roles> + </developer> + </developers> + <issueManagement> + <system>jira</system> + <url>https://bitbucket.org/mstrobel/procyon/issues</url> + </issueManagement> + <scm> + <connection>scm:hg:https://h...@bitbucket.org/mstrobel/procyon</connection> + <developerConnection>scm:hg:https://mstro...@bitbucket.org/mstrobel/procyon</developerConnection> + <url>https://bitbucket.org/mstrobel/procyon</url> + </scm> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.11</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.bitbucket.mstrobel</groupId> + <artifactId>procyon-core</artifactId> + <version>0.5.32</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.bitbucket.mstrobel</groupId> + <artifactId>procyon-reflection</artifactId> + <version>0.5.32</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.11</version> + <scope>test</scope> + </dependency> + </dependencies> +</project> diff --git a/debian/poms/procyon-core.pom.xml b/debian/poms/procyon-core.pom.xml new file mode 100644 index 0000000..b3ad4a7 --- /dev/null +++ b/debian/poms/procyon-core.pom.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.bitbucket.mstrobel</groupId> + <artifactId>procyon-core</artifactId> + <version>0.5.32</version> + <name>procyon-core</name> + <description>Procyon</description> + <url>https://bitbucket.org/mstrobel/procyon</url> + <licenses> + <license> + <name>The Apache Software License, Version 2.0</name> + <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> + <distribution>repo</distribution> + </license> + </licenses> + <developers> + <developer> + <id>mstrobel</id> + <name>Mike Strobel</name> + <roles> + <role>owner</role> + <role>packager</role> + <role>developer</role> + </roles> + </developer> + </developers> + <issueManagement> + <system>jira</system> + <url>https://bitbucket.org/mstrobel/procyon/issues</url> + </issueManagement> + <scm> + <connection>scm:hg:https://h...@bitbucket.org/mstrobel/procyon</connection> + <developerConnection>scm:hg:https://mstro...@bitbucket.org/mstrobel/procyon</developerConnection> + <url>https://bitbucket.org/mstrobel/procyon</url> + </scm> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.11</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.11</version> + <scope>test</scope> + </dependency> + </dependencies> +</project> diff --git a/debian/poms/procyon-expressions.pom.xml b/debian/poms/procyon-expressions.pom.xml new file mode 100644 index 0000000..6bd28a8 --- /dev/null +++ b/debian/poms/procyon-expressions.pom.xml @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.bitbucket.mstrobel</groupId> + <artifactId>procyon-expressions</artifactId> + <version>0.5.32</version> + <name>procyon-expressions</name> + <description>Procyon</description> + <url>https://bitbucket.org/mstrobel/procyon</url> + <licenses> + <license> + <name>The Apache Software License, Version 2.0</name> + <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> + <distribution>repo</distribution> + </license> + </licenses> + <developers> + <developer> + <id>mstrobel</id> + <name>Mike Strobel</name> + <roles> + <role>owner</role> + <role>packager</role> + <role>developer</role> + </roles> + </developer> + </developers> + <issueManagement> + <system>jira</system> + <url>https://bitbucket.org/mstrobel/procyon/issues</url> + </issueManagement> + <scm> + <connection>scm:hg:https://h...@bitbucket.org/mstrobel/procyon</connection> + <developerConnection>scm:hg:https://mstro...@bitbucket.org/mstrobel/procyon</developerConnection> + <url>https://bitbucket.org/mstrobel/procyon</url> + </scm> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.11</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.bitbucket.mstrobel</groupId> + <artifactId>procyon-reflection</artifactId> + <version>0.5.32</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.11</version> + <scope>test</scope> + </dependency> + </dependencies> +</project> diff --git a/debian/poms/procyon-reflection.pom.xml b/debian/poms/procyon-reflection.pom.xml new file mode 100644 index 0000000..541bc0b --- /dev/null +++ b/debian/poms/procyon-reflection.pom.xml @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.bitbucket.mstrobel</groupId> + <artifactId>procyon-reflection</artifactId> + <version>0.5.32</version> + <name>procyon-reflection</name> + <description>Procyon</description> + <url>https://bitbucket.org/mstrobel/procyon</url> + <licenses> + <license> + <name>The Apache Software License, Version 2.0</name> + <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> + <distribution>repo</distribution> + </license> + </licenses> + <developers> + <developer> + <id>mstrobel</id> + <name>Mike Strobel</name> + <roles> + <role>owner</role> + <role>packager</role> + <role>developer</role> + </roles> + </developer> + </developers> + <issueManagement> + <system>jira</system> + <url>https://bitbucket.org/mstrobel/procyon/issues</url> + </issueManagement> + <scm> + <connection>scm:hg:https://h...@bitbucket.org/mstrobel/procyon</connection> + <developerConnection>scm:hg:https://mstro...@bitbucket.org/mstrobel/procyon</developerConnection> + <url>https://bitbucket.org/mstrobel/procyon</url> + </scm> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.11</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.bitbucket.mstrobel</groupId> + <artifactId>procyon-core</artifactId> + <version>0.5.32</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.11</version> + <scope>test</scope> + </dependency> + </dependencies> +</project> diff --git a/debian/procyon-decompiler.classpath b/debian/procyon-decompiler.classpath new file mode 100644 index 0000000..29536a0 --- /dev/null +++ b/debian/procyon-decompiler.classpath @@ -0,0 +1 @@ +usr/share/java/procyon-decompiler.jar /usr/share/java/jcommander.jar /usr/share/java/procyon-core.jar /usr/share/java/procyon-compilertools.jar /usr/share/java/procyon-expressions.jar /usr/share/java/procyon-reflection.jar diff --git a/debian/procyon-decompiler.install b/debian/procyon-decompiler.install new file mode 100644 index 0000000..f6e2bbd --- /dev/null +++ b/debian/procyon-decompiler.install @@ -0,0 +1,2 @@ +debian/scripts/procyon usr/bin/ +debian/completion/procyon usr/share/bash-completion/completions/ diff --git a/debian/procyon-decompiler.jlibs b/debian/procyon-decompiler.jlibs new file mode 100644 index 0000000..300b57f --- /dev/null +++ b/debian/procyon-decompiler.jlibs @@ -0,0 +1 @@ +build/Procyon.Decompiler/libs/procyon-decompiler-0.5.32.jar diff --git a/debian/procyon-decompiler.manifest b/debian/procyon-decompiler.manifest new file mode 100644 index 0000000..474cc7a --- /dev/null +++ b/debian/procyon-decompiler.manifest @@ -0,0 +1,2 @@ +usr/share/java/procyon-decompiler.jar: + Main-Class: com.strobel.decompiler.DecompilerDriver diff --git a/debian/procyon-decompiler.manpages b/debian/procyon-decompiler.manpages new file mode 100644 index 0000000..d5f365f --- /dev/null +++ b/debian/procyon-decompiler.manpages @@ -0,0 +1 @@ +debian/procyon.1 diff --git a/debian/procyon.1 b/debian/procyon.1 new file mode 100644 index 0000000..891f069 --- /dev/null +++ b/debian/procyon.1 @@ -0,0 +1,221 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. +.TH PROCYON "1" "October 2016" "procyon 0.5.32" "User Commands" + +.SH NAME +procyon \- manual page for the Procyon Java decompiler + +.SH SYNOPSIS +.B procyon +[\fI\,options\/\fR] \fI\,<type names or class/jar files>\/\fR + +.SH DESCRIPTION + +Procyon is a Java decompiler handling language enhancements from Java 5 +and beyond that most other decompilers don't. It also excels in areas +where others fall short. Procyon in particular does well with: + * Enum declarations + * Enum and String switch statements + * Local classes (both anonymous and named) + * Annotations + * Java 8 Lambdas and method references + +Procyon offers three output modes: + * Java (default) + * Raw Bytecode (similar to javap, but prettier; run with \fB\-r\fR) + * Bytecode AST (an intermediate representation; run with \fB\-b\fR, add \fB\-u\fR for unoptimized) + +.PP +One or more types can be passed as an argument to be processed. The input +types can be fully-qualified names in dotted or binary form (e.g., +\fBjava.lang.String\fR or \fBjava/lang/String\fR) or relative/absolute +file paths (\fBpath/to/MyClass.class\fR) or even whole jar files. +If a type name is passed, Procyon will attempt to load it out of the user +or bootstrap classpath. + +.SH OPTIONS + +.HP +\fB\-b\fR, \fB\-\-bytecode\-ast\fR +.IP +Output Bytecode AST instead of Java. +Default: false +.HP +\fB\-ci\fR, \fB\-\-collapse\-imports\fR +.IP +Collapse multiple imports from the same package into a single wildcard +import. +Default: false +.HP +\fB\-cp\fR, \fB\-\-constant\-pool\fR +.IP +Includes the constant pool when displaying raw bytecode (unnecessary with +\fB\-v\fR). +Default: false +.HP +\fB\-dl\fR, \fB\-\-debug\-line\-numbers\fR +.IP +For debugging, show Java line numbers as inline comments (implies \fB\-ln\fR; +requires \fB\-o\fR). +Default: false +.HP +\fB\-\-disable\-foreach\fR +.IP +Disable 'for each' loop transforms. +Default: false +.HP +\fB\-eml\fR, \fB\-\-eager\-method\-loading\fR +.IP +Enable eager loading of method bodies (may speed up decompilation of +larger archives). +Default: false +.HP +\fB\-ent\fR, \fB\-\-exclude\-nested\fR +.IP +Exclude nested types when decompiling their enclosing types. +Default: false +.HP +\fB\-ei\fR, \fB\-\-explicit\-imports\fR +.IP +[DEPRECATED] Explicit imports are now enabled by default. +This option will be removed in a future release. +Default: false +.HP +\fB\-eta\fR, \fB\-\-explicit\-type\-arguments\fR +.IP +Always print type arguments to generic methods. +Default: false +.HP +\fB\-fsb\fR, \fB\-\-flatten\-switch\-blocks\fR +.IP +Drop the braces statements around switch sections when possible. +Default: false +.HP +\-?, \fB\-\-help\fR +.IP +Display this usage information and exit. +Default: false +.HP +\fB\-jar\fR, \fB\-\-jar\-file\fR +.IP +[DEPRECATED] Decompile all classes in the specified jar file (disables +\fB\-ent\fR and \fB\-s\fR). +.HP +\fB\-lc\fR, \fB\-\-light\fR +.IP +Use a color scheme designed for consoles with light background colors. +Default: false +.HP +\fB\-lv\fR, \fB\-\-local\-variables\fR +.IP +Includes the local variable tables when displaying raw bytecode +(unnecessary with \fB\-v\fR). +Default: false +.HP +\fB\-ll\fR, \fB\-\-log\-level\fR +.IP +Set the level of log verbosity (0\-3). +Level 0 disables logging. Default: 0 +.HP +\fB\-mv\fR, \fB\-\-merge\-variables\fR +.IP +Attempt to merge as many variables as possible. +This may lead to fewer declarations, but at the expense of inlining and useful naming. +This feature is experimental and may be removed or become the standard behavior in future releases. +Default: false +.HP +\fB\-o\fR, \fB\-\-output\-directory\fR +.IP +Write decompiled results to specified directory instead of the console. +.HP +\fB\-r\fR, \fB\-\-raw\-bytecode\fR +.IP +Output Raw Bytecode instead of Java (to control the level of detail, see: +\fB\-cp\fR, \fB\-lv\fR, \fB\-ta\fR, \fB\-v\fR). +Default: false +.HP +\fB\-ec\fR, \fB\-\-retain\-explicit\-casts\fR +.IP +Do not remove redundant explicit casts. +Default: false +.HP +\fB\-ps\fR, \fB\-\-retain\-pointless\-switches\fR +.IP +Do not lift the contents of switches having only a default label. +Default: false +.HP +\fB\-ss\fR, \fB\-\-show\-synthetic\fR +.IP +Show synthetic (compiler\-generated) members. +Default: false +.HP +\fB\-sm\fR, \fB\-\-simplify\-member\-references\fR +.IP +Simplify type\-qualified member references in Java output [EXPERIMENTAL]. +Default: false +.HP +\fB\-sl\fR, \fB\-\-stretch\-lines\fR +.IP +Stretch Java lines to match original line numbers (only in combination +with \fB\-o\fR) [EXPERIMENTAL]. +Default: false +.HP +\fB\-ta\fR, \fB\-\-type\-attributes\fR +.IP +Includes type attributes when displaying raw bytecode (unnecessary with +\fB\-v\fR). +Default: false +.HP +\fB\-\-unicode\fR +.IP +Enable Unicode output (printable non\-ASCII characters will not be +escaped). +Default: false +.HP +\fB\-u\fR, \fB\-\-unoptimized\fR +.IP +Show unoptimized code (only in combination with \fB\-b\fR). +Default: false +.HP +\fB\-v\fR, \fB\-\-verbose\fR +.IP +Includes more detailed output depending on the output language (currently +only supported for raw bytecode). +Default: false +.HP +\fB\-\-version\fR +.IP +Display the decompiler version and exit. +Default: false +.HP +\fB\-ln\fR, \fB\-\-with\-line\-numbers\fR +.IP +Include line numbers in raw bytecode mode; supports Java mode with \fB\-o\fR +only. +Default: false + +.SH EXAMPLES + +Decompile a single class to the console: + +.IP +$ procyon java.lang.String +.IP +$ procyon java.util.Collections + + +.PP +Decompile a whole jar to a directory: + +.IP +$ procyon myJar.jar -o out + + +.PP +Decompile a single class from a jar: + +.IP +$ CLASSPATH=myJar.jar procyon com.example.Foo + + +.SH "SEE ALSO" +https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..7a9e7e4 --- /dev/null +++ b/debian/rules @@ -0,0 +1,14 @@ +#!/usr/bin/make -f + +VERSION = $(shell dpkg-parsechangelog --show-field Version | sed 's/-[^-]*$$//') + +%: + dh $@ --buildsystem=gradle --with maven-repo-helper --with javahelper + +get-orig-source: + uscan --download-current-version --force-download --rename --repack --compression xz + +get-orig-pom: + for module in core compilertools expressions reflection; do \ + wget https://repo1.maven.org/maven2/org/bitbucket/mstrobel/procyon-$$module/$(VERSION)/procyon-$$module-$(VERSION).pom -O debian/poms/procyon-$$module.pom.xml ; \ + done diff --git a/debian/scripts/procyon b/debian/scripts/procyon new file mode 100755 index 0000000..e7a9ef5 --- /dev/null +++ b/debian/scripts/procyon @@ -0,0 +1,9 @@ +#!/bin/sh +# +# Launcher script for the Procyon Java decompiler +# + + +CLASSPATH=$CLASSPATH:/usr/share/java/jcommander.jar:/usr/share/java/procyon-core.jar:/usr/share/java/procyon-compilertools.jar:/usr/share/java/procyon-expressions.jar:/usr/share/java/procyon-reflection.jar:/usr/share/java/procyon-decompiler.jar + +java -cp $CLASSPATH com.strobel.decompiler.DecompilerDriver $@ diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..f1a3e51 --- /dev/null +++ b/debian/watch @@ -0,0 +1,2 @@ +version=4 +https://bitbucket.org/mstrobel/procyon/downloads?tab=tags .*/v([\d\.]+).tar.gz -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/procyon.git _______________________________________________ pkg-java-commits mailing list pkg-java-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits