haproxy/examples/haproxy.spec
Willy Tarreau a0564f3541 [RELEASE] Released version 1.5-dev9
Released version 1.5-dev9 with the following main changes :
    - MINOR: Add release callback to si_applet
    - CLEANUP: Fix some minor typos
    - MINOR: Add TO/FROM_SET flags to struct stream_interface
    - CLEANUP: Fix some minor whitespace issues
    - MINOR: stats admin: allow unordered parameters in POST requests
    - CLEANUP: fix typo in findserver() log message
    - MINOR: stats admin: use the backend id instead of its name in the form
    - MINOR: stats admin: reduce memcmp()/strcmp() calls on status codes
    - DOC: cleanup indentation, alignment, columns and chapters
    - DOC: fix some keywords arguments documentation
    - MINOR: cli: display the 4 IP addresses and ports on "show sess XXX"
    - BUG/MAJOR: log: possible segfault with logformat
    - MEDIUM: log: split of log_format generation
    - MEDIUM: log: New format-log flags: %Fi %Fp %Si %Sp %Ts %rt %H %pid
    - MEDIUM: log: Unique ID
    - MINOR: log: log-format: usable without httplog and tcplog
    - BUG/MEDIUM: balance source did not properly hash IPv6 addresses
    - MINOR: contrib/iprange: add a network IP range to mask converter
    - MEDIUM: session: implement the "use-server" directive
    - MEDIUM: log: add a new cookie flag 'U' to report situations where cookie is not used
    - MEDIUM: http: make extract_cookie_value() iterate over cookie values
    - MEDIUM: http: add cookie and scookie ACLs
    - CLEANUP: lb_first: add reference to a paper describing the original idea
    - MEDIUM: stream_sock: add a get_src and get_dst callback and remove SN_FRT_ADDR_SET
    - BUG/MINOR: acl: req_ssl_sni would randomly fail if a session ID is present
    - BUILD: http: make extract_cookie_value() return an int not size_t
    - BUILD: http: stop gcc-4.1.2 from complaining about possibly uninitialized values
    - CLEANUP: http: message parser must ignore HTTP_MSG_ERROR
    - MINOR: standard: add a memprintf() function to build formatted error messages
    - CLEANUP: remove a few warning about unchecked return values in debug code
    - MEDIUM: move message-related flags from transaction to message
    - DOC: add a diagram to explain how circular buffers work
    - MAJOR: buffer rework: replace ->send_max with ->o
    - MAJOR: buffer: replace buf->l with buf->{o+i}
    - MINOR: buffers: provide simple pointer normalization functions
    - MINOR: buffers: remove unused function buffer_contig_data()
    - MAJOR: buffers: replace buf->w with buf->p - buf->o
    - MAJOR: buffers: replace buf->r with buf->p + buf->i
    - MAJOR: http: move buffer->lr to http_msg->next
    - MAJOR: http: change msg->{som,col,sov,eoh} to be relative to buffer origin
    - CLEANUP: http: remove unused http_msg->col
    - MAJOR: http: turn http_msg->eol to a buffer-relative offset
    - MEDIUM: http: add a pointer to the buffer in http_msg
    - MAJOR: http: make http_msg->sol relative to buffer's origin
    - MEDIUM: http: http_send_name_header: remove references to msg and buffer
    - MEDIUM: http: remove buffer arg in a few header manipulation functions
    - MEDIUM: http: remove buffer arg in http_capture_bad_message
    - MEDIUM: http: remove buffer arg in http_msg_analyzer
    - MEDIUM: http: remove buffer arg in http_upgrade_v09_to_v10
    - MEDIUM: http: remove buffer arg in http_buffer_heavy_realign
    - MEDIUM: http: remove buffer arg in chunk parsing functions
    - MINOR: http: remove useless wrapping checks in http_msg_analyzer
    - MEDIUM: buffers: fix unsafe use of buffer_ignore at some places
    - MEDIUM: buffers: add new pointer wrappers and get rid of almost all buffer_wrap_add calls
    - MEDIUM: buffers: implement b_adv() to advance a buffer's pointer
    - MEDIUM: buffers: rename a number of buffer management functions
    - MEDIUM: http: add a prefetch function for ACL pattern fetch
    - MEDIUM: http: make all ACL fetch function use acl_prefetch_http()
    - BUG/MINOR: http_auth: ACLs are volatile, not permanent
    - MEDIUM: http/acl: merge all request and response ACL fetches of headers and cookies
    - MEDIUM: http/acl: make acl_fetch_hdr_{ip,val} rely on acl_fetch_hdr()
    - MEDIUM: add a new typed argument list parsing framework
    - MAJOR: acl: make use of the new argument parsing framework
    - MAJOR: acl: store the ACL argument types in the ACL keyword declaration
    - MEDIUM: acl: acl_find_target() now resolves arguments based on their types
    - MAJOR: acl: make acl_find_targets also resolve proxy names at config time
    - MAJOR: acl: ensure that implicit table and proxies are valid
    - MEDIUM: acl: remove unused tests for missing args when args are mandatory
    - MEDIUM: pattern: replace type pattern_arg with type arg
    - MEDIUM: pattern: get rid of arg_i in all functions making use of arguments
    - MEDIUM: pattern: use the standard arg parser
    - MEDIUM: pattern: add an argument validation callback to pattern descriptors
    - MEDIUM: pattern: report the precise argument parsing error when known.
    - MEDIUM: acl: remove the ACL_TEST_F_NULL_MATCH flag
    - MINOR: pattern: add a new 'sample' type to store fetched data
    - MEDIUM: pattern: add new sample types to replace pattern types
    - MAJOR: acl: make use of the new sample struct and get rid of acl_test
    - MEDIUM: pattern/acl: get rid of temp_pattern in ACLs
    - MEDIUM: acl: get rid of the SET_RES flags
    - MEDIUM: get rid of SMP_F_READ_ONLY and SMP_F_MUST_FREE
    - MINOR: pattern: replace struct pattern with struct sample
    - MEDIUM: pattern: integrate pattern_data into sample and use sample everywhere
    - MEDIUM: pattern: retrieve the sample type in the sample, not in the keyword description
    - MEDIUM: acl/pattern: switch rdp_cookie functions stack up-down
    - MEDIUM: acl: replace acl_expr with args in acl fetch_* functions
    - MINOR: tcp: replace acl_fetch_rdp_cookie with smp_fetch_rdp_cookie
    - MEDIUM: acl/pattern: use the same direction scheme
    - MEDIUM: acl/pattern: start merging common sample fetch functions
    - MEDIUM: pattern: ensure that sample types always cast into other types.
    - MEDIUM: acl/pattern: factor out the src/dst address fetches
    - MEDIUM: acl: implement payload and payload_lv
    - CLEANUP: pattern: ensure that payload and payload_lv always stay in the buffer
    - MINOR: stick_table: centralize the handling of empty keys
    - MINOR: pattern: centralize handling of unstable data in pattern_process()
    - MEDIUM: pattern: use smp_fetch_rdp_cookie instead of the pattern specific version
    - MINOR: acl: set SMP_OPT_ITERATE on fetch functions
    - MINOR: acl: add a val_args field to keywords
    - MINOR: proto_tcp: validate arguments of payload and payload_lv ACLs
    - MEDIUM: http: merge acl and pattern header fetch functions
    - MEDIUM: http: merge ACL and pattern cookie fetches into a single one
    - MEDIUM: acl: report parsing errors to the caller
    - MINOR: arg: improve error reporting on invalid arguments
    - MINOR: acl: report errors encountered when loading patterns from files
    - MEDIUM: acl: extend the pattern parsers to report meaningful errors
    - REORG: use the name "sample" instead of "pattern" to designate extracted data
    - REORG: rename "pattern" files
    - MINOR: acl: add types to ACL patterns
    - MINOR: standard: add an IPv6 parsing function (str62net)
    - MEDIUM: acl: support IPv6 address matching
    - REORG: stream_interface: create a struct sock_ops to hold socket operations
    - REORG/MEDIUM: move protocol->{read,write} to sock_ops
    - REORG/MEDIUM: stream_interface: initialize socket ops from descriptors
    - REORG/MEDIUM: replace stream interface protocol functions by a proto pointer
    - REORG/MEDIUM: move the default accept function from sockstream to protocols.c
    - MEDIUM: proto_tcp: remove src6 and dst6 pattern fetch methods
    - BUG/MINOR: http: error snapshots are wrong if buffer wraps
    - BUG/MINOR: http: ensure that msg->err_pos is always relative to buf->p
    - MEDIUM: http: improve error capture reports
    - MINOR: acl: add the cook_val() match to match a cookie against an integer
    - BUG/MEDIUM: send_proxy: fix initialisation of send_proxy_ofs
    - MEDIUM: memory: add the ability to poison memory at run time
    - BUG/MEDIUM: log: ensure that unique_id is properly initialized
    - MINOR: cfgparse: use a common errmsg pointer for all parsers
    - MEDIUM: cfgparse: make backend_parse_balance() use memprintf to report errors
    - MEDIUM: cfgparse: use the new error reporting framework for remaining cfg_keywords
    - MINOR: http: replace http_message_realign() with  buffer_slow_realign()
