[Git][java-team/groovy3][master] Initial packaging attempt with files from the groovy package and some tweaking...
Pierre Gruet (@pgt)
gitlab at salsa.debian.org
Fri Oct 4 22:06:51 BST 2024
Pierre Gruet pushed to branch master at Debian Java Maintainers / groovy3
Commits:
6b07831d by Pierre Gruet at 2024-10-04T23:06:34+02:00
Initial packaging attempt with files from the groovy package and some tweaking of dependencies and Maven rules
- - - - -
29 changed files:
- + debian/changelog
- + debian/control
- + debian/copyright
- + debian/grape.1
- + debian/groovy-doc.doc-base.1
- + debian/groovy-doc.doc-base.2
- + debian/groovy-doc.install
- + debian/groovy-doc.lintian-overrides
- + debian/groovy.1
- + debian/groovy.install
- + debian/groovy.links
- + debian/groovy.manpages
- + debian/groovy.postinst
- + debian/groovy.prerm
- + debian/groovyConsole.desktop
- + debian/groovyc.1
- + debian/maven.ignoreRules
- + debian/maven.rules
- + debian/patches/02_fix_start_script.diff
- + debian/patches/07_servlet_api_compatibility.patch
- + debian/patches/08_GROOVY-8163.patch
- + debian/patches/09_ignore_buildscan.patch
- + debian/patches/build.patch
- + debian/patches/series
- + debian/patches/subprojects.patch
- + debian/rules
- + debian/source/format
- + debian/upstream/signing-key.asc
- + debian/watch
Changes:
=====================================
debian/changelog
=====================================
@@ -0,0 +1,5 @@
+groovy3 (3.0.22+dfsg-1) UNRELEASED; urgency=medium
+
+ * Initial packaging (Closes: #nnnnnnn)
+
+ -- Pierre Gruet <pgt at debian.org> Sun, 29 Sep 2024 10:07:12 +0200
=====================================
debian/control
=====================================
@@ -0,0 +1,92 @@
+Source: groovy3
+Section: java
+Priority: optional
+Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
+Uploaders: Pierre Gruet <pgt at debian.org>,
+ Toni Mueller <toni at debian.org>
+Build-Depends: debhelper-compat (=13),
+ ant <!nocheck>,
+ ant-optional,
+ antlr4,
+ default-jdk,
+ gradle-debian-helper,
+ groovy,
+ ivy,
+ junit5,
+ libactivation-java,
+ libantlr-java,
+ libantlr4-runtime-java,
+ libasm-java,
+ libcommons-logging-java,
+ libgoogle-gson-java <!nocheck>,
+ libgpars-groovy-java,
+ libhsqldb-java <!nocheck>,
+ libjackson2-annotations-java,
+ libjackson2-databind-java,
+ libjackson2-dataformat-yaml,
+ libjansi-java,
+ libjaxb-api-java,
+ libjaxb-java,
+ libjavaparser-java,
+ libjline2-java,
+ libjmock-java <!nocheck>,
+ libjsp-api-java,
+ liblogback-java <!nocheck>,
+ liblog4j1.2-java <!nocheck>,
+ liblog4j2-java <!nocheck>,
+ libpicocli-java,
+ libqdox-java <!nocheck>,
+ libservlet-api-java,
+ libslf4j-java <!nocheck>,
+ libspock-java,
+ libxmlunit-java <!nocheck>,
+ libxstream-java,
+ maven-repo-helper,
+ testng
+Standards-Version: 4.7.0
+Vcs-Git: https://salsa.debian.org/java-team/groovy3.git
+Vcs-Browser: https://salsa.debian.org/java-team/groovy3
+Homepage: http://www.groovy-lang.org
+Rules-Requires-Root: no
+
+Package: groovy3
+Architecture: all
+Depends:
+ default-jre-headless | java7-runtime-headless,
+ ${misc:Depends}
+Suggests: groovy3-doc
+Description: Agile dynamic language for the Java Virtual Machine (version 3)
+ Groovy is an agile dynamic language for the JVM combining lots of great
+ features from languages like Python, Ruby and Smalltalk and making them
+ available to the Java developers using a Java-like syntax.
+ .
+ Groovy is designed to help you get things done on the Java platform in a
+ quicker, more concise and fun way - bringing the power of Python and Ruby
+ inside the Java platform.
+ .
+ Groovy can be used as an alternative compiler to javac to generate
+ standard Java bytecode to be used by any Java project or it can be used
+ dynamically as an alternative language such as for scripting Java objects,
+ templating or writing unit test cases.
+
+Package: groovy3-doc
+Section: doc
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: default-jdk-doc
+Suggests: groovy3
+Description: Agile dynamic language for the Java Virtual Machine (version 3, documentation)
+ Groovy is an agile dynamic language for the JVM combining lots of great
+ features from languages like Python, Ruby and Smalltalk and making them
+ available to the Java developers using a Java-like syntax.
+ .
+ Groovy is designed to help you get things done on the Java platform in a
+ quicker, more concise and fun way - bringing the power of Python and Ruby
+ inside the Java platform.
+ .
+ Groovy can be used as an alternative compiler to javac to generate
+ standard Java bytecode to be used by any Java project or it can be used
+ dynamically as an alternative language such as for scripting Java objects,
+ templating or writing unit test cases.
+ .
+ This package includes the Groovy API javadocs, and examples.
=====================================
debian/copyright
=====================================
@@ -0,0 +1,284 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Groovy
+Upstream-Contact: Groovy Development Team <dev at groovy.codehaus.org>
+Source: http://www.groovy-lang.org/download.html
+Files-Excluded: **/*.jar
+ gradle
+ **/*.js
+
+Files: *
+Copyright: 2003-2018, The Apache Software Foundation
+License: Apache-2.0
+
+Files: src/main/org/codehaus/groovy/classgen/ClassCompletionVerifier.java
+Copyright: 2004 IBM Corporation and others
+ Groovy community
+License: CPL-1.0 and Apache-2.0
+
+Files: debian/*
+Copyright: 2009 Varun Hiremath <varun at debian.org>
+ 2009 Torsten Werner <twerner at debian.org>
+ 2009 Ludovic Claude <ludovic.claude at laposte.net>
+ 2010-2017 Miguel Landaeta <nomadium at debian.org>
+ 2015, Komal <komaldsukhani at gmail.com>
+ 2015-2022, Emmanuel Bourg <ebourg at apache.org>
+ 2015-2022, Markus Koschany <apo at debian.org>
+ 2015-2022, tony mancill <tmancill at debian.org>
+License: GPL-2
+
+Files: debian/patches/*
+Copyright: 2014 Miguel Landaeta <nomadium at debian.org>
+ 2015, Komal <komaldsukhani at gmail.com>
+License: Apache-2.0
+
+License: Apache-2.0
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ .
+ http://www.apache.org/licenses/LICENSE-2.0
+ .
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ .
+ On Debian systems the full text of the Apache-2.0 license can be found in
+ the /usr/share/common-licenses/Apache-2.0 file.
+
+License: GPL-2
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ .
+ This program 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 for more details.
+ .
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems the full text of the GPL Version 2 license can be
+ found in the /usr/share/common-licenses/GPL-2 file.
+
+License: CPL-1.0
+ Common Public License - v 1.0
+ .
+ THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
+ LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+ CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ .
+ 1. DEFINITIONS
+ .
+ "Contribution" means:
+ .
+ a) in the case of the initial Contributor, the initial code and documentation
+ distributed under this Agreement, and
+ b) in the case of each subsequent Contributor:
+ .
+ i) changes to the Program, and
+ .
+ ii) additions to the Program;
+ .
+ where such changes and/or additions to the Program originate from and are
+ distributed by that particular Contributor. A Contribution 'originates'
+ from a Contributor if it was added to the Program by such Contributor
+ itself or anyone acting on such Contributor's behalf. Contributions do not
+ include additions to the Program which: (i) are separate modules of
+ software distributed in conjunction with the Program under their own
+ license agreement, and (ii) are not derivative works of the Program.
+ .
+ "Contributor" means any person or entity that distributes the Program.
+ .
+ "Licensed Patents " mean patent claims licensable by a Contributor which are
+ necessarily infringed by the use or sale of its Contribution alone or when
+ combined with the Program.
+ .
+ "Program" means the Contributions distributed in accordance with this
+ Agreement.
+ .
+ "Recipient" means anyone who receives the Program under this Agreement,
+ including all Contributors.
+ .
+ 2. GRANT OF RIGHTS
+ .
+ a) Subject to the terms of this Agreement, each Contributor hereby grants
+ Recipient a non-exclusive, worldwide, royalty-free copyright license to
+ reproduce, prepare derivative works of, publicly display, publicly perform,
+ distribute and sublicense the Contribution of such Contributor, if any, and
+ such derivative works, in source code and object code form.
+ .
+ b) Subject to the terms of this Agreement, each Contributor hereby grants
+ Recipient a non-exclusive, worldwide, royalty-free patent license under
+ Licensed Patents to make, use, sell, offer to sell, import and otherwise
+ transfer the Contribution of such Contributor, if any, in source code and
+ object code form. This patent license shall apply to the combination of the
+ Contribution and the Program if, at the time the Contribution is added by
+ the Contributor, such addition of the Contribution causes such combination
+ to be covered by the Licensed Patents. The patent license shall not apply
+ to any other combinations which include the Contribution. No hardware per
+ se is licensed hereunder.
+ .
+ c) Recipient understands that although each Contributor grants the licenses to
+ its Contributions set forth herein, no assurances are provided by any
+ Contributor that the Program does not infringe the patent or other
+ intellectual property rights of any other entity. Each Contributor
+ disclaims any liability to Recipient for claims brought by any other entity
+ based on infringement of intellectual property rights or otherwise. As a
+ condition to exercising the rights and licenses granted hereunder, each
+ Recipient hereby assumes sole responsibility to secure any other
+ intellectual property rights needed, if any. For example, if a third party
+ patent license is required to allow Recipient to distribute the Program, it
+ is Recipient's responsibility to acquire that license before distributing
+ the Program.
+ .
+ d) Each Contributor represents that to its knowledge it has sufficient
+ copyright rights in its Contribution, if any, to grant the copyright
+ license set forth in this Agreement.
+ .
+ 3. REQUIREMENTS
+ .
+ A Contributor may choose to distribute the Program in object code form under
+ its own license agreement, provided that:
+ .
+ a) it complies with the terms and conditions of this Agreement; and
+ .
+ b) its license agreement:
+ .
+ i) effectively disclaims on behalf of all Contributors all warranties and
+ conditions, express and implied, including warranties or conditions of
+ title and non-infringement, and implied warranties or conditions of
+ merchantability and fitness for a particular purpose;
+ .
+ ii) effectively excludes on behalf of all Contributors all liability for
+ damages, including direct, indirect, special, incidental and consequential
+ damages, such as lost profits;
+ .
+ iii) states that any provisions which differ from this Agreement are offered by
+ that Contributor alone and not by any other party; and
+ .
+ iv) states that source code for the Program is available from such Contributor,
+ and informs licensees how to obtain it in a reasonable manner on or through
+ a medium customarily used for software exchange.
+ .
+ When the Program is made available in source code form:
+ .
+ a) it must be made available under this Agreement; and
+ .
+ b) a copy of this Agreement must be included with each copy of the Program.
+ .
+ Contributors may not remove or alter any copyright notices contained
+ within the Program.
+ .
+ Each Contributor must identify itself as the originator of its Contribution, if
+ any, in a manner that reasonably allows subsequent Recipients to identify the
+ originator of the Contribution.
+ .
+ 4. COMMERCIAL DISTRIBUTION
+ .
+ Commercial distributors of software may accept certain responsibilities with
+ respect to end users, business partners and the like. While this license is
+ intended to facilitate the commercial use of the Program, the Contributor who
+ includes the Program in a commercial product offering should do so in a manner
+ which does not create potential liability for other Contributors. Therefore, if
+ a Contributor includes the Program in a commercial product offering, such
+ Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+ every other Contributor ("Indemnified Contributor") against any losses, damages
+ and costs (collectively "Losses") arising from claims, lawsuits and other legal
+ actions brought by a third party against the Indemnified Contributor to the
+ extent caused by the acts or omissions of such Commercial Contributor in
+ connection with its distribution of the Program in a commercial product
+ offering. The obligations in this section do not apply to any claims or Losses
+ relating to any actual or alleged intellectual property infringement. In order
+ to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+ Contributor in writing of such claim, and b) allow the Commercial Contributor
+ to control, and cooperate with the Commercial Contributor in, the defense and
+ any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+ .
+ For example, a Contributor might include the Program in a commercial product
+ offering, Product X. That Contributor is then a Commercial Contributor. If that
+ Commercial Contributor then makes performance claims, or offers warranties
+ related to Product X, those performance claims and warranties are such
+ Commercial Contributor's responsibility alone. Under this section, the
+ Commercial Contributor would have to defend claims against the other
+ Contributors related to those performance claims and warranties, and if a court
+ requires any other Contributor to pay any damages as a result, the Commercial
+ Contributor must pay those damages.
+ .
+ 5. NO WARRANTY
+ .
+ EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+ IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+ NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+ Recipient is solely responsible for determining the appropriateness of using
+ and distributing the Program and assumes all risks associated with its exercise
+ of rights under this Agreement, including but not limited to the risks and
+ costs of program errors, compliance with applicable laws, damage to or loss of
+ data, programs or equipment, and unavailability or interruption of operations.
+ .
+ 6. DISCLAIMER OF LIABILITY
+ .
+ EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+ CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+ PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+ WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+ GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ .
+ 7. GENERAL
+ .
+ If any provision of this Agreement is invalid or unenforceable under applicable
+ law, it shall not affect the validity or enforceability of the remainder of the
+ terms of this Agreement, and without further action by the parties hereto, such
+ provision shall be reformed to the minimum extent necessary to make such
+ provision valid and enforceable.
+ .
+ If Recipient institutes patent litigation against a Contributor with respect to
+ a patent applicable to software (including a cross-claim or counterclaim in a
+ lawsuit), then any patent licenses granted by that Contributor to such
+ Recipient under this Agreement shall terminate as of the date such litigation
+ is filed. In addition, if Recipient institutes patent litigation against any
+ entity (including a cross-claim or counterclaim in a lawsuit) alleging that the
+ Program itself (excluding combinations of the Program with other software or
+ hardware) infringes such Recipient's patent(s), then such Recipient's rights
+ granted under Section 2(b) shall terminate as of the date such litigation is
+ filed.
+ .
+ All Recipient's rights under this Agreement shall terminate if it fails to
+ comply with any of the material terms or conditions of this Agreement and does
+ not cure such failure in a reasonable period of time after becoming aware of
+ such noncompliance. If all Recipient's rights under this Agreement terminate,
+ Recipient agrees to cease use and distribution of the Program as soon as
+ reasonably practicable. However, Recipient's obligations under this Agreement
+ and any licenses granted by Recipient relating to the Program shall continue
+ and survive.
+ .
+ Everyone is permitted to copy and distribute copies of this Agreement, but in
+ order to avoid inconsistency the Agreement is copyrighted and may only be
+ modified in the following manner. The Agreement Steward reserves the right to
+ publish new versions (including revisions) of this Agreement from time to time.
+ No one other than the Agreement Steward has the right to modify this Agreement.
+ IBM is the initial Agreement Steward. IBM may assign the responsibility to
+ serve as the Agreement Steward to a suitable separate entity. Each new version
+ of the Agreement will be given a distinguishing version number. The Program
+ (including Contributions) may always be distributed subject to the version of
+ the Agreement under which it was received. In addition, after a new version of
+ the Agreement is published, Contributor may elect to distribute the Program
+ (including its Contributions) under the new version. Except as expressly stated
+ in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+ the intellectual property of any Contributor under this Agreement, whether
+ expressly, by implication, estoppel or otherwise. All rights in the Program not
+ expressly granted under this Agreement are reserved.
+ .
+ This Agreement is governed by the laws of the State of New York and the
+ intellectual property laws of the United States of America. No party to this
+ Agreement will bring a legal action under this Agreement more than one year
+ after the cause of action arose. Each party waives its rights to a jury trial
+ in any resulting litigation.
=====================================
debian/grape.1
=====================================
@@ -0,0 +1,53 @@
+.TH grape "1" "July 2009"
+.SH NAME
+grape \- inspection and management of the local grape cache used by Groovy
+.SH DESCRIPTION
+usage: grape [options] <command> [args]
+options:
+.TP
+\fB\-D\fR,\-\-define <name=value>
+define a system property
+.TP
+\fB\-d\fR,\-\-debug
+debug log level 4 will print out full stack traces
+.TP
+\fB\-h\fR,\-\-help
+usage information
+.TP
+\fB\-i\fR,\-\-info
+info log level 2 will print out information
+.TP
+\fB\-q\fR,\-\-quiet
+quiet log level 0 will print only errors
+.TP
+\fB\-v\fR,\-\-version
+display the Groovy and JVM versions
+.TP
+\fB\-V\fR,\-\-verbose
+verbose log level 3 will print verbose logs
+.TP
+\fB\-w\fR,\-\-warn
+warn log level 1 will print only errors and warnings
+.SH COMMANDS
+.TP
+\fBinstall\fR <groupId> <artifactId> [<version>]:
+This installs the specified groovy module or maven artifact.
+If a version is specified that specific version will be installed,
+otherwise the most recent version will be used (as if '*' we passed in).
+.TP
+\fBlist\fR:
+Lists locally installed modules (with their full maven name in the case of
+groovy modules) and versions.
+.TP
+\fBresolve\fR (<groupId> <artifactId> <version>)+:
+This returns the file locations of the jars representing the artifcats for
+the specified module(s) and the respective transitive dependencies.
+You may optionally pass in \-ant, \-dos, or \-shell to get the dependencies
+expressed in a format applicable for an ant script, windows batch file, or
+unix shell script respectively.
+.SH "SEE ALSO"
+.BR groovy (1)
+.SH AUTHOR
+This manual page was generated using help2man and edited by Ludovic
+Claude <ludovic.claude at laposte.net>, for the Debian project (but may
+be used by others).
=====================================
debian/groovy-doc.doc-base.1
=====================================
@@ -0,0 +1,11 @@
+Document: groovy-doc1
+Title: Java API Documentation for Groovy
+Author: Groovy Development Team (dev at groovy.codehaus.org)
+Abstract: This manual is the Java API documentation for Groovy.
+ It contains the Groovy API extensions added to default Java types
+ and the Groovy runtime.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/groovy/api/index.html
+Files: /usr/share/doc/groovy/api/*
=====================================
debian/groovy-doc.doc-base.2
=====================================
@@ -0,0 +1,9 @@
+Document: groovy-doc2
+Title: Groovy API Documentation for Groovy developers
+Author: Groovy Development Team (dev at groovy.codehaus.org)
+Abstract: This manual is the Groovy API documentation for Groovy developers.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/groovy/gapi/index.html
+Files: /usr/share/doc/groovy/gapi/*
=====================================
debian/groovy-doc.install
=====================================
@@ -0,0 +1,2 @@
+target/distributions/doc/groovy-*/html/api /usr/share/doc/groovy
+target/distributions/doc/groovy-*/html/gapi /usr/share/doc/groovy
=====================================
debian/groovy-doc.lintian-overrides
=====================================
=====================================
debian/groovy.1
=====================================
@@ -0,0 +1,66 @@
+.TH GROOVY "1" "December 2007"
+.SH NAME
+Groovy \- Agile dynamic language for the Java Virtual Machine
+.SH DESCRIPTION
+usage: groovy [options] [args]
+options:
+.TP
+\fB\-D\fR,\-\-define <name=value>
+define a system property
+.TP
+\fB\-a\fR,\-\-autosplit <splitPattern>
+automatically split current line (defaults to
+\&'\es')
+.TP
+\fB\-c\fR,\-\-encoding <charset>
+specify the encoding of the files
+.TP
+\fB\-d\fR,\-\-debug
+debug mode will print out full stack traces
+.TP
+\fB\-e\fR <script>
+specify a command line script
+.TP
+\fB\-h\fR,\-\-help
+usage information
+.TP
+\fB\-i\fR <extension>
+modify files in place, create backup if
+extension is given (e.g. '.bak')
+.TP
+\fB\-l\fR <port>
+listen on a port and process inbound lines
+.TP
+\fB\-n\fR
+process files line by line
+.TP
+\fB\-p\fR
+process files line by line and print result
+.TP
+\fB\-v\fR,\-\-version
+display the Groovy and JVM versions
+.SH COMMANDS
+.TP
+\fBgroovy\fR:
+Command to run a set of Groovy statements entered on the command
+line (with \-e), or stored in a text file whose name is given on the
+command.
+
+example: groovy \-e 'System.in.readLines().each { println it }'
+.TP
+\fBgroovysh\fR:
+Terminal-based interpreter for Groovy.
+.TP
+\fBgroovyConsole\fR:
+GUI interpreter for composing Groovy interactively.
+.TP
+\fBjava2groovy\fR:
+The java2groovy tool reads class and interface definitions, written in
+the Java programming language, and converts them into groovy source
+files.
+.SH "SEE ALSO"
+.BR groovyc (1)
+.SH AUTHOR
+This manual page was generated using help2man and edited by Varun
+Hiremath <varun at debian.org>, for the Debian project (but may be used
+by others).
=====================================
debian/groovy.install
=====================================
@@ -0,0 +1,12 @@
+subprojects/groovy-console/src/main/resources/groovy/ui/ConsoleIcon.png /usr/share/icons/hicolor/48x48/apps/
+target/distributions/bin/groovy-*/bin/grape /usr/share/groovy/bin
+target/distributions/bin/groovy-*/bin/groovy /usr/share/groovy/bin
+target/distributions/bin/groovy-*/bin/groovyConsole /usr/share/groovy/bin
+target/distributions/bin/groovy-*/bin/groovyc /usr/share/groovy/bin
+target/distributions/bin/groovy-*/bin/groovydoc /usr/share/groovy/bin
+target/distributions/bin/groovy-*/bin/groovysh /usr/share/groovy/bin
+target/distributions/bin/groovy-*/bin/java2groovy /usr/share/groovy/bin
+target/distributions/bin/groovy-*/bin/startGroovy /usr/share/groovy/bin
+target/distributions/bin/groovy-*/conf/* /etc/groovy
+target/distributions/bin/groovy-*/indy /usr/share/groovy
+debian/groovyConsole.desktop /usr/share/applications
=====================================
debian/groovy.links
=====================================
@@ -0,0 +1,29 @@
+/etc/groovy /usr/share/groovy/conf
+/usr/share/groovy/man/man1/groovy.1.gz /usr/share/groovy/man/man1/groovyConsole.1.gz
+/usr/share/groovy/man/man1/groovy.1.gz /usr/share/groovy/man/man1/groovydoc.1.gz
+/usr/share/groovy/man/man1/groovy.1.gz /usr/share/groovy/man/man1/groovysh.1.gz
+/usr/share/groovy/man/man1/groovy.1.gz /usr/share/groovy/man/man1/java2groovy.1.gz
+/usr/share/groovy/man/man1/groovy.1.gz /usr/share/groovy/man/man1/startGroovy.1.gz
+/usr/share/java/ant-antlr.jar /usr/share/groovy/lib/ant-antlr.jar
+/usr/share/java/ant-junit.jar /usr/share/groovy/lib/ant-junit.jar
+/usr/share/java/ant-launcher.jar /usr/share/groovy/lib/ant-launcher.jar
+/usr/share/java/ant.jar /usr/share/groovy/lib/ant.jar
+/usr/share/java/antlr.jar /usr/share/groovy/lib/antlr.jar
+/usr/share/java/asm-analysis.jar /usr/share/groovy/lib/asm-analysis.jar
+/usr/share/java/asm-commons.jar /usr/share/groovy/lib/asm-commons.jar
+/usr/share/java/asm-tree.jar /usr/share/groovy/lib/asm-tree.jar
+/usr/share/java/asm-util.jar /usr/share/groovy/lib/asm-util.jar
+/usr/share/java/asm.jar /usr/share/groovy/lib/asm.jar
+/usr/share/java/bsf.jar /usr/share/groovy/lib/bsf.jar
+/usr/share/java/commons-cli.jar /usr/share/groovy/lib/commons-cli.jar
+/usr/share/java/commons-logging.jar /usr/share/groovy/lib/commons-logging.jar
+/usr/share/java/hamcrest-core.jar /usr/share/groovy/lib/hamcrest-core.jar
+/usr/share/java/ivy.jar /usr/share/groovy/lib/ivy.jar
+/usr/share/java/jansi.jar /usr/share/groovy/lib/jansi.jar
+/usr/share/java/jcommander.jar /usr/share/groovy/lib/jcommander.jar
+/usr/share/java/jline2.jar /usr/share/groovy/lib/jline2.jar
+/usr/share/java/jsp-api.jar /usr/share/groovy/lib/jsp-api.jar
+/usr/share/java/junit4.jar /usr/share/groovy/lib/junit4.jar
+/usr/share/java/qdox.jar /usr/share/groovy/lib/qdox.jar
+/usr/share/java/servlet-api.jar /usr/share/groovy/lib/servlet-api.jar
+/usr/share/java/xstream.jar /usr/share/groovy/lib/xstream.jar
=====================================
debian/groovy.manpages
=====================================
@@ -0,0 +1,3 @@
+debian/grape.1
+debian/groovy.1
+debian/groovyc.1
=====================================
debian/groovy.postinst
=====================================
@@ -0,0 +1,28 @@
+#!/bin/sh
+set -e
+
+GROOVY_HOME=/usr/share/groovy
+MANDIR=/usr/share/man
+PRIORITY=20
+
+add_groovy_alternative() {
+ if [ x"" != "x$3" ]; then
+ update-alternatives --install /usr/bin/$1 $1 $GROOVY_HOME/bin/$1 $2 \
+ --slave $MANDIR/man1/$3.1.gz $1.1.gz $GROOVY_HOME/man/man1/$3.1.gz
+ else
+ update-alternatives --install /usr/bin/$1 $1 $GROOVY_HOME/bin/$1 $2
+ fi
+}
+
+for cmd in groovy groovyc grape; do
+ add_groovy_alternative $cmd $PRIORITY $cmd
+done
+
+# these commands don't have a proper manpage
+for cmd in startGroovy groovysh java2groovy groovyConsole groovydoc; do
+ add_groovy_alternative $cmd $PRIORITY
+done
+
+#DEBHELPER#
+
+exit 0
=====================================
debian/groovy.prerm
=====================================
@@ -0,0 +1,35 @@
+#!/bin/sh
+set -e
+
+GROOVY_HOME=/usr/share/groovy
+
+remove_groovy_alternatives() {
+ for cmd in groovy groovyc grape \
+ startGroovy groovysh java2groovy groovyConsole groovydoc; do
+ if [ -f "$GROOVY_HOME/bin/$cmd" ]; then
+ update-alternatives --verbose --remove $cmd $GROOVY_HOME/bin/$cmd
+ fi
+ done
+}
+
+
+
+case "$1" in
+ # only remove in remove/deconfigure so we don't disrupt users' preferences
+ remove|deconfigure)
+ remove_groovy_alternatives
+ ;;
+
+ upgrade|failed-upgrade)
+ ;;
+
+ *)
+ echo "prerm called with unknown argument \`$1'" >&2
+ exit 0
+ ;;
+esac
+
+
+#DEBHELPER#
+
+exit 0
=====================================
debian/groovyConsole.desktop
=====================================
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Groovy Console
+Icon=ConsoleIcon
+Type=Application
+Exec=/usr/bin/groovyConsole
+Terminal=false
+Comment=Groovy Script Console
+NoDisplay=false
+Categories=Development;IDE
+Name[en]=Groovy Script Console
\ No newline at end of file
=====================================
debian/groovyc.1
=====================================
@@ -0,0 +1,73 @@
+.TH groovyc "1" "December 2007"
+.SH NAME
+groovyc \- compiler for groovy source files
+.SH DESCRIPTION
+usage: groovyc [options] <source-files>
+options:
+.TP
+\fB\-\-classpath\fR <path>
+Specify where to find the class files.
+.TP
+\fB\-d\fR <arg>
+Specify where to place generated class files.
+.TP
+\fB\-e\fR,\-\-exception
+Print stack trace on error.
+.TP
+\fB\-\-encoding\fR <encoding>
+Specify the encoding of the user class files.
+.HP
+\fB\-F\fR <flag>
+.TP
+\fB\-h\fR,\-\-help
+Print a synopsis of standard options.
+.TP
+\fB\-j\fR,\-\-jointCompilation
+Attach javac compiler to compile .java files.
+.HP
+\fB\-J\fR <property=value>
+.TP
+\fB\-\-sourcepath\fR <path>
+Specify where to find the source files.
+.HP
+\fB\-\-temp\fR <temp>
+.TP
+\fB\-v\fR,\-\-version
+Print the version.
+.SS "options:"
+.TP
+\fB\-\-classpath\fR <path>
+Specify where to find the class files.
+.TP
+\fB\-d\fR <arg>
+Specify where to place generated class files.
+.TP
+\fB\-e\fR,\-\-exception
+Print stack trace on error.
+.TP
+\fB\-\-encoding\fR <encoding>
+Specify the encoding of the user class files.
+.HP
+\fB\-F\fR <flag>
+.TP
+\fB\-h\fR,\-\-help
+Print a synopsis of standard options.
+.TP
+\fB\-j\fR,\-\-jointCompilation
+Attach javac compiler to compile .java files.
+.HP
+\fB\-J\fR <property=value>
+.TP
+\fB\-\-sourcepath\fR <path>
+Specify where to find the source files.
+.HP
+\fB\-\-temp\fR <temp>
+.TP
+\fB\-v\fR,\-\-version
+Print the version.
+.SH "SEE ALSO"
+.BR groovy (1)
+.SH AUTHOR
+This manual page was generated using help2man and edited by Varun
+Hiremath <varun at debian.org>, for the Debian project (but may be used
+by others).
=====================================
debian/maven.ignoreRules
=====================================
@@ -0,0 +1,3 @@
+
+net.javacrumbs.json-unit json-unit * * * *
+me.champeau.openbeans openbeans * * * *
=====================================
debian/maven.rules
=====================================
@@ -0,0 +1,4 @@
+
+antlr antlr * s/2\..*/2.x/ * *
+s/com.tunnelvisionlabs/org.antlr/ s/antlr4/antlr4-runtime/ * s/.*/debian/ * *
+s/com.tunnelvisionlabs/org.antlr/ antlr4-runtime * s/.*/debian/ * *
=====================================
debian/patches/02_fix_start_script.diff
=====================================
@@ -0,0 +1,26 @@
+Description: Add missing environment variables to startGroovy script
+Author: Miguel Landaeta <nomadium at debian.org>
+Forwarded: no
+Last-Update: 2013-10-27
+
+--- a/src/bin/startGroovy
++++ b/src/bin/startGroovy
+@@ -29,6 +29,9 @@
+
+ SCRIPT_PATH="$0"
+
++: ${JAVA_HOME:="/usr/lib/jvm/default-java"}
++: ${GROOVY_HOME:="/usr/share/groovy"}
++
+ # Use the maximum available, or set MAX_FD != -1 to use that value.
+ MAX_FD="maximum"
+
+@@ -100,7 +103,7 @@
+ [ -z "$JAVA_HOME" ] && [ -d "/Library/Java/Home" ] && JAVA_HOME="/Library/Java/Home"
+ [ -z "$JAVA_HOME" ] && [ -d "/System/Library/Frameworks/JavaVM.framework/Home" ] && JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
+ else
+- javaExecutable="$(which javac)"
++ javaExecutable="$(which java)"
+ [ -z "$javaExecutable" ] || [ "$(expr "$javaExecutable" : '\([^ ]*\)')" = "no" ] && die "JAVA_HOME not set and cannot find javac to deduce location, please set JAVA_HOME."
+ # readlink(1) is not available as standard on Solaris 10.
+ readLink="$(which readlink)"
=====================================
debian/patches/07_servlet_api_compatibility.patch
=====================================
@@ -0,0 +1,26 @@
+Description: Fixes the compatibility with the latest version of the Servlet API in Debian
+Author: Emmanuel Bourg <ebourg at apache.org>
+Forwarded: no
+--- a/subprojects/groovy-servlet/src/main/java/groovy/servlet/ServletBinding.java
++++ b/subprojects/groovy-servlet/src/main/java/groovy/servlet/ServletBinding.java
+@@ -166,6 +166,20 @@
+ public void write(byte[] b, int off, int len) throws IOException {
+ getResponseStream().write(b, off, len);
+ }
++ public void setWriteListener(javax.servlet.WriteListener listener) {
++ try {
++ getResponseStream().setWriteListener(listener);
++ } catch (IOException e) {
++ throw new RuntimeException(e);
++ }
++ }
++ public boolean isReady() {
++ try {
++ return getResponseStream().isReady();
++ } catch (IOException e) {
++ throw new RuntimeException(e);
++ }
++ }
+ };
+ }
+ private PrintWriter getResponseWriter() {
=====================================
debian/patches/08_GROOVY-8163.patch
=====================================
@@ -0,0 +1,26 @@
+From 0305a38a0cc8f4190a1486c460ebc6f712ad1a07 Mon Sep 17 00:00:00 2001
+From: Dimitry Polivaev <dpolivaev at gmx.de>
+Date: Sat, 3 Jun 2017 20:03:18 +0200
+Subject: [PATCH] GROOVY-8163: Prevent CachedField and CachedMethod from
+ leaking access permissions (closes #532)
+
+--- a/src/main/java/groovy/lang/MetaClassImpl.java
++++ b/src/main/java/groovy/lang/MetaClassImpl.java
+@@ -26,6 +26,7 @@
+ import org.codehaus.groovy.classgen.asm.BytecodeHelper;
+ import org.codehaus.groovy.control.CompilationUnit;
+ import org.codehaus.groovy.control.Phases;
++import org.codehaus.groovy.reflection.CacheAccessControlException;
+ import org.codehaus.groovy.reflection.CachedClass;
+ import org.codehaus.groovy.reflection.CachedConstructor;
+ import org.codehaus.groovy.reflection.CachedField;
+@@ -1887,6 +1888,9 @@
+ } catch (GroovyRuntimeException e) {
+ // can't access the field directly but there may be a getter
+ mp = null;
++ } catch (CacheAccessControlException e) {
++ // can't access the field directly but there may be a getter
++ mp = null;
+ }
+ }
+
=====================================
debian/patches/09_ignore_buildscan.patch
=====================================
@@ -0,0 +1,25 @@
+Description: Ignore the buildscan plugin
+Author: Emmanuel Bourg <ebourg at apache.org>
+Forwarded: not-needed
+--- a/build.gradle
++++ b/build.gradle
+@@ -44,19 +44,12 @@
+ }
+
+ plugins {
+- id 'me.champeau.buildscan-recipes' version '0.2.3'
+ id 'com.github.spotbugs' version '4.6.0'
+ id 'com.github.ben-manes.versions' version '0.42.0' // 0.43 requires gradle 7+
+ id 'com.github.blindpirate.osgi' version '0.0.6'
+ id 'org.sonarqube' version '3.0'
+ }
+
+-buildScanRecipes {
+- recipe 'git-commit', baseUrl: 'https://github.com/apache/groovy/tree'
+- recipe 'teamcity', baseUrl: 'https://ci.groovy-lang.org', guest: 'true'
+- recipes 'git-status', 'gc-stats', 'teamcity', 'travis-ci'
+-}
+-
+ ext.modules = {
+ subprojects.findAll{ !['performance', 'binary-compatibility'].contains(it.name) }
+ }
=====================================
debian/patches/build.patch
=====================================
@@ -0,0 +1,430 @@
+--- a/build.gradle
++++ b/build.gradle
+@@ -18,36 +18,8 @@
+ */
+ import org.codehaus.groovy.gradle.ReleaseInfoGenerator
+
+-buildscript {
+- repositories {
+- if (rootProject.hasProperty('buildInChina')) {
+- // Try to use Aliyun maven repository when building in China
+- maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
+- }
+- mavenCentral()
+- maven { url 'https://plugins.gradle.org/m2/' }
+- // uncomment next repo if jcenter isn't available
+- // we have some build components mirrored there
+-// maven { url 'https://groovy.jfrog.io/artifactory/libs-release-local/' }
+- maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
+- maven { url 'https://jitpack.io' }
+- }
+-
+- dependencies {
+- // using the old "classpath" style of plugins because the new one doesn't play well with multi-modules
+- classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.8'
+- classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:3.0.3'
+- //classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0'
+- classpath 'org.nosphere.apache:creadur-rat-gradle:0.8.0'
+- classpath 'gradle.plugin.com.github.jk1:gradle-license-report:1.3'
+- }
+-}
+-
+ plugins {
+- id 'com.github.spotbugs' version '4.6.0'
+- id 'com.github.ben-manes.versions' version '0.42.0' // 0.43 requires gradle 7+
+- id 'com.github.blindpirate.osgi' version '0.0.6'
+- id 'org.sonarqube' version '3.0'
++ id 'java'
+ }
+
+ ext.modules = {
+@@ -55,10 +27,6 @@
+ }
+ ext.isReleaseVersion = !groovyVersion.toLowerCase().endsWith('snapshot')
+
+-apply from: 'gradle/bad-practices.gradle'
+-apply from: 'gradle/publish.gradle'
+-apply plugin: 'com.github.jk1.dependency-license-report'
+-
+ File javaHome = new File(System.getProperty('java.home'))
+ logger.lifecycle "Using Java from $javaHome (version ${System.getProperty('java.version')})"
+
+@@ -91,12 +59,6 @@
+ }
+
+ apply plugin: 'groovy'
+- apply from: "${rootProject.projectDir}/gradle/indy.gradle"
+- apply from: "${rootProject.projectDir}/gradle/asciidoctor.gradle"
+-
+- tasks.withType(org.asciidoctor.gradle.AsciidoctorTask) {
+- outputs.cacheIf { true }
+- }
+ }
+
+ clean.doFirst {
+@@ -109,11 +71,6 @@
+ .include('**/*.txt', '**/*.xml', '**/*.properties', '**/*.png', '**/*.html', '**/*.gif', '**/*.ico', '**/*.css')
+ test.dependsOn(copyTestResources)
+
+-repositories {
+- // TODO: Some repos are needed only for some configs. Declare them just for the configuration once Gradle allows this.
+- maven { url 'https://repository.jboss.org/nexus/content/groups/m2-release-proxy' } // tools
+-}
+-
+ configurations {
+ compilerCompile
+ tools
+@@ -193,14 +150,6 @@
+ testImplementation "org.slf4j:jcl-over-slf4j:$slf4jVersion"
+ testImplementation "com.thoughtworks.qdox:qdox:$qdoxVersion"
+
+- tools "org.pantsbuild:jarjar:$jarjarVersion"
+- tools "org.jboss.bridger:bridger:$bridgerVersion"
+-
+- tools("net.sourceforge.cobertura:cobertura:$coberturaVersion") {
+- exclude(module: 'asm')
+- exclude(module: 'asm')
+- exclude(module: 'ant')
+- }
+ tools "org.ow2.asm:asm:$asmVersion"
+ tools "com.thoughtworks.qdox:qdox:$qdoxVersion"
+
+@@ -211,8 +160,6 @@
+ testImplementation project(':groovy-dateutil')
+ testImplementation project(':groovy-test')
+ testImplementation project(':groovy-macro')
+- spotbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.12.0'
+- testImplementation "net.jcip:jcip-annotations:$jcipAnnotationsVersion"
+ }
+
+ ext.generatedDirectory = "${buildDir}/generated/sources"
+@@ -359,10 +306,6 @@
+ }
+
+ allprojects {
+- dependencies {
+- compileOnly "com.github.spotbugs:spotbugs-annotations:$spotbugsAnnotationsVersion"
+- }
+-
+ tasks.withType(AbstractCopyTask) { t ->
+ duplicatesStrategy = t.name.contains('TestResources') ? DuplicatesStrategy.INCLUDE : DuplicatesStrategy.EXCLUDE
+ }
+@@ -377,17 +320,6 @@
+ }
+ }
+
+- if (rootProject.indyCapable()) {
+- task compileGroovyWithIndy(type: GroovyCompile) {
+- source = sourceSets.main.groovy
+- classpath = compileGroovy.classpath
+- sourceCompatibility = 1.8
+- targetCompatibility = 1.8
+- groovyOptions.optimizationOptions['indy'] = true
+- destinationDir = file("$buildDir/classes/indy")
+- }
+- }
+-
+ tasks.withType(GroovyCompile) {
+ groovyOptions.forkOptions.jvmArgs += ['-Dgroovy.antlr4.cache.threshold=100']
+ groovyOptions.fork(memoryMaximumSize: groovycMain_mx)
+@@ -400,8 +332,6 @@
+
+ // TODO: this null check was required after adding JMH plugin to performance project
+ classpath = (classpath != null) ? classpath + groovyClasspath : groovyClasspath
+- }.configureEach {
+- options.incremental = true
+ }
+ }
+
+@@ -423,71 +353,3 @@
+ *********************************************************************************************
+ '''
+ }
+-
+-// Workaround to be able to access SpotBugsTask from external gradle script.
+-// More info: https://discuss.gradle.org/t/buildscript-dependencies-in-external-script/23243
+-project.extensions.extraProperties.set('SpotBugsTask', com.github.spotbugs.snom.SpotBugsTask)
+-
+-apply from: 'gradle/test.gradle'
+-apply from: 'gradle/groovydoc.gradle'
+-apply from: 'gradle/docs.gradle'
+-apply from: 'gradle/assemble.gradle'
+-apply from: 'gradle/upload.gradle'
+-apply from: 'gradle/idea.gradle'
+-apply from: 'gradle/eclipse.gradle'
+-apply from: 'gradle/quality.gradle'
+-apply from: 'gradle/parallel-build-fixes.gradle'
+-
+-// If a local configuration file for tweaking the build is present, apply it
+-if (file('user.gradle').exists()) {
+- apply from: 'user.gradle'
+-}
+-
+-apply from: 'gradle/signing.gradle'
+-
+-licenseReport {
+- excludeGroups = [
+- 'com.googlecode', // openbeans has no pom but is ASLv2
+- 'org.multiverse' // we never include this optional dependency of an optional dependency
+- ]
+-}
+-
+-// UNCOMMENT THE FOLLOWING TASKS IF YOU WANT TO RUN LICENSE CHECKING
+-//task licenseFormatCustom(type:nl.javadude.gradle.plugins.license.License) {
+-// source = fileTree(dir:'src').include ('**/*.java','**/*.groovy','**/*.html','**/*.css','**/*.xml','**/*.properties','**/*.properties')
+-//}
+-//
+-//task licenseFormatGradle(type:nl.javadude.gradle.plugins.license.License) {
+-// source = files(fileTree(dir:projectDir).include('**/*.gradle'),fileTree('buildSrc').include('**/*.groovy'))
+-//}
+-//
+-//licenseFormat.dependsOn licenseFormatCustom
+-//licenseFormat.dependsOn licenseFormatGradle
+-//
+-
+-def checkRepo(repo) {
+- if (repo instanceof MavenArtifactRepository) {
+- def repoUrl = repo.url.toString()
+- if (repoUrl.startsWith('http://')) {
+- throw new GradleException("Build should not use insecure HTTP-based URLs for repositories. Found: $repoUrl")
+- }
+- }
+-}
+-
+-project.afterEvaluate {
+- allprojects.repositories.each { handler ->
+- handler.each { checkRepo(it) }
+- }
+- buildscript.repositories.each { handler ->
+- handler.each { checkRepo(it) }
+- }
+-}
+-
+-def UNSTABLE = /^([\d.-]+(alpha|beta|rc|ea|b|m)[\d.-]+(groovy[\d.-]+)?|2.4.0-b[\d.]+|200\d{5}(\.\d{6})?|2004-03-19)$/
+-// ignore non-stable releases
+-tasks.named('dependencyUpdates')?.configure {
+- gradleReleaseChannel = 'current'
+- rejectVersionIf {
+- !(it.currentVersion.toLowerCase() ==~ UNSTABLE) && it.candidate.version.toLowerCase() ==~ UNSTABLE
+- }
+-}
+--- a/settings.gradle
++++ b/settings.gradle
+@@ -18,17 +18,6 @@
+ */
+ import org.gradle.util.GradleVersion
+
+-plugins {
+- id "com.gradle.enterprise" version "3.1.1"
+-}
+-
+-gradleEnterprise {
+- buildScan {
+- termsOfServiceUrl = 'https://gradle.com/terms-of-service'
+- apply from: 'gradle/build-scans.gradle'
+- }
+-}
+-
+ def subprojects = ['groovy-ant',
+ 'groovy-astbuilder',
+ 'groovy-bsf',
+@@ -54,8 +43,7 @@
+ 'groovy-test-junit5',
+ 'groovy-testng',
+ 'groovy-xml',
+- 'groovy-yaml',
+- 'performance'
++ 'groovy-yaml'
+ ]
+
+ if (hasProperty('stressTests')) {
+@@ -69,9 +57,3 @@
+ }
+
+ rootProject.name = 'groovy'
+-
+-GradleVersion gradleVersion = GradleVersion.current()
+-GradleVersion gradle5_6 = GradleVersion.version('5.6')
+-if (gradleVersion >= gradle5_6) {
+- enableFeaturePreview('GROOVY_COMPILATION_AVOIDANCE')
+-}
+--- a/subprojects/groovy-ant/build.gradle
++++ b/subprojects/groovy-ant/build.gradle
+@@ -35,5 +35,3 @@
+ testImplementation project(':groovy-test')
+ testImplementation project(':groovy-xml')
+ }
+-
+-apply from: "${rootProject.projectDir}/gradle/jacoco/jacocofix.gradle"
+\ No newline at end of file
+--- a/subprojects/groovy-console/build.gradle
++++ b/subprojects/groovy-console/build.gradle
+@@ -32,12 +32,3 @@
+ main = 'groovy.console.ui.Console'
+ classpath = sourceSets.main.runtimeClasspath
+ }
+-
+-compileGroovy {
+- doLast {
+- ant.java(classname:'org.jboss.bridger.Bridger', classpath: rootProject.configurations.tools.asPath, outputproperty: 'stdout') {
+- arg(value: "${sourceSets.main.groovy.outputDir.canonicalPath}/groovy/ui/Console.class")
+- }
+- ant.echo('Bridger (groovy-console): ' + ant.properties.stdout)
+- }
+-}
+--- a/subprojects/groovy-swing/build.gradle
++++ b/subprojects/groovy-swing/build.gradle
+@@ -25,5 +25,3 @@
+ extensionClasses = 'org.apache.groovy.swing.extensions.SwingExtensions'
+ }
+ compileJava.dependsOn moduleDescriptor
+-
+-apply from: "${rootProject.projectDir}/gradle/jacoco/jacocofix.gradle"
+\ No newline at end of file
+--- a/subprojects/groovy-test/build.gradle
++++ b/subprojects/groovy-test/build.gradle
+@@ -27,9 +27,3 @@
+ testRuntimeOnly "org.apache.ant:ant:$antVersion"
+ testRuntimeOnly "org.apache.ant:ant-launcher:$antVersion"
+ }
+-
+-eclipse.classpath.file.whenMerged {
+- entries.removeAll { entry -> entry.path == '/groovy-ant' }
+-}
+-
+-apply from: "${rootProject.projectDir}/gradle/jacoco/jacocofix.gradle"
+--- a/subprojects/groovy-docgenerator/build.gradle
++++ b/subprojects/groovy-docgenerator/build.gradle
+@@ -22,7 +22,3 @@
+ testImplementation project(':groovy-test')
+ implementation "com.thoughtworks.qdox:qdox:$qdoxVersion"
+ }
+-
+-eclipse.classpath.file.whenMerged {
+- entries.removeAll { entry -> entry.path == '/groovy-xml' }
+-}
+--- a/subprojects/groovy-groovydoc/build.gradle
++++ b/subprojects/groovy-groovydoc/build.gradle
+@@ -32,7 +32,3 @@
+ mkdir "$sourceSets.main.java.outputDir/META-INF"
+ }
+ }
+-
+-eclipse.classpath.file.whenMerged {
+- entries.removeAll { entry -> entry.path == '/groovy-xml' }
+-}
+--- a/subprojects/groovy-groovysh/build.gradle
++++ b/subprojects/groovy-groovysh/build.gradle
+@@ -26,7 +26,3 @@
+ exclude(group: 'junit', module: 'junit')
+ }
+ }
+-
+-eclipse.classpath.file.whenMerged {
+- entries.removeAll { entry -> entry.path in ['/groovy-xml', '/groovy-swing', '/groovy-templates'] }
+-}
+--- a/subprojects/groovy-json/build.gradle
++++ b/subprojects/groovy-json/build.gradle
+@@ -25,14 +25,3 @@
+ testRuntimeOnly "org.slf4j:slf4j-api:$slf4jVersion"
+ testRuntimeOnly project(':groovy-ant') // for JavadocAssertionTests
+ }
+-
+-eclipse.classpath.file.whenMerged {
+- entries.removeAll { entry -> entry.path in ['/groovy-ant', '/groovy-groovydoc'] }
+-}
+-
+-tasks.named('rat') {
+- excludes += [
+- // test file
+- 'src/test/resources/groovy9802.json'
+- ]
+-}
+--- a/subprojects/groovy-yaml/build.gradle
++++ b/subprojects/groovy-yaml/build.gradle
+@@ -30,7 +30,3 @@
+ testRuntimeOnly "com.fasterxml.jackson.core:jackson-annotations:$jacksonVersion"
+ testRuntimeOnly project(':groovy-ant') // for JavadocAssertionTests
+ }
+-
+-eclipse.classpath.file.whenMerged {
+- entries.removeAll { entry -> entry.path in ['/groovy-ant', '/groovy-groovydoc'] }
+-}
+--- a/subprojects/groovy-nio/build.gradle
++++ b/subprojects/groovy-nio/build.gradle
+@@ -29,8 +29,4 @@
+ extensionClasses = 'org.apache.groovy.nio.extensions.NioExtensions'
+ }
+
+-test {
+- useJUnitPlatform()
+-}
+-
+ compileJava.dependsOn moduleDescriptor
+--- a/subprojects/groovy-templates/build.gradle
++++ b/subprojects/groovy-templates/build.gradle
+@@ -24,13 +24,7 @@
+ testImplementation("org.spockframework:spock-core:$spockVersion") {
+ exclude group: 'org.codehaus.groovy'
+ }
+- testRuntimeOnly("org.junit.vintage:junit-vintage-engine:$junit5Version") {
+- because 'for JUnit 3/4 tests as well as JUnit 5'
+- }
+-}
+-
+-test {
+- useJUnitPlatform()
++ testRuntimeOnly("org.junit.vintage:junit-vintage-engine:$junit5Version")
+ }
+
+ task backportJar(type:Jar) {
+@@ -38,4 +32,4 @@
+ dependsOn classes
+ from sourceSets.main.output
+ include 'groovy/text/markup/**'
+-}
+\ No newline at end of file
++}
+--- a/subprojects/groovy-test-junit5/build.gradle
++++ b/subprojects/groovy-test-junit5/build.gradle
+@@ -39,7 +39,3 @@
+ sourceCompatibility = 1.8
+ targetCompatibility = 1.8
+ }
+-
+-test {
+- useJUnitPlatform()
+-}
+--- a/subprojects/groovy-xml/build.gradle
++++ b/subprojects/groovy-xml/build.gradle
+@@ -24,13 +24,7 @@
+ testImplementation ("org.spockframework:spock-core:$spockVersion") {
+ exclude group: 'org.codehaus.groovy'
+ }
+- testRuntimeOnly("org.junit.vintage:junit-vintage-engine:${junit5Version}") {
+- because 'for JUnit 3/4 tests as well as JUnit 5'
+- }
+-}
+-
+-test {
+- useJUnitPlatform()
++ testRuntimeOnly("org.junit.vintage:junit-vintage-engine:${junit5Version}")
+ }
+
+ task moduleDescriptor(type: org.codehaus.groovy.gradle.WriteExtensionDescriptorTask) {
+--- a/subprojects/groovy-servlet/build.gradle
++++ b/subprojects/groovy-servlet/build.gradle
+@@ -17,11 +17,8 @@
+ * under the License.
+ */
+ dependencies {
+- api("javax.servlet:javax.servlet-api:$servletApiVersion") { dep ->
+- provided dep
+- }
+- api("javax.servlet.jsp:javax.servlet.jsp-api:$jspApiVersion") { dep ->
+- provided dep
++ api("javax.servlet:javax.servlet-api:$servletApiVersion")
++ api("javax.servlet.jsp:javax.servlet.jsp-api:$jspApiVersion") {
+ exclude(group: 'javax.servlet', module: 'javax.servlet-api')
+ }
+
=====================================
debian/patches/series
=====================================
@@ -0,0 +1,6 @@
+02_fix_start_script.diff
+07_servlet_api_compatibility.patch
+08_GROOVY-8163.patch
+09_ignore_buildscan.patch
+subprojects.patch
+build.patch
=====================================
debian/patches/subprojects.patch
=====================================
@@ -0,0 +1,23 @@
+--- a/build.gradle
++++ b/build.gradle
+@@ -51,7 +51,7 @@
+ }
+
+ ext.modules = {
+- subprojects.findAll{ !['performance', 'binary-compatibility'].contains(it.name) }
++ subprojects.findAll{ !['performance'].contains(it.name) }
+ }
+ ext.isReleaseVersion = !groovyVersion.toLowerCase().endsWith('snapshot')
+
+--- a/settings.gradle
++++ b/settings.gradle
+@@ -55,8 +55,7 @@
+ 'groovy-testng',
+ 'groovy-xml',
+ 'groovy-yaml',
+- 'performance',
+- 'binary-compatibility'
++ 'performance'
+ ]
+
+ if (hasProperty('stressTests')) {
=====================================
debian/rules
=====================================
@@ -0,0 +1,87 @@
+#!/usr/bin/make -f
+
+include /usr/share/dpkg/default.mk
+
+export LC_ALL=C.UTF-8
+
+VERSION := $(shell echo $(DEB_VERSION_UPSTREAM) | sed 's/+dfsg//')
+MAVEN_REPO_URL := https://repo1.maven.org/maven2
+MODULES := docgenerator servlet ant groovydoc xml swing sql jmx test console groovysh json testng jsr223 templates bsf nio
+
+%:
+ dh $@
+
+override_dh_auto_clean:
+ dh_auto_clean
+ find . -wholename .*target/tmp | xargs echo | sed -e 's^target/tmp^target^g' | xargs rm -Rf
+ rm -Rf .java
+ mh_clean
+
+execute_after_dh_auto_build:
+ #dh_auto_build -- --project-prop finalRelease=true dist -x :grooidjar
+ unzip target/distributions/apache-groovy-binary-*.zip -d target/distributions/bin
+ unzip target/distributions/apache-groovy-docs-*.zip -d target/distributions/doc
+ # check if AntBuilder is in groovy-all.jar
+ jar -tf target/libs/groovy-all-$(VERSION).jar | grep AntBuilder
+
+override_dh_auto_install:
+ -rm -f target/libs/groovy-all-*-indy.jar
+ dh_auto_install
+ # embeddable groovy-all jar with indy feature is not installed through maven
+ dh_install \
+ target/distributions/bin/groovy-$(VERSION)/embeddable/groovy-all-$(VERSION)-indy.jar \
+ usr/share/groovy/embeddable
+ # groovy core
+ mh_installpom -o -pgroovy debian/poms/groovy.pom
+ mh_installjar -pgroovy -l debian/poms/groovy.pom target/libs/groovy-$(VERSION).jar
+ # groovy-all
+ mh_installpom -o -pgroovy debian/poms/groovy-all.pom
+ mh_installjar -pgroovy -l debian/poms/groovy-all.pom \
+ target/distributions/bin/groovy-$(VERSION)/embeddable/groovy-all-$(VERSION).jar
+ # all the remaining groovy modules
+ for MOD in $(MODULES); do \
+ mh_installpom -o -pgroovy debian/poms/groovy-$$MOD.pom; \
+ mh_installjar -pgroovy debian/poms/groovy-$$MOD.pom \
+ subprojects/groovy-$$MOD/target/libs/groovy-$$MOD-$(VERSION).jar; \
+ done
+ # check if AntBuilder is still in groovy-all.jar
+ jar -tf debian/groovy/usr/share/java/groovy-all-$(VERSION).jar | grep AntBuilder
+
+override_dh_installman:
+ dh_installman
+ mv debian/groovy/usr/share/man/man1/* debian/groovy/usr/share/groovy/man/man1/
+ rm -rf debian/groovy/usr/share/man
+
+override_dh_install:
+ dh_install
+ # fix zero-byte-file-in-doc-directory lintian warning
+ -rm -f debian/groovy-doc/usr/share/doc/groovy/gapi/groovy.ico
+
+override_dh_compress:
+ dh_compress
+ for cmd in groovy groovyc grape; do \
+ dh_compress usr/share/groovy/man/man1/$$cmd.1; \
+ done
+
+override_dh_link:
+ dh_link
+ dh_link usr/share/java/groovy-all.jar usr/share/groovy/embeddable/groovy-all-$(VERSION).jar
+ dh_link usr/share/java/groovy.jar usr/share/groovy/lib/groovy-$(VERSION).jar
+ for MOD in $(MODULES); do \
+ dh_link usr/share/maven-repo/org/codehaus/groovy/groovy-$$MOD/$(VERSION)/groovy-$$MOD-$(VERSION).jar \
+ usr/share/groovy/lib/groovy-$$MOD.jar; \
+ done
+
+get-orig-pom:
+ test '! -d maven' && mkdir -p maven
+ # groovy core pom
+ curl $(MAVEN_REPO_URL)/org/codehaus/groovy/groovy/$(VERSION)/groovy-$(VERSION).pom \
+ --output debian/poms/groovy.pom
+ # groovy-all pom
+ curl $(MAVEN_REPO_URL)/org/codehaus/groovy/groovy-all/$(VERSION)/groovy-all-$(VERSION).pom \
+ --output debian/poms/groovy-all.pom
+ # all the remaining groovy modules
+ for MOD in $(MODULES); do \
+ curl $(MAVEN_REPO_URL)/org/codehaus/groovy/groovy-$$MOD/$(VERSION)/groovy-$$MOD-$(VERSION).pom \
+ --output debian/poms/groovy-$$MOD.pom; \
+ done
=====================================
debian/source/format
=====================================
@@ -0,0 +1 @@
+3.0 (quilt)
=====================================
debian/upstream/signing-key.asc
=====================================
@@ -0,0 +1,546 @@
+pub 2048R/758AAD6F 2014-01-27
+uid Groovy Operator (Groovy Language Continuous Integration Server) <ci at groovy-lang.org>
+sub 2048R/FB698736 2014-01-27
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.14 (GNU/Linux)
+
+mQENBFLmWO0BCADfxkkFnwj5uOALP07g8yArQpu6zbNr+5dtDvJe8Y51V1leb74U
+Eh4U1IeosCRdKUCg0XlAjDmjrUkG6W/5AMUZM676JVHL5tVG1F+dsKhCrFOZoMHj
++oLOMT7+159maGVlTbp+CarWjp9HWguCVYYAgmP96EZVILG+U7iFzLveEDHmWHyP
+QgZeJPbiiZPEPVDYll821zajCsPj6qse050IIiKfsyveCk4j/eEm2EtBDbQeI8Ul
+Y47TRSBvrtUaUUFe9P6uNoNQmbasyFdD/2yKCoZHCMhAdP4QydflybQdDrF9p7UF
+kCRk+uVIyxXDSn/XMHNhYG09+sy2CoQynF43ABEBAAG0VEdyb292eSBPcGVyYXRv
+ciAoR3Jvb3Z5IExhbmd1YWdlIENvbnRpbnVvdXMgSW50ZWdyYXRpb24gU2VydmVy
+KSA8Y2lAZ3Jvb3Z5LWxhbmcub3JnPokBOAQTAQIAIgUCUuZY7QIbAwYLCQgHAwIG
+FQgCCQoLBBYCAwECHgECF4AACgkQQTIUkHWKrW8MYAf8DeIjjN1MAvzI8n2MW2YD
+PmNQXWQBRsp9aribs0oklp2j662UV14aNYZfq6m87LXeKMeSkN49TPDKH2jkyVtM
+H14ASLvApFZ2CLSCJuFbPA4pzM5XkKwL4eLglApHu5vdvc7W7ZDGBI6enKEX3fBN
+6AHdd/Ev/1WjWUIZ0Uvc5rA+DMOrx48HOcHqjXTaRj4L3vui1trYUJ4alYKtnMX5
+CTcBT1b1KE9d2aE2p0QhB1SWd364GiOXVU6iuEnxwvEzRYqcNfJRm3lVlpASKc+H
+LuQOD7mkY2qVMxZi9nXTtbFugrJbb5FFP7QdWoo5zS6gz0P1acqTxGvJxWtMQhJ4
+FLkBDQRS5ljtAQgA0Wh7L36Agn5UEoNg5kgrm3uzQnd+aBhqwG3647Jytn9SZl+P
+cjnTaLidhW2PB1YlkWnQsuHgb4Fru4s11NgSJI4SjCNzHIGva29yT3zAMYIqQuSJ
+6yuDQhQznpkYGpS9z6FqV75sqhNXf4fBZ+Hwi76lE8eU1FQaktOcDBq1B/Xewm6R
+9EPy9cp2Ph6b0K0yNtNuxUEt0lc09HNlXvnN8fUM4YdPG8dgoNGxUpSYxmfgkT6A
+nnnl0hjHKCNigHpXmhBUjLqG53f12GGqY94JANjVtS7hUlAFUlmHpYzn7Waq5zpI
+60n0JYnjM6TuFRtay1qU6SeKkDMggxcPjXX4+wARAQABiQEfBBgBAgAJBQJS5ljt
+AhsMAAoJEEEyFJB1iq1vAZYIAIzyvdma+vU9m8vrfZ7M2D8a4Udzl3hLYmgQR5Z6
+DypMsBOc650vi60EMazVlDQXZtsvE70N+efkO7HMEKHg5Sa1C7tBbNKpkIB3osIX
+aFVT/0XLs1PAA70kppNipKRS9xraBEV7n1P9thithugcgqgneBNDS9N7nGrrJjYk
+Aj7C8TxuKHB0Y3AliUZ0UU97OSyW+oDFlh7IVuTNPh4eYCwsobBmX1lNZWmC319H
+R/ASDOEt8DZSdJtuWrwtRVmdorBnuAjkcT7uRakpdpESTALYfjjTLQlMpT/rfU7y
+or59oU96nLptJ96PrnnIk10Ps4EOOB/8ssA/jfDQGVY4ZIY=
+=2nTE
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub 4096R/27AF6B66 2014-10-09
+uid Cédric Champeau <cedric at gradle.com>
+uid Cédric Champeau <cedric.champeau at gmail.com>
+uid keybase.io/melix <melix at keybase.io>
+uid Cédric Champeau <cchampeau at apache.org>
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1
+
+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
+/0mNqbsFVLglZ39sVHBnlpHeq7E=
+=0jVV
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub 4096R/0FB1CD0B 2016-10-23
+uid Paul King <paulk at apache.org>
+uid Paul King <paulk at asert.com.au>
+uid Paul King <paul.king.asert at gmail.com>
+uid Paul King <kingp at ociweb.com>
+uid keybase.io/paulk_asert <paulk_asert at keybase.io>
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v2
+
+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
+U54z6gWzQUL8
+=CZrX
+-----END PGP PUBLIC KEY BLOCK-----
+
+
+pub 4096R/DC4AEBB5 2017-06-02
+uid Jochen Theodorou (blackdrag) <blackdrag at apache.org>
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1
+
+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
+wnVsVh1/ubUHl3u+lH6JRGE=
+=boG0
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub 4096R/F0E13706 2017-08-19
+uid Daniel Sun <sunlan at apache.org>
+sig 3 F0E13706 2017-08-19 Daniel Sun <sunlan at apache.org>
+sub 4096R/FA0853A0 2017-08-19
+sig F0E13706 2017-08-19 Daniel Sun <sunlan at apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1
+
+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
+=Up1e
+-----END PGP PUBLIC KEY BLOCK-----
=====================================
debian/watch
=====================================
@@ -0,0 +1,8 @@
+# Track only the supported 3.x versions until we can upgrade
+
+version=4
+opts="uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha|b|a)[\-\.]?\d*)$/$1~$2/, \
+ dversionmangle=auto, repack, compression=xz, repacksuffix=+dfsg, \
+ downloadurlmangle=s|https://www.apache.org/dyn/closer.lua/(.*)\?action=download|https://dist.apache.org/repos/dist/release/$1|, \
+ pgpmode=auto" \
+ https://groovy.apache.org/download.html .*/(?:apache-)?groovy-src-(3\..*)(?:-incubating)?@ARCHIVE_EXT@\?action=download
View it on GitLab: https://salsa.debian.org/java-team/groovy3/-/commit/6b07831d48c6f62ff6f6d2d85b29416914bdf4fa
--
View it on GitLab: https://salsa.debian.org/java-team/groovy3/-/commit/6b07831d48c6f62ff6f6d2d85b29416914bdf4fa
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20241004/cb0e29a6/attachment.htm>
More information about the pkg-java-commits
mailing list