[RELEASE] Released version 2.0-dev4

Released version 2.0-dev4 with the following main changes :
    - BUILD: enable freebsd builds on cirrus-ci
    - BUG/MINOR: http_fetch: Rely on the smp direction for "cookie()" and "hdr()"
    - MEDIUM: Make 'option forceclose' actually warn
    - MEDIUM: Make 'resolution_pool_size' directive fatal
    - DOC: management: place "show activity" at the right place
    - MINOR: cli/activity: show the dumping thread ID starting at 1
    - MINOR: task: export global_task_mask
    - MINOR: cli/debug: add a thread dump function
    - BUG/MEDIUM: streams: Don't use CF_EOI to decide if the request is complete.
    - BUG/MEDIUM: streams: Try to L7 retry before aborting the connection.
    - BUG/MINOR: debug: make ha_task_dump() always check the task before dumping it
    - BUG/MINOR: debug: make ha_task_dump() actually dump the requested task
    - MINOR: debug: make ha_thread_dump() and ha_task_dump() take a buffer
    - BUG/MINOR: debug: don't check the call date on tasklets
    - MINOR: thread: implement ha_thread_relax()
    - MINOR: task: put barriers after each write to curr_task
    - MINOR: task: always reset curr_task when freeing a task or tasklet
    - MINOR: stream: detach the stream from its own task on stream_free()
    - MEDIUM: debug/threads: implement an advanced thread dump system
    - REGTEST: extend the check duration on tls_health_checks and mark it slow
    - DOC: fix "successful" typo
    - MINOR: init: setenv HAPROXY_CFGFILES
    - MINOR: threads/init: synchronize the threads startup
    - MEDIUM: init/mworker: make the pipe register function a regular initcall
    - CLEANUP: memory: make the fault injection code use the OTHER_LOCK label
    - CLEANUP: threads: remove the now unused START_LOCK label
    - MINOR: init/threads: make the global threads an array of structs
    - MINOR: threads: add each thread's clockid into the global thread_info
    - CLEANUP: stream: remove an obsolete debugging test
    - MINOR: tools: add dump_hex()
    - MINOR: debug: implement ha_panic()
    - MINOR: debug/cli: add some debugging commands for developers
    - MINOR: tools: provide a may_access() function and make dump_hex() use it
    - MINOR: debug: make ha_panic() report threads starting at 1
    - REORG: compat: move some integer limit definitions from standard.h to compat.h
    - REORG: threads: move the struct thread_info from global.h to hathreads.h
    - MINOR: compat: make sure to always define clockid_t
    - MINOR: threads: always place the clockid in the struct thread_info
    - MINOR: threads: add a thread-local thread_info pointer "ti"
    - MINOR: time: move the cpu, mono, and idle time to thread_info
    - MINOR: time: add a function to retrieve another thread's cputime
    - MINOR: debug: report each thread's cpu usage in "show thread"
    - BUILD: threads: only assign the clock_id when supported
    - BUILD: makefile: use USE_OBSOLETE_LINKER for solaris
    - BUILD: makefile: remove -fomit-frame-pointer optimisation (solaris)
    - MAJOR: polling: add event ports support (Solaris)
    - BUG/MEDIUM: streams: Don't switch from SI_ST_CON to SI_ST_DIS on read0.
    - CLEANUP: time: refine the test on _POSIX_TIMERS
    - MINOR: compat: define a new empty type empty_t for non-implemented fields
    - CLEANUP: time: switch clockid_t to empty_t when not available
    - BUG/MINOR: mworker: Fix memory leak of mworker_proc members
    - CLEANUP: objtype: make obj_type() and obj_type_name() take consts
    - MINOR: debug: switch to SIGURG for thread dumps
    - CLEANUP: threads: really move thread_info to hathreads.c
    - MINOR: threads: make threads_{harmless|want_rdv}_mask constant 0 without threads
    - CLEANUP: debug: always report harmless/want_rdv even without threads
    - MINOR: threads: implement ha_tkill() and ha_tkillall()
    - CLEANUP: debug: make use of ha_tkill() and remove ifdefs
    - MINOR: stream: introduce a stream_dump() function and use it in stream_dump_and_crash()
    - MINOR: debug: dump streams when an applet, iocb or stream is known
    - MINOR: threads: add a "stuck" flag to the thread_info struct
    - MINOR: threads: add a timer_t per thread in thread_info
    - MAJOR: watchdog: implement a thread lockup detection mechanism
    - MINOR: stream: remove the cpu time detection from process_stream()
    - MINOR: connection: report the mux names in "haproxy -vv"
    - CLEANUP: mux-h1: use "H1" and not "h1" as the mux's name
    - BUG/MEDIUM: WURFL: segfault in wurfl-get() with missing info.
    - MINOR: WURFL: call header_retireve_callback() in dummy library
    - MINOR: WURFL: fixed Engine load failed error when wurfl-information-list contains wurfl_root_id
    - MINOR: WURFL: shows log messages during module initialization
    - MINOR: WURFL: removes heading wurfl-information-separator from wurfl-get-all() and wurfl-get() results
    - MINOR: WURFL: wurfl_get() and wurfl_get_all() now return an empty string if device detection fails
    - MEDIUM: WURFL: HTX awareness.
    - MINOR: WURFL: module version bump to 2.0
    - MINOR: WURFL: do not emit warnings when not configured
    - CONTRIB: wurfl: address 3 build issues in the wurfl dummy library
    - BUG/MEDIUM: init/threads: provide per-thread alloc/free function callbacks
    - BUILD: travis: add sanitizers to travis-ci builds
    - BUILD: time: remove the test on _POSIX_C_SOURCE
    - CLEANUP: build: rename some build macros to use the USE_* ones
    - CLEANUP: raw_sock: remove support for very old linux splice bug workaround
    - BUG/MEDIUM: dns: make the port numbers unsigned
    - MEDIUM: config: deprecate the antique req* and rsp* commands
