summaryrefslogtreecommitdiffstats
path: root/mod_cluster.spec
diff options
context:
space:
mode:
Diffstat (limited to 'mod_cluster.spec')
-rw-r--r--mod_cluster.spec224
1 files changed, 224 insertions, 0 deletions
diff --git a/mod_cluster.spec b/mod_cluster.spec
new file mode 100644
index 0000000..8c1cbf1
--- /dev/null
+++ b/mod_cluster.spec
@@ -0,0 +1,224 @@
+%if 0%{?fedora} >= 17
+%global with_java 1
+%else
+%global with_java 0
+%endif
+
+%{!?_httpd_apxs: %{expand: %%global _httpd_apxs %%{_sbindir}/apxs}}
+%{!?_httpd_mmn: %{expand: %%global _httpd_mmn %%(cat %{_includedir}/httpd/.mmn || echo missing-httpd-devel)}}
+%{!?_httpd_confdir: %{expand: %%global _httpd_confdir %%{_sysconfdir}/httpd/conf.d}}
+# /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 namedreltag .Final
+%global namedversion %{version}%{?namedreltag}
+
+Summary: Apache HTTP load balancer
+Name: mod_cluster
+Version: 1.2.1
+Release: 2%{?dist}
+License: LGPLv2
+URL: http://jboss.org/mod_cluster
+Group: System Environment/Daemons
+
+# svn export http://anonsvn.jboss.org/repos/mod_cluster/tags/1.2.1.Final/ mod_cluster-1.2.1.Final
+# tar cafJ mod_cluster-1.2.1.Final.tar.xz mod_cluster-1.2.1.Final
+Source: mod_cluster-%{namedversion}.tar.xz
+
+Source1: mod_cluster.conf
+Source2: README.fedora
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+Patch0: mod_cluster-%{namedversion}-pom.patch
+
+Requires: httpd >= 2.2.8
+Requires: httpd-mmn = %{_httpd_mmn}
+
+%if %{with_java}
+BuildRequires: maven
+BuildRequires: maven-enforcer-plugin
+BuildRequires: jboss-parent
+BuildRequires: jpackage-utils
+BuildRequires: java-devel
+BuildRequires: jcip-annotations
+BuildRequires: jboss-logging
+BuildRequires: jboss-servlet-3.0-api
+BuildRequires: jboss-web
+%endif
+BuildRequires: httpd-devel >= 2.2.8
+BuildRequires: autoconf
+BuildRequires: make
+BuildRequires: gcc
+BuildRequires: tomcat-lib
+
+%description
+Mod_cluster is an httpd-based load balancer. Like mod_jk and mod_proxy,
+mod_cluster uses a communication channel to forward requests from httpd to one
+of a set of application server nodes. Unlike mod_jk and mod_proxy, mod_cluster
+leverages an additional connection between the application server nodes and
+httpd. The application server nodes use this connection to transmit server-side
+load balance factors and lifecycle events back to httpd via a custom set of
+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.
+
+%if %{with_java}
+%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
+
+%description javadoc
+This package contains the API documentation for %{name}.
+%endif
+
+%prep
+%setup -q -n mod_cluster-%{namedversion}
+%patch0 -p1
+
+%build
+CFLAGS="$RPM_OPT_FLAGS"
+export CFLAGS
+
+module_dirs=( advertise mod_manager mod_proxy_cluster mod_slotmem )
+
+for dir in ${module_dirs[@]} ; do
+ pushd native/${dir}
+ sh buildconf
+ ./configure --libdir=%{_libdir} --with-apxs=%{_httpd_apxs}
+ make %{?_smp_mflags}
+ popd
+done
+
+%if %{with_java}
+# Build the AS7 required libs
+# Tests skipped because of lack of mockito library
+mvn-rpmbuild -Dmaven.test.skip=true -P AS7 install javadoc:aggregate
+%endif
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/httpd/modules
+install -d -m 755 $RPM_BUILD_ROOT/etc/httpd/conf.d
+%if %{with_java}
+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}
+%endif
+
+module_dirs=( advertise mod_manager mod_proxy_cluster mod_slotmem )
+
+for dir in ${module_dirs[@]} ; do
+ pushd native/${dir}
+ cp ./*.so $RPM_BUILD_ROOT%{_libdir}/httpd/modules
+ popd
+done
+
+cp -a %{SOURCE1} $RPM_BUILD_ROOT/etc/httpd/conf.d/
+
+install -m 0644 %{SOURCE2} README
+
+%if %{with_java}
+# 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/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-container.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
+
+# 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.pom
+%add_maven_depmap JPP.%{name}-container-jbossweb.pom %{name}/container-jbossweb.jar
+%add_maven_depmap JPP.%{name}-container-catalina.pom %{name}/container-catalina.jar
+%endif
+
+
+%clean
+rm -Rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root)
+%doc README
+%doc lgpl.txt
+%{_libdir}/httpd/modules/mod_advertise.so
+%{_libdir}/httpd/modules/mod_manager.so
+%{_libdir}/httpd/modules/mod_proxy_cluster.so
+%{_libdir}/httpd/modules/mod_slotmem.so
+%config(noreplace) %{_sysconfdir}/httpd/conf.d/*.conf
+
+%if %{with_java}
+%files javadoc
+%{_javadocdir}/%{name}
+%doc lgpl.txt
+
+%files java
+%{_mavenpomdir}/*
+%{_mavendepmapfragdir}/*
+%{_javadir}/*
+%doc lgpl.txt
+%endif
+
+
+%changelog
+* Sat Jun 09 2012 Remi Collet <RPMS@FamilleCollet.com> - 1.2.1-2
+- rebuild for remi repo and httpd 2.4
+
+* Tue Jun 05 2012 Marek Goldmann <mgoldman@redhat.com> - 1.2.1-2
+- Added missing container.pom
+
+* Sat May 12 2012 Remi Collet <RPMS@FamilleCollet.com> - 1.2.1-1
+- rebuild for remi repo and httpd 2.4
+
+* Mon May 07 2012 Marek Goldmann <mgoldman@redhat.com> - 1.2.1-1
+- Upstream release 1.2.1.Final
+- Port to httpd 2.4, RHBZ#813871
+
+* Sat Mar 31 2012 Remi Collet <RPMS@FamilleCollet.com> - 1.1.1-4
+- rebuild for remi repo and httpd 2.4
+
+* Wed Mar 28 2012 Marek Goldmann <mgoldman@redhat.com> - 1.2.0-1
+- Upstream release 1.2.0.Final
+- Add java subpackage with AS7 required jars
+
+* Tue Mar 27 2012 Marek Goldmann <mgoldman@redhat.com> - 1.1.1-4
+- Require httpd-mmn RHBZ#803068
+
+* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.1-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Fri Mar 11 2011 Marek Goldmann <mgoldman@redhat.com> - 1.1.1-2
+- Another round of cleanup in spec file
+- Patch that disables compilation-time warnings
+
+* Thu Mar 10 2011 Marek Goldmann <mgoldman@redhat.com> - 1.1.1-1
+- Upstream release 1.1.1
+- Cleanup in spec file
+
+* Fri Nov 12 2010 Marek Goldmann <mgoldman@redhat.com> - 1.1.0-1
+- Initial release
+