From a296040d2cf37c56e165f468d85c3e6baa555730 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Jul 21 2020 15:26:29 +0000 Subject: import objectweb-asm-7.3.1-2.module+el8.2.1+6727+059d025f --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..79b0495 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/objectweb-asm-7.3.1.tar.gz diff --git a/.objectweb-asm.metadata b/.objectweb-asm.metadata new file mode 100644 index 0000000..0372025 --- /dev/null +++ b/.objectweb-asm.metadata @@ -0,0 +1 @@ +84de14cafe66de33312d0e4814f93a515508979a SOURCES/objectweb-asm-7.3.1.tar.gz diff --git a/SOURCES/0001-Revert-upstream-change-2a58bc9.patch b/SOURCES/0001-Revert-upstream-change-2a58bc9.patch new file mode 100644 index 0000000..907acb5 --- /dev/null +++ b/SOURCES/0001-Revert-upstream-change-2a58bc9.patch @@ -0,0 +1,813 @@ +From df50f201a0f253bc55dc89e191ac66cb920a3274 Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Wed, 6 May 2020 15:09:27 +0100 +Subject: [PATCH] Revert upstream change 2a58bc9 + +--- + .../commons/RemappingAnnotationAdapter.java | 85 ++++++ + .../asm/commons/RemappingClassAdapter.java | 167 +++++++++++ + .../asm/commons/RemappingFieldAdapter.java | 74 +++++ + .../asm/commons/RemappingMethodAdapter.java | 279 ++++++++++++++++++ + .../commons/RemappingSignatureAdapter.java | 157 ++++++++++ + 5 files changed, 762 insertions(+) + create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingAnnotationAdapter.java + create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java + create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingFieldAdapter.java + create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java + create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingSignatureAdapter.java + +diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingAnnotationAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingAnnotationAdapter.java +new file mode 100644 +index 0000000..86c6ee9 +--- /dev/null ++++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingAnnotationAdapter.java +@@ -0,0 +1,85 @@ ++// ASM: a very small and fast Java bytecode manipulation framework ++// Copyright (c) 2000-2011 INRIA, France Telecom ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions ++// are met: ++// 1. Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// 2. Redistributions in binary form must reproduce the above copyright ++// notice, this list of conditions and the following disclaimer in the ++// documentation and/or other materials provided with the distribution. ++// 3. Neither the name of the copyright holders nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ++// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE ++// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++// INTERRUPTION) 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 OF THIS SOFTWARE, EVEN IF ADVISED OF ++// THE POSSIBILITY OF SUCH DAMAGE. ++ ++package org.objectweb.asm.commons; ++ ++import org.objectweb.asm.AnnotationVisitor; ++import org.objectweb.asm.Opcodes; ++ ++/** ++ * An {@link AnnotationVisitor} adapter for type remapping. ++ * ++ * @deprecated use {@link AnnotationRemapper} instead. ++ * @author Eugene Kuleshov ++ */ ++@Deprecated ++public class RemappingAnnotationAdapter extends AnnotationVisitor { ++ ++ protected final Remapper remapper; ++ ++ public RemappingAnnotationAdapter( ++ final AnnotationVisitor annotationVisitor, final Remapper remapper) { ++ this(Opcodes.ASM6, annotationVisitor, remapper); ++ } ++ ++ protected RemappingAnnotationAdapter( ++ final int api, final AnnotationVisitor annotationVisitor, final Remapper remapper) { ++ super(api, annotationVisitor); ++ this.remapper = remapper; ++ } ++ ++ @Override ++ public void visit(final String name, final Object value) { ++ av.visit(name, remapper.mapValue(value)); ++ } ++ ++ @Override ++ public void visitEnum(final String name, final String descriptor, final String value) { ++ av.visitEnum(name, remapper.mapDesc(descriptor), value); ++ } ++ ++ @Override ++ public AnnotationVisitor visitAnnotation(final String name, final String descriptor) { ++ AnnotationVisitor annotationVisitor = av.visitAnnotation(name, remapper.mapDesc(descriptor)); ++ return annotationVisitor == null ++ ? null ++ : (annotationVisitor == av ++ ? this ++ : new RemappingAnnotationAdapter(annotationVisitor, remapper)); ++ } ++ ++ @Override ++ public AnnotationVisitor visitArray(final String name) { ++ AnnotationVisitor annotationVisitor = av.visitArray(name); ++ return annotationVisitor == null ++ ? null ++ : (annotationVisitor == av ++ ? this ++ : new RemappingAnnotationAdapter(annotationVisitor, remapper)); ++ } ++} +diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java +new file mode 100644 +index 0000000..b4cc08c +--- /dev/null ++++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java +@@ -0,0 +1,167 @@ ++// ASM: a very small and fast Java bytecode manipulation framework ++// Copyright (c) 2000-2011 INRIA, France Telecom ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions ++// are met: ++// 1. Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// 2. Redistributions in binary form must reproduce the above copyright ++// notice, this list of conditions and the following disclaimer in the ++// documentation and/or other materials provided with the distribution. ++// 3. Neither the name of the copyright holders nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ++// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE ++// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++// INTERRUPTION) 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 OF THIS SOFTWARE, EVEN IF ADVISED OF ++// THE POSSIBILITY OF SUCH DAMAGE. ++ ++package org.objectweb.asm.commons; ++ ++import org.objectweb.asm.AnnotationVisitor; ++import org.objectweb.asm.ClassVisitor; ++import org.objectweb.asm.FieldVisitor; ++import org.objectweb.asm.MethodVisitor; ++import org.objectweb.asm.ModuleVisitor; ++import org.objectweb.asm.Opcodes; ++import org.objectweb.asm.TypePath; ++ ++/** ++ * A {@link ClassVisitor} for type remapping. ++ * ++ * @deprecated use {@link ClassRemapper} instead. ++ * @author Eugene Kuleshov ++ */ ++@Deprecated ++public class RemappingClassAdapter extends ClassVisitor { ++ ++ protected final Remapper remapper; ++ ++ protected String className; ++ ++ public RemappingClassAdapter(final ClassVisitor classVisitor, final Remapper remapper) { ++ this(Opcodes.ASM6, classVisitor, remapper); ++ } ++ ++ protected RemappingClassAdapter( ++ final int api, final ClassVisitor classVisitor, final Remapper remapper) { ++ super(api, classVisitor); ++ this.remapper = remapper; ++ } ++ ++ @Override ++ public void visit( ++ final int version, ++ final int access, ++ final String name, ++ final String signature, ++ final String superName, ++ final String[] interfaces) { ++ this.className = name; ++ super.visit( ++ version, ++ access, ++ remapper.mapType(name), ++ remapper.mapSignature(signature, false), ++ remapper.mapType(superName), ++ interfaces == null ? null : remapper.mapTypes(interfaces)); ++ } ++ ++ @Override ++ public ModuleVisitor visitModule(final String name, final int flags, final String version) { ++ throw new RuntimeException("RemappingClassAdapter is deprecated, use ClassRemapper instead"); ++ } ++ ++ @Override ++ public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { ++ AnnotationVisitor annotationVisitor = ++ super.visitAnnotation(remapper.mapDesc(descriptor), visible); ++ return annotationVisitor == null ? null : createRemappingAnnotationAdapter(annotationVisitor); ++ } ++ ++ @Override ++ public AnnotationVisitor visitTypeAnnotation( ++ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) { ++ AnnotationVisitor annotationVisitor = ++ super.visitTypeAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible); ++ return annotationVisitor == null ? null : createRemappingAnnotationAdapter(annotationVisitor); ++ } ++ ++ @Override ++ public FieldVisitor visitField( ++ final int access, ++ final String name, ++ final String descriptor, ++ final String signature, ++ final Object value) { ++ FieldVisitor fieldVisitor = ++ super.visitField( ++ access, ++ remapper.mapFieldName(className, name, descriptor), ++ remapper.mapDesc(descriptor), ++ remapper.mapSignature(signature, true), ++ remapper.mapValue(value)); ++ return fieldVisitor == null ? null : createRemappingFieldAdapter(fieldVisitor); ++ } ++ ++ @Override ++ public MethodVisitor visitMethod( ++ final int access, ++ final String name, ++ final String descriptor, ++ final String signature, ++ final String[] exceptions) { ++ String newDescriptor = remapper.mapMethodDesc(descriptor); ++ MethodVisitor methodVisitor = ++ super.visitMethod( ++ access, ++ remapper.mapMethodName(className, name, descriptor), ++ newDescriptor, ++ remapper.mapSignature(signature, false), ++ exceptions == null ? null : remapper.mapTypes(exceptions)); ++ return methodVisitor == null ++ ? null ++ : createRemappingMethodAdapter(access, newDescriptor, methodVisitor); ++ } ++ ++ @Override ++ public void visitInnerClass( ++ final String name, final String outerName, final String innerName, final int access) { ++ super.visitInnerClass( ++ remapper.mapType(name), ++ outerName == null ? null : remapper.mapType(outerName), ++ innerName, ++ access); ++ } ++ ++ @Override ++ public void visitOuterClass(final String owner, final String name, final String descriptor) { ++ super.visitOuterClass( ++ remapper.mapType(owner), ++ name == null ? null : remapper.mapMethodName(owner, name, descriptor), ++ descriptor == null ? null : remapper.mapMethodDesc(descriptor)); ++ } ++ ++ protected FieldVisitor createRemappingFieldAdapter(final FieldVisitor fieldVisitor) { ++ return new RemappingFieldAdapter(fieldVisitor, remapper); ++ } ++ ++ protected MethodVisitor createRemappingMethodAdapter( ++ final int access, final String newDescriptor, final MethodVisitor methodVisitior) { ++ return new RemappingMethodAdapter(access, newDescriptor, methodVisitior, remapper); ++ } ++ ++ protected AnnotationVisitor createRemappingAnnotationAdapter(final AnnotationVisitor av) { ++ return new RemappingAnnotationAdapter(av, remapper); ++ } ++} +diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingFieldAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingFieldAdapter.java +new file mode 100644 +index 0000000..5f14f33 +--- /dev/null ++++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingFieldAdapter.java +@@ -0,0 +1,74 @@ ++// ASM: a very small and fast Java bytecode manipulation framework ++// Copyright (c) 2000-2011 INRIA, France Telecom ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions ++// are met: ++// 1. Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// 2. Redistributions in binary form must reproduce the above copyright ++// notice, this list of conditions and the following disclaimer in the ++// documentation and/or other materials provided with the distribution. ++// 3. Neither the name of the copyright holders nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ++// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE ++// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++// INTERRUPTION) 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 OF THIS SOFTWARE, EVEN IF ADVISED OF ++// THE POSSIBILITY OF SUCH DAMAGE. ++ ++package org.objectweb.asm.commons; ++ ++import org.objectweb.asm.AnnotationVisitor; ++import org.objectweb.asm.FieldVisitor; ++import org.objectweb.asm.Opcodes; ++import org.objectweb.asm.TypePath; ++ ++/** ++ * A {@link FieldVisitor} adapter for type remapping. ++ * ++ * @deprecated use {@link FieldRemapper} instead. ++ * @author Eugene Kuleshov ++ */ ++@Deprecated ++public class RemappingFieldAdapter extends FieldVisitor { ++ ++ private final Remapper remapper; ++ ++ public RemappingFieldAdapter(final FieldVisitor fieldVisitor, final Remapper remapper) { ++ this(Opcodes.ASM6, fieldVisitor, remapper); ++ } ++ ++ protected RemappingFieldAdapter( ++ final int api, final FieldVisitor fieldVisitor, final Remapper remapper) { ++ super(api, fieldVisitor); ++ this.remapper = remapper; ++ } ++ ++ @Override ++ public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { ++ AnnotationVisitor annotationVisitor = fv.visitAnnotation(remapper.mapDesc(descriptor), visible); ++ return annotationVisitor == null ++ ? null ++ : new RemappingAnnotationAdapter(annotationVisitor, remapper); ++ } ++ ++ @Override ++ public AnnotationVisitor visitTypeAnnotation( ++ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) { ++ AnnotationVisitor annotationVisitor = ++ super.visitTypeAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible); ++ return annotationVisitor == null ++ ? null ++ : new RemappingAnnotationAdapter(annotationVisitor, remapper); ++ } ++} +diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java +new file mode 100644 +index 0000000..cf21f18 +--- /dev/null ++++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java +@@ -0,0 +1,279 @@ ++// ASM: a very small and fast Java bytecode manipulation framework ++// Copyright (c) 2000-2011 INRIA, France Telecom ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions ++// are met: ++// 1. Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// 2. Redistributions in binary form must reproduce the above copyright ++// notice, this list of conditions and the following disclaimer in the ++// documentation and/or other materials provided with the distribution. ++// 3. Neither the name of the copyright holders nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ++// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE ++// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++// INTERRUPTION) 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 OF THIS SOFTWARE, EVEN IF ADVISED OF ++// THE POSSIBILITY OF SUCH DAMAGE. ++ ++package org.objectweb.asm.commons; ++ ++import org.objectweb.asm.AnnotationVisitor; ++import org.objectweb.asm.Handle; ++import org.objectweb.asm.Label; ++import org.objectweb.asm.MethodVisitor; ++import org.objectweb.asm.Opcodes; ++import org.objectweb.asm.TypePath; ++ ++/** ++ * A {@link LocalVariablesSorter} for type mapping. ++ * ++ * @deprecated use {@link MethodRemapper} instead. ++ * @author Eugene Kuleshov ++ */ ++@Deprecated ++public class RemappingMethodAdapter extends LocalVariablesSorter { ++ ++ protected final Remapper remapper; ++ ++ public RemappingMethodAdapter( ++ final int access, ++ final String descriptor, ++ final MethodVisitor methodVisitor, ++ final Remapper remapper) { ++ this(Opcodes.ASM6, access, descriptor, methodVisitor, remapper); ++ } ++ ++ protected RemappingMethodAdapter( ++ final int api, ++ final int access, ++ final String descriptor, ++ final MethodVisitor methodVisitor, ++ final Remapper remapper) { ++ super(api, access, descriptor, methodVisitor); ++ this.remapper = remapper; ++ } ++ ++ @Override ++ public AnnotationVisitor visitAnnotationDefault() { ++ AnnotationVisitor annotationVisitor = super.visitAnnotationDefault(); ++ return annotationVisitor == null ++ ? annotationVisitor ++ : new RemappingAnnotationAdapter(annotationVisitor, remapper); ++ } ++ ++ @Override ++ public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { ++ AnnotationVisitor annotationVisitor = ++ super.visitAnnotation(remapper.mapDesc(descriptor), visible); ++ return annotationVisitor == null ++ ? annotationVisitor ++ : new RemappingAnnotationAdapter(annotationVisitor, remapper); ++ } ++ ++ @Override ++ public AnnotationVisitor visitTypeAnnotation( ++ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) { ++ AnnotationVisitor annotationVisitor = ++ super.visitTypeAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible); ++ return annotationVisitor == null ++ ? annotationVisitor ++ : new RemappingAnnotationAdapter(annotationVisitor, remapper); ++ } ++ ++ @Override ++ public AnnotationVisitor visitParameterAnnotation( ++ final int parameter, final String descriptor, final boolean visible) { ++ AnnotationVisitor annotationVisitor = ++ super.visitParameterAnnotation(parameter, remapper.mapDesc(descriptor), visible); ++ return annotationVisitor == null ++ ? annotationVisitor ++ : new RemappingAnnotationAdapter(annotationVisitor, remapper); ++ } ++ ++ @Override ++ public void visitFrame( ++ final int type, ++ final int numLocal, ++ final Object[] local, ++ final int numStack, ++ final Object[] stack) { ++ super.visitFrame( ++ type, numLocal, remapEntries(numLocal, local), numStack, remapEntries(numStack, stack)); ++ } ++ ++ private Object[] remapEntries(final int numTypes, final Object[] entries) { ++ if (entries == null) { ++ return entries; ++ } ++ Object[] remappedEntries = null; ++ for (int i = 0; i < numTypes; ++i) { ++ if (entries[i] instanceof String) { ++ if (remappedEntries == null) { ++ remappedEntries = new Object[numTypes]; ++ System.arraycopy(entries, 0, remappedEntries, 0, numTypes); ++ } ++ remappedEntries[i] = remapper.mapType((String) entries[i]); ++ } ++ } ++ return remappedEntries == null ? entries : remappedEntries; ++ } ++ ++ @Override ++ public void visitFieldInsn( ++ final int opcode, final String owner, final String name, final String descriptor) { ++ super.visitFieldInsn( ++ opcode, ++ remapper.mapType(owner), ++ remapper.mapFieldName(owner, name, descriptor), ++ remapper.mapDesc(descriptor)); ++ } ++ ++ @Deprecated ++ @Override ++ public void visitMethodInsn( ++ final int opcode, final String owner, final String name, final String descriptor) { ++ if (api >= Opcodes.ASM5) { ++ super.visitMethodInsn(opcode, owner, name, descriptor); ++ return; ++ } ++ doVisitMethodInsn(opcode, owner, name, descriptor, opcode == Opcodes.INVOKEINTERFACE); ++ } ++ ++ @Override ++ public void visitMethodInsn( ++ final int opcode, ++ final String owner, ++ final String name, ++ final String descriptor, ++ final boolean isInterface) { ++ if (api < Opcodes.ASM5) { ++ super.visitMethodInsn(opcode, owner, name, descriptor, isInterface); ++ return; ++ } ++ doVisitMethodInsn(opcode, owner, name, descriptor, isInterface); ++ } ++ ++ private void doVisitMethodInsn( ++ final int opcode, ++ final String owner, ++ final String name, ++ final String descriptor, ++ final boolean isInterface) { ++ // Calling super.visitMethodInsn requires to call the correct version ++ // depending on this.api (otherwise infinite loops can occur). To ++ // simplify and to make it easier to automatically remove the backward ++ // compatibility code, we inline the code of the overridden method here. ++ // IMPORTANT: THIS ASSUMES THAT visitMethodInsn IS NOT OVERRIDDEN IN ++ // LocalVariableSorter. ++ if (mv != null) { ++ mv.visitMethodInsn( ++ opcode, ++ remapper.mapType(owner), ++ remapper.mapMethodName(owner, name, descriptor), ++ remapper.mapMethodDesc(descriptor), ++ isInterface); ++ } ++ } ++ ++ @Override ++ public void visitInvokeDynamicInsn( ++ final String name, ++ final String descriptor, ++ final Handle bootstrapMethodHandle, ++ final Object... bootstrapMethodArguments) { ++ for (int i = 0; i < bootstrapMethodArguments.length; i++) { ++ bootstrapMethodArguments[i] = remapper.mapValue(bootstrapMethodArguments[i]); ++ } ++ super.visitInvokeDynamicInsn( ++ remapper.mapInvokeDynamicMethodName(name, descriptor), ++ remapper.mapMethodDesc(descriptor), ++ (Handle) remapper.mapValue(bootstrapMethodHandle), ++ bootstrapMethodArguments); ++ } ++ ++ @Override ++ public void visitTypeInsn(final int opcode, final String type) { ++ super.visitTypeInsn(opcode, remapper.mapType(type)); ++ } ++ ++ @Override ++ public void visitLdcInsn(final Object value) { ++ super.visitLdcInsn(remapper.mapValue(value)); ++ } ++ ++ @Override ++ public void visitMultiANewArrayInsn(final String descriptor, final int numDimensions) { ++ super.visitMultiANewArrayInsn(remapper.mapDesc(descriptor), numDimensions); ++ } ++ ++ @Override ++ public AnnotationVisitor visitInsnAnnotation( ++ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) { ++ AnnotationVisitor annotationVisitor = ++ super.visitInsnAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible); ++ return annotationVisitor == null ++ ? annotationVisitor ++ : new RemappingAnnotationAdapter(annotationVisitor, remapper); ++ } ++ ++ @Override ++ public void visitTryCatchBlock( ++ final Label start, final Label end, final Label handler, final String type) { ++ super.visitTryCatchBlock(start, end, handler, type == null ? null : remapper.mapType(type)); ++ } ++ ++ @Override ++ public AnnotationVisitor visitTryCatchAnnotation( ++ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) { ++ AnnotationVisitor annotationVisitor = ++ super.visitTryCatchAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible); ++ return annotationVisitor == null ++ ? annotationVisitor ++ : new RemappingAnnotationAdapter(annotationVisitor, remapper); ++ } ++ ++ @Override ++ public void visitLocalVariable( ++ final String name, ++ final String descriptor, ++ final String signature, ++ final Label start, ++ final Label end, ++ final int index) { ++ super.visitLocalVariable( ++ name, ++ remapper.mapDesc(descriptor), ++ remapper.mapSignature(signature, true), ++ start, ++ end, ++ index); ++ } ++ ++ @Override ++ public AnnotationVisitor visitLocalVariableAnnotation( ++ final int typeRef, ++ final TypePath typePath, ++ final Label[] start, ++ final Label[] end, ++ final int[] index, ++ final String descriptor, ++ final boolean visible) { ++ AnnotationVisitor annotationVisitor = ++ super.visitLocalVariableAnnotation( ++ typeRef, typePath, start, end, index, remapper.mapDesc(descriptor), visible); ++ return annotationVisitor == null ++ ? annotationVisitor ++ : new RemappingAnnotationAdapter(annotationVisitor, remapper); ++ } ++} +diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingSignatureAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingSignatureAdapter.java +new file mode 100644 +index 0000000..1553cd5 +--- /dev/null ++++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingSignatureAdapter.java +@@ -0,0 +1,157 @@ ++// ASM: a very small and fast Java bytecode manipulation framework ++// Copyright (c) 2000-2011 INRIA, France Telecom ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions ++// are met: ++// 1. Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// 2. Redistributions in binary form must reproduce the above copyright ++// notice, this list of conditions and the following disclaimer in the ++// documentation and/or other materials provided with the distribution. ++// 3. Neither the name of the copyright holders nor the names of its ++// contributors may be used to endorse or promote products derived from ++// this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ++// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE ++// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++// INTERRUPTION) 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 OF THIS SOFTWARE, EVEN IF ADVISED OF ++// THE POSSIBILITY OF SUCH DAMAGE. ++ ++package org.objectweb.asm.commons; ++ ++import org.objectweb.asm.Opcodes; ++import org.objectweb.asm.signature.SignatureVisitor; ++ ++/** ++ * A {@link SignatureVisitor} adapter for type mapping. ++ * ++ * @deprecated use {@link SignatureRemapper} instead. ++ * @author Eugene Kuleshov ++ */ ++@Deprecated ++public class RemappingSignatureAdapter extends SignatureVisitor { ++ ++ private final SignatureVisitor signatureVisitor; ++ ++ private final Remapper remapper; ++ ++ private String className; ++ ++ public RemappingSignatureAdapter( ++ final SignatureVisitor signatureVisitor, final Remapper remapper) { ++ this(Opcodes.ASM6, signatureVisitor, remapper); ++ } ++ ++ protected RemappingSignatureAdapter( ++ final int api, final SignatureVisitor signatureVisitor, final Remapper remapper) { ++ super(api); ++ this.signatureVisitor = signatureVisitor; ++ this.remapper = remapper; ++ } ++ ++ @Override ++ public void visitClassType(final String name) { ++ className = name; ++ signatureVisitor.visitClassType(remapper.mapType(name)); ++ } ++ ++ @Override ++ public void visitInnerClassType(final String name) { ++ String remappedOuter = remapper.mapType(className) + '$'; ++ className = className + '$' + name; ++ String remappedName = remapper.mapType(className); ++ int index = ++ remappedName.startsWith(remappedOuter) ++ ? remappedOuter.length() ++ : remappedName.lastIndexOf('$') + 1; ++ signatureVisitor.visitInnerClassType(remappedName.substring(index)); ++ } ++ ++ @Override ++ public void visitFormalTypeParameter(final String name) { ++ signatureVisitor.visitFormalTypeParameter(name); ++ } ++ ++ @Override ++ public void visitTypeVariable(final String name) { ++ signatureVisitor.visitTypeVariable(name); ++ } ++ ++ @Override ++ public SignatureVisitor visitArrayType() { ++ signatureVisitor.visitArrayType(); ++ return this; ++ } ++ ++ @Override ++ public void visitBaseType(final char descriptor) { ++ signatureVisitor.visitBaseType(descriptor); ++ } ++ ++ @Override ++ public SignatureVisitor visitClassBound() { ++ signatureVisitor.visitClassBound(); ++ return this; ++ } ++ ++ @Override ++ public SignatureVisitor visitExceptionType() { ++ signatureVisitor.visitExceptionType(); ++ return this; ++ } ++ ++ @Override ++ public SignatureVisitor visitInterface() { ++ signatureVisitor.visitInterface(); ++ return this; ++ } ++ ++ @Override ++ public SignatureVisitor visitInterfaceBound() { ++ signatureVisitor.visitInterfaceBound(); ++ return this; ++ } ++ ++ @Override ++ public SignatureVisitor visitParameterType() { ++ signatureVisitor.visitParameterType(); ++ return this; ++ } ++ ++ @Override ++ public SignatureVisitor visitReturnType() { ++ signatureVisitor.visitReturnType(); ++ return this; ++ } ++ ++ @Override ++ public SignatureVisitor visitSuperclass() { ++ signatureVisitor.visitSuperclass(); ++ return this; ++ } ++ ++ @Override ++ public void visitTypeArgument() { ++ signatureVisitor.visitTypeArgument(); ++ } ++ ++ @Override ++ public SignatureVisitor visitTypeArgument(final char wildcard) { ++ signatureVisitor.visitTypeArgument(wildcard); ++ return this; ++ } ++ ++ @Override ++ public void visitEnd() { ++ signatureVisitor.visitEnd(); ++ } ++} +-- +2.26.0 + diff --git a/SOURCES/asm-7.3.1.pom b/SOURCES/asm-7.3.1.pom new file mode 100644 index 0000000..147c907 --- /dev/null +++ b/SOURCES/asm-7.3.1.pom @@ -0,0 +1,96 @@ + + + 4.0.0 + + org.ow2 + ow2 + 1.5 + + org.ow2.asm + asm + 7.3.1 + asm + ASM, a very small and fast Java bytecode manipulation framework + http://asm.ow2.io/ + 2000 + + OW2 + http://www.ow2.org/ + + + + BSD-3-Clause + https://asm.ow2.io/license.html + + + + + ebruneton + Eric Bruneton + ebruneton@free.fr + + Creator + Java Developer + + + + eu + Eugene Kuleshov + eu@javatx.org + + Java Developer + + + + forax + Remi Forax + forax@univ-mlv.fr + + Java Developer + + + + + + ASM Users List + https://mail.ow2.org/wws/subscribe/asm + asm@objectweb.org + https://mail.ow2.org/wws/arc/asm/ + + + ASM Team List + https://mail.ow2.org/wws/subscribe/asm-team + asm-team@objectweb.org + https://mail.ow2.org/wws/arc/asm-team/ + + + + scm:git:https://gitlab.ow2.org/asm/asm/ + scm:git:https://gitlab.ow2.org/asm/asm/ + https://gitlab.ow2.org/asm/asm/ + + + https://gitlab.ow2.org/asm/asm/issues + + + + org.ow2.asm + asm-test + 7.3.1 + test + + + org.junit.jupiter + junit-jupiter-api + 5.3.2 + test + + + org.junit.jupiter + junit-jupiter-params + 5.3.2 + test + + + diff --git a/SOURCES/asm-all.pom b/SOURCES/asm-all.pom new file mode 100644 index 0000000..230058b --- /dev/null +++ b/SOURCES/asm-all.pom @@ -0,0 +1,57 @@ + + + 4.0.0 + + org.ow2 + ow2 + 1.5 + + org.ow2.asm + asm-all + @VERSION@ + + + org.ow2.asm + asm + @VERSION@ + + + org.ow2.asm + asm-analysis + @VERSION@ + + + org.ow2.asm + asm-commons + @VERSION@ + + + org.ow2.asm + asm-tree + @VERSION@ + + + org.ow2.asm + asm-tree + @VERSION@ + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.1.1 + + + package + + shade + + + + + + + diff --git a/SOURCES/asm-analysis-7.3.1.pom b/SOURCES/asm-analysis-7.3.1.pom new file mode 100644 index 0000000..24f6947 --- /dev/null +++ b/SOURCES/asm-analysis-7.3.1.pom @@ -0,0 +1,102 @@ + + + 4.0.0 + + org.ow2 + ow2 + 1.5 + + org.ow2.asm + asm-analysis + 7.3.1 + asm-analysis + Static code analysis API of ASM, a very small and fast Java bytecode manipulation framework + http://asm.ow2.io/ + 2000 + + OW2 + http://www.ow2.org/ + + + + BSD-3-Clause + https://asm.ow2.io/license.html + + + + + ebruneton + Eric Bruneton + ebruneton@free.fr + + Creator + Java Developer + + + + eu + Eugene Kuleshov + eu@javatx.org + + Java Developer + + + + forax + Remi Forax + forax@univ-mlv.fr + + Java Developer + + + + + + ASM Users List + https://mail.ow2.org/wws/subscribe/asm + asm@objectweb.org + https://mail.ow2.org/wws/arc/asm/ + + + ASM Team List + https://mail.ow2.org/wws/subscribe/asm-team + asm-team@objectweb.org + https://mail.ow2.org/wws/arc/asm-team/ + + + + scm:git:https://gitlab.ow2.org/asm/asm/ + scm:git:https://gitlab.ow2.org/asm/asm/ + https://gitlab.ow2.org/asm/asm/ + + + https://gitlab.ow2.org/asm/asm/issues + + + + org.ow2.asm + asm-tree + 7.3.1 + compile + + + org.ow2.asm + asm-test + 7.3.1 + test + + + org.junit.jupiter + junit-jupiter-api + 5.3.2 + test + + + org.junit.jupiter + junit-jupiter-params + 5.3.2 + test + + + diff --git a/SOURCES/asm-commons-7.3.1.pom b/SOURCES/asm-commons-7.3.1.pom new file mode 100644 index 0000000..9189c63 --- /dev/null +++ b/SOURCES/asm-commons-7.3.1.pom @@ -0,0 +1,120 @@ + + + 4.0.0 + + org.ow2 + ow2 + 1.5 + + org.ow2.asm + asm-commons + 7.3.1 + asm-commons + Usefull class adapters based on ASM, a very small and fast Java bytecode manipulation framework + http://asm.ow2.io/ + 2000 + + OW2 + http://www.ow2.org/ + + + + BSD-3-Clause + https://asm.ow2.io/license.html + + + + + ebruneton + Eric Bruneton + ebruneton@free.fr + + Creator + Java Developer + + + + eu + Eugene Kuleshov + eu@javatx.org + + Java Developer + + + + forax + Remi Forax + forax@univ-mlv.fr + + Java Developer + + + + + + ASM Users List + https://mail.ow2.org/wws/subscribe/asm + asm@objectweb.org + https://mail.ow2.org/wws/arc/asm/ + + + ASM Team List + https://mail.ow2.org/wws/subscribe/asm-team + asm-team@objectweb.org + https://mail.ow2.org/wws/arc/asm-team/ + + + + scm:git:https://gitlab.ow2.org/asm/asm/ + scm:git:https://gitlab.ow2.org/asm/asm/ + https://gitlab.ow2.org/asm/asm/ + + + https://gitlab.ow2.org/asm/asm/issues + + + + org.ow2.asm + asm + 7.3.1 + compile + + + org.ow2.asm + asm-tree + 7.3.1 + compile + + + org.ow2.asm + asm-analysis + 7.3.1 + compile + + + org.ow2.asm + asm-util + 7.3.1 + test + + + org.ow2.asm + asm-test + 7.3.1 + test + + + org.junit.jupiter + junit-jupiter-api + 5.3.2 + test + + + org.junit.jupiter + junit-jupiter-params + 5.3.2 + test + + + diff --git a/SOURCES/asm-test-7.3.1.pom b/SOURCES/asm-test-7.3.1.pom new file mode 100644 index 0000000..bd9da35 --- /dev/null +++ b/SOURCES/asm-test-7.3.1.pom @@ -0,0 +1,96 @@ + + + 4.0.0 + + org.ow2 + ow2 + 1.5 + + org.ow2.asm + asm-test + 7.3.1 + asm-test + Utilities for testing ASM, a very small and fast Java bytecode manipulation framework + http://asm.ow2.io/ + 2000 + + OW2 + http://www.ow2.org/ + + + + BSD-3-Clause + https://asm.ow2.io/license.html + + + + + ebruneton + Eric Bruneton + ebruneton@free.fr + + Creator + Java Developer + + + + eu + Eugene Kuleshov + eu@javatx.org + + Java Developer + + + + forax + Remi Forax + forax@univ-mlv.fr + + Java Developer + + + + + + ASM Users List + https://mail.ow2.org/wws/subscribe/asm + asm@objectweb.org + https://mail.ow2.org/wws/arc/asm/ + + + ASM Team List + https://mail.ow2.org/wws/subscribe/asm-team + asm-team@objectweb.org + https://mail.ow2.org/wws/arc/asm-team/ + + + + scm:git:https://gitlab.ow2.org/asm/asm/ + scm:git:https://gitlab.ow2.org/asm/asm/ + https://gitlab.ow2.org/asm/asm/ + + + https://gitlab.ow2.org/asm/asm/issues + + + + org.junit.jupiter + junit-jupiter-api + 5.3.2 + compile + + + org.junit.jupiter + junit-jupiter-params + 5.3.2 + compile + + + org.ow2.asm + asm-test + 7.3.1 + test + + + diff --git a/SOURCES/asm-tree-7.3.1.pom b/SOURCES/asm-tree-7.3.1.pom new file mode 100644 index 0000000..0ab1313 --- /dev/null +++ b/SOURCES/asm-tree-7.3.1.pom @@ -0,0 +1,102 @@ + + + 4.0.0 + + org.ow2 + ow2 + 1.5 + + org.ow2.asm + asm-tree + 7.3.1 + asm-tree + Tree API of ASM, a very small and fast Java bytecode manipulation framework + http://asm.ow2.io/ + 2000 + + OW2 + http://www.ow2.org/ + + + + BSD-3-Clause + https://asm.ow2.io/license.html + + + + + ebruneton + Eric Bruneton + ebruneton@free.fr + + Creator + Java Developer + + + + eu + Eugene Kuleshov + eu@javatx.org + + Java Developer + + + + forax + Remi Forax + forax@univ-mlv.fr + + Java Developer + + + + + + ASM Users List + https://mail.ow2.org/wws/subscribe/asm + asm@objectweb.org + https://mail.ow2.org/wws/arc/asm/ + + + ASM Team List + https://mail.ow2.org/wws/subscribe/asm-team + asm-team@objectweb.org + https://mail.ow2.org/wws/arc/asm-team/ + + + + scm:git:https://gitlab.ow2.org/asm/asm/ + scm:git:https://gitlab.ow2.org/asm/asm/ + https://gitlab.ow2.org/asm/asm/ + + + https://gitlab.ow2.org/asm/asm/issues + + + + org.ow2.asm + asm + 7.3.1 + compile + + + org.ow2.asm + asm-test + 7.3.1 + test + + + org.junit.jupiter + junit-jupiter-api + 5.3.2 + test + + + org.junit.jupiter + junit-jupiter-params + 5.3.2 + test + + + diff --git a/SOURCES/asm-util-7.3.1.pom b/SOURCES/asm-util-7.3.1.pom new file mode 100644 index 0000000..dcd7c9a --- /dev/null +++ b/SOURCES/asm-util-7.3.1.pom @@ -0,0 +1,120 @@ + + + 4.0.0 + + org.ow2 + ow2 + 1.5 + + org.ow2.asm + asm-util + 7.3.1 + asm-util + Utilities for ASM, a very small and fast Java bytecode manipulation framework + http://asm.ow2.io/ + 2000 + + OW2 + http://www.ow2.org/ + + + + BSD-3-Clause + https://asm.ow2.io/license.html + + + + + ebruneton + Eric Bruneton + ebruneton@free.fr + + Creator + Java Developer + + + + eu + Eugene Kuleshov + eu@javatx.org + + Java Developer + + + + forax + Remi Forax + forax@univ-mlv.fr + + Java Developer + + + + + + ASM Users List + https://mail.ow2.org/wws/subscribe/asm + asm@objectweb.org + https://mail.ow2.org/wws/arc/asm/ + + + ASM Team List + https://mail.ow2.org/wws/subscribe/asm-team + asm-team@objectweb.org + https://mail.ow2.org/wws/arc/asm-team/ + + + + scm:git:https://gitlab.ow2.org/asm/asm/ + scm:git:https://gitlab.ow2.org/asm/asm/ + https://gitlab.ow2.org/asm/asm/ + + + https://gitlab.ow2.org/asm/asm/issues + + + + org.ow2.asm + asm + 7.3.1 + compile + + + org.ow2.asm + asm-tree + 7.3.1 + compile + + + org.ow2.asm + asm-analysis + 7.3.1 + compile + + + org.codehaus.janino + janino + 3.0.11 + test + + + org.ow2.asm + asm-test + 7.3.1 + test + + + org.junit.jupiter + junit-jupiter-api + 5.3.2 + test + + + org.junit.jupiter + junit-jupiter-params + 5.3.2 + test + + + diff --git a/SOURCES/generate-tarball.sh b/SOURCES/generate-tarball.sh new file mode 100755 index 0000000..255d107 --- /dev/null +++ b/SOURCES/generate-tarball.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -e + +name=objectweb-asm +version="$(sed -n 's/Version:\s*//p' *.spec)" +gittag="ASM_${version//./_}" + +# RETRIEVE +wget "https://gitlab.ow2.org/asm/asm/repository/${gittag}/archive.tar.gz#/${name}-${version}.tar.gz" -O "${name}-${version}.orig.tar.gz" + +rm -rf tarball-tmp +mkdir tarball-tmp +cd tarball-tmp +tar xf "../${name}-${version}.orig.tar.gz" + +# Rename dir not to contain commit +mv asm-${gittag}-* ${name}-${version} + +# CLEAN TARBALL +# Remove all jar files +find -name '*.jar' -delete +# Remove all class files except those in asm-test, which are shipped alongside appropriately licensed source +find */asm{,-analysis,-commons} -name '*.class' -delete +rm -r */gradle + +tar cf "../${name}-${version}.tar.gz" * +cd .. +rm -r tarball-tmp "${name}-${version}.orig.tar.gz" diff --git a/SOURCES/parent.pom b/SOURCES/parent.pom new file mode 100644 index 0000000..8cfbb70 --- /dev/null +++ b/SOURCES/parent.pom @@ -0,0 +1,21 @@ + + + 4.0.0 + + org.ow2.asm + asm-aggregator + 1 + + pom + + + asm + asm-analysis + asm-commons + asm-test + asm-tree + asm-util + asm-all + + diff --git a/SPECS/objectweb-asm.spec b/SPECS/objectweb-asm.spec new file mode 100644 index 0000000..182aaa3 --- /dev/null +++ b/SPECS/objectweb-asm.spec @@ -0,0 +1,364 @@ +%bcond_without junit5 +%bcond_without osgi + +Name: objectweb-asm +Version: 7.3.1 +Release: 2%{?dist} +Summary: Java bytecode manipulation and analysis framework +License: BSD +URL: http://asm.ow2.org/ +BuildArch: noarch + +# ./generate-tarball.sh +Source0: %{name}-%{version}.tar.gz +Source1: parent.pom +Source2: https://repo1.maven.org/maven2/org/ow2/asm/asm/%{version}/asm-%{version}.pom +Source3: https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/%{version}/asm-analysis-%{version}.pom +Source4: https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/%{version}/asm-commons-%{version}.pom +Source5: https://repo1.maven.org/maven2/org/ow2/asm/asm-test/%{version}/asm-test-%{version}.pom +Source6: https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/%{version}/asm-tree-%{version}.pom +Source7: https://repo1.maven.org/maven2/org/ow2/asm/asm-util/%{version}/asm-util-%{version}.pom +# We still want to create an "all" uberjar, so this is a custom pom to generate it +# TODO: Fix other packages to no longer depend on "asm-all" so we can drop this +Source8: asm-all.pom +# The source contains binary jars that cannot be verified for licensing and could be proprietary +Source9: generate-tarball.sh + +# Revert upstream change https://gitlab.ow2.org/asm/asm/-/commit/2a58bc9bcf2ea6eee03e973d1df4cf9312573c9d +# To restore some deprecations that were deleted and broke the API +Patch0: 0001-Revert-upstream-change-2a58bc9.patch + +BuildRequires: maven-local +BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-shade-plugin) +BuildRequires: mvn(org.ow2:ow2:pom:) +%if %{with junit5} +BuildRequires: mvn(org.codehaus.janino:janino) +BuildRequires: mvn(org.junit.jupiter:junit-jupiter-api) +BuildRequires: mvn(org.junit.jupiter:junit-jupiter-engine) +BuildRequires: mvn(org.junit.jupiter:junit-jupiter-params) +BuildRequires: mvn(org.apache.maven.surefire:surefire-junit-platform) +%endif + +%if %{with osgi} +# asm-all needs to be in pluginpath for BND. If this self-dependency +# becomes a problem then ASM core will have to be build from source +# with javac before main maven build, just like bnd-module-plugin +BuildRequires: objectweb-asm >= 6 +%endif + +# Explicit javapackages-tools requires since asm-processor script uses +# /usr/share/java-utils/java-functions +Requires: javapackages-tools + +%description +ASM is an all purpose Java bytecode manipulation and analysis +framework. It can be used to modify existing classes or dynamically +generate classes, directly in binary form. Provided common +transformations and analysis algorithms allow to easily assemble +custom complex transformations and code analysis tools. + +%package javadoc +Summary: API documentation for %{name} + +%description javadoc +This package provides %{summary}. + +%prep +%setup -q + +%patch0 -p1 + +# A custom parent pom to aggregate the build +cp -p %{SOURCE1} pom.xml + +%if %{without junit5} +%pom_disable_module asm-test +%endif + +# Insert poms into modules +for pom in asm asm-analysis asm-commons asm-test asm-tree asm-util; do + cp -p $RPM_SOURCE_DIR/${pom}-%{version}.pom $pom/pom.xml + # Fix junit5 configuration +%if %{with junit5} + %pom_add_dep org.junit.jupiter:junit-jupiter-engine:5.1.0:test $pom + %pom_add_plugin org.apache.maven.plugins:maven-surefire-plugin:2.22.0 $pom +%endif +%if %{with osgi} + if [ "$pom" != "asm-test" ] ; then + # Make into OSGi bundles + bsn="org.objectweb.${pom//-/.}" + %pom_xpath_inject pom:project "bundle" $pom + %pom_add_plugin org.apache.felix:maven-bundle-plugin:3.5.0 $pom \ +" true + + + $bsn + JavaSE-1.8 + <_removeheaders>Bnd-LastModified,Build-By,Created-By,Include-Resource,Require-Capability,Tool + <_pluginpath>$(pwd)/tools/bnd-module-plugin/bnd-module-plugin.jar, $(find-jar objectweb-asm/asm-all) + <_plugin>org.objectweb.asm.tools.ModuleInfoBndPlugin; + + " + fi +%endif +done + +# Disable tests that use unlicensed class files +sed -i -e '/testToByteArray_computeMaxs_largeSubroutines/i@org.junit.jupiter.api.Disabled("missing class file")' \ + asm/src/test/java/org/objectweb/asm/ClassWriterTest.java +sed -i -e '/testAnalyze_mergeWithJsrReachableFromTwoDifferentPaths/i@org.junit.jupiter.api.Disabled("missing class file")' \ + asm-analysis/src/test/java/org/objectweb/asm/tree/analysis/AnalyzerWithBasicInterpreterTest.java +sed -i -e '/testAllMethods_issue317586()/i@org.junit.jupiter.api.Disabled("missing class file")' \ + asm-commons/src/test/java/org/objectweb/asm/commons/LocalVariablesSorterTest.java + +# Remove failing test SerialVersionUidAdderTest due to missing class files +rm asm-commons/src/test/java/org/objectweb/asm/commons/SerialVersionUidAdderTest.java + +# Insert asm-all pom +mkdir -p asm-all +sed 's/@VERSION@/%{version}/g' %{SOURCE8} > asm-all/pom.xml + +# Remove invalid self-dependency +%pom_remove_dep org.ow2.asm:asm-test asm-test + +# Compat aliases +%mvn_alias :asm-all org.ow2.asm:asm-debug-all + +# No need to ship the custom parent pom +%mvn_package :asm-aggregator __noinstall +# Don't ship the test framework to avoid runtime dep on junit +%mvn_package :asm-test __noinstall + +%build +# Must compile bnd plugin first, which is used to generate Java 9 module-info.class files +pushd tools/bnd-module-plugin +javac -sourcepath ../../asm/src/main/java/ -cp $(build-classpath aqute-bnd) $(find -name *.java) +jar cf bnd-module-plugin.jar -C src/main/java org +popd + +%if %{with junit5} +%mvn_build -- -Dmaven.compiler.source=1.8 -Dmaven.compiler.target=1.8 +%else +%mvn_build -f -- -Dmaven.compiler.source=1.8 -Dmaven.compiler.target=1.8 +%endif + +%install +%mvn_install + +%jpackage_script org.objectweb.asm.xml.Processor "" "" %{name}/asm:%{name}/asm-attrs:%{name}/asm-util %{name}-processor true + +%files -f .mfiles +%license LICENSE.txt +%{_bindir}/%{name}-processor + +%files javadoc -f .mfiles-javadoc +%license LICENSE.txt + +%changelog +* Wed May 06 2020 Mat Booth - 7.3.1-2 +- Revert an upstream change to prevent breaking API change + +* Thu Feb 27 2020 Jayashree Huttanagoudat - 7.3.1-1 +- Upgraded to upstream version 7.3.1. + +* Wed Jan 29 2020 Fedora Release Engineering - 7.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 7.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 7.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Nov 21 2018 Severin Gehwolf - 7.0-1 +- Update to latest upstream 7.0 release. +- Removes package asm-xml (deprecated since 6.1). + +* Tue Sep 11 2018 Mat Booth - 6.2.1-1 +- Update to latest upstream release +- Fix test suite execution + +* Fri Aug 03 2018 Michael Simacek - 6.2-5 +- Repack the tarball without binaries + +* Wed Aug 01 2018 Severin Gehwolf - 6.2-4 +- Explicitly require javapackages-tools for asm-processor script + which uses java-functions. + +* Wed Aug 01 2018 Severin Gehwolf - 6.2-3 +- Allow conditionally building without OSGi + metadata. + +* Fri Jul 13 2018 Fedora Release Engineering - 6.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jul 02 2018 Michael Simacek - 6.2-1 +- Update to upstream version 6.2 + +* Sat Jun 30 2018 Mikolaj Izdebski - 6.1.1-4 +- Relax versioned self-build-requirement a bit + +* Fri Jun 29 2018 Mikolaj Izdebski - 6.1.1-3 +- Add objectweb-asm to BND pluginpath + +* Thu Jun 28 2018 Mikolaj Izdebski - 6.1.1-2 +- Allow conditionally building without junit5 + +* Wed Apr 25 2018 Mat Booth - 6.1.1-1 +- Update to latest upstream relase for Java 10 support +- Switch to maven build +- Now executing test suites + +* Thu Feb 08 2018 Fedora Release Engineering - 6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Mon Sep 25 2017 Michael Simacek - 6.0-1 +- Update to upstream version 6.0 + +* Tue Sep 12 2017 Mikolaj Izdebski - 6.0-0.2.beta +- Fix invalid OSGi metadata +- Resolves: rhbz#1490817 + +* Mon Sep 11 2017 Mikolaj Izdebski - 6.0-0.1.beta +- Update to upstream version 6.0 beta + +* Thu Jul 27 2017 Fedora Release Engineering - 5.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 5.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Oct 10 2016 Mikolaj Izdebski - 5.1-6 +- Use OSGi API JARs to run BND classpath, instead of Eclipse + +* Sat Sep 24 2016 Mikolaj Izdebski - 5.1-5 +- Update to current packaging guidelines +- Remove obsoletes and provides for objectweb-asm4 + +* Wed Jun 15 2016 Mikolaj Izdebski - 5.1-4 +- Add missing build-requires + +* Wed Jun 1 2016 Mikolaj Izdebski - 5.1-3 +- Avoid calling XMvn from build-classpath + +* Tue May 31 2016 Mikolaj Izdebski - 5.1-2 +- Add missing JARs to BND classpath + +* Thu Mar 24 2016 Mikolaj Izdebski - 5.1-1 +- Update to upstream version 5.1 + +* Thu Feb 04 2016 Fedora Release Engineering - 5.0.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Aug 06 2015 Michael Simacek - 5.0.4-1 +- Update to upstream version 5.0.4 + +* Wed Jun 17 2015 Fedora Release Engineering - 5.0.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sun Jul 20 2014 Mikolaj Izdebski - 5.0.3-1 +- Update to upstream version 5.0.3 + +* Sat Jun 07 2014 Fedora Release Engineering - 5.0.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon May 5 2014 Mikolaj Izdebski - 5.0.2-1 +- Update to upstream version 5.0.2 + +* Mon Apr 14 2014 Mat Booth - 5.0.1-2 +- SCL-ize package. +- Fix bogus dates in changelog. + +* Mon Mar 24 2014 Mikolaj Izdebski - 5.0.1-1 +- Update to upstream version 5.0.1 + +* Wed Mar 19 2014 Mikolaj Izdebski - 5.0-0.3.beta +- Enable asm-debug-all module + +* Mon Jan 20 2014 Mikolaj Izdebski - 5.0-0.2.beta +- Remove Eclipse Orbit alias + +* Tue Dec 3 2013 Mikolaj Izdebski - 5.0-0.1.beta +- Update to 5.0 beta + +* Sat Aug 03 2013 Fedora Release Engineering - 0:3.3.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Mar 6 2013 Mikolaj Izdebski - 0:3.3.1-7 +- Make jetty orbit depmap point to asm-all jar +- Resolves: rhbz#917625 + +* Mon Mar 4 2013 Mikolaj Izdebski - 0:3.3.1-6 +- Add depmap for org.eclipse.jetty.orbit +- Resolves: rhbz#917625 + +* Thu Feb 14 2013 Fedora Release Engineering - 0:3.3.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Fri Jul 20 2012 Fedora Release Engineering - 0:3.3.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jan 13 2012 Fedora Release Engineering - 0:3.3.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Sep 16 2011 Alexander Kurtakov 0:3.3.1-2 +- Use poms produced by the build not foreign ones. +- Adpat to current guidelines. + +* Mon Apr 04 2011 Chris Aniszczyk 0:3.3.1 +- Upgrade to 3.3.1 + +* Tue Feb 08 2011 Fedora Release Engineering - 0:3.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Jul 13 2010 Orion Poplawski 0:3.2.1-2 +- Change depmap parent id to asm (bug #606659) + +* Thu Apr 15 2010 Fernando Nasser 0:3.2.1 +- Upgrade to 3.2 + +* Sat Jul 25 2009 Fedora Release Engineering - 0:3.1-7.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 0:3.1-6.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Oct 23 2008 David Walluck 0:3.1-5.1 +- build for Fedora + +* Thu Oct 23 2008 David Walluck 0:3.1-5 +- add OSGi manifest (Alexander Kurtakov) + +* Mon Oct 20 2008 David Walluck 0:3.1-4 +- remove Class-Path from MANIFEST.MF +- add unversioned javadoc symlink +- remove javadoc scriptlets +- fix directory ownership +- remove build requirement on dos2unix + +* Fri Feb 08 2008 Ralph Apel - 0:3.1-3jpp +- Add poms and depmap frags with groupId of org.objectweb.asm ! +- Add asm-all.jar +- Add -javadoc Requires post and postun +- Restore Vendor, Distribution + +* Thu Nov 22 2007 Fernando Nasser - 0:3.1-2jpp +- Fix EOL of txt files +- Add dependency on jaxp + +* Thu Nov 22 2007 Fernando Nasser - 0:3.1-1jpp +- Upgrade to 3.1 + +* Wed Aug 22 2007 Fernando Nasser - 0:3.0-1jpp +- Upgrade to 3.0 +- Rename to include objectweb- prefix as requested by ObjectWeb + +* Thu Jan 05 2006 Fernando Nasser - 0:2.1-2jpp +- First JPP 1.7 build + +* Thu Oct 06 2005 Ralph Apel 0:2.1-1jpp +- Upgrade to 2.1 + +* Fri Mar 11 2005 Sebastiano Vigna 0:2.0.RC1-1jpp +- First release of the 2.0 line. \ No newline at end of file