From fcf5b2c25a580189bbad955815adac8dd398b612 Mon Sep 17 00:00:00 2001
From: Andy Green <andy@warmcat.com>
Date: Mon, 16 Oct 2017 20:09:58 +0800
Subject: [PATCH] v2.4.0

---
 CMakeLists.txt             |  2 +-
 README.md                  |  6 +++++-
 READMEs/release-checklist  | 20 ++++++++++----------
 changelog                  | 31 +++++++++++++++++++++++++++++++
 scripts/libwebsockets.spec |  7 +++++--
 5 files changed, 52 insertions(+), 14 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b44449f1..c7eb7e9d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,7 +14,7 @@ set(CPACK_PACKAGE_VERSION_PATCH "0")
 set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
 set(CPACK_PACKAGE_VENDOR "andy@warmcat.com")
 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PACKAGE} ${PACKAGE_VERSION}")
-set(SOVERSION "11")
+set(SOVERSION "12")
 if(NOT CPACK_GENERATOR)
     if(UNIX)
         set(CPACK_GENERATOR "TGZ")
diff --git a/README.md b/README.md
index f102b539..fd7bec20 100644
--- a/README.md
+++ b/README.md
@@ -8,9 +8,13 @@ libwebsockets
 News
 ----
 
+ - v2.4 is out... HTTP/2 server support and mbedTLS as a TLS backend.
+
+see the changelog https://github.com/warmcat/libwebsockets/blob/v2.4-stable/changelog
+
 Please note the additional READMEs have moved to ./READMEs/
 
-v2.3 is out... see the changelog https://github.com/warmcat/libwebsockets/blob/v2.3-stable/changelog
+ - v2.3 is out... see the changelog https://github.com/warmcat/libwebsockets/blob/v2.3-stable/changelog
 
 ESP32 is now supported in lws!  Download the
 
diff --git a/READMEs/release-checklist b/READMEs/release-checklist
index 2402a7bc..9f0e6d88 100644
--- a/READMEs/release-checklist
+++ b/READMEs/release-checklist
@@ -1,11 +1,13 @@
 Release Checklist
 -----------------
 
-0) QA
+1) QA
 
- a) ab
+ a) ab / h2load / h2spec
 
-   $ ab -n 100000 -c 200 http://localhost:7681/
+   $ ab -n 100000 -c 200 https://127.0.0.1:7681/
+   $ h2load -n 100000 -c 200  https://localhost:7681
+   $ h2spec  -h 127.0.0.1 -p 7681 -t -k -o 1
 
  b) coverity
  
@@ -30,10 +32,6 @@ Release Checklist
      
      rsync -av ./reports/* root@warmcat.com:/var/www/libwebsockets.org
 
-1) api
-
-     $ cp build/doc/* .
-
 2) soname bump?
 
  a) We need one if we added / changed / removed apis
@@ -82,16 +80,18 @@ Release Checklist
 - Bump version to 1.6.4
 - MINOR fix xyz
 
-6) signed tag
+6) Announce latest version on README.md
+
+7) signed tag
 
   git tag -s vX.Y[.Z]
 
-7) git
+8) git
 
  a) push
  
  b) final CI check, if fail delete tag, kill pushed tags, restart flow
 
-8) website
+9) website
 
  a) update latest tag for release branch
diff --git a/changelog b/changelog
index 74151afe..e98e6c15 100644
--- a/changelog
+++ b/changelog
@@ -1,6 +1,37 @@
 Changelog
 ---------
 
+v2.4.0
+======
+
+ - HTTP/2 server support is now mature and usable!  LWS_WITH_HTTP2=1 enables it.
+   Uses ALPN to serve HTTP/2, HTTP/1 and ws[s] connections all from the same
+   listen port seamlessly.  (Requires ALPN-capable OpenSSL 1.1 or mbedTLS).
+
+ - LWS_WITH_MBEDTLS=1 at CMake now builds and works against mbedTLS instead of
+   OpenSSL.  Most things work identically, although on common targets where
+   OpenSSL has acceleration, mbedTLS is many times slower in operation.  However
+   it is a lot smaller codewise.
+   
+ - Generic hash apis introduced that work the same on mbedTLS or OpenSSL backend
+ 
+ - LWS_WITH_PEER_LIMITS tracks IPs across all vhosts and allows restrictions on
+   both the number of simultaneous connections and wsi in use for any single IP
+
+ - lws_ring apis provide a generic single- or multi-tail ringbuffer... mirror
+   protocol now uses this.  Features include ring elements may be sized to fit
+   structs in the ringbuffer, callback when no tail any longer needs an element
+   and it can be deleted, and zerocopy options to write new members directly
+   into the ringbuffer, and use the ringbuffer element by address too.
+ 
+ - abstract ssh 2 server plugin included, with both plugin and standalone
+   demos provided.  You can bind the plugin to a vhost and also serve full-
+   strength ssh from the vhost.  IO from the ssh server is controlled by an
+   "ops" struct of callbacks for tx, rx, auth etc.
+   
+ - Many fixes, cleanups, source refactors and other improvements.
+
+
 v2.3.0
 ======
 
diff --git a/scripts/libwebsockets.spec b/scripts/libwebsockets.spec
index 0a7d5db9..48a63eab 100644
--- a/scripts/libwebsockets.spec
+++ b/scripts/libwebsockets.spec
@@ -1,5 +1,5 @@
 Name: libwebsockets
-Version: 2.3.0
+Version: 2.4.0
 Release: 1%{?dist}
 Summary: Websocket Server and Client Library
 
@@ -54,7 +54,7 @@ rm -rf $RPM_BUILD_ROOT
 /usr/bin/libwebsockets-test-echo
 /usr/bin/libwebsockets-test-fraggle
 /usr/bin/libwebsockets-test-fuzxy
-/%{_libdir}/libwebsockets.so.11
+/%{_libdir}/libwebsockets.so.12
 /%{_libdir}/libwebsockets.so
 /%{_libdir}/cmake/libwebsockets/LibwebsocketsConfig.cmake
 /%{_libdir}/cmake/libwebsockets/LibwebsocketsConfigVersion.cmake
@@ -72,6 +72,9 @@ rm -rf $RPM_BUILD_ROOT
 /%{_libdir}/pkgconfig/libwebsockets_static.pc
 
 %changelog
+* Mon Oct 16 2017 Andy Green <andy@warmcat.com> 2.4.0-1
+- MAJOR SONAMEBUMP APICHANGES Upstream 2.4.0 release
+
 * Fri Jul 28 2017 Andy Green <andy@warmcat.com> 2.3.0-1
 - MAJOR SONAMEBUMP APICHANGES Upstream 2.3.0 release
 
-- 
GitLab