Willy Tarreau eadbab9081 [RELEASE] Released version 1.3.23
Released version 1.3.23 with the following main changes :
    - [MINOR] server tracking: don't care about the tracked server's mode
    - [MEDIUM] appsession: add the "request-learn" option
    - [BUG] Configuration parser bug when escaping characters
    - [BUG] appsession: possible memory leak in case of out of memory condition
    - [MINOR] config: don't accept 'appsession' in defaults section
    - [CLEANUP] Keep in sync "defaults" support between documentation and code
    - [BUILD] warning ultoa_r returns char *
    - [CLEANUP] format '%d' expects type 'int', but argument 5 has type 'long int'
    - [BUG] config: fix erroneous check on cookie domain names, again
    - [DOC] trivial fix for man page
    - [BUG] config: fix wrong handling of too large argument count
    - [BUG] config: disable 'option httplog' on TCP proxies
    - [BUG] config: fix erroneous check on cookie domain names
    - [BUG] config: cookie domain was ignored in defaults sections
    - [MINOR] config: support passing multiple "domain" statements to cookies
    - [BUG] x-original-to: name was not set in default instance
    - [BUG] config: fix error message when config file is not found
    - [MINOR] config: don't report error on all subsequent files on failure
    - [BUILD] Makefile: make without arch-specific optimizations
    - [BUG] halog: fix segfault in case of empty log in PCT mode
    - [CLEANUP] second fix for the printf format warning
    - [BUG] check_post: limit analysis to the buffer length
    - [MINOR] http: typos on several unlikely() around header insertion
    - [CLEANUP] buffers: wrong size calculation for displaced data
    - [MINOR] config: option forceclose is valid in frontends too
    - [BUG] http: fix cookie parser to support spaces and commas in values
    - [MINOR] config: some options were missing for "redirect"
    - [BUILD] appsession did not build anymore under gcc-2.95 (cherry picked from commit 1fac75385abdfe03d7d3c4c5b04eb95a0db1bc74)
    - [MINOR] http: fix double slash prefix with server redirect
    - [MINOR] http redirect: add the ability to append a '/' to the URL
    - [MINOR] config: indicate that timeout appsession should not be used
    - [DOC] remove several trailing spaces
    - [CLEANUP] stream_sock: MSG_NOSIGNAL is only for send(), not recv()
    - [BUG] check: we must not check for error before reading a response
    - [CLEANUP] buffers: remove remains of wrong obsolete length check
    - [CLEANUP] http_server_error() must not purge a previous pending response
    - [MEDIUM] add the "force-persist" statement to force persistence on down servers
    - [MINOR] http: logs must report persistent connections to down servers
    - [MINOR] buffer_replace2 must never change the ->w entry
    - [MINOR] buffers: buffer_insert_line2 must not change the ->w entry
    - [MEDIUM] checks: make the HTTP check code add the CRLF itself
    - [MEDIUM] checks: add the server's status in the checks
    - [DOC] add some build info about the AIX platform
    - [CLEANUP] config: do not allocate an empty argument for rsp* keywords
2010-01-28 23:34:16 +01:00
2010-01-28 23:34:16 +01:00
2010-01-28 23:34:16 +01:00
2006-06-15 21:48:13 +02:00
2009-10-12 06:13:36 +02:00
2010-01-28 23:34:16 +01:00
2010-01-28 23:34:16 +01:00

                           -------------------
                             H A - P r o x y
                             How to build it
                           -------------------
                              version 1.3.15
                              willy tarreau
                                2008/05/25


To build haproxy, you will need :
  - GNU make. Neither Solaris nor OpenBSD's make work with this makefile.
    However, specific Makefiles for BSD and OSX are provided.
  - GCC between 2.91 and 4.3. Others may work, but not tested.
  - GNU ld

Also, you might want to build with libpcre support, which will provide a very
efficient regex implementation and will also fix some badness on Solaris's one.

To build haproxy, you have to choose your target OS amongst the following ones
and assign it to the TARGET variable :

  - linux22     for Linux 2.2
  - linux24     for Linux 2.4 and above (default)
  - linux24e    for Linux 2.4 with support for a working epoll (> 0.21)
  - linux26     for Linux 2.6 and above
  - solaris     for Solaris 8 or 10 (others untested)
  - freebsd     for FreeBSD 5 to 6.2 (others untested)
  - openbsd     for OpenBSD 3.1 to 3.7 (others untested)
  - cygwin      for Cygwin
  - generic     for any other OS.
  - custom      to manually adjust every setting

You may also choose your CPU to benefit from some optimizations. This is
particularly important on UltraSparc machines. For this, you can assign
one of the following choices to the CPU variable :

  - i686 for intel PentiumPro, Pentium 2 and above, AMD Athlon
  - i586 for intel Pentium, AMD K6, VIA C3.
  - ultrasparc : Sun UltraSparc I/II/III/IV processor
  - generic : any other processor or no specific optimization. (default)

Alternatively, you may just set the CPU_CFLAGS value to the optimal GCC options
for your platform.

You may want to build specific target binaries which do not match your native
compiler's target. This is particularly true on 64-bit systems when you want
to build a 32-bit binary. Use the ARCH variable for this purpose. Right now
it only knows about a few x86 variants (i386,i486,i586,i686,x86_64) and sets
-m32/-m64 as well as -march=<arch> accordingly.

If your system supports PCRE (Perl Compatible Regular Expressions), then you
really should build with libpcre which is between 2 and 10 times faster than
other libc implementations. Regex are used for header processing (deletion,
rewriting, allow, deny). The only inconvenient of libpcre is that it is not
yet widely spread, so if you build for other systems, you might get into
trouble if they don't have the dynamic library. In this situation, you should
statically link libpcre into haproxy so that it will not be necessary to
install it on target systems. Available build options for PCRE are :

  - USE_PCRE=1 to use libpcre, in whatever form is available on your system
    (shared or static)

  - USE_STATIC_PCRE=1 to use a static version of libpcre even if the dynamic
    one is available. This will enhance portability.

  - with no option, use your OS libc's standard regex implemntation (default).
    Warning! group references on Solaris seem broken. Use static-pcre whenever
    possible.

By default, the DEBUG variable is set to '-g' to enable debug symbols. It is
not wise to disable it on uncommon systems, because it's often the only way to
get a complete core when you need one. Otherwise, you can set DEBUG to '-s' to
strip the binary.

For example, I use this to build for Solaris 8 :

    $ make TARGET=solaris CPU=ultrasparc USE_STATIC_PCRE=1

And I build it this way on OpenBSD or FreeBSD :

    $ make -f Makefile.bsd REGEX=pcre DEBUG= COPTS.generic="-Os -fomit-frame-pointer -mgnu"

In order to build a 32-bit binary on an x86_64 Linux system :

    $ make TARGET=linux26 ARCH=i386

If you need to pass other defines, includes, libraries, etc... then please
check the Makefile to see which ones will be available in your case, and
use the USE_* variables in the GNU Makefile, or ADDINC, ADDLIB, and DEFINE
variables in the BSD makefiles.

AIX 5.3 is known to work with the generic target. However, for the binary to
also run on 5.2 or earlier, you need to build with DEFINE="-D_MSGQSUPPORT",
otherwise __fd_select() will be used while not being present in the libc.

-- end
Description
No description provided
Readme 125 MiB
Languages
C 98%
Shell 0.9%
Makefile 0.5%
Lua 0.2%
Python 0.2%