dev-java/groovy: Version bump. Fixes security bug 555470.

Package-Manager: portage-2.2.20.1
Signed-off-by: Patrice Clement <monsieurp@gentoo.org>
This commit is contained in:
Patrice Clement
2015-11-01 21:32:31 +00:00
parent dd84179391
commit 52d0cdff64
3 changed files with 250 additions and 0 deletions

View File

@@ -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

View File

@@ -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();
+ }
+ }
}

View File

@@ -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
}