summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrice Clement <monsieurp@gentoo.org>2015-11-01 21:32:31 +0000
committerPatrice Clement <monsieurp@gentoo.org>2015-11-01 21:32:31 +0000
commit52d0cdff64091542e27b945de4f1be716b09a02f (patch)
tree23742c26bff362aac7ce939c7c93770e9f4784d7 /dev-java
parentx11-libs/cairo: Version bump (diff)
downloadgentoo-52d0cdff64091542e27b945de4f1be716b09a02f.tar.gz
gentoo-52d0cdff64091542e27b945de4f1be716b09a02f.tar.bz2
gentoo-52d0cdff64091542e27b945de4f1be716b09a02f.zip
dev-java/groovy: Version bump. Fixes security bug 555470.
Package-Manager: portage-2.2.20.1 Signed-off-by: Patrice Clement <monsieurp@gentoo.org>
Diffstat (limited to 'dev-java')
-rw-r--r--dev-java/groovy/Manifest1
-rw-r--r--dev-java/groovy/files/groovy-2.4.5-utils.gradle.patch116
-rw-r--r--dev-java/groovy/groovy-2.4.5.ebuild133
3 files changed, 250 insertions, 0 deletions
diff --git a/dev-java/groovy/Manifest b/dev-java/groovy/Manifest
index df6264077a63..d14223eb4f6b 100644
--- a/dev-java/groovy/Manifest
+++ b/dev-java/groovy/Manifest
@@ -1,2 +1,3 @@
+DIST groovy-2.4.5.zip 10214173 SHA256 6fbbe2c1e16bd1c56b889cbcadff04d055a96568883f885ed904265e4e9d8780 SHA512 055b664d2bc9966f9dd5933ec89f22c28c18323b57db66eeec524c88bdc6ea1090f6f1dd866433d7232d837ca31ca83164d8894c0db1d69e72c7d41f20a8382d WHIRLPOOL c05dcb4afddc9ad217bb99d6cc9618e6a67e7f13f52b99ecc155a9b8e97079dcd8f83402cad61acdbcca4141018965320b8194a84dbf6036f2daf699a2111149
DIST groovy-src-1.7.5.zip 12875363 SHA256 9864b36d681ecc4e4a8f86c8b958203f8e2c01c150a3f992f5f63df552979067 SHA512 fa0f617d1894e6fd7b30216b69dc3060154a31d28a3831e7135b18377c5bc368d193d914d2b77a7daf28498562fb96c04794c874101b23dafb4421e3a1d59404 WHIRLPOOL 478346b89661f6b57cc5740df038e8bf3ced62a84a4de1dea3da94a9519cae6eba43cf583c4a81b2f459f6409a7387c2079098b12495b9f1b669260af4efaccb
DIST groovy-src-1.8.5.zip 13131836 SHA256 82f1e45e5886278a4c86ed15dfd90a84b7e43848c72537a235835c7557e8f8cd SHA512 23cddae38b6d0b1b83dae7cf7ebc3fe68f7e8ddb33cd6fa421c0c3c76ca8bf5a8b3fe72cabe915901305f513a2b3269baf205a7a0dd6b1c6f751496d51e0557a WHIRLPOOL 9db6d1da9304e8000de9954faf91d26d76c15e628a25a09c1291afc2ca8b33bbe24d44d891599548df6931db632ae6cd801e83cb05fb6abf33f3282f463a4482
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, '<init>', '()V', null, null);
++ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()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', '<init>', '()V', false);
++ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()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..62183ff87c6d
--- /dev/null
+++ b/dev-java/groovy/groovy-2.4.5.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+JAVA_PKG_IUSE="doc source"
+
+inherit java-pkg-2 java-pkg-simple versionator
+
+MY_PN="${PN^^}"
+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 ~ppc ~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
+ app-arch/unzip"
+
+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
+}