Marek Goldmann 5eedfbb
%global release_suffix .Final
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
Summary:    Apache HTTP load balancer
Marek Goldmann 5eedfbb
Name:       mod_cluster
Marek Goldmann 5eedfbb
Version:    1.1.1
Marek Goldmann 5eedfbb
Release:    2%{?dist}
Marek Goldmann 5eedfbb
License:    LGPLv2
Marek Goldmann 5eedfbb
URL:        http://jboss.org/mod_cluster
Marek Goldmann 5eedfbb
Group:      System Environment/Daemons
Marek Goldmann 5eedfbb
Source:     http://downloads.jboss.org/%{name}/%{version}%{release_suffix}/%{name}-%{version}%{release_suffix}-src-ssl.tar.gz
Marek Goldmann 5eedfbb
Source1:    mod_cluster.conf
Marek Goldmann 5eedfbb
Source2:    README.fedora
Marek Goldmann 5eedfbb
BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Marek Goldmann 5eedfbb
Patch0:     mod_cluster-1.1.1-lesswarnings.patch
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
Requires:      httpd >= 2.2.8
Marek Goldmann 5eedfbb
BuildRequires: httpd-devel >= 2.2.8
Marek Goldmann 5eedfbb
BuildRequires: autoconf
Marek Goldmann 5eedfbb
# BuildRequires: maven3 # Required to build docs
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
%description
Marek Goldmann 5eedfbb
Mod_cluster is an httpd-based load balancer. Like mod_jk and mod_proxy,
Marek Goldmann 5eedfbb
mod_cluster uses a communication channel to forward requests from httpd to one
Marek Goldmann 5eedfbb
of a set of application server nodes. Unlike mod_jk and mod_proxy, mod_cluster
Marek Goldmann 5eedfbb
leverages an additional connection between the application server nodes and
Marek Goldmann 5eedfbb
httpd. The application server nodes use this connection to transmit server-side
Marek Goldmann 5eedfbb
load balance factors and lifecycle events back to httpd via a custom set of
Marek Goldmann 5eedfbb
HTTP methods, affectionately called the Mod-Cluster Management Protocol (MCMP).
Marek Goldmann 5eedfbb
This additional feedback channel allows mod_cluster to offer a level of
Marek Goldmann 5eedfbb
intelligence and granularity not found in other load balancing solutions.
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
%prep
Marek Goldmann 5eedfbb
%setup -q -n %{name}-%{version}%{release_suffix}-src-ssl
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
# Remove unecessary directories
Marek Goldmann 5eedfbb
find srclib -mindepth 1 -maxdepth 1 ! -name mod_cluster -print0|xargs -0 -r rm -rf
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
# Remove a lot of compile-time warnings
Marek Goldmann 5eedfbb
%patch0 -p1
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
%build
Marek Goldmann 5eedfbb
CFLAGS="$RPM_OPT_FLAGS"
Marek Goldmann 5eedfbb
export CFLAGS
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
module_dirs=( advertise mod_manager mod_proxy_cluster mod_slotmem )
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
for dir in ${module_dirs[@]} ; do
Marek Goldmann 5eedfbb
    pushd srclib/%{name}/native/${dir}
Marek Goldmann 5eedfbb
        sh buildconf
Marek Goldmann 5eedfbb
        ./configure --libdir=%{_libdir} --with-apxs=/usr/sbin/apxs
Marek Goldmann 5eedfbb
        make %{?_smp_mflags}
Marek Goldmann 5eedfbb
    popd
Marek Goldmann 5eedfbb
done
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
%install
Marek Goldmann 5eedfbb
rm -rf $RPM_BUILD_ROOT
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/httpd/modules
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
module_dirs=( advertise mod_manager mod_proxy_cluster mod_slotmem )
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
for dir in ${module_dirs[@]} ; do
Marek Goldmann 5eedfbb
    pushd srclib/%{name}/native/${dir}
Marek Goldmann 5eedfbb
        cp ./*.so $RPM_BUILD_ROOT%{_libdir}/httpd/modules
Marek Goldmann 5eedfbb
    popd
Marek Goldmann 5eedfbb
done
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
install -d -m 755 $RPM_BUILD_ROOT/etc/httpd/conf.d
Marek Goldmann 5eedfbb
cp -a %{SOURCE1} $RPM_BUILD_ROOT/etc/httpd/conf.d/
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
install -m 0644 %{SOURCE2} README
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
cp -a srclib/mod_cluster/lgpl.txt .
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
%clean
Marek Goldmann 5eedfbb
rm -Rf $RPM_BUILD_ROOT
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
%files
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
# There is a docs/ directory which contains documentation in docbook
Marek Goldmann 5eedfbb
# format. Unfortunately Maven 3 is needed to build it.
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
%defattr(-,root,root)
Marek Goldmann 5eedfbb
%doc README
Marek Goldmann 5eedfbb
%doc lgpl.txt
Marek Goldmann 5eedfbb
%{_libdir}/httpd/modules/mod_advertise.so
Marek Goldmann 5eedfbb
%{_libdir}/httpd/modules/mod_manager.so
Marek Goldmann 5eedfbb
%{_libdir}/httpd/modules/mod_proxy_cluster.so
Marek Goldmann 5eedfbb
%{_libdir}/httpd/modules/mod_slotmem.so
Marek Goldmann 5eedfbb
%config(noreplace) %{_sysconfdir}/httpd/conf.d/*.conf
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
%changelog
Marek Goldmann 5eedfbb
* Fri Mar 11 2011 Marek Goldmann <mgoldman@redhat.com> - 1.1.1-2
Marek Goldmann 5eedfbb
- Another round of cleanup in spec file
Marek Goldmann 5eedfbb
- Patch that disables compilation-time warnings
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
* Thu Mar 10 2011 Marek Goldmann <mgoldman@redhat.com> - 1.1.1-1
Marek Goldmann 5eedfbb
- Upstream release 1.1.1
Marek Goldmann 5eedfbb
- Cleanup in spec file
Marek Goldmann 5eedfbb
Marek Goldmann 5eedfbb
* Fri Nov 12 2010 Marek Goldmann <mgoldman@redhat.com> - 1.1.0-1
Marek Goldmann 5eedfbb
- Initial release
Marek Goldmann 5eedfbb