From 8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 14 Jul 2018 21:03:06 +0100 Subject: gentoo resync : 14.07.2018 --- dev-java/groovy/Manifest | 4 + .../groovy/files/groovy-2.4.5-utils.gradle.patch | 116 ++++++++++++++++++ dev-java/groovy/groovy-2.4.5.ebuild | 135 +++++++++++++++++++++ dev-java/groovy/metadata.xml | 14 +++ 4 files changed, 269 insertions(+) create mode 100644 dev-java/groovy/Manifest create mode 100644 dev-java/groovy/files/groovy-2.4.5-utils.gradle.patch create mode 100644 dev-java/groovy/groovy-2.4.5.ebuild create mode 100644 dev-java/groovy/metadata.xml (limited to 'dev-java/groovy') diff --git a/dev-java/groovy/Manifest b/dev-java/groovy/Manifest new file mode 100644 index 000000000000..1ba81e219df2 --- /dev/null +++ b/dev-java/groovy/Manifest @@ -0,0 +1,4 @@ +AUX groovy-2.4.5-utils.gradle.patch 4345 BLAKE2B ad511b7dacdc57f01b716c8f164b4f3da8d59cc8c211e426f419c8e6448cf6376f9591401f8740c906ad021ee857b6085454302bec225880af09a474026b955d SHA512 81d39c1f7b537260721740cc807b9ffcf16b86b170fbc2bd9697f30ed3d77e995cb8beb35d67476137246882ba6f2962051878f032fe173f56c4db1e370aa6c1 +DIST groovy-2.4.5.zip 10214173 BLAKE2B 3402b93fc151beda7d1f397dcd522a71e3d2daaece12d96a02712ea18050c179ead1af0a4c42d7beb0b09a2db611a5b822220c3f4f103bf54b262bf7f83970a2 SHA512 055b664d2bc9966f9dd5933ec89f22c28c18323b57db66eeec524c88bdc6ea1090f6f1dd866433d7232d837ca31ca83164d8894c0db1d69e72c7d41f20a8382d +EBUILD groovy-2.4.5.ebuild 3508 BLAKE2B b06e9b0087e75a16ced0a049f4044f8fd657e74688e7a07a07ad116e6ce3cd76eb0d8bfb22450404f1e5ec848da4a2ced9d9f712c8d724404399e072737261fc SHA512 2150e3f9ca4653e60188fa6dcebabbcc7e6f36564490940279be66d00e536de815c040192df963409943200a5322b045a34575e2227e71897b66c51f769ae1bb +MISC metadata.xml 419 BLAKE2B 66f2e1884aa729905a50cdd56d68cfbadf12bf6c3bd8394e9478b6d43cb995d7322a40b169fdcbcebdb6b598f65601492a348163c2f890573b3514f33faafd78 SHA512 c1f92fe6cd6b5d539f8fe67d0143971ae9c1a228b7b8985fac6b4723482d2770e0b3d89d71b836b487995edb2c0326cc2ca8401bd94d3462c1ea76025150f762 diff --git a/dev-java/groovy/files/groovy-2.4.5-utils.gradle.patch b/dev-java/groovy/files/groovy-2.4.5-utils.gradle.patch new file mode 100644 index 000000000000..6f4638a1bf1d --- /dev/null +++ b/dev-java/groovy/files/groovy-2.4.5-utils.gradle.patch @@ -0,0 +1,116 @@ +--- gradle/utils.gradle.orig 2015-11-01 21:06:26.246486000 +0000 ++++ gradle/utils.gradle 2015-11-01 21:06:57.719486000 +0000 +@@ -16,57 +16,47 @@ + * specific language governing permissions and limitations + * under the License. + */ +-import org.codehaus.groovy.classgen.AnnotationVisitor +-import org.objectweb.asm.ClassWriter +-import org.objectweb.asm.FieldVisitor +-import org.objectweb.asm.Label +-import org.objectweb.asm.MethodVisitor +- +-import static org.objectweb.asm.Opcodes.* +- +-buildscript { +- repositories { +- mavenCentral() +- } +- dependencies { +- classpath "org.ow2.asm:asm:$asmVersion" +- } +-} ++import static org.objectweb.asm.Opcodes.ACC_PUBLIC; ++import static org.objectweb.asm.Opcodes.ACC_STATIC; ++import static org.objectweb.asm.Opcodes.ACC_SUPER; ++import static org.objectweb.asm.Opcodes.ALOAD; ++import static org.objectweb.asm.Opcodes.ATHROW; ++import static org.objectweb.asm.Opcodes.INVOKESPECIAL; ++import static org.objectweb.asm.Opcodes.RETURN; ++import static org.objectweb.asm.Opcodes.V1_5; ++ ++import java.io.File; ++import java.io.FileOutputStream; ++ ++import org.objectweb.asm.ClassWriter; ++import org.objectweb.asm.Label; ++import org.objectweb.asm.MethodVisitor; + +-/** +- * This tasks generates an utility class which allows sneaky throwing. +- */ +-task exceptionUtils { +- ext.classFiles = [ +- "${buildDir}/generated-classes/org/codehaus/groovy/runtime/ExceptionUtils.class", +- "${compileJava.destinationDir}/org/codehaus/groovy/runtime/ExceptionUtils.class"] +- outputs.files classFiles ++public class ExceptionUtils { ++ private final static String gentooClassDestination = "target/classes/org/codehaus/groovy/runtime/ExceptionUtils.class"; + +- doLast { ++ public static void main(String[] args) { + ClassWriter cw = new ClassWriter(0); +- FieldVisitor fv; + MethodVisitor mv; +- AnnotationVisitor av0; +- +- cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, 'org/codehaus/groovy/runtime/ExceptionUtils', null, 'java/lang/Object', null); + +- cw.visitSource('ExceptionUtils.java', null); ++ cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, "org/codehaus/groovy/runtime/ExceptionUtils", null, "java/lang/Object", null); ++ cw.visitSource("ExceptionUtils.java", null); + +- mv = cw.visitMethod(ACC_PUBLIC, '', '()V', null, null); ++ mv = cw.visitMethod(ACC_PUBLIC, "", "()V", null, null); + mv.visitCode(); + Label l0 = new Label(); + mv.visitLabel(l0); + mv.visitLineNumber(18, l0); + mv.visitVarInsn(ALOAD, 0); +- mv.visitMethodInsn(INVOKESPECIAL, 'java/lang/Object', '', '()V', false); ++ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "", "()V", false); + mv.visitInsn(RETURN); + Label l1 = new Label(); + mv.visitLabel(l1); +- mv.visitLocalVariable('this', 'Lorg/codehaus/groovy/runtime/ExceptionUtils;', null, l0, l1, 0); ++ mv.visitLocalVariable("this", "Lorg/codehaus/groovy/runtime/ExceptionUtils;", null, l0, l1, 0); + mv.visitMaxs(1, 1); + mv.visitEnd(); + +- mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, 'sneakyThrow', '(Ljava/lang/Throwable;)V', null, null); ++ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "sneakyThrow", "(Ljava/lang/Throwable;)V", null, null); + mv.visitCode(); + Label l2 = new Label(); + mv.visitLabel(l2); +@@ -75,19 +65,21 @@ + mv.visitInsn(ATHROW); + Label l3 = new Label(); + mv.visitLabel(l3); +- mv.visitLocalVariable('e', 'Ljava/lang/Throwable;', null, l2, l3, 0); ++ mv.visitLocalVariable("e", "Ljava/lang/Throwable;", null, l2, l3, 0); + mv.visitMaxs(1, 1); + mv.visitEnd(); + + cw.visitEnd(); ++ FileOutputStream fos = null; + +- logger.lifecycle('Generating ExceptionUtils') +- classFiles.each { classFile -> +- def output = file(classFile) +- output.parentFile.mkdirs() +- output.withOutputStream { +- it << cw.toByteArray() +- } +- } +- } ++ File f = new File(gentooClassDestination); ++ f.getParentFile().mkdirs(); ++ try { ++ fos = new FileOutputStream(f); ++ fos.write(cw.toByteArray()); ++ fos.close(); ++ } catch (Exception e) { ++ e.printStackTrace(); ++ } ++ } + } diff --git a/dev-java/groovy/groovy-2.4.5.ebuild b/dev-java/groovy/groovy-2.4.5.ebuild new file mode 100644 index 000000000000..1f2ee906e067 --- /dev/null +++ b/dev-java/groovy/groovy-2.4.5.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +JAVA_PKG_IUSE="doc source" + +inherit java-pkg-2 java-pkg-simple versionator + +# Switch to ^^ when we switch to EAPI=6. +#MY_PN="${PN^^}" +MY_PN="GROOVY" +MY_PV="$(replace_all_version_separators _ ${PV})" +MY_P="${MY_PN}_${MY_PV}" + +DESCRIPTION="A multi-faceted language for the Java platform" +HOMEPAGE="http://www.groovy-lang.org/" +SRC_URI="https://github.com/apache/incubator-${PN}/archive/${MY_P}.zip -> ${P}.zip" +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="amd64 ppc64 x86" +IUSE="" + +CDEPEND=" + dev-java/jansi:0 + dev-java/xstream:0 + dev-java/commons-cli:1 + >=dev-java/asm-5.0.3:4 + >=dev-java/antlr-2.7.7-r7:0" + +RDEPEND=" + ${CDEPEND} + >=virtual/jre-1.6" + +DEPEND=" + ${CDEPEND} + >=virtual/jdk-1.6 + source? ( app-arch/zip )" + +JAVA_GENTOO_CLASSPATH=" + asm-4 + antlr + jansi + xstream + commons-cli-1 +" + +S="${WORKDIR}/incubator-${PN}-${MY_P}" + +# ExceptionUtil filename. +EU="ExceptionUtils.java" + +# List of antlr grammar files. +ANTLR_GRAMMAR_FILES=( + org/codehaus/groovy/antlr/groovy.g + org/codehaus/groovy/antlr/java/java.g +) + +# Patches utils.gradle. It basically rewrites ExceptionUtils. +PATCHES=( + "${FILESDIR}"/"${P}-utils.gradle.patch" +) + +# Add target/classes to the CP as we're generating an extra class there. +JAVA_GENTOO_CLASSPATH_EXTRA="target/classes" + +# This function cleans up the source directory. +# We're ONLY interested in the "src/main" directory content and nothing else. +# (for the time being). +groovy_cleanup_source_files() { + ebegin "Cleaning up useless files" + mv src/main "${T}" || die + mv gradle/utils.gradle "${T}" || die + rm -rf * || die + mv "${T}"/main/* . || die + rm -rf "${T}"/main || die + eend $? +} + +java_prepare() { + epatch "${PATCHES[@]}" + groovy_cleanup_source_files +} + +# This function generates the ANTLR grammar files. +generate_antlr_grammar() { + for grammar_file in "${@}"; do + local my_grammar_file=$(basename ${grammar_file}) + + einfo "Generating \"${my_grammar_file}\" grammar file" + local my_grammar_dir=$(dirname ${grammar_file}) + + cd "${S}/${my_grammar_dir}" || die + antlr ${my_grammar_file} || die + + cd "${S}" || die + done +} + +# This function generates ExceptionUtils.class. +# ExceptionUtils is a helper class needed when compiling Groovy 2.x. +# Normally, this class is generated via a Gradle task at compile time. Since we +# don't use Gradle here.. we've translated it into a plain Java file and have +# it generate the same data. +generate_exceptionutils() { + ebegin "Copying ${EU}" + mv "${T}/utils.gradle" "${EU}" || die + eend $? + + ejavac -classpath "$(java-pkg_getjar --build-only asm-4 asm.jar)" ${EU} + + ebegin "Running ${EU%.java}" + $(java-config -J) -classpath "$(java-pkg_getjar --build-only asm-4 asm.jar):." ${EU%.java} || die + eend $? +} + +src_compile() { + generate_antlr_grammar "${ANTLR_GRAMMAR_FILES[@]}" + generate_exceptionutils + java-pkg-simple_src_compile +} + +src_install() { + java-pkg_dolauncher "groovyc" --main org.codehaus.groovy.tools.FileSystemCompiler + java-pkg_dolauncher "groovy" --main groovy.ui.GroovyMain + java-pkg-simple_src_install + + # TODO: groovy console and groovy shell are parts of the "subprojects" + # directory. figure out a way to compile them. :\ + # java-pkg_dolauncher "groovysh" --main groovy.ui.InteractiveShell + # java-pkg_dolauncher "groovyConsole" --main groovy.ui.Console + + # TODO: grape is written in groovy and to compile it, you need .. groovy. + # java-pkg_dolauncher "grape" --main org.codehaus.groovy.tools.GrapeMain +} diff --git a/dev-java/groovy/metadata.xml b/dev-java/groovy/metadata.xml new file mode 100644 index 000000000000..b54150fc69c0 --- /dev/null +++ b/dev-java/groovy/metadata.xml @@ -0,0 +1,14 @@ + + + + + monsieurp@gentoo.org + + + java@gentoo.org + Java + + + apache/incubator-groovy + + -- cgit v1.2.3