Sync from SUSE:SLFO:Main bcel revision 17920c237409e7fd8f8d1c8f4069c4b1

This commit is contained in:
Adrian Schröter 2024-05-03 11:17:05 +02:00
commit 8a6ecc778a
5 changed files with 544 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

BIN
bcel-6.8.0-src.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

146
bcel-build.xml Normal file
View File

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="bcel" default="package" basedir=".">
<!-- ====================================================================== -->
<!-- Build environment properties -->
<!-- ====================================================================== -->
<property file="build.properties"/>
<property name="project.groupId" value="org.apache.bcel"/>
<property name="project.artifactId" value="bcel"/>
<property name="project.version" value="6.8.0"/>
<property name="spec.version" value="6.8"/>
<property name="compiler.source" value="1.8"/>
<property name="compiler.target" value="${compiler.source}"/>
<property name="build.finalName" value="${project.artifactId}-${project.version}"/>
<property name="build.dir" value="target"/>
<property name="build.outputDir" value="${build.dir}/classes"/>
<property name="build.srcDir" value="src/main/java"/>
<property name="build.resourceDir" value="."/>
<property name="reporting.outputDirectory" value="${build.dir}/site"/>
<!-- ====================================================================== -->
<!-- Defining classpaths -->
<!-- ====================================================================== -->
<path id="build.classpath">
<fileset dir="lib">
<include name="**/*"/>
</fileset>
</path>
<!-- ====================================================================== -->
<!-- Cleaning up target -->
<!-- ====================================================================== -->
<target name="clean" description="Clean the output directory">
<delete dir="${build.dir}"/>
</target>
<!-- ====================================================================== -->
<!-- Compilation target -->
<!-- ====================================================================== -->
<target name="compile" description="Compile the code">
<mkdir dir="${build.outputDir}"/>
<javac destdir="${build.outputDir}"
encoding="iso-8859-1"
nowarn="false"
debug="true"
optimize="false"
deprecation="true"
target="${compiler.target}"
verbose="false"
fork="false"
source="${compiler.source}">
<src>
<pathelement location="${build.srcDir}"/>
</src>
<classpath refid="build.classpath"/>
</javac>
<mkdir dir="${build.outputDir}/META-INF"/>
<copy todir="${build.outputDir}/META-INF">
<fileset dir="${build.resourceDir}">
<include name="NOTICE.txt"/>
<include name="LICENSE.txt"/>
<include name="NOTICE"/>
<include name="LICENSE"/>
</fileset>
</copy>
</target>
<!-- ====================================================================== -->
<!-- Javadoc target -->
<!-- ====================================================================== -->
<target name="javadoc" description="Generates the Javadoc of the application">
<javadoc sourcepath="${build.srcDir}"
packagenames="*"
destdir="${reporting.outputDirectory}/apidocs"
access="protected"
verbose="false"
encoding="iso-8859-1"
version="true"
use="true"
author="true"
splitindex="false"
nodeprecated="false"
nodeprecatedlist="false"
notree="false"
noindex="false"
nohelp="false"
nonavbar="false"
serialwarn="false"
docencoding="iso-8859-1"
source="${compiler.source}"
linksource="true"
breakiterator="false">
<classpath refid="build.classpath"/>
</javadoc>
</target>
<!-- ====================================================================== -->
<!-- Package target -->
<!-- ====================================================================== -->
<target name="package" depends="compile" description="Package the application">
<jar jarfile="${build.dir}/${build.finalName}.jar"
compress="true"
index="false"
basedir="${build.outputDir}"
excludes="**/package.html">
<manifest>
<attribute name="Automatic-Module-Name" value="org.apache.bcel"/>
<attribute name="Bundle-Description" value="Apache Commons Bytecode Engineering Library"/>
<attribute name="Bundle-DocURL" value="https://commons.apache.org/proper/commons-bcel"/>
<attribute name="Bundle-License" value="https://www.apache.org/licenses/LICENSE-2.0.txt"/>
<attribute name="Bundle-ManifestVersion" value="2"/>
<attribute name="Bundle-Name" value="Apache Commons BCEL"/>
<attribute name="Bundle-SymbolicName" value="org.apache.bcel"/>
<attribute name="Bundle-Vendor" value="The Apache Software Foundation"/>
<attribute name="Bundle-Version" value="${project.version}"/>
<attribute name="Export-Package" value="org.apache.bcel.classfile;version=&quot;${project.version}&quot;,org.apache.bcel.generic;version=&quot;${project.version}&quot;,org.apache.bcel.util;version=&quot;${project.version}&quot;,org.apache.bcel.verifier.exc;version=&quot;${project.version}&quot;,org.apache.bcel.verifier.statics;version=&quot;${project.version}&quot;,org.apache.bcel.verifier.structurals;version=&quot;${project.version}&quot;,org.apache.bcel.verifier;version=&quot;${project.version}&quot;,org.apache.bcel;version=&quot;${project.version}&quot;"/>
<attribute name="Implementation-Title" value="Apache Commons BCEL"/>
<attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
<attribute name="Implementation-Version" value="${project.version}"/>
<attribute name="Import-Package" value="javax.swing,javax.swing.border,javax.swing.event,org.apache.commons.lang3"/>
<attribute name="Include-Resource" value="META-INF/NOTICE.txt=NOTICE.txt,META-INF/LICENSE.txt=LICENSE.txt"/>
<attribute name="Require-Capability" value="osgi.ee;filter:=&quot;(&amp;(osgi.ee=JavaSE)(version=${compiler.target}))&quot;"/>
<attribute name="Specification-Title" value="Apache Commons BCEL"/>
<attribute name="Specification-Vendor" value="The Apache Software Foundation"/>
<attribute name="Specification-Version" value="${spec.version}"/>
</manifest>
</jar>
</target>
<!-- ====================================================================== -->
<!-- A dummy target for the package named after the type it creates -->
<!-- ====================================================================== -->
<target name="jar" depends="package" description="Builds the jar for the application"/>
</project>

279
bcel.changes Normal file
View File

@ -0,0 +1,279 @@
-------------------------------------------------------------------
Sat Dec 23 11:24:26 UTC 2023 - Anton Shvetz <shvetz.anton@gmail.com>
- Update to version 6.8.0
* 6.8.0 (2023-12-08) Maintenance and bug fix release.
+ New features:
~ Add and use InvalidMethodSignatureException extending
ClassFormatException.
~ Increase code coverage in Class2HTMLTestCase with new test
input Java4Example #186.
~ Add verifier tests on some opcodes #180.
~ Added signature test cases for class/method, and bad
signatures #182.
~ Add Const.MAJOR_20.
~ Add Const.MINOR_20.
~ Add Const.MAJOR_21.
~ Add Const.MINOR_21.
~ [Bcelifier] stackmap support to pass JDK verifier #177.
~ Fix SpotBugs [ERROR] Class org.apache.bcel.util.ClassVector
defines non-transient non-serializable instance field vec
[org.apache.bcel.util.ClassVector] In ClassVector.java
SE_BAD_FIELD.
~ Fix SpotBugs [ERROR] Switch statement found in
org.apache.bcel.util.BCELFactory.visitAllocationInstruction(AllocationInstruction)
where one case falls through to the next case
[org.apache.bcel.util.BCELFactory,
org.apache.bcel.util.BCELFactory] At
BCELFactory.java:[lines 188-191]Another occurrence at
BCELFactory.java:[lines 192-196] SF_SWITCH_FALLTHROUGH.
+ Fixed bugs:
~ When parsing an class with an invalid constant reference,
ensure ClassParser.parse() throws ClassFormatException, not
NullPointerException.
~ Ensure that references to a constant pool entry with index
zero trigger a ClassFormatException, not a
NullPointerException.
~ Ensure that references to the unused constant pool entry
after a long/double entry triggers a ClassFormatException,
not a NullPointerException.
~ Test and coverage of InstructionFactory #190.
~ Verifier: test and coverage for SWAP instruction #188.
~ Exception parsing Kotlin class with 'fun `method name with
() in it`()' #205.
~ Fix null pointers in AnnotationEntry #213.
~ Field not found, search field in both super class and
implemented interfaces (5x duplicated code to find field by
name and type is refactored to a new method and now
supports package-private) #181.
~ BCEL-366: Use alternative name for broken classes under
test #220.
~ BCEL-367: Fixes java.lang.IndexOutOfBoundsException for
ATHROW on empty stack #223.
~ BCEL-368: Fixes java.lang.StackOverflowError in
Select#toString(boolean) #229.
~ Fix for type.getType(...) use on non-signature type names
#221.
~ Fix EmptyVisitorTestCase on Java 21.
+ Changes:
~ Bump commons-parent from 54 to 65 #189, #198, #222.
~ Bump jna.version from 5.12.1 to 5.13.0 #203.
~ Bump kotlin-stdlib from 1.8.10 to 1.9.21 #217, #219, #227,
#231, #235, #245, #247.
~ Bump commons-io from 2.11.0 to 2.15.1.
~ Bump commons-lang3 from 3.12.0 to 3.14.0.
~ Bump org.codehaus.mojo:exec-maven-plugin from 3.1.0 to
3.1.1 #246.
-------------------------------------------------------------------
Thu Aug 31 08:38:22 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Update to version 6.7.0
* 6.7.0 (2022-11-28) Maintenance and bug fix release.
* 6.6.1 (2022-10-29) Maintenance and bug fix release.
* 6.6.0 (2022-10-08) Minor feature and bug fix release.
* 6.5.0 (2020-06-05) Minor feature and bug fix release.
* 6.4.1 (2019-09-26) Bug fix release.
* 6.4.0 (2019-09-20) Feature and bug fix release.
* 6.3.1 (2019-03-20) Bug fix release
* 6.3 (2019-01-23) Experimental Java 9, 10, 11, 12-EA, and 13-EA
Support
* 6.2 (2017-12-08) Experimental Java 9 Support
* 6.1 (2017-09-14) Experimental Java 9 Support
* 6.0 (2016-07-10) Apache Commons BCEL 6.0 is a major release
supporting the new features introduced in Java 6, 7 and 8. It
requires Java 7 or higher to run.
COMPATIBILITY with 5.2
+ Binary compatible
- not strictly compatible
- The constant interface org.apache.bcel.Constants has been
deprecated. Classes which implemented this interface in 5.2
now use the constants defined in the org.apache.bcel.Const
class.
- The constant interface
org.apache.bcel.generic.InstructionConstants has been
deprecated. Classes which implemented this interface in 5.2
now use the constants defined in the
org.apache.bcel.generic.InstructionConsts class.
- Return type of method 'public java.lang.Object
getElementAt(int)' in org.apache.bcel.verifier
.VerifierFactoryListModel has been changed to
java.lang.String.
- The BCEL classes do no longer implement java.io.Serializable.
+ Source compatible
- Yes, sort of;
- The org.apache.bcel.classfile.Visitor interface has been
enhanced with additional methods. If you implemented it
directly instead of extending the EmptyVisitor class you'll
have to implement the new methods.
- The org.apache.bcel.generic.Visitor interface has been
enhanced with an additional method. If you implemented it
directly instead of extending the EmptyVisitor class you'll
have to implement the new methods.
+ Semantic compatible
- Yes, except:
- BCEL 6.0 handles new attributes such as code annotations
that could only be processed by implementing a custom
AttributeReader in the previous versions. Code relying on
this behavior will have to be adjusted since the
AttributeReader will no longer be called in these cases.
+ For full information about API changes please see the extended
Clirr report: https://commons.apache.org/bcel/clirr-report.html
- Removed patches:
* bcel-5.2-encoding.patch
+ part of our own build.xml file generated to build with ant
* bcel-CVE-2022-42920.patch
+ integrated upstrea
-------------------------------------------------------------------
Thu Nov 10 11:02:08 UTC 2022 - Pedro Monreal <pmonreal@suse.com>
- Security fix: [bsc#1205125, CVE-2022-42920]
* Apache Commons BCEL prior to 6.6.0 allows producing
arbitrary bytecode via out-of-bounds writing
* Add bcel-CVE-2022-42920.patch
-------------------------------------------------------------------
Fri Feb 1 14:10:42 UTC 2019 - Fridrich Strba <fstrba@suse.com>
- BuildIgnore xalan-j2, xml-apis, xml-resolver, xerces-j2, since
those packages are not necessary for the build.
-------------------------------------------------------------------
Mon Dec 10 09:51:13 UTC 2018 - Fridrich Strba <fstrba@suse.com>
- Build against the generic xml-apis provider which allows
building against bootstrap and non-bootstrap packages according
of their availability.
-------------------------------------------------------------------
Thu Nov 15 10:36:02 UTC 2018 - Fridrich Strba <fstrba@suse.com>
- Add maven pom file and generate mvn(...) dependencies for this
package
-------------------------------------------------------------------
Tue May 15 14:05:02 UTC 2018 - fstrba@suse.com
- Build with source and target 8 to prepare for a possible removal
of 1.6 compatibility
-------------------------------------------------------------------
Wed Sep 27 17:05:58 UTC 2017 - fstrba@suse.com
- Allow building with any java-devel provider
- Specify java source and target level 1.6 to fix build with jdk9
- Added patch:
* bcel-5.2-encoding.patch
+ specify the correct encoding of the files
-------------------------------------------------------------------
Fri May 19 16:56:30 UTC 2017 - tchvatal@suse.com
- Buildignore more java implementations
-------------------------------------------------------------------
Wed Mar 25 09:22:33 UTC 2015 - tchvatal@suse.com
- Drop gpg-offline
- Drop conditional for manual that is never triggered
-------------------------------------------------------------------
Tue Jul 8 10:59:06 UTC 2014 - tchvatal@suse.com
- Do not depend on ant-nodeps.
-------------------------------------------------------------------
Tue Sep 3 14:26:25 UTC 2013 - mvyskocil@suse.com
- use pristine tarballs
- fix source url
- add gpg verification
- format spec file
-------------------------------------------------------------------
Thu Aug 22 12:08:11 UTC 2013 - mvyskocil@suse.com
- disable javadoc generation
-------------------------------------------------------------------
Mon Jan 7 12:16:54 UTC 2013 - mvyskocil@suse.com
- remove xerces-j2-bootstrap dependency (bnc#789163)
-------------------------------------------------------------------
Tue May 15 07:59:18 UTC 2012 - mvyskocil@suse.cz
- ignore openjdk from build
-------------------------------------------------------------------
Sat Sep 17 19:22:25 UTC 2011 - jengelh@medozas.de
- Remove redundant tags/sections from specfile
- Use %_smp_mflags for parallel build
-------------------------------------------------------------------
Mon Nov 8 12:06:23 UTC 2010 - mvyskocil@suse.cz
- build ignore xml-commons-jaxp-1.3-apis
-------------------------------------------------------------------
Mon Jun 1 09:40:23 CEST 2009 - mvyskocil@suse.cz
- fixed archive name (gz -> bz2) in Source
-------------------------------------------------------------------
Thu May 21 15:32:47 CEST 2009 - mvyskocil@suse.cz
- update to 5.2
- fixed build under gcj44
- removed javadoc scripplets
-------------------------------------------------------------------
Sun Jul 27 13:34:42 CEST 2008 - coolo@suse.de
- avoid xerces and xml-commons (ant still works)
-------------------------------------------------------------------
Tue Jul 22 20:56:51 CEST 2008 - coolo@suse.de
- build with gcj to avoid build cycle
-------------------------------------------------------------------
Mon Sep 25 14:16:27 CEST 2006 - skh@suse.de
- don't use icecream
- use source="1.4" and target="1.4" for build with java 1.5
-------------------------------------------------------------------
Wed Jan 25 21:45:52 CET 2006 - mls@suse.de
- converted neededforbuild to BuildRequires
-------------------------------------------------------------------
Wed Jul 27 14:56:24 CEST 2005 - jsmeix@suse.de
- Adjustments in the spec file.
-------------------------------------------------------------------
Mon Jul 18 15:38:34 CEST 2005 - jsmeix@suse.de
- Current version 5.1 from JPackage.org
-------------------------------------------------------------------
Thu Sep 16 15:23:14 CEST 2004 - skh@suse.de
- Fix prerequires of javadoc subpackage
-------------------------------------------------------------------
Sat Sep 4 17:39:44 CEST 2004 - skh@suse.de
- Switched to JPackage 1.5 version
- split off subpackages bcel-javadoc and bcel-manual
-------------------------------------------------------------------
Mon Feb 09 11:25:05 CET 2004 - pmladek@suse.cz
- package created, version 5.1
- added trigger to create link to the ant lib dir

93
bcel.spec Normal file
View File

@ -0,0 +1,93 @@
#
# spec file for package bcel
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: bcel
Version: 6.8.0
Release: 0
Summary: Byte Code Engineering Library
License: Apache-2.0
Group: Development/Libraries/Java
URL: https://commons.apache.org/proper/commons-bcel/
Source0: https://archive.apache.org/dist/commons/bcel/source/%{name}-%{version}-src.tar.gz
Source1: %{name}-build.xml
BuildRequires: ant
BuildRequires: apache-commons-lang3
BuildRequires: fdupes
BuildRequires: java-devel >= 1.8
BuildRequires: javapackages-local >= 6
#!BuildIgnore: xalan-j2 xerces-j2 xml-apis xml-resolver
BuildArch: noarch
%description
The Byte Code Engineering Library is intended to give users a
convenient way to analyze, create, and manipulate (binary) Java class
files (those ending with .class). Classes are represented by objects
that contain all the symbolic information of the given class: methods,
fields, and byte code instructions, in particular.
Such objects can be read from an existing file, transformed by a
program (such as a class loader at runtime), and dumped to a file
again. An even more interesting application is the creation of classes
from scratch at runtime. The Byte Code Engineering Library (BCEL) may
also be useful if you want to learn about the Java Virtual Machine
(JVM) and the format of Java .class files.
BCEL is already being used successfully in several projects, such as
compilers, optimizers, obfuscators, code generators, and analysis
tools.
It contains a byte code verifier named JustIce, which usually gives you
much better information about what is wrong with your code than the
standard JVM message.
%package javadoc
Summary: Javadoc for %{name}
Group: Documentation/HTML
%description javadoc
This package contains the API documentation for %{name}.
%prep
%setup -q -n %{name}-%{version}-src
cp %{SOURCE1} build.xml
%build
mkdir -p lib
build-jar-repository -s lib apache-commons-lang3
%ant jar javadoc
%install
# jar
mkdir -p %{buildroot}%{_javadir}
install -m 644 target/%{name}-%{version}.jar %{buildroot}%{_javadir}/%{name}.jar
# pom
mkdir -p %{buildroot}%{_mavenpomdir}
%mvn_install_pom pom.xml %{buildroot}%{_mavenpomdir}/%{name}.pom
%add_maven_depmap %{name}.pom %{name}.jar -a "bcel:bcel"
# javadoc
mkdir -p %{buildroot}%{_javadocdir}/%{name}
cp -a target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name}
%fdupes -s %{buildroot}%{_javadocdir}/%{name}
%files -f .mfiles
%license LICENSE.txt
%files javadoc
%{_javadocdir}/%{name}
%changelog