2012-05-08 21:56:27 +02:00

277 lines
6.9 KiB
RPMSpec

Summary: HA-Proxy is a TCP/HTTP reverse proxy for high availability environments
Name: haproxy
Version: 1.5-dev9
Release: 1
License: GPL
Group: System Environment/Daemons
URL: http://haproxy.1wt.eu/
Source0: http://haproxy.1wt.eu/download/1.5/src/devel/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-root
BuildRequires: pcre-devel
Requires: /sbin/chkconfig, /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
It needs very little resource. Its event-driven architecture allows it to easily
handle thousands of simultaneous connections on hundreds of instances without
risking the system's stability.
%prep
%setup -q
# We don't want any perl dependecies in this RPM:
%define __perl_requires /bin/true
%build
%{__make} USE_PCRE=1 DEBUG="" ARCH=%{_target_cpu} TARGET=linux26
%install
[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}
%{__install} -d %{buildroot}%{_sbindir}
%{__install} -d %{buildroot}%{_sysconfdir}/rc.d/init.d
%{__install} -d %{buildroot}%{_sysconfdir}/%{name}
%{__install} -d %{buildroot}%{_mandir}/man1/
%{__install} -s %{name} %{buildroot}%{_sbindir}/
%{__install} -c -m 644 examples/%{name}.cfg %{buildroot}%{_sysconfdir}/%{name}/
%{__install} -c -m 755 examples/%{name}.init %{buildroot}%{_sysconfdir}/rc.d/init.d/%{name}
%{__install} -c -m 755 doc/%{name}.1 %{buildroot}%{_mandir}/man1/
%clean
[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}
%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 CHANGELOG TODO examples/*.cfg doc/haproxy-en.txt doc/haproxy-fr.txt doc/architecture.txt doc/configuration.txt
%doc %{_mandir}/man1/%{name}.1*
%attr(0755,root,root) %{_sbindir}/%{name}
%dir %{_sysconfdir}/%{name}
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/%{name}/%{name}.cfg
%attr(0755,root,root) %config %{_sysconfdir}/rc.d/init.d/%{name}
%changelog
* Tue May 8 2012 Willy Tarreau <w@1wt.eu>
- updated to 1.5-dev9
* Mon Mar 26 2012 Willy Tarreau <w@1wt.eu>
- updated to 1.5-dev8
* Sat Sep 10 2011 Willy Tarreau <w@1wt.eu>
- updated to 1.5-dev7
* Fri Apr 8 2011 Willy Tarreau <w@1wt.eu>
- updated to 1.5-dev6
* Tue Mar 29 2011 Willy Tarreau <w@1wt.eu>
- updated to 1.5-dev5
* Sun Mar 13 2011 Willy Tarreau <w@1wt.eu>
- updated to 1.5-dev4
* Thu Nov 11 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.5-dev3
* Sat Aug 28 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.5-dev2
* Wed Aug 25 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.5-dev1
* Sun May 23 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.5-dev0
* Sun May 16 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.4.6
* Thu May 13 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.4.5
* Wed Apr 7 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.4.4
* Tue Mar 30 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.4.3
* Wed Mar 17 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.4.2
* Thu Mar 4 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.4.1
* Fri Feb 26 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.4.0
* Tue Feb 2 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.4-rc1
* Mon Jan 25 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.4-dev8
* Mon Jan 25 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.4-dev7
* Fri Jan 8 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.4-dev6
* Sun Jan 3 2010 Willy Tarreau <w@1wt.eu>
- updated to 1.4-dev5
* Mon Oct 12 2009 Willy Tarreau <w@1wt.eu>
- updated to 1.4-dev4
* Thu Sep 24 2009 Willy Tarreau <w@1wt.eu>
- updated to 1.4-dev3
* Sun Aug 9 2009 Willy Tarreau <w@1wt.eu>
- updated to 1.4-dev2
* Wed Jul 29 2009 Willy Tarreau <w@1wt.eu>
- updated to 1.4-dev1
* Tue Jun 09 2009 Willy Tarreau <w@1wt.eu>
- updated to 1.4-dev0
* Sun May 10 2009 Willy Tarreau <w@1wt.eu>
- updated to 1.3.18
* Sun Mar 29 2009 Willy Tarreau <w@1wt.eu>
- updated to 1.3.17
* Sun Mar 22 2009 Willy Tarreau <w@1wt.eu>
- updated to 1.3.16
* Sat Apr 19 2008 Willy Tarreau <w@1wt.eu>
- updated to 1.3.15
* Wed Dec 5 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.14
* Thu Oct 18 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.13
* Sun Jun 17 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.12
* Sun Jun 3 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.11.4
* Mon May 14 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.11.3
* Mon May 14 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.11.2
* Mon May 14 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.11.1
* Mon May 14 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.11
* Thu May 10 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.10.2
* Tue May 09 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.10.1
* Tue May 08 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.10
* Sun Apr 15 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.9
* Tue Apr 03 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.8.2
* Sun Apr 01 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.8.1
* Sun Mar 25 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.8
* Wed Jan 26 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.7
* Wed Jan 22 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.6
* Wed Jan 07 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.5
* Wed Jan 02 2007 Willy Tarreau <w@1wt.eu>
- updated to 1.3.4
* Wed Oct 15 2006 Willy Tarreau <w@1wt.eu>
- updated to 1.3.3
* Wed Sep 03 2006 Willy Tarreau <w@1wt.eu>
- updated to 1.3.2
* Wed Jul 09 2006 Willy Tarreau <w@1wt.eu>
- updated to 1.3.1
* Wed May 21 2006 Willy Tarreau <willy@w.ods.org>
- updated to 1.2.14
* Wed May 01 2006 Willy Tarreau <willy@w.ods.org>
- updated to 1.2.13
* Wed Apr 15 2006 Willy Tarreau <willy@w.ods.org>
- updated to 1.2.12
* Wed Mar 30 2006 Willy Tarreau <willy@w.ods.org>
- updated to 1.2.11.1
* Wed Mar 19 2006 Willy Tarreau <willy@w.ods.org>
- updated to 1.2.10
* Wed Mar 15 2006 Willy Tarreau <willy@w.ods.org>
- updated to 1.2.9
* Sat Jan 22 2005 Willy Tarreau <willy@w.ods.org>
- updated to 1.2.3 (1.1.30)
* Sun Nov 14 2004 Willy Tarreau <w@w.ods.org>
- updated to 1.1.29
- fixed path to config and init files
- statically linked PCRE to increase portability to non-pcre systems
* Sun Jun 6 2004 Willy Tarreau <willy@w.ods.org>
- updated to 1.1.28
- added config check support to the init script
* Tue Oct 28 2003 Simon Matter <simon.matter@invoca.ch>
- updated to 1.1.27
- added pid support to the init script
* Wed Oct 22 2003 Simon Matter <simon.matter@invoca.ch>
- updated to 1.1.26
* Thu Oct 16 2003 Simon Matter <simon.matter@invoca.ch>
- initial build