diff --git a/.gitignore b/.gitignore index cb7534d..915808d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ /mod_cluster-1.1.1.Final-src-ssl.tar.gz +/mod_cluster-1.2.0.Final-src-ssl.tar.gz +/mod_cluster-1.2.0.Final-src-ssl-CLEAN.tar.xz diff --git a/README.fedora b/README.fedora index 10398aa..e662b7b 100644 --- a/README.fedora +++ b/README.fedora @@ -2,12 +2,11 @@ Detailed information about configuring mod_cluster can be found here: - http://docs.jboss.org/mod_cluster/1.1.0/html/native.config.html + http://docs.jboss.org/mod_cluster/1.2.0/html/native.config.html == Disable proxy_balancer_module (required) == -To enable mod_cluster you need to make sure you have proxy_balancer_module disabled. Please comment out the loading of -proxy_balancer_module in /etc/httpd/conf/httpd.conf: +To enable mod_cluster you need to make sure you have proxy_balancer_module disabled. Please comment out the loading of proxy_balancer_module in /etc/httpd/conf/httpd.conf: # LoadModule proxy_balancer_module @@ -23,8 +22,7 @@ LoadModule manager_module modules/mod_manager.so == Enabling mod_cluster manager (optional) == -Mod_cluster manager is a simple tool that displays useful information about the cluster. To enable it you need to -load the mod_manager module and call SetHandler for the selected context: +Mod_cluster manager is a simple tool that displays useful information about the cluster. To enable it you need to load the mod_manager module and call SetHandler for the selected context: SetHandler mod_cluster-manager diff --git a/mod_cluster-1.1.1-lesswarnings.patch b/mod_cluster-1.1.1-lesswarnings.patch deleted file mode 100644 index 5bd3193..0000000 --- a/mod_cluster-1.1.1-lesswarnings.patch +++ /dev/null @@ -1,210 +0,0 @@ -diff -Naur mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/advertise/mod_advertise.c mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/advertise/mod_advertise.c ---- mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/advertise/mod_advertise.c 2010-07-29 17:04:18.000000000 +0200 -+++ mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/advertise/mod_advertise.c 2011-03-11 14:02:42.290960551 +0100 -@@ -81,7 +81,6 @@ - - /* Advertise sockets */ - static apr_socket_t *ma_mgroup_socket = NULL; --static apr_socket_t *ma_listen_socket = NULL; - static apr_sockaddr_t *ma_mgroup_sa = NULL; - static apr_sockaddr_t *ma_listen_sa = NULL; - static apr_sockaddr_t *ma_niface_sa = NULL; -@@ -170,7 +169,7 @@ - { - mod_advertise_config *mconf = ap_get_module_config(cmd->server->module_config, &advertise_module); - if (mconf->ma_advertise_port != MA_DEFAULT_ADVPORT && -- mconf->ma_advertise_adrs != MA_DEFAULT_GROUP) -+ strcmp(mconf->ma_advertise_adrs, MA_DEFAULT_GROUP)) - return "Duplicate AdvertiseGroup directives are not allowed"; - - if (apr_parse_addr_port(&mconf->ma_advertise_adrs, -@@ -626,7 +625,7 @@ - * if the code below doesn't work - */ - char *ptr = NULL; -- int port = DEFAULT_HTTP_PORT; -+ unsigned int port = DEFAULT_HTTP_PORT; - if (ma_server_rec->addrs && ma_server_rec->addrs->host_addr && - ma_server_rec->addrs->host_addr->next == NULL) { - ptr = apr_psprintf(pproc, "%pI", ma_server_rec->addrs->host_addr); -@@ -639,7 +638,7 @@ - } else { - port = ma_server_rec->port; - } -- ptr = apr_psprintf(pproc, "%s:%lu", ma_server_rec->server_hostname, port); -+ ptr = apr_psprintf(pproc, "%s:%u", ma_server_rec->server_hostname, port); - } - rv = apr_parse_addr_port(&mconf->ma_advertise_srvs, - &mconf->ma_advertise_srvi, -@@ -712,10 +711,10 @@ - } - if (mconf->ma_advertise_server != NULL) { - ap_rprintf(r, " Advertising on Group %s Port %d ", mconf->ma_advertise_adrs, mconf->ma_advertise_port); -- ap_rprintf(r, "for %s://%s:%d every %d seconds
", -+ ap_rprintf(r, "for %s://%s:%d every %ld seconds
", - mconf->ma_advertise_srvm, mconf->ma_advertise_srvs, - mconf-> ma_advertise_srvp, -- apr_time_sec(mconf->ma_advertise_freq) -+ (long) apr_time_sec(mconf->ma_advertise_freq) - ); - } else { - ap_rputs("
", r); -diff -Naur mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_manager/balancer.c mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_manager/balancer.c ---- mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_manager/balancer.c 2009-08-05 21:35:44.000000000 +0200 -+++ mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_manager/balancer.c 2011-03-11 14:10:23.706778901 +0100 -@@ -170,7 +170,7 @@ - apr_status_t rv; - balancerinfo_t *ou = balancer; - if (balancer->id) -- s->storage->ap_slotmem_free(s->slotmem, balancer->id, balancer); -+ rv = s->storage->ap_slotmem_free(s->slotmem, balancer->id, balancer); - else { - /* XXX: for the moment January 2007 ap_slotmem_free only uses ident to remove */ - rv = s->storage->ap_slotmem_do(s->slotmem, loc_read_balancer, &ou, s->p); -diff -Naur mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_manager/context.c mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_manager/context.c ---- mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_manager/context.c 2010-02-19 14:41:39.000000000 +0100 -+++ mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_manager/context.c 2011-03-11 14:10:49.531585887 +0100 -@@ -173,7 +173,7 @@ - apr_status_t rv; - contextinfo_t *ou = context; - if (context->id) -- s->storage->ap_slotmem_free(s->slotmem, context->id, context); -+ rv = s->storage->ap_slotmem_free(s->slotmem, context->id, context); - else { - /* XXX: for the moment January 2007 ap_slotmem_free only uses ident to remove */ - rv = s->storage->ap_slotmem_do(s->slotmem, loc_read_context, &ou, s->p); -diff -Naur mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_manager/domain.c mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_manager/domain.c ---- mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_manager/domain.c 2009-08-05 21:35:44.000000000 +0200 -+++ mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_manager/domain.c 2011-03-11 14:09:20.697129579 +0100 -@@ -170,7 +170,7 @@ - apr_status_t rv; - domaininfo_t *ou = domain; - if (domain->id) -- s->storage->ap_slotmem_free(s->slotmem, domain->id, domain); -+ rv = s->storage->ap_slotmem_free(s->slotmem, domain->id, domain); - else { - /* XXX: for the moment January 2007 ap_slotmem_free only uses ident to remove */ - rv = s->storage->ap_slotmem_do(s->slotmem, loc_read_domain, &ou, s->p); -diff -Naur mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_manager/host.c mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_manager/host.c ---- mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_manager/host.c 2009-08-05 21:35:44.000000000 +0200 -+++ mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_manager/host.c 2011-03-11 14:12:37.371428175 +0100 -@@ -170,7 +170,7 @@ - apr_status_t rv; - hostinfo_t *ou = host; - if (host->id) -- s->storage->ap_slotmem_free(s->slotmem, host->id, host); -+ rv = s->storage->ap_slotmem_free(s->slotmem, host->id, host); - else { - /* XXX: for the moment January 2007 ap_slotmem_free only uses ident to remove */ - rv = s->storage->ap_slotmem_do(s->slotmem, loc_read_host, &ou, s->p); -diff -Naur mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_manager/mod_manager.c mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_manager/mod_manager.c ---- mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_manager/mod_manager.c 2011-01-24 21:25:34.000000000 +0100 -+++ mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_manager/mod_manager.c 2011-03-11 14:12:14.580363591 +0100 -@@ -650,44 +650,6 @@ - /* All other fields can be modified without causing problems */ - return -1; - } --/* -- * Remove host and context belonging to the node -- */ --static void remove_host_context(request_rec *r, int node) --{ -- /* for read the hosts */ -- int i; -- int size = loc_get_max_size_host(); -- int *id; -- int sizecontext = loc_get_max_size_context(); -- int *idcontext; -- -- -- ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, -- "remove_host_context processing node: %d", node); -- if (size == 0) -- return; -- id = apr_palloc(r->pool, sizeof(int) * size); -- idcontext = apr_palloc(r->pool, sizeof(int) * sizecontext); -- size = get_ids_used_host(hoststatsmem, id); -- for (i=0; inode == node) -- remove_host(hoststatsmem, ou); -- } -- -- sizecontext = get_ids_used_context(contextstatsmem, idcontext); -- for (i=0; inode == node) -- remove_context(contextstatsmem, context); -- } --} - - /* - * Process a CONFIG message -diff -Naur mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_manager/node.c mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_manager/node.c ---- mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_manager/node.c 2010-03-23 16:22:23.000000000 +0100 -+++ mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_manager/node.c 2011-03-11 14:11:10.043844005 +0100 -@@ -189,7 +189,7 @@ - apr_status_t rv; - nodeinfo_t *ou = node; - if (node->mess.id) -- s->storage->ap_slotmem_free(s->slotmem, node->mess.id, node); -+ rv = s->storage->ap_slotmem_free(s->slotmem, node->mess.id, node); - else { - /* XXX: for the moment January 2007 ap_slotmem_free only uses ident to remove */ - rv = s->storage->ap_slotmem_do(s->slotmem, loc_read_node, &ou, s->p); -diff -Naur mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_manager/sessionid.c mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_manager/sessionid.c ---- mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_manager/sessionid.c 2009-08-05 21:35:44.000000000 +0200 -+++ mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_manager/sessionid.c 2011-03-11 14:09:56.043128059 +0100 -@@ -170,7 +170,7 @@ - apr_status_t rv; - sessionidinfo_t *ou = sessionid; - if (sessionid->id) -- s->storage->ap_slotmem_free(s->slotmem, sessionid->id, sessionid); -+ rv = s->storage->ap_slotmem_free(s->slotmem, sessionid->id, sessionid); - else { - /* XXX: for the moment January 2007 ap_slotmem_free only uses ident to remove */ - rv = s->storage->ap_slotmem_do(s->slotmem, loc_read_sessionid, &ou, s->p); -diff -Naur mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_proxy_cluster/mod_proxy_cluster.c mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_proxy_cluster/mod_proxy_cluster.c ---- mod_cluster-1.1.1.Final-src-ssl.orig/srclib/mod_cluster/native/mod_proxy_cluster/mod_proxy_cluster.c 2011-01-24 21:58:01.000000000 +0100 -+++ mod_cluster-1.1.1.Final-src-ssl.new/srclib/mod_cluster/native/mod_proxy_cluster/mod_proxy_cluster.c 2011-03-11 14:18:29.962485616 +0100 -@@ -496,7 +496,7 @@ - proxy_balancer *balancer = ap_proxy_get_balancer(pool, conf, name); - - if (!balancer && (creat_bal == CREAT_NONE || -- creat_bal == CREAT_ROOT && s!=main_server)) { -+ (creat_bal == CREAT_ROOT && s!=main_server))) { - s = s->next; - continue; - } -@@ -718,8 +718,8 @@ - { - apr_status_t status; - apr_interval_time_t timeout; -- apr_interval_time_t savetimeout; -- char savetimeout_set; -+ apr_interval_time_t savetimeout = 0; -+ char savetimeout_set = 0; - #if AP_MODULE_MAGIC_AT_LEAST(20051115,4) - #else - proxy_cluster_helper *helperping; -@@ -1189,7 +1189,6 @@ - /* keep only the contexts corresponding to our balancer */ - if (balancer != NULL) { - nodeinfo_t *node; -- char *name; - if (node_storage->read_node(context->node, &node) != APR_SUCCESS) - continue; - if (strlen(balancer->name) > 11 && strcasecmp(&balancer->name[11], node->mess.balancer) != 0) -@@ -1264,7 +1263,6 @@ - return NULL; - while (*nodes != -1) { - nodeinfo_t *node; -- char *ret; - if (node_storage->read_node(*nodes, &node) != APR_SUCCESS) - continue; - if (node->mess.balancer) { diff --git a/mod_cluster-1.2.0.Final-src-ssl-pom.patch b/mod_cluster-1.2.0.Final-src-ssl-pom.patch new file mode 100644 index 0000000..e24bb20 --- /dev/null +++ b/mod_cluster-1.2.0.Final-src-ssl-pom.patch @@ -0,0 +1,61 @@ +diff -Naur mod_cluster-1.2.0.Final-src-ssl/srclib/mod_cluster/pom.xml mod_cluster-1.2.0.Final-src-ssl-work/srclib/mod_cluster/pom.xml +--- mod_cluster-1.2.0.Final-src-ssl/srclib/mod_cluster/pom.xml 2012-02-06 12:03:30.000000000 -0500 ++++ mod_cluster-1.2.0.Final-src-ssl-work/srclib/mod_cluster/pom.xml 2012-02-11 09:44:40.093999157 -0500 +@@ -32,7 +32,6 @@ + + + 3.0.1.GA +- 6.0.33 + 7.0.8 + 2.1.11.GA + 7.0.7.Final +@@ -72,17 +71,6 @@ + + + org.apache.tomcat +- catalina +- ${version.tomcat6} +- +- +- org.apache.tomcat +- coyote +- ${version.tomcat6} +- +- +- +- org.apache.tomcat + tomcat-catalina + ${version.tomcat7} + +@@ -139,11 +127,6 @@ + junit + ${version.junit} + +- +- org.mockito +- mockito-core +- ${version.mockito} +- + + + +@@ -152,11 +135,6 @@ + junit + test + +- +- org.mockito +- mockito-core +- test +- + + + +@@ -206,7 +184,6 @@ + container-spi + core + container +- demo + + + diff --git a/mod_cluster.spec b/mod_cluster.spec index 9251125..51156ad 100644 --- a/mod_cluster.spec +++ b/mod_cluster.spec @@ -4,26 +4,42 @@ # /etc/httpd/conf.d with httpd < 2.4 and defined as /etc/httpd/conf.modules.d with httpd >= 2.4 %{!?_httpd_modconfdir: %{expand: %%global _httpd_modconfdir %%{_sysconfdir}/httpd/conf.d}} -%global release_suffix .Final +%global namedreltag .Final +%global namedversion %{version}%{?namedreltag} Summary: Apache HTTP load balancer Name: mod_cluster -Version: 1.1.1 -Release: 4%{?dist} +Version: 1.2.0 +Release: 1%{?dist} License: LGPLv2 URL: http://jboss.org/mod_cluster Group: System Environment/Daemons -Source: http://downloads.jboss.org/%{name}/%{version}%{release_suffix}/%{name}-%{version}%{release_suffix}-src-ssl.tar.gz + +# wget http://downloads.jboss.org/mod_cluster/1.2.0.Final/mod_cluster-1.2.0.Final-src-ssl.tar.gz +# tar -xf mod_cluster-1.2.0.Final-src-ssl.tar.gz +# find mod_cluster-1.2.0.Final-src-ssl/srclib -mindepth 1 -maxdepth 1 ! -name mod_cluster -print0|xargs -0 -r rm -rf +# tar cafJ mod_cluster-1.2.0.Final-src-ssl-CLEAN.tar.xz mod_cluster-1.2.0.Final-src-ssl +Source: mod_cluster-%{namedversion}-src-ssl-CLEAN.tar.xz Source1: mod_cluster.conf Source2: README.fedora -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -Patch0: mod_cluster-1.1.1-lesswarnings.patch + +Patch0: %{name}-%{version}%{namedreltag}-src-ssl-pom.patch Requires: httpd >= 2.2.8 Requires: httpd-mmn = %{_httpd_mmn} + +BuildRequires: maven +BuildRequires: jpackage-utils +BuildRequires: java-devel +BuildRequires: jcip-annotations +BuildRequires: jboss-logging +BuildRequires: jboss-servlet-3.0-api +BuildRequires: jboss-web BuildRequires: httpd-devel >= 2.2.8 BuildRequires: autoconf -# BuildRequires: maven3 # Required to build docs +BuildRequires: make +BuildRequires: gcc +BuildRequires: tomcat-lib %description Mod_cluster is an httpd-based load balancer. Like mod_jk and mod_proxy, @@ -36,13 +52,27 @@ HTTP methods, affectionately called the Mod-Cluster Management Protocol (MCMP). This additional feedback channel allows mod_cluster to offer a level of intelligence and granularity not found in other load balancing solutions. -%prep -%setup -q -n %{name}-%{version}%{release_suffix}-src-ssl +%package java +Summary: Java bindings for %{name} +Group: Development/Libraries +Requires: jpackage-utils +Requires: jcip-annotations +Requires: jboss-logging +Requires: jboss-servlet-3.0-api + +%description java +This package contains Java part of %{name}. + +%package javadoc +Summary: Javadocs for %{name} +Group: Documentation +Requires: jpackage-utils -# Remove unecessary directories -find srclib -mindepth 1 -maxdepth 1 ! -name mod_cluster -print0|xargs -0 -r rm -rf +%description javadoc +This package contains the API documentation for %{name}. -# Remove a lot of compile-time warnings +%prep +%setup -q -n %{name}-%{version}%{namedreltag}-src-ssl %patch0 -p1 %build @@ -59,10 +89,18 @@ for dir in ${module_dirs[@]} ; do popd done -%install -rm -rf $RPM_BUILD_ROOT +pushd srclib/%{name} +# Build the AS7 required libs +# Tests skipped because of lack of mockito library +mvn-rpmbuild -Dmaven.test.skip=true -P AS7 install javadoc:aggregate +popd +%install install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/httpd/modules +install -d -m 755 $RPM_BUILD_ROOT/etc/httpd/conf.d +install -d -m 755 $RPM_BUILD_ROOT%{_javadir}/%{name} +install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name} +install -d -m 755 $RPM_BUILD_ROOT%{_mavenpomdir} module_dirs=( advertise mod_manager mod_proxy_cluster mod_slotmem ) @@ -72,21 +110,40 @@ for dir in ${module_dirs[@]} ; do popd done -install -d -m 755 $RPM_BUILD_ROOT/etc/httpd/conf.d cp -a %{SOURCE1} $RPM_BUILD_ROOT/etc/httpd/conf.d/ install -m 0644 %{SOURCE2} README cp -a srclib/mod_cluster/lgpl.txt . -%clean -rm -Rf $RPM_BUILD_ROOT +pushd srclib/mod_cluster -%files +# JAR +cp -p core/target/mod_cluster-core-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/core.jar +cp -p container/catalina/target/mod_cluster-container-catalina-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/container-catalina.jar +cp -p container/jbossweb/target/mod_cluster-container-jbossweb-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/container-jbossweb.jar +cp -p container-spi/target/mod_cluster-container-spi-%{namedversion}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/container-spi.jar + +# APIDOCS +cp -rp target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name} + +# POM +install -pm 644 pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-parent.pom +install -pm 644 core/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-core.pom +install -pm 644 container-spi/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-container-spi.pom +install -pm 644 container/catalina/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-container-catalina.pom +install -pm 644 container/jbossweb/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-container-jbossweb.pom -# There is a docs/ directory which contains documentation in docbook -# format. Unfortunately Maven 3 is needed to build it. +# DEPMAP +%add_maven_depmap JPP.%{name}-parent.pom +%add_maven_depmap JPP.%{name}-core.pom %{name}/core.jar +%add_maven_depmap JPP.%{name}-container-spi.pom %{name}/container-spi.jar +%add_maven_depmap JPP.%{name}-container-jbossweb.pom %{name}/container-jbossweb.jar +%add_maven_depmap JPP.%{name}-container-catalina.pom %{name}/container-catalina.jar +popd + +%files %defattr(-,root,root) %doc README %doc lgpl.txt @@ -96,7 +153,21 @@ rm -Rf $RPM_BUILD_ROOT %{_libdir}/httpd/modules/mod_slotmem.so %config(noreplace) %{_sysconfdir}/httpd/conf.d/*.conf +%files javadoc +%{_javadocdir}/%{name} +%doc lgpl.txt + +%files java +%{_mavenpomdir}/* +%{_mavendepmapfragdir}/* +%{_javadir}/* +%doc lgpl.txt + %changelog +* Wed Mar 28 2012 Marek Goldmann - 1.2.0-1 +- Upstream release 1.2.0.Final +- Add java subpackage with AS7 required jars + * Tue Mar 27 2012 Marek Goldmann - 1.1.1-4 - Require httpd-mmn RHBZ#803068 diff --git a/sources b/sources index dc189e0..4f6b4ad 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3d4fec37ecfd1e5ec33cd147525cfe5e mod_cluster-1.1.1.Final-src-ssl.tar.gz +a43bed51a2a91ba03e67d8c5a3f2bb07 mod_cluster-1.2.0.Final-src-ssl-CLEAN.tar.xz