activemq fails to build from source: https://bugzilla.redhat.com/show_bug.cgi?id=1674631
This commit is contained in:
parent
d6e04c820a
commit
a4a081b581
6 changed files with 1 additions and 649 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1 +0,0 @@
|
|||
/activemq-5.6.0.tar.xz
|
||||
|
|
@ -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) {
|
||||
|
|
@ -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;
|
||||
219
activemq.spec
219
activemq.spec
|
|
@ -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
1
dead.package
Normal file
|
|
@ -0,0 +1 @@
|
|||
activemq fails to build from source: https://bugzilla.redhat.com/show_bug.cgi?id=1674631
|
||||
1
sources
1
sources
|
|
@ -1 +0,0 @@
|
|||
9899f3be7eb799c9641d6a614b42f276 activemq-5.6.0.tar.xz
|
||||
Reference in a new issue