Hello List,

We've just finished the portage of HAProxy for the next libreSSL
version which implements the quicTLS API.

For those interested this is how you are supposed to compile everything:

The libreSSL library:

        $ git clone https://github.com/libressl-portable/portable libressl
        $ cd libressl
        $ ./autogen.sh
        
        // The QUIC API is not public and not available in the shared
        // library for now, you have to link with the .a
        $ ./configure --prefix=/opt/libressl-quic/ --disable-shared 
CFLAGS=-DLIBRESSL_HAS_QUIC
        $ make V=1
        $ sudo make install

HAProxy:

        $ git clone http://git.haproxy.org/git/haproxy.git/
        $ cd haproxy
        $ make TARGET=linux-glibc USE_OPENSSL=1 USE_QUIC=1 
SSL_INC=/opt/libressl-quic/include/ \
               SSL_LIB=/opt/libressl-quic/lib/ DEFINE='-DLIBRESSL_HAS_QUIC'


        $ ./haproxy -vv
        HAProxy version 2.7-dev5-7eeef9-91 2022/09/14 - https://haproxy.org/
        Status: development branch - not safe for use in production.
        Known bugs: https://github.com/haproxy/haproxy/issues?q=is:issue+is:open
        Running on: Linux 5.15.0-47-generic #51-Ubuntu SMP Thu Aug 11 07:51:15 
UTC 2022 x86_64
        Build options :
          TARGET  = linux-glibc
          CPU     = generic
          CC      = cc
          CFLAGS  = -O2 -ggdb3 -Wall -Wextra -Wundef 
-Wdeclaration-after-statement -Wfatal-errors -Wtype-limits 
-Wshift-negative-value -Wshift-overflow=2 -Wduplicated-cond -Wnull-dereference 
-fwrapv -Wno-address-of-packed-member -Wno-unused-label -Wno-sign-compare 
-Wno-unused-parameter -Wno-clobbered -Wno-missing-field-initializers 
-Wno-cast-function-type -Wno-string-plus-int -Wno-atomic-alignment 
-DLIBRESSL_HAS_QUIC
          OPTIONS = USE_PCRE=1 USE_OPENSSL=1 USE_LUA=1 USE_ZLIB=1 USE_SYSTEMD=1 
USE_QUIC=1
          DEBUG   = -DDEBUG_MEMORY_POOLS -DDEBUG_STRICT
        
        Feature list : +EPOLL -KQUEUE +NETFILTER +PCRE -PCRE_JIT -PCRE2 
-PCRE2_JIT +POLL +THREAD -PTHREAD_EMULATION +BACKTRACE -STATIC_PCRE 
-STATIC_PCRE2 +TPROXY +LINUX_TPROXY +LINUX_SPLICE +LIBCRYPT +CRYPT_H -ENGINE 
+GETADDRINFO +OPENSSL +LUA +ACCEPT4 -CLOSEFROM +ZLIB -SLZ +CPU_AFFINITY +TFO 
+NS +DL +RT -DEVICEATLAS -51DEGREES -WURFL +SYSTEMD -OBSOLETE_LINKER +PRCTL 
-PROCCTL +THREAD_DUMP -EVPORTS -OT +QUIC -PROMEX -MEMORY_PROFILING
        
        Default settings :
          bufsize = 16384, maxrewrite = 1024, maxpollevents = 200
        
        Built with multi-threading support (MAX_TGROUPS=16, MAX_THREADS=256, 
default=8).
        Built with OpenSSL version : LibreSSL 3.6.0
        Running on OpenSSL version : LibreSSL 3.6.0
        OpenSSL library supports TLS extensions : yes
        OpenSSL library supports SNI : yes
        OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3
        Built with Lua version : Lua 5.4.3
        Built with network namespace support.
        Support for malloc_trim() is enabled.
        Built with zlib version : 1.2.11
        Running on zlib version : 1.2.11
        Compression algorithms supported : identity("identity"), 
deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
        Built with transparent proxy support using: IP_TRANSPARENT 
IPV6_TRANSPARENT IP_FREEBIND
        Built with PCRE version : 8.39 2016-06-14
        Running on PCRE version : 8.39 2016-06-14
        PCRE library supports JIT : no (USE_PCRE_JIT not set)
        Encrypted password support via crypt(3): yes
        Built with gcc compiler version 11.2.0
        
        Available polling systems :
              epoll : pref=300,  test result OK
               poll : pref=200,  test result OK
             select : pref=150,  test result OK
        Total: 3 (3 usable), will use epoll.
        
        Available multiplexer protocols :
        (protocols marked as <default> cannot be specified using 'proto' 
keyword)
               quic : mode=HTTP  side=FE     mux=QUIC  flags=HTX|NO_UPG|FRAMED
                 h2 : mode=HTTP  side=FE|BE  mux=H2    flags=HTX|HOL_RISK|NO_UPG
               fcgi : mode=HTTP  side=BE     mux=FCGI  flags=HTX|HOL_RISK|NO_UPG
          <default> : mode=HTTP  side=FE|BE  mux=H1    flags=HTX
                 h1 : mode=HTTP  side=FE|BE  mux=H1    flags=HTX|NO_UPG
          <default> : mode=TCP   side=FE|BE  mux=PASS  flags=
               none : mode=TCP   side=FE|BE  mux=PASS  flags=NO_UPG
        
        Available services : none
        
        Available filters :
                [BWLIM] bwlim-in
                [BWLIM] bwlim-out
                [CACHE] cache
                [COMP] compression
                [FCGI] fcgi-app
                [SPOE] spoe
                [TRACE] trace



Regards,


-- 
William Lallemand

Reply via email to