mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-07-30 10:38:07 -07:00
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:
@@ -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
|
||||
|
||||
116
dev-java/groovy/files/groovy-2.4.5-utils.gradle.patch
Normal file
116
dev-java/groovy/files/groovy-2.4.5-utils.gradle.patch
Normal 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();
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
133
dev-java/groovy/groovy-2.4.5.ebuild
Normal file
133
dev-java/groovy/groovy-2.4.5.ebuild
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user