pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/net/haproxy haproxy: updated to 2.4.0



details:   https://anonhg.NetBSD.org/pkgsrc/rev/fd15820fc19f
branches:  trunk
changeset: 452998:fd15820fc19f
user:      adam <adam%pkgsrc.org@localhost>
date:      Fri May 21 08:36:57 2021 +0000

description:
haproxy: updated to 2.4.0

What's new in 2.4 compared to 2.3 ? Lots of cool stuff! The work was spread
on several fronts:
  - performance and latency: a lot of work was done on locking reduction,
    bringing 2.4 a much lower latency than 2.3 had, and a higher scalability.
    2.4 is NUMA-aware on Linux and will avoid binding to cross-socket cores
    by default. Idle server-side connections are now reusable even when SNI,
    proxy protocol or transparent proxy are used, saving costly round trips.
    Lua now supports lock-free multi-threading. Idle frontend connections
    will now be closed as soon as possible during reloads.

  - reliability: "strict-limits" is on by default, experimental features
    are protected against accidental use from a copy-paste, a diagnostic
    mode was added to report suspicious or uncommon constructs that could
    be mistakes, new live debugging tools were added for better in-field
    debugging. Backend idle connections will be closed before quitting
    so that they don't consume source ports in TIME_WAIT.

  - management and integration: maps and ACLs now support atomic updates,
    server-side SSL certificates can also be updated without reloading,
    servers can be added/removed without reloading (still experimental),
    more server settings can be edited at run time, global variables can
    be listed/edited at run time, "defaults" section can now be named,
    reused an inherited, line numbers and file names can be included in
    any command, file paths can now be relative to the config file, some
    new ".if/.elif/.else/.endif" config directives permit a smoother
    transition between versions using a same config file (particularly
    useful for automated rollbacks),

  - interoperability / protocol support: WebSocket over HTTP/2 (RFC8441)
    is now supported on both sides, regardless of the version on the other
    side. The cache now supports the "Vary" header with a few commonly
    used headers, including "Accept-encoding" which gets normalized for
    optimal cache hit ratio. The Prometheus exporter got a significant
    liftup, requires less tricks on the Prometheus side, and supports
    listing only certain metrics for faster retrieval. Optional native
    support for Opentracing was also integrated (via USE_OT=1). The DNS
    resolvers now support talking to servers over TCP. Basic support for
    extracting information from MQTT and FIX protocol was added. Timeouts
    can now be adjusted on the fly and per-request in order to adapt to
    particuarly slow servers or special protocols.

  - user-friendliness: TCP loggers now do not require a ring section
    declaration anymore, it's transparently done now. Header deletion
    using a pattern matching on the name is now supported instead of
    having to list many names. Checking for real server-side errors got
    easier than before with http_fail_cnt/http_fail_rate. The config
    parser and CLI will now provide suggestions when some keywords are
    misspelled. The CLI's help output can now be filtered to subsets of
    commands and will be sorted for easier finding.

  - processing: the new "wait-for-body" HTTP action allows to wait for
    a request or response body up to a certain size or delay. This is
    convenient to detect POST contents or to detect error patterns or
    information leaks in responses. TCP frontends can now be manually
    upgraded to HTTP, allowing HTTP rules to be used in a frontend in
    a tcp->http scenario. JSON parameters can be decoded to extract some
    fields values. A URL encoder is now available to pass some fields in
    a way that is suitable for query string parameters. Base64 variants
    are now supported (such as the URL-compatible one used by JWT).

  - for distros: building optional addons will be easier thanks to the
    removal of the contrib/ directory and the cleaner integration with
    the regular build process and include files. Libslz was included by
    default, simplifying the packaging work. A few example configs were
    added into examples/ to serve as starters for users. A CPU entry was
    added to produce executables that works well both on old and new
    ARMv8 CPUs.

  - observability: more stats were added (SSL, H2). "show info" can now
    emit floating point values for rates and uptimes if requested.

diffstat:

 net/haproxy/Makefile   |   4 ++--
 net/haproxy/PLIST      |   4 +++-
 net/haproxy/distinfo   |  10 +++++-----
 net/haproxy/options.mk |   4 ++--
 4 files changed, 12 insertions(+), 10 deletions(-)

diffs (66 lines):

diff -r ff52c32d02c5 -r fd15820fc19f net/haproxy/Makefile
--- a/net/haproxy/Makefile      Fri May 21 07:50:13 2021 +0000
+++ b/net/haproxy/Makefile      Fri May 21 08:36:57 2021 +0000
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.76 2021/04/26 08:20:01 adam Exp $
+# $NetBSD: Makefile,v 1.77 2021/05/21 08:36:57 adam Exp $
 
