%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.4.6 Release: 1%{?dist} Summary: HA-Proxy is a TCP/HTTP reverse proxy for high availability environments Group: System Environment/Daemons License: GPLv2+ URL: http://haproxy.1wt.eu/ Source0: http://haproxy.1wt.eu/download/1.3/src/haproxy-%{version}.tar.gz Source1: %{name}.init Source2: %{name}.cfg Source3: %{name}.logrotate 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 and up is linux 2.6 so using linux26 as target. # Recommended optimization option for x86 builds regparm_opts= %ifarch %ix86 x86_64 regparm_opts="USE_REGPARM=1" %endif make %{?_smp_mflags} CPU="generic" TARGET="linux26" USE_PCRE=1 ${regparm_opts} ADDINC="%{optflags}" USE_LINUX_TPROXY=1 # build the halog contrib program. It has 2 version halog64 and halog. Make # sure it is installed as 'halog' no matter what. halog="halog" %ifarch x86_64 halog="halog64" %endif pushd contrib/halog make ${halog} mv ${halog} halog.tmp mv halog.tmp halog popd %install rm -rf %{buildroot} make install-bin DESTDIR=%{buildroot} PREFIX=%{_prefix} make install-man DESTDIR=%{buildroot} PREFIX=%{_prefix} %{__install} -p -D -m 0755 %{SOURCE1} %{buildroot}%{_initrddir}/%{name} %{__install} -p -D -m 0644 %{SOURCE2} %{buildroot}%{haproxy_confdir}/%{name}.cfg %{__install} -p -D -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/logrotate.d/%{name} %{__install} -d -m 0755 %{buildroot}%{haproxy_home} %{__install} -d -m 0755 %{buildroot}%{haproxy_datadir} %{__install} -d -m 0755 %{buildroot}%{_bindir} %{__install} -p -m 0755 ./contrib/halog/halog %{buildroot}%{_bindir}/halog 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 CHANGELOG LICENSE README %dir %{haproxy_datadir} %dir %{haproxy_datadir}/* %dir %{haproxy_confdir} %config(noreplace) %{haproxy_confdir}/%{name}.cfg %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} %{_initrddir}/%{name} %{_sbindir}/%{name} %{_bindir}/halog %{_mandir}/man1/%{name}.1.gz %attr(-,%{haproxy_user},%{haproxy_group}) %dir %{haproxy_home} %changelog * Sun May 30 2010 Jeremy Hinegardner - 1.4.6-1 - update to 1.4.6 * Thu Feb 18 2010 Jeremy Hinegardner - 1.3.23-1 - update to 1.3.23 * Sat Oct 17 2009 Jeremy Hinegardner - 1.3.22-1 - update to 1.3.22 - added logrotate configuration * Mon Oct 12 2009 Jeremy Hinegardner - 1.3.21-1 - update to 1.3.21 * Sun Oct 11 2009 Jeremy Hinegardner - 1.3.20-1 - update to 1.3.20 * Sun Aug 02 2009 Jeremy Hinegardner - 1.3.19-1 - update to 1.3.19 * Fri Jul 24 2009 Fedora Release Engineering - 1.3.18-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Sun May 17 2009 Jeremy Hinegardner - 1.3.18-1 - update to 1.3.18 * Sat Apr 11 2009 Jeremy Hinegardner - 1.3.17-1 - Update to 1.3.17 * Tue Feb 24 2009 Fedora Release Engineering - 1.3.15.7-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Tue Dec 30 2008 Jeremy Hinegardner - 1.3.15.7-1 - update to 1.3.15.7 - remove upstream patches, they are now part of source distribution * Sat Nov 22 2008 Jeremy Hinegardner - 1.3.15.6-2 - apply upstream patches * Sat Nov 15 2008 Jeremy Hinegardner - 1.3.15.6-1 - update to 1.3.15.6 - use new build targets from upstream - add in recommended build options for x86 from upstream * Sat Jun 28 2008 Jeremy Hinegardner - 1.3.14.6-1 - update to 1.3.14.6 - remove gcc 4.3 patch, it has been applied upstream - remove MIT license as that code has been removed from upstream * Mon Apr 14 2008 Jeremy Hinegardner - 1.3.14.4-1 - update to 1.3.14.4 * Sun Mar 16 2008 Jeremy Hinegardner - 1.3.14.3-1 - update to 1.3.14.3 * Sat Mar 01 2008 Jeremy Hinegardner - 1.3.14.2-4 - apply the gcc 4.3 patch to the build process * Sat Mar 01 2008 Jeremy Hinegardner - 1.3.14.2-3 - fix gcc 4.3 bug [#434144] - update init script to properly reload configuration * Tue Feb 19 2008 Fedora Release Engineering - 1.3.14.2-2 - Autorebuild for GCC 4.3 * Sun Jan 20 2008 Jeremy Hinegardner - 1.3.14.2-1 - update to 1.3.14.2 - update make flags that changed with this upstream release - added man page installation * Sun Dec 16 2007 Jeremy Hinegardner - 1.3.14-1 - update to 1.3.14 * Mon Nov 05 2007 Jeremy Hinegardner - 1.3.12.4-1 - update to 1.3.12.4 * 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