%define haproxy_user haproxy %define haproxy_group %{haproxy_user} %define haproxy_home %{_localstatedir}/lib/haproxy %define haproxy_confdir %{_sysconfdir}/haproxy %define haproxy_datadir %{_datadir}/haproxy Name: haproxy Version: 1.3.12.3 Release: 1%{?dist} Summary: HA-Proxy is a TCP/HTTP reverse proxy for high availability environments Group: System Environment/Daemons License: GPLv2+ and MIT URL: http://haproxy.1wt.eu/ Source0: http://haproxy.1wt.eu/download/1.3/src/haproxy-%{version}.tar.gz Source1: %{name}.init Source2: %{name}.cfg BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: pcre-devel Requires(pre): %{_sbindir}/useradd Requires(post): /sbin/chkconfig Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): /sbin/service %description HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited for high availability environments. Indeed, it can: - route HTTP requests depending on statically assigned cookies - spread the load among several servers while assuring server persistence through the use of HTTP cookies - switch to backup servers in the event a main one fails - accept connections to special ports dedicated to service monitoring - stop accepting connections without breaking existing ones - add/modify/delete HTTP headers both ways - block requests matching a particular pattern %prep %setup -q %build # No configure script is present, it is all done via make flags # FC 7 is linux 2.6 so using linux26 as target. make %{?_smp_mflags} CPU="generic" TARGET="linux26" REGEX="pcre" ADDINC="%{optflags}" %install rm -rf %{buildroot} # there is no install make target, only one file is created during build %{__install} -p -D -m 0755 %{name} %{buildroot}%{_sbindir}/%{name} %{__install} -p -D -m 0755 %{SOURCE1} %{buildroot}%{_initrddir}/%{name} %{__install} -p -D -m 0644 %{SOURCE2} %{buildroot}%{haproxy_confdir}/%{name}.cfg %{__install} -d -m 0755 %{buildroot}%{haproxy_home} %{__install} -d -m 0755 %{buildroot}%{haproxy_datadir} for httpfile in $(find ./examples/errorfiles/ -type f) do %{__install} -p -m 0644 $httpfile %{buildroot}%{haproxy_datadir} done # convert all text files to utf8 for textfile in $(find ./ -type f -name '*.txt') do mv $textfile $textfile.old iconv --from-code ISO8859-1 --to-code UTF-8 --output $textfile $textfile.old rm -f $textfile.old done %clean rm -rf %{buildroot} %pre %{_sbindir}/useradd -c "HAProxy user" -s /bin/false -r -d %{haproxy_home} %{haproxy_user} 2>/dev/null || : %post /sbin/chkconfig --add %{name} %preun if [ $1 = 0 ]; then /sbin/service %{name} stop >/dev/null 2>&1 /sbin/chkconfig --del %{name} fi %postun if [ $1 -ge 1 ]; then /sbin/service %{name} condrestart > /dev/null 2>&1 || : fi %files %defattr(-,root,root,-) %doc doc/* %doc examples/url-switching.cfg %doc examples/acl-content-sw.cfg %doc examples/content-sw-sample.cfg %doc examples/cttproxy-src.cfg %doc examples/haproxy.cfg %doc examples/tarpit.cfg %doc examples/tcp-splicing-sample.cfg %doc CHANGELOG CONTRIB LICENSE README %dir %{haproxy_datadir} %dir %{haproxy_datadir}/* %dir %{haproxy_confdir} %config(noreplace) %{haproxy_confdir}/%{name}.cfg %{_initrddir}/%{name} %{_sbindir}/%{name} %attr(-,%{haproxy_user},%{haproxy_group}) %dir %{haproxy_home} %changelog * Thu Nov 01 2007 Jeremy Hinegardner - 1.3.12.3-1 - update to 1.3.12.3 * Fri Sep 21 2007 Jeremy Hinegardner - 1.3.12.2-3 - fix init script 'reload' task * Thu Sep 20 2007 Jeremy Hinegardner - 1.3.12.2-2 - update License field * Thu Sep 20 2007 Jeremy Hinegardner - 1.3.12.2-1 - update to 1.3.12.2 - remove the upstream patch * Tue Sep 18 2007 Jeremy Hinegardner - 1.3.12.1-1 - switch to 1.3.12.1 branch - add patch from upstream with O'Reilly licensing updates. - convert ISO-8859-1 doc files to UTF-8 * Sat Mar 24 2007 Jeremy Hinegardner - 1.2.17-2 - addition of haproxy user - add license information * Fri Mar 23 2007 Jeremy Hinegardner - 1.2.17-1 - initial packaging