diff --git a/CHANGELOG b/CHANGELOG
index 2ffc74d..6fe52f5 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,91 @@
 ChangeLog :
 ===========
 
+2019/05/22 : 2.0-dev4
+    - BUILD: enable freebsd builds on cirrus-ci
+    - BUG/MINOR: http_fetch: Rely on the smp direction for "cookie()" and "hdr()"
+    - MEDIUM: Make 'option forceclose' actually warn
+    - MEDIUM: Make 'resolution_pool_size' directive fatal
+    - DOC: management: place "show activity" at the right place
+    - MINOR: cli/activity: show the dumping thread ID starting at 1
+    - MINOR: task: export global_task_mask
+    - MINOR: cli/debug: add a thread dump function
+    - BUG/MEDIUM: streams: Don't use CF_EOI to decide if the request is complete.
+    - BUG/MEDIUM: streams: Try to L7 retry before aborting the connection.
+    - BUG/MINOR: debug: make ha_task_dump() always check the task before dumping it
+    - BUG/MINOR: debug: make ha_task_dump() actually dump the requested task
+    - MINOR: debug: make ha_thread_dump() and ha_task_dump() take a buffer
+    - BUG/MINOR: debug: don't check the call date on tasklets
+    - MINOR: thread: implement ha_thread_relax()
+    - MINOR: task: put barriers after each write to curr_task
+    - MINOR: task: always reset curr_task when freeing a task or tasklet
+    - MINOR: stream: detach the stream from its own task on stream_free()
+    - MEDIUM: debug/threads: implement an advanced thread dump system
+    - REGTEST: extend the check duration on tls_health_checks and mark it slow
+    - DOC: fix "successful" typo
+    - MINOR: init: setenv HAPROXY_CFGFILES
+    - MINOR: threads/init: synchronize the threads startup
+    - MEDIUM: init/mworker: make the pipe register function a regular initcall
+    - CLEANUP: memory: make the fault injection code use the OTHER_LOCK label
+    - CLEANUP: threads: remove the now unused START_LOCK label
+    - MINOR: init/threads: make the global threads an array of structs
+    - MINOR: threads: add each thread's clockid into the global thread_info
+    - CLEANUP: stream: remove an obsolete debugging test
+    - MINOR: tools: add dump_hex()
+    - MINOR: debug: implement ha_panic()
+    - MINOR: debug/cli: add some debugging commands for developers
+    - MINOR: tools: provide a may_access() function and make dump_hex() use it
+    - MINOR: debug: make ha_panic() report threads starting at 1
+    - REORG: compat: move some integer limit definitions from standard.h to compat.h
+    - REORG: threads: move the struct thread_info from global.h to hathreads.h
+    - MINOR: compat: make sure to always define clockid_t
+    - MINOR: threads: always place the clockid in the struct thread_info
+    - MINOR: threads: add a thread-local thread_info pointer "ti"
+    - MINOR: time: move the cpu, mono, and idle time to thread_info
+    - MINOR: time: add a function to retrieve another thread's cputime
+    - MINOR: debug: report each thread's cpu usage in "show thread"
+    - BUILD: threads: only assign the clock_id when supported
+    - BUILD: makefile: use USE_OBSOLETE_LINKER for solaris
+    - BUILD: makefile: remove -fomit-frame-pointer optimisation (solaris)
+    - MAJOR: polling: add event ports support (Solaris)
+    - BUG/MEDIUM: streams: Don't switch from SI_ST_CON to SI_ST_DIS on read0.
+    - CLEANUP: time: refine the test on _POSIX_TIMERS
+    - MINOR: compat: define a new empty type empty_t for non-implemented fields
+    - CLEANUP: time: switch clockid_t to empty_t when not available
+    - BUG/MINOR: mworker: Fix memory leak of mworker_proc members
+    - CLEANUP: objtype: make obj_type() and obj_type_name() take consts
+    - MINOR: debug: switch to SIGURG for thread dumps
+    - CLEANUP: threads: really move thread_info to hathreads.c
+    - MINOR: threads: make threads_{harmless|want_rdv}_mask constant 0 without threads
+    - CLEANUP: debug: always report harmless/want_rdv even without threads
+    - MINOR: threads: implement ha_tkill() and ha_tkillall()
+    - CLEANUP: debug: make use of ha_tkill() and remove ifdefs
+    - MINOR: stream: introduce a stream_dump() function and use it in stream_dump_and_crash()
+    - MINOR: debug: dump streams when an applet, iocb or stream is known
+    - MINOR: threads: add a "stuck" flag to the thread_info struct
+    - MINOR: threads: add a timer_t per thread in thread_info
+    - MAJOR: watchdog: implement a thread lockup detection mechanism
+    - MINOR: stream: remove the cpu time detection from process_stream()
+    - MINOR: connection: report the mux names in "haproxy -vv"
+    - CLEANUP: mux-h1: use "H1" and not "h1" as the mux's name
+    - BUG/MEDIUM: WURFL: segfault in wurfl-get() with missing info.
+    - MINOR: WURFL: call header_retireve_callback() in dummy library
+    - MINOR: WURFL: fixed Engine load failed error when wurfl-information-list contains wurfl_root_id
+    - MINOR: WURFL: shows log messages during module initialization
+    - MINOR: WURFL: removes heading wurfl-information-separator from wurfl-get-all() and wurfl-get() results
+    - MINOR: WURFL: wurfl_get() and wurfl_get_all() now return an empty string if device detection fails
+    - MEDIUM: WURFL: HTX awareness.
+    - MINOR: WURFL: module version bump to 2.0
+    - MINOR: WURFL: do not emit warnings when not configured
+    - CONTRIB: wurfl: address 3 build issues in the wurfl dummy library
+    - BUG/MEDIUM: init/threads: provide per-thread alloc/free function callbacks
+    - BUILD: travis: add sanitizers to travis-ci builds
+    - BUILD: time: remove the test on _POSIX_C_SOURCE
+    - CLEANUP: build: rename some build macros to use the USE_* ones
+    - CLEANUP: raw_sock: remove support for very old linux splice bug workaround
+    - BUG/MEDIUM: dns: make the port numbers unsigned
+    - MEDIUM: config: deprecate the antique req* and rsp* commands
+
 2019/05/15 : 2.0-dev3
     - BUG/MINOR: peers: Really close the sessions with no heartbeat.
     - CLEANUP: peers: remove useless annoying tabulations.