commit 878e1c2947f5b5181d09afdfd18e6be6426b038a9079765b1523cb7d513f18f3 Author: Fridrich Strba Date: Sat Sep 21 15:27:44 2024 +0000 Update to 6.10.0 OBS-URL: https://build.opensuse.org/package/show/Java:packages/bcel?expand=0&rev=55 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/bcel-6.10.0-src.tar.gz b/bcel-6.10.0-src.tar.gz new file mode 100644 index 0000000..4d6fb1a --- /dev/null +++ b/bcel-6.10.0-src.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ee16c601567363b484183f1816738d337ae93413cd2aa052e59f0003513151e +size 1085294 diff --git a/bcel-6.8.0-src.tar.gz b/bcel-6.8.0-src.tar.gz new file mode 100644 index 0000000..c5da313 --- /dev/null +++ b/bcel-6.8.0-src.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0adccf6b6709c43e2b2ca6265882fa817549bfdc7cb60f9bedd62c6e735d200c +size 1064680 diff --git a/bcel-build.xml b/bcel-build.xml new file mode 100644 index 0000000..23310c9 --- /dev/null +++ b/bcel-build.xml @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bcel.changes b/bcel.changes new file mode 100644 index 0000000..bc557aa --- /dev/null +++ b/bcel.changes @@ -0,0 +1,424 @@ +------------------------------------------------------------------- +Fri Sep 20 07:47:55 UTC 2024 - Gus Kenion + +- Update to version 6.10.0 + * 6.10.0 (2024-06-24) Maintenance and bug fix release. Requires + a minimum of Java 8. + + Fix PMD UnnecessaryFullyQualifiedName. + + Fix PMD EmptyCatchBlock by allowing commented blocks. + + Fix PMD EmptyControlStatement by allowing commented blocks. + + Fix SpotBugs RV_RETURN_VALUE_IGNORED_BAD_PRACTICE in + JasminVisitor. + + SpotBugs checks should ignore code generated by JavaCC. + + Fix SpotBugs URF_UNREAD_FIELD in ClassDumper. + + Fix SpotBugs DM_DEFAULT_ENCODING in JasminVisitor. + + Fix SpotBugs RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE in + ASTFunAppl. + + Fix SpotBugs RV_ABSOLUTE_VALUE_OF_HASHCODE in + Mini.Environment. + + Fix SpotBugs DM_DEFAULT_ENCODING in Mini.MiniC. + + Fix SpotBugs WMI_WRONG_MAP_ITERATOR in Package.go(String[]). + + Deprecate TransitiveHull.INGORED in favor of + TransitiveHull.getIgnored(). + + Add accessors to model and unit tests, Javadoc #183. + + Add Const.MAJOR_22. + + Add Const.MINOR_22. + + Add Const.MAJOR_23. + + Add Const.MINOR_23. + + Add Const.MAJOR_24. + + Add Const.MINOR_24. + + Bump tests from org.assertj:assertj-core 3.25.3 to 3.26.3 + #322, #332. + + Bump tests from org.jetbrains.kotlin:kotlin-stdlib 1.9.23 to + 2.0.0 #309, #318. + + Bump tests from org.apache.commons:commons-collections4 4.4 + to 4.5.0-M2. + + Bump org.apache.commons:commons-parent from 69 to 71. + + Bump org.codehaus.mojo:taglist-maven-plugin from 3.0.0 to + 3.1.0 #331. + * Includes changes from 6.9.0 Maintenance and bug fix release. + + Add Support for Java 16 records #290. + + Add null guard for InstructionFactory.createInvoke() #289. + + Avoid possible NullPointerException in + org.apache.bcel.classfile.DescendingVisitor.accept(E[]). + + Avoid possible NullPointerException in + AnnotationEntryGen.getAnnotationAttributes(ConstantPoolGen, + AnnotationEntryGen[]). + + Avoid possible NullPointerException in + AnnotationEntryGen.copyValues(ElementValuePair[], + ConstantPoolGen, boolean). + + Avoid possible NullPointerException in + ArrayElementValueGen.ArrayElementValueGen(int, + ElementValue[], ConstantPoolGen). + + Avoid possible NullPointerException in + org.apache.bcel.generic.ClassGen.setMethods(Method[]). + + Avoid possible NullPointerException in + org.apache.bcel.generic.ClassGen.unpackAnnotations(Attribute[]). + + Avoid possible NullPointerException in + org.apache.bcel.classfile.ParameterAnnotationEntry.createParameterAnnotationEntries(Attribute[]). + + Avoid possible NullPointerException in + org.apache.bcel.generic.ClassGen.ClassGen(JavaClass). + + Avoid possible NullPointerException in + org.apache.bcel.generic.FieldGenOrMethodGen.addAll(Attribute[]). + + Avoid possible NullPointerException in + org.apache.bcel.classfile.ParameterAnnotationEntry.createParameterAnnotationEntries(Attribute[]). + + Avoid NullPointerException after calling + org.apache.bcel.classfile.MethodParameters.setParameters(MethodParameter[]) + with null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.ParameterAnnotations.setParameterAnnotationTable(ParameterAnnotationEntry[]) + with null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.LocalVariableTypeTable.setLocalVariableTable(LocalVariable[]) + with null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.LocalVariableTable.setLocalVariableTable(LocalVariable[]) + with null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.LineNumberTable.setLineNumberTable(LineNumber[]) + with null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.JavaClass.setMethods(Method[] with + null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.JavaClass.setInterfaces(int[]) with + null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.JavaClass.setInterfaceNames(String[]) + with null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.JavaClass.setFields(Field[]) with + null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.JavaClass.setAttributes(Attribute[]) + with null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.ConstantPool.setConstantPool(Constant[]) + with null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.FieldOrMethod.setAttributes(Attribute[]) + with null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.Annotations.setAnnotationTable(AnnotationEntry[]) + with null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.ArrayElementValue.ArrayElementValue(int, + ElementValue[], ConstantPool) with null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.BootstrapMethod.BootstrapMethod(int, + int[]) with null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.BootstrapMethod.setBootstrapArguments(int[]) + with null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.BootstrapMethods.BootstrapMethods(int, + int, BootstrapMethod[], ConstantPool) with null. + + Avoid NullPointerException after calling + org.apache.bcel.classfile.BootstrapMethods.setBootstrapMethods(BootstrapMethod[]) + with null. + + Avoid NullPointerException calling + org.apache.bcel.generic.InstructionList.redirectLocalVariables(LocalVariableGen[], + InstructionHandle, InstructionHandle) with null. + + Avoid NullPointerException calling + org.apache.bcel.generic.InstructionList.redirectExceptionHandlers(CodeExceptionGen[], + InstructionHandle, InstructionHandle) with null. + + Avoid NullPointerException calling + org.apache.bcel.generic.InstructionList.findHandle(InstructionHandle[], + int[], int, int) with null. + + Avoid NullPointerException calling + org.apache.bcel.generic.MethodGen.setArgumentTypes(Type[]) + with null. + + Avoid NullPointerException calling + org.apache.bcel.generic.MethodGen.setArgumentNames(String[]) + with null. + + Avoid NullPointerException calling + org.apache.bcel.generic.MethodGen.removeRuntimeAttributes(Attribute[]) + with null. + + Avoid NullPointerException calling + org.apache.bcel.generic.MethodGen.makeMutableVersion(AnnotationEntry[]) + with null. + + Bump org.apache.commons:commons-parent from 66 to 69 #283, + #297. + + Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.22 to 1.9.23 + #284. + + Bump commons-io:commons-io from 2.15.1 to 2.16.1 #295, #300. + +------------------------------------------------------------------- +Sat Dec 23 11:24:26 UTC 2023 - Anton Shvetz + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + diff --git a/bcel.spec b/bcel.spec new file mode 100644 index 0000000..85fc2df --- /dev/null +++ b/bcel.spec @@ -0,0 +1,93 @@ +# +# spec file for package bcel +# +# Copyright (c) 2024 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.10.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