-DISTNAME=      haproxy-2.3.10
+DISTNAME=      haproxy-2.4.0
 CATEGORIES=    net www
 MASTER_SITES=  https://www.haproxy.org/download/${PKGVERSION_NOREV:R}/src/
 
diff -r ff52c32d02c5 -r fd15820fc19f net/haproxy/PLIST
--- a/net/haproxy/PLIST Fri May 21 07:50:13 2021 +0000
+++ b/net/haproxy/PLIST Fri May 21 08:36:57 2021 +0000
@@ -1,11 +1,13 @@
-@comment $NetBSD: PLIST,v 1.9 2019/08/03 20:37:19 morr Exp $
+@comment $NetBSD: PLIST,v 1.10 2021/05/21 08:36:57 adam Exp $
 man/man1/haproxy.1
 sbin/haproxy
 share/doc/haproxy/architecture.txt
 share/doc/haproxy/configuration.txt
 share/examples/haproxy/acl-content-sw.cfg
+share/examples/haproxy/basic-config-edge.cfg
 share/examples/haproxy/content-sw-sample.cfg
 share/examples/haproxy/option-http_proxy.cfg
+share/examples/haproxy/quick-test.cfg
 share/examples/haproxy/socks4.cfg
 share/examples/haproxy/transparent_proxy.cfg
 share/examples/haproxy/wurfl-example.cfg
diff -r ff52c32d02c5 -r fd15820fc19f net/haproxy/distinfo
--- a/net/haproxy/distinfo      Fri May 21 07:50:13 2021 +0000
+++ b/net/haproxy/distinfo      Fri May 21 08:36:57 2021 +0000
@@ -1,9 +1,9 @@
-$NetBSD: distinfo,v 1.70 2021/04/26 08:20:01 adam Exp $
+$NetBSD: distinfo,v 1.71 2021/05/21 08:36:57 adam Exp $
 
-SHA1 (haproxy-2.3.10.tar.gz) = dc1be47af0a661815efeb7c0fbaf04b0eabcfd83
-RMD160 (haproxy-2.3.10.tar.gz) = 4301cbefff6e6d1d849c866b91a1acd24e549527
-SHA512 (haproxy-2.3.10.tar.gz) = 595a62d677240cb8a463245e5d5d497bb584a379852e533d82e45a77e1b91b469f84e386adcd42b6ec24e5806e256fc2708f672a0da5c1c4f784e3b76a9e7318
-Size (haproxy-2.3.10.tar.gz) = 2942240 bytes
+SHA1 (haproxy-2.4.0.tar.gz) = 6c8f01c3e3205b9af2a36c886600a5752617b1ba
+RMD160 (haproxy-2.4.0.tar.gz) = 3395bfd3d1b5e112759670da9e8c9245e8d2f8b1
+SHA512 (haproxy-2.4.0.tar.gz) = 846faffb7ac2ccbfe314f7c72d4ab3f1955338f3be45906e76a53934c32934e6a3ed9b7a04411717e9a91966e55266183e9cf583df5375f67d03d26c6c6fc273
+Size (haproxy-2.4.0.tar.gz) = 3570069 bytes
 SHA1 (patch-Makefile) = fcb2de85189526ae42ccf0b789789ee9b834f375
 SHA1 (patch-src_cli.c) = 4bc5cf0116df121ac4c3c38b8f962c3a62d536e5
 SHA1 (patch-src_haproxy.c) = a466acb853b5018b70571d0a03b9d28ed9245d06
diff -r ff52c32d02c5 -r fd15820fc19f net/haproxy/options.mk
--- a/net/haproxy/options.mk    Fri May 21 07:50:13 2021 +0000
+++ b/net/haproxy/options.mk    Fri May 21 08:36:57 2021 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: options.mk,v 1.9 2020/04/03 16:34:13 adam Exp $
+# $NetBSD: options.mk,v 1.10 2021/05/21 08:36:57 adam Exp $
 
 PKG_OPTIONS_VAR=               PKG_OPTIONS.haproxy
 PKG_SUPPORTED_OPTIONS=         lua prometheus ssl
@@ -41,7 +41,7 @@
 ### Use Prometheus
 ###
 .if !empty(PKG_OPTIONS:Mprometheus)
-BUILD_MAKE_FLAGS+=     EXTRA_OBJS="contrib/prometheus-exporter/service-prometheus.o"
+BUILD_MAKE_FLAGS+=     USE_PROMEX=1
 .endif
 
 ###



Home | Main Index | Thread Index | Old Index