prepare for new release

This commit is contained in:
Andy Green 2018-05-04 13:27:12 +08:00
parent c99a99e9b4
commit 1c08a96b47
3 changed files with 177 additions and 15 deletions

View file

@ -135,13 +135,13 @@ project(libwebsockets C)
set(PACKAGE "libwebsockets")
set(CPACK_PACKAGE_NAME "${PACKAGE}")
set(CPACK_PACKAGE_VERSION_MAJOR "2")
set(CPACK_PACKAGE_VERSION_MINOR "4")
set(CPACK_PACKAGE_VERSION_MAJOR "3")
set(CPACK_PACKAGE_VERSION_MINOR "0")
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 "12")
set(SOVERSION "13")
if(NOT CPACK_GENERATOR)
if(UNIX)
set(CPACK_GENERATOR "TGZ")

169
changelog
View file

@ -1,6 +1,175 @@
Changelog
---------
v3.0.0
======
- CHANGE: Clients used to call LWS_CALLBACK_CLOSED same as servers...
LWS_CALLBACK_CLIENT_CLOSED has been introduced and is called for clients
now.
- CHANGE: LWS_CALLBACK_CLIENT_CONNECTION_ERROR used to only be directed at
protocols[0]. However in many cases, the protocol to bind to was provided
at client connection info time and the wsi bound accordingly. In those
cases, CONNECTION_ERROR is directed at the bound protocol, not protcols[0]
any more.
- CHANGE: CMAKE: the following cmake defaults have changed with this version:
- LWS_WITH_ZIP_FOPS: now defaults OFF
- LWS_WITH_RANGES: now defaults OFF
- LWS_WITH_ZLIB: now defaults OFF
- LWS_WITHOUT_EXTENSIONS: now defaults ON
- CHANGE: REMOVED: lws_alloc_vfs_file() (read a file to malloc buffer)
- CHANGE: REMOVED: lws_read() (no longer useful outside of lws internals)
- CHANGE: REMOVED: ESP8266... ESP32 is now within the same price range and much
more performant
- CHANGE: soname bump... don't forget to `ldconfig`
- NEW: all event libraries support "foreign" loop integration where lws itself
if just a temporary user of the loop unrelated to the actual loop lifecycle.
See `minimal-http-server-eventlib-foreign` for example code demonstrating
this for all the event libraries.
Internal loop in lws is also supported and demonstrated by
`minimal-http-server-eventlib`.
- NEW: ws-over-h2 support. This is a new RFC-on-the-way supported by Chrome
and shortly firefox that allows ws connections to be multiplexed back to the
server on the same tcp + tls wrapper h2 connection that the html and scripts
came in on. This is hugely faster that discrete connections.
- NEW: UDP socket adoption and related event callbacks
- NEW: Multi-client connection binding, queuing and pipelining support.
Lws detects multiple client connections to the same server and port, and
optimizes how it handles them according to the server type and provided
flags. For http/1.0, all occur with individual parallel connections. For
http/1.1, you can enable keepalive pipelining, so the connections occur
sequentially on a single network connection. For http/2, they all occur
as parallel streams within a single h2 network connection.
See minimal-http-client-multi for example code.
- NEW: High resolution timer API for wsi, get a callback on your wsi with
LWS_CALLBACK_TIMER, set and reset the timer with lws_set_timer_usecs(wsi, us)
Actual resolution depends on event backend. Works with all backends, poll,
libuv, libevent, and libev.
- NEW: Protocols can arrange vhost-protocol instance specific callbacks with
second resolution using `lws_timed_callback_vh_protocol()`
- NEW: ACME client plugin for self-service TLS certificates
- NEW: RFC7517 JSON Web Keys RFC7638 JWK thumbprint, and RFC7515 JSON Web
signatures support
- NEW: lws_cancel_service() now provides a generic way to synchronize events
from other threads, which appear as a LWS_CALLBACK_EVENT_WAIT_CANCELLED
callback on all protocols. This is compatible with all the event libraries.
- NEW: support BSD poll() where changes to the poll wait while waiting are
undone.
- NEW: Introduce generic hash, hmac and RSA apis that operate the same
regardless of OpenSSL or mbedTLS tls backend
- NEW: Introduce X509 element query api that works the same regardless of
OpenSSL or mbedTLS tls backend
- NEW: Introduce over 30 "minimal examples" in ./minimal-examples... these
replace most of the old test servers
- test-echo -> minimal-ws-server-echo and minimal-ws-client-echo
- test-server-libuv / -libevent / -libev ->
minimal-https-server-eventlib / -eventlib-foreign / -eventlib-demos
- test-server-v2.0 -> folded into all the minimal servers
- test-server direct http serving -> minimal-http-server-dynamic
The minimal examples allow individual standalone build using their own
small CMakeLists.txt.
- NEW: lws now detects any back-to-back writes that did not go through the
event loop inbetween and reports them. This will flag any possibility of
failure rather than wait until the problem happens.
- NEW: CMake has LWS_WITH_DISTRO_RECOMMENDED to select features that are
appropriate for distros
- NEW: Optional vhost URL `error_document_404` if given causes a redirect there
instead of serve the default 404 page.
- NEW: lws_strncpy() wrapper guarantees NUL in copied string even if it was
truncated to fit.
- NEW: for client connections, local protocol binding name can be separated
from the ws subprotocol name if needed, using .local_protocol_name
- NEW: Automatic detection of time discontiguities
- NEW: Applies TCP_USER_TIMEOUT for Linux tcp keepalive where available
- QA: 1600 tests run on each commit in Travis CI, including almost all
Autobahn in client and server mode, various h2load tests, h2spec, attack.sh
the minimal example selftests and others.
- QA: fix small warnings introduced on gcc8.x (eg, Fedora 28)
- QA: Add most of -Wextra on gcc (-Wsign-compare, -Wignored-qualifiers,
-Wtype-limits, -Wuninitialized)
- QA: clean out warnings on windows
- QA: pass all 146 h2spec tests now on strict
- QA: introduce 35 selftests that operate different minimal examples against
each other and confirm the results.
- QA: LWS_WITH_MINIMAL_EXAMPLES allows mass build of all relevant minimal-
examples with the LWS build, for CI and to make all the example binaries
available from the lws build dir ./bin
- REFACTOR: the lws source directory layout in ./lib has been radically
improved, and there are now README.md files in selected subdirs with extra
documentation of interest to people working on lws itself.
- REFACTOR: pipelined transactions return to the event loop before starting the
next part.
- REFACTOR: TLS: replace all TLS library constants with generic LWS ones and
adapt all the TLS library code to translate to these common ones.
Isolated all the tls-related private stuff in `./lib/tls/private.h`, and all
the mbedTLS stuff in `./lib/tls/mbedtls` + openSSL stuff in
`./lib/tls/openssl`
- REFACTOR: the various kinds of wsi possible with lws have been extracted
from the main code and isolated into "roles" in `./lib/roles` which
communicate with the core code via an ops struct. Everything related to
ah is migrated to the http role.
wsi modes are eliminated and replaced by the ops pointer for the role the
wsi is performing. Generic states for wsi are available to control the
lifecycle using core code.
Adding new "roles" is now much easier with the changes and ops struct to
plug into.
- REFACTOR: reduce four different kinds of buffer management in lws into a
generic scatter-gather struct lws_buflist.
- REFACTOR: close notifications go through event loop
v2.4.0
======

View file

@ -1,5 +1,5 @@
Name: libwebsockets
Version: 2.4.0
Version: 3.0.0
Release: 1%{?dist}
Summary: Websocket Server and Client Library
@ -48,20 +48,10 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-,root,root,-)
%attr(755,root,root)
/usr/bin/libwebsockets-test-server
/usr/bin/libwebsockets-test-server-extpoll
/usr/bin/libwebsockets-test-client
/usr/bin/libwebsockets-test-ping
/usr/bin/libwebsockets-test-echo
/usr/bin/libwebsockets-test-fraggle
/usr/bin/libwebsockets-test-fuzxy
/usr/bin/libwebsockets-test-lejp
/usr/bin/libwebsockets-test-server-pthreads
/usr/bin/libwebsockets-test-server-libev
/usr/bin/libwebsockets-test-server-libuv
/usr/bin/libwebsockets-test-server-v2.0
/usr/bin/libwebsockets-test-sshd
/usr/bin/lwsws
/%{_libdir}/libwebsockets.so.12
/%{_libdir}/libwebsockets.so.13
/%{_libdir}/libwebsockets.so
/%{_libdir}/cmake/libwebsockets/LibwebsocketsConfig.cmake
/%{_libdir}/cmake/libwebsockets/LibwebsocketsConfigVersion.cmake
@ -78,6 +68,9 @@ rm -rf $RPM_BUILD_ROOT
/%{_libdir}/pkgconfig/libwebsockets_static.pc
%changelog
* Mon May 4 2018 Andy Green <andy@warmcat.com> 3.0.0-1
- MAJOR SONAMEBUMP APICHANGES Upstream 3.0.0 release
* Mon Oct 16 2017 Andy Green <andy@warmcat.com> 2.4.0-1
- MAJOR SONAMEBUMP APICHANGES Upstream 2.4.0 release