This commit is contained in:
Fedora Release Engineering 2019-08-08 13:27:56 +00:00
commit a4a081b581
6 changed files with 1 additions and 649 deletions

1
.gitignore vendored
View file

@ -1 +0,0 @@
/activemq-5.6.0.tar.xz

View file

@ -1,231 +0,0 @@
diff -Nru activemq-5.6.0/activemq-core/src/main/java/org/apache/activemq/transport/stomp/JmsFrameTranslator.java activemq-5.6.0.CVE-2015-5254/activemq-core/src/main/java/org/apache/activemq/transport/stomp/JmsFrameTranslator.java
--- activemq-5.6.0/activemq-core/src/main/java/org/apache/activemq/transport/stomp/JmsFrameTranslator.java 2012-09-11 01:12:25.000000000 +0200
+++ activemq-5.6.0.CVE-2015-5254/activemq-core/src/main/java/org/apache/activemq/transport/stomp/JmsFrameTranslator.java 2015-12-15 08:35:09.050277423 +0100
@@ -84,7 +84,7 @@
msg = createMapMessage(in);
break;
default:
- throw new Exception("Unkown transformation: " + transformation);
+ throw new Exception("Unknown transformation: " + transformation);
}
} catch (Throwable e) {
command.getHeaders().put(Stomp.Headers.TRANSFORMATION_ERROR, e.getMessage());
@@ -243,7 +243,8 @@
}
if (xstream == null) {
- xstream = new XStream();
+ xstream = XStreamSupport.createXStream();
+ xstream.ignoreUnknownElements();
}
return xstream;
diff -Nru activemq-5.6.0/activemq-core/src/main/java/org/apache/activemq/transport/stomp/XStreamSupport.java activemq-5.6.0.CVE-2015-5254/activemq-core/src/main/java/org/apache/activemq/transport/stomp/XStreamSupport.java
--- activemq-5.6.0/activemq-core/src/main/java/org/apache/activemq/transport/stomp/XStreamSupport.java 1970-01-01 01:00:00.000000000 +0100
+++ activemq-5.6.0.CVE-2015-5254/activemq-core/src/main/java/org/apache/activemq/transport/stomp/XStreamSupport.java 2015-12-15 08:36:14.665520108 +0100
@@ -0,0 +1,47 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.transport.stomp;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.security.AnyTypePermission;
+import com.thoughtworks.xstream.security.NoTypePermission;
+import com.thoughtworks.xstream.security.PrimitiveTypePermission;
+import org.apache.activemq.util.ClassLoadingAwareObjectInputStream;
+
+import java.util.Collection;
+import java.util.Map;
+
+public class XStreamSupport {
+
+ public static XStream createXStream() {
+ XStream stream = new XStream();
+ stream.addPermission(NoTypePermission.NONE);
+ stream.addPermission(PrimitiveTypePermission.PRIMITIVES);
+ stream.allowTypeHierarchy(Collection.class);
+ stream.allowTypeHierarchy(Map.class);
+ stream.allowTypes(new Class[]{String.class});
+ if (ClassLoadingAwareObjectInputStream.isAllAllowed()) {
+ stream.addPermission(AnyTypePermission.ANY);
+ } else {
+ for (String packageName : ClassLoadingAwareObjectInputStream.getSerialziablePackages()) {
+ stream.allowTypesByWildcard(new String[]{packageName + ".**"});
+ }
+ }
+ return stream;
+ }
+
+}
diff -Nru activemq-5.6.0/activemq-core/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java activemq-5.6.0.CVE-2015-5254/activemq-core/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java
--- activemq-5.6.0/activemq-core/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java 2012-09-11 01:12:25.000000000 +0200
+++ activemq-5.6.0.CVE-2015-5254/activemq-core/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java 2015-12-15 08:47:58.347381368 +0100
@@ -21,7 +21,10 @@
import java.io.ObjectInputStream;
import java.io.ObjectStreamClass;
import java.lang.reflect.Proxy;
+import java.util.Arrays;
+import java.util.Collection;
import java.util.HashMap;
+import java.util.Map;
@SuppressWarnings("rawtypes")
public class ClassLoadingAwareObjectInputStream extends ObjectInputStream {
@@ -29,6 +32,8 @@
private static final ClassLoader FALLBACK_CLASS_LOADER =
ClassLoadingAwareObjectInputStream.class.getClassLoader();
+ private static String[] serializablePackages;
+
/**
* Maps primitive type names to corresponding class objects.
*/
@@ -40,7 +45,9 @@
protected Class<?> resolveClass(ObjectStreamClass classDesc) throws IOException, ClassNotFoundException {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
- return load(classDesc.getName(), cl);
+ Class clazz = load(classDesc.getName(), cl);
+ checkSecurity(clazz);
+ return clazz;
}
protected Class<?> resolveProxyClass(String[] interfaces) throws IOException, ClassNotFoundException {
@@ -50,18 +57,56 @@
cinterfaces[i] = load(interfaces[i], cl);
}
+ Class clazz = null;
try {
- return Proxy.getProxyClass(cl, cinterfaces);
+ clazz = Proxy.getProxyClass(cl, cinterfaces);
} catch (IllegalArgumentException e) {
try {
- return Proxy.getProxyClass(FALLBACK_CLASS_LOADER, cinterfaces);
+ clazz = Proxy.getProxyClass(FALLBACK_CLASS_LOADER, cinterfaces);
} catch (IllegalArgumentException e1) {
}
- throw new ClassNotFoundException(null, e);
+ }
+
+ if (clazz != null) {
+ checkSecurity(clazz);
+ return clazz;
+ } else {
+ throw new ClassNotFoundException(null);
}
}
+ public static String[] getSerialziablePackages() {
+ if (serializablePackages == null) {
+ serializablePackages = System.getProperty("org.apache.activemq.SERIALIZABLE_PACKAGES",
+ "java.lang,java.util,org.apache.activemq,org.fusesource.hawtbuf,com.thoughtworks.xstream.mapper").split(",");
+ }
+
+ return serializablePackages;
+ };
+
+ public static boolean isAllAllowed() {
+ return getSerialziablePackages().length == 1 && getSerialziablePackages()[0].equals("*");
+ }
+
+ private void checkSecurity(Class clazz) throws ClassNotFoundException {
+ if (!clazz.isPrimitive()) {
+ if (clazz.getPackage() != null && !isAllAllowed()) {
+ boolean found = false;
+ for (String packageName : getSerialziablePackages()) {
+ if (clazz.getPackage().getName().equals(packageName) || clazz.getPackage().getName().startsWith(packageName + ".")) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ throw new ClassNotFoundException("Forbidden " + clazz + "! This class is not allowed to be serialized. Add package with 'org.apache.activemq.SERIALIZABLE_PACKAGES' system property.");
+ }
+ }
+ }
+ }
+
private Class<?> load(String className, ClassLoader cl) throws ClassNotFoundException {
try {
return Class.forName(className, false, cl);
diff -Nru activemq-5.6.0/activemq-optional/src/main/java/org/apache/activemq/transport/xstream/XStreamWireFormat.java activemq-5.6.0.CVE-2015-5254/activemq-optional/src/main/java/org/apache/activemq/transport/xstream/XStreamWireFormat.java
--- activemq-5.6.0/activemq-optional/src/main/java/org/apache/activemq/transport/xstream/XStreamWireFormat.java 2012-09-11 01:12:25.000000000 +0200
+++ activemq-5.6.0.CVE-2015-5254/activemq-optional/src/main/java/org/apache/activemq/transport/xstream/XStreamWireFormat.java 2015-12-15 08:41:19.421068945 +0100
@@ -17,9 +17,15 @@
package org.apache.activemq.transport.xstream;
import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.converters.Converter;
+import com.thoughtworks.xstream.converters.MarshallingContext;
+import com.thoughtworks.xstream.converters.UnmarshallingContext;
+import com.thoughtworks.xstream.io.HierarchicalStreamReader;
+import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import org.apache.activemq.command.Command;
import org.apache.activemq.command.MarshallAware;
import org.apache.activemq.command.MessageDispatch;
+import org.apache.activemq.transport.stomp.XStreamSupport;
import org.apache.activemq.transport.util.TextWireFormat;
import org.apache.activemq.wireformat.WireFormat;
@@ -105,7 +111,28 @@
// Implementation methods
// -------------------------------------------------------------------------
protected XStream createXStream() {
- return new XStream();
+ final XStream xstream = XStreamSupport.createXStream();
+ xstream.ignoreUnknownElements();
+ xstream.registerConverter(new Converter() {
+ final Converter delegate = xstream.getConverterLookup().lookupConverterForType(ByteSequence.class);
+ @Override
+ public void marshal(Object o, HierarchicalStreamWriter hierarchicalStreamWriter, MarshallingContext marshallingContext) {
+ ByteSequence byteSequence = (ByteSequence)o;
+ byteSequence.compact();
+ delegate.marshal(byteSequence, hierarchicalStreamWriter, marshallingContext);
+ }
+
+ @Override
+ public Object unmarshal(HierarchicalStreamReader hierarchicalStreamReader, UnmarshallingContext unmarshallingContext) {
+ return delegate.unmarshal(hierarchicalStreamReader, unmarshallingContext);
+ }
+
+ @Override
+ public boolean canConvert(Class aClass) {
+ return aClass == ByteSequence.class;
+ }
+ });
+ return xstream;
}
}
diff -Nru activemq-5.6.0/activemq-web/src/main/java/org/apache/activemq/web/MessageQuery.java activemq-5.6.0.CVE-2015-5254/activemq-web/src/main/java/org/apache/activemq/web/MessageQuery.java
--- activemq-5.6.0/activemq-web/src/main/java/org/apache/activemq/web/MessageQuery.java 2012-09-11 01:12:25.000000000 +0200
+++ activemq-5.6.0.CVE-2015-5254/activemq-web/src/main/java/org/apache/activemq/web/MessageQuery.java 2015-12-15 08:38:03.340297084 +0100
@@ -80,9 +80,9 @@
if (message instanceof ObjectMessage) {
try {
return ((ObjectMessage) message).getObject();
- } catch (JMSException e) {
+ } catch (Exception e) {
//message could not be parsed, make the reason available
- return e;
+ return new String("Cannot display ObjectMessage body. Reason: " + e.getMessage());
}
}
if (message instanceof MapMessage) {

View file

@ -1,197 +0,0 @@
--- activemq-5.6.0/activemq-jaas/src/main/java/org/apache/activemq/jaas/LDAPLoginModule.java 2012-09-11 01:12:25.000000000 +0200
+++ activemq-5.6.0/activemq-jaas/src/main/java/org/apache/activemq/jaas/LDAPLoginModule.java.CVE-2015-6524 2015-01-15 08:57:10.000000000 +0100
@@ -17,22 +17,13 @@
package org.apache.activemq.jaas;
import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.security.Principal;
import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.naming.AuthenticationException;
-import javax.naming.CommunicationException;
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NameParser;
-import javax.naming.NamingEnumeration;
-import javax.naming.NamingException;
+import java.util.*;
+
+import javax.naming.*;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
@@ -71,6 +62,8 @@
private static final String ROLE_SEARCH_MATCHING = "roleSearchMatching";
private static final String ROLE_SEARCH_SUBTREE = "roleSearchSubtree";
private static final String USER_ROLE_NAME = "userRoleName";
+ private static final String EXPAND_ROLES = "expandRoles";
+ private static final String EXPAND_ROLES_MATCHING = "expandRolesMatching";
private static Logger log = LoggerFactory.getLogger(LDAPLoginModule.class);
@@ -102,7 +95,10 @@
new LDAPLoginProperty (ROLE_SEARCH_MATCHING, (String)options.get(ROLE_SEARCH_MATCHING)),
new LDAPLoginProperty (ROLE_SEARCH_SUBTREE, (String)options.get(ROLE_SEARCH_SUBTREE)),
new LDAPLoginProperty (USER_ROLE_NAME, (String)options.get(USER_ROLE_NAME)),
- };
+ new LDAPLoginProperty (EXPAND_ROLES, (String) options.get(EXPAND_ROLES)),
+ new LDAPLoginProperty (EXPAND_ROLES_MATCHING, (String) options.get(EXPAND_ROLES_MATCHING)),
+
+ };
}
@Override
@@ -194,7 +190,7 @@
try {
String filter = userSearchMatchingFormat.format(new String[] {
- username
+ doRFC2254Encoding(username)
});
SearchControls constraints = new SearchControls();
if (userSearchSubtreeBool) {
@@ -231,13 +227,43 @@
if (results.hasMore()) {
// ignore for now
}
- NameParser parser = context.getNameParser("");
- Name contextName = parser.parse(context.getNameInNamespace());
- Name baseName = parser.parse(getLDAPPropertyValue(USER_BASE));
- Name entryName = parser.parse(result.getName());
- Name name = contextName.addAll(baseName);
- name = name.addAll(entryName);
- String dn = name.toString();
+
+ String dn;
+ if (result.isRelative()) {
+ log.debug("LDAP returned a relative name: {}", result.getName());
+
+ NameParser parser = context.getNameParser("");
+ Name contextName = parser.parse(context.getNameInNamespace());
+ Name baseName = parser.parse(getLDAPPropertyValue(USER_BASE));
+ Name entryName = parser.parse(result.getName());
+ Name name = contextName.addAll(baseName);
+ name = name.addAll(entryName);
+ dn = name.toString();
+ } else {
+ log.debug("LDAP returned an absolute name: {}", result.getName());
+
+ try {
+ URI uri = new URI(result.getName());
+ String path = uri.getPath();
+
+ if (path.startsWith("/")) {
+ dn = path.substring(1);
+ } else {
+ dn = path;
+ }
+ } catch (URISyntaxException e) {
+ if (context != null) {
+ close(context);
+ }
+ FailedLoginException ex = new FailedLoginException("Error parsing absolute name as URI.");
+ ex.initCause(e);
+ throw ex;
+ }
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug("Using DN [" + dn + "] for binding.");
+ }
Attributes attrs = result.getAttributes();
if (attrs == null) {
@@ -281,8 +307,10 @@
List<String> list = currentRoles;
MessageFormat roleSearchMatchingFormat;
boolean roleSearchSubtreeBool;
+ boolean expandRolesBool;
roleSearchMatchingFormat = new MessageFormat(getLDAPPropertyValue(ROLE_SEARCH_MATCHING));
roleSearchSubtreeBool = Boolean.valueOf(getLDAPPropertyValue(ROLE_SEARCH_SUBTREE)).booleanValue();
+ expandRolesBool = Boolean.valueOf(getLDAPPropertyValue(EXPAND_ROLES)).booleanValue();
if (list == null) {
list = new ArrayList<String>();
@@ -291,7 +319,7 @@
return list;
}
String filter = roleSearchMatchingFormat.format(new String[] {
- doRFC2254Encoding(dn), username
+ doRFC2254Encoding(dn), doRFC2254Encoding(username)
});
SearchControls constraints = new SearchControls();
@@ -306,17 +334,40 @@
log.debug(" base DN: " + getLDAPPropertyValue(ROLE_BASE));
log.debug(" filter: " + filter);
}
+ HashSet<String> haveSeenNames = new HashSet<String>();
+ Queue<String> pendingNameExpansion = new LinkedList<String>();
NamingEnumeration<SearchResult> results = context.search(getLDAPPropertyValue(ROLE_BASE), filter, constraints);
while (results.hasMore()) {
SearchResult result = results.next();
Attributes attrs = result.getAttributes();
+ if (expandRolesBool) {
+ haveSeenNames.add(result.getNameInNamespace());
+ pendingNameExpansion.add(result.getNameInNamespace());
+ }
if (attrs == null) {
continue;
}
list = addAttributeValues(getLDAPPropertyValue(ROLE_NAME), attrs, list);
}
+ if (expandRolesBool) {
+ MessageFormat expandRolesMatchingFormat = new MessageFormat(getLDAPPropertyValue(EXPAND_ROLES_MATCHING));
+ while (!pendingNameExpansion.isEmpty()) {
+ String name = pendingNameExpansion.remove();
+ filter = expandRolesMatchingFormat.format(new String[]{name});
+ results = context.search(getLDAPPropertyValue(ROLE_BASE), filter, constraints);
+ while (results.hasMore()) {
+ SearchResult result = results.next();
+ name = result.getNameInNamespace();
+ if (!haveSeenNames.contains(name)) {
+ Attributes attrs = result.getAttributes();
+ list = addAttributeValues(getLDAPPropertyValue(ROLE_NAME), attrs, list);
+ haveSeenNames.add(name);
+ pendingNameExpansion.add(name);
+ }
+ }
+ }
+ }
return list;
-
}
protected String doRFC2254Encoding(String inputString) {
@@ -408,9 +459,14 @@
env.put(Context.INITIAL_CONTEXT_FACTORY, getLDAPPropertyValue(INITIAL_CONTEXT_FACTORY));
if (isLoginPropertySet(CONNECTION_USERNAME)) {
env.put(Context.SECURITY_PRINCIPAL, getLDAPPropertyValue(CONNECTION_USERNAME));
+ } else {
+ throw new NamingException("Empty username is not allowed");
}
+
if (isLoginPropertySet(CONNECTION_PASSWORD)) {
env.put(Context.SECURITY_CREDENTIALS, getLDAPPropertyValue(CONNECTION_PASSWORD));
+ } else {
+ throw new NamingException("Empty password is not allowed");
}
env.put(Context.SECURITY_PROTOCOL, getLDAPPropertyValue(CONNECTION_PROTOCOL));
env.put(Context.PROVIDER_URL, getLDAPPropertyValue(CONNECTION_URL));
@@ -433,7 +489,7 @@
private boolean isLoginPropertySet(String propertyName) {
for (int i=0; i < config.length; i++ ) {
- if (config[i].getPropertyName() == propertyName && config[i].getPropertyValue() != null)
+ if (config[i].getPropertyName() == propertyName && (config[i].getPropertyValue() != null && !"".equals(config[i].getPropertyValue())))
return true;
}
return false;

View file

@ -1,219 +0,0 @@
Name: activemq
Version: 5.6.0
Release: 23%{?dist}
Summary: Open source messaging and Integration Patterns server
License: ASL 2.0
URL: http://activemq.apache.org
# git clone -b activemq-5.6.0 https://github.com/apache/activemq.git activemq-core-5.6.0
# rm -rf activemq-core-5.6.0/.git
# tar cJf activemq-core-5.6.0.tar.xz activemq-core-5.6.0
Source0: activemq-5.6.0.tar.xz
Patch0: activemq-5.6.0-jaas-CVE-2015-6524.patch
Patch1: activemq-5.6.0-CVE-2015-5254.patch
BuildRequires: maven-local
BuildRequires: mvn(com.thoughtworks.xstream:xstream)
BuildRequires: mvn(commons-net:commons-net)
BuildRequires: mvn(org.apache.derby:derby)
BuildRequires: mvn(org.apache.activemq:activeio-core)
BuildRequires: mvn(org.apache.activemq.protobuf:activemq-protobuf)
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.apache.geronimo.specs:geronimo-jms_1.1_spec)
BuildRequires: mvn(org.apache.geronimo.specs:geronimo-jta_1.1_spec)
BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-clean-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-enforcer-plugin)
BuildRequires: mvn(org.apache.rat:apache-rat-plugin)
BuildRequires: mvn(org.apache.xbean:maven-xbean-plugin)
BuildRequires: mvn(org.codehaus.jettison:jettison)
BuildRequires: mvn(org.codehaus.mojo:javacc-maven-plugin)
BuildRequires: mvn(org.jasypt:jasypt)
BuildRequires: mvn(org.springframework:spring-jms)
BuildArch: noarch
%description
The most popular and powerful open source messaging and Integration Patterns
server.
%package core
Summary: ActiveMQ Core
%description core
ActiveMQ Core Library.
%package jaas
Summary: ActiveMQ Jaas
%description jaas
ActiveMQ Jaas Library.
%package kahadb
Summary: ActiveMQ KahaDB
%description kahadb
A file based persistence database that is local to the message broker that
is using it. It has been optimized for fast persistence and is the the default
storage mechanism from ActiveMQ 5.4 onwards. KahaDB uses less file descriptors
and provides faster recovery than its predecessor, the AMQ Message Store.
%package javadoc
Summary: Javadoc for %{name}
%description javadoc
This package contains javadoc for %{name}.
%prep
%setup -q -n %{name}-%{version}
%patch0 -p1
%patch1 -p1
# Disable modules
for m in all camel console fileserver blueprint karaf \
openwire-generator optional pool ra rar run spring \
tooling web web-demo web-console xmpp jmdns_1.0
do
%pom_disable_module %{name}-${m}
done
%pom_disable_module assembly
# Remove missing plugin for activemq-core
%pom_remove_dep xsddoc:maven-xsddoc-plugin %{name}-core/pom.xml
# Remove missing plugin
%pom_remove_plugin org.codehaus.mojo:ianal-maven-plugin
%pom_remove_plugin -r :cobertura-maven-plugin
# Workaround for new bundle plugin
%pom_xpath_remove "pom:plugin[pom:artifactId = 'maven-bundle-plugin' ]/pom:configuration"
# Remove missing test dependencies
%pom_remove_dep org.springframework:spring-test
# Remove missing optional dependencies
%pom_remove_dep org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec
# Remove jmdns support
rm -rf %{name}-core/src/main/java/org/apache/activemq/transport/discovery/zeroconf
%pom_remove_dep org.apache.activemq:activemq-jmdns_1.0 %{name}-core/pom.xml
# Remove leveldb support
rm -rf %{name}-core/src/main/java/org/apache/activemq/store/leveldb
%pom_remove_dep org.fusesource.fuse-extra:fusemq-leveldb %{name}-core/pom.xml
# Remove mqtt support
rm -rf %{name}-core/src/main/java/org/apache/activemq/transport/mqtt
%pom_remove_dep org.fusesource.mqtt-client:mqtt-client %{name}-core/pom.xml
# Remove other optional dependencies
%pom_remove_dep org.apache.activemq:activemq-openwire-generator %{name}-core/pom.xml
%pom_remove_dep org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec %{name}-core/pom.xml
%pom_remove_dep org.apache.geronimo.specs:geronimo-jta_1.0.1B_spec %{name}-core/pom.xml
%pom_remove_dep org.apache.geronimo.specs:geronimo-jacc_1.1_spec %{name}-core/pom.xml
%pom_remove_dep org.apache.geronimo.specs:geronimo-annotation_1.0_spec %{name}-core/pom.xml
chmod 644 LICENSE README.txt
# Fix license file encoding
mv LICENSE LICENSE.orig
iconv -f iso-8859-1 -t utf-8 LICENSE.orig > LICENSE
%mvn_package ":activemq-core:{xsd}::" __noinstall
%build
%mvn_build -sf
%install
%mvn_install
%files -f .mfiles-activemq-parent
%doc README.txt
%license LICENSE NOTICE
%files core -f .mfiles-activemq-core
%license LICENSE NOTICE
%files jaas -f .mfiles-activemq-jaas
%license LICENSE NOTICE
%files kahadb -f .mfiles-kahadb
%license LICENSE NOTICE
%files javadoc -f .mfiles-javadoc
%license LICENSE NOTICE
%changelog
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.6.0-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.6.0-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 5.6.0-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 5.6.0-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.6.0-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.6.0-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Wed Jun 29 2016 gil cattaneo <puntogil@libero.it> 5.6.0-17
- add missing build requires
* Mon Jun 20 2016 gil cattaneo <puntogil@libero.it> 5.6.0-16
- add missing build requires
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 5.6.0-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Tue Dec 15 2015 gil cattaneo <puntogil@libero.it> 5.6.0-14
- fix for CVE-2015-5254 (rhbz#1291292,1291293)
* Sat Nov 28 2015 gil cattaneo <puntogil@libero.it> - 5.6.0-13
- rebuilt
* Fri Sep 25 2015 gil cattaneo <puntogil@libero.it> 5.6.0-12
- fix for CVE-2015-6524 (rhbz#1257246,1257248)
* Sun Aug 09 2015 gil cattaneo <puntogil@libero.it> 5.6.0-11
- fix FTBFS rhbz#1239362
- fix BR list and use BR mvn()-like
- introduce license macro
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.6.0-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Mon Jun 16 2014 Michal Srb <msrb@redhat.com> - 5.6.0-9
- Fix FTBFS
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.6.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Mon Oct 14 2013 Marek Goldmann <mgoldman@redhat.com> - 5.6.0-7
- Use xmvn
- Fixes Remove binary distribution usage, RHBZ#1018696
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.6.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Sun Mar 03 2013 Matt Spaulding <mspaulding06@gmail.com> - 5.6.0-5
- Removed optional geronimo-annotation dependency from activemq-core
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.6.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Wed Sep 19 2012 Matt Spaulding <mspaulding06@gmail.com> - 5.6.0-3
- Added NOTICE to all subpackages
* Wed Sep 19 2012 Matt Spaulding <mspaulding06@gmail.com> - 5.6.0-2
- Removed references to RPM_BUILD_ROOT for consistency
* Mon Sep 10 2012 Matt Spaulding <mspaulding06@gmail.com> - 5.6.0-1
- Initial RPM package

1
dead.package Normal file
View file

@ -0,0 +1 @@
activemq fails to build from source: https://bugzilla.redhat.com/show_bug.cgi?id=1674631

View file

@ -1 +0,0 @@
9899f3be7eb799c9641d6a614b42f276 activemq-5.6.0.tar.xz