Skip to content

Commit

Permalink
Merge branch 'release-2.1.12-stable-pull' into patches-2.1
Browse files Browse the repository at this point in the history
PR: #1045

* release-2.1.12-stable-pull:
  Update ChangeLog
  ci/linux: create dist artifact only if dist archive was built
  Merge branch 'fix-signal-leak'
  test: fix leak in dns/getaddrinfo_cancel_stress
  test: fix UB in evbuffer/empty_reference_prepend_buffer
  ci: set build type to debug with sanitizers
  test: really disable bufferevent_pair_release_lock under ASAN (and fix gcc)
  test-closed: fix leak
  test-export: adjust libevent version
  cmake: set rpath for libraries on linux
  test-export: compatible with all versions of visual studio
  Bump version to 2.1.12-stable (w/o ABI breakage)
  ci: run ABI for release-*-pull branches too
  Purge travis-ci config
  Purge appveyor config
  Bump ChangeLog for 2.1.12
  Update AUTHORS for 2.1.12
  Backport github actions to 2.1
  test: add getaddrinfo(AI_ADDRCONFIG) test (off by default)
  build: remove duplicate -Wredundant-decls
  test: fix memory leaks for https (add BEV_OPT_CLOSE_ON_FREE)
  test: "fix" (with a quirk) leak in ssl/bufferevent_wm (w/o defer callbacks)
  test: disable bufferevent/bufferevent_pair_release_lock under ASAN (too tricky)
  test: detect test failures if atexit handler calls _exit(!0) (sanitizers)
  Make all classes Entry, Struct, etc) new-style classes
  buffer: do not pass NULL to memcpy() from evbuffer_pullup()
  test: do not pass NULL to memcmp() in evbuffer_datacmp() helper
  http: fix undefined-shift in EVUTIL_IS*_ helpers
  Check error code of evhttp_add_header_internal() in evhttp_parse_query_impl()
  cmake: avoid problems from use of CMAKE_USE_PTHREADS_INIT
  test/regress_testutils: use inet_addr()
  remove FindGit.cmake, improve `git describe` command
  checkpatch.sh: fix clang-format-diff usage
  checkpatch.sh: fix usage
  Fix clang-format-diff usage
  variable redefinition in win32_dispatch
  test: http/autofree_connection cleanup
  http: fix EVHTTP_CON_AUTOFREE in case of timeout (and some else)
  test: cleanup http/autofree_connection
  test: fix http/autofree_connection
  evdns: Add additional validation for values of dns options
  test: Fix test_simpleclose for Windows platform
  abi-check: abi-monitor 1.10 does not support -make -j8 (1.12 supports though)
  Add API/ABI checker (using LVC)
  Update list of cmake files for autotools dist archive
  Pass --quiet to the event_rcpgen.py (autotools already does this)
  There is typo in GetAdaptersAddresses windows library. It should be iphlpapi.dll
  Support EV_CLOSED on linux for poll(2)
  Fix EV_CLOSED detection/reporting (epoll only)
  Merge branch 'EV_CLOSED-and-EV_ET-fixes'
  bufferevent: allow setting priority on socket and openssl type
  cmake: set a default value for LIBEVENT_STATIC_LINK
  evutil_time: improve evutil_gettimeofday on Windows
  bench: Allow backend method selection
  cmake: missing test-closed binary
  Merge branch 'event_rpcgen.py-cleanup'
  cmake: replace CheckFunctionExists with CheckSymbolExists
  LibeventConfig.cmake: restore CMAKE_FIND_LIBRARY_SUFFIXES and LIBEVENT_STATIC_LINK default
  cmake: fix getaddrinfo checking error
  cmake: remove CheckFunctionExistsEx
  autoconf: fix getaddrinfo checking errors on mingw
  test-time: do not use deprecated API
  test-time: enable debug mode if EVENT_DEBUG_LOGGING_ALL env set
  increase segment refcnt only if evbuffer_add_file_segment() succeeds
  evdns: fix a crash when evdns_base with waiting requests is freed
  event_base_once: fix potential null pointer threat
  test-ratelim: add missing free
  Do not use shared global structures on CYGWIN
  test: move thread into realtime class even on EVENT__DISABLE_THREAD_SUPPORT
  test: fix compilation without thread support (EVENT__DISABLE_THREAD_SUPPORT=ON)
  test: fix bufferevent/bufferevent_connect_fail_eventcb* under osx/freebsd
  test: fix dst thread in move_pthread_to_realtime_scheduling_class (osx)
  test: fix compilation under win32 (rearrange thread_setup() code)
  test: use THREAD_* wrappers over pthread* in del_notify
  Merge branch 'osx-clock'
  cmake: do not print used method (EVENT_SHOW_METHOD) while running tests
  cmake: run regress test quietly like autotools (makes CI logs cleaner)
  Merge branch 'http-connect'
  http: do not assume body for CONNECT
  Added uninstall target check to cmakelists
  Fix compilation without OPENSSL_API_COMPAT
  evutil_time: Implements usleep() using wait funtion on Windows
  Initialize variable to 0 replace use memset function in sample/hello-world.c
  cmake: set CMAKE_{RUNTIME,LIBRARY,ARCHIVE}_OUTPUT_DIRECTORY they are not defined
  cmake: use CMAKE_LIBRARY_OUTPUT_DIRECTORY for the final shared library symlink
  test-ratelim: calculate timers bias (for slow CPUs) to avoid false-positive
  mailmap: add name/email aliases for yuangongji (name and email)
  cmake: test for find_package()
  cmake: improve package config file
  Link with iphlpapi only on windows
  Parse IPv6 scope IDs.
  Relax bufferevent_connect_hostname_emfile
  autotools: fails build when need but can not find openssl
  cmake: eliminate duplicate installation of public headers
  append to CMAKE_MODULE_PATH
  Do not use sysctl.h on linux (it had been deprecated)
  sample/https-client: link crypt32 explicitly when build with mingw-w64
  Fix compat with NetBSD >= 10
  Avoid transforming base C_FLAGS set deliberately
  tinytest: support timeout on Windows
  Merge branch 'upstream/pr/899' (evbuffer_freeze testcase enhancements)
  evbuffer_add_file: fix freeing of segment in the error path
  evutil_time: detect and use _gmtime64_s()/_gmtime64()
  http: rename bind_socket_ai() to create_bind_socket_nonblock()
  https-client: load certificates from the system cert store on Windows
  Fix checking return value of the evdns_base_resolv_conf_parse()
  cmake: fix getrandom() detection
  arc4random: replace sysctl() with getrandom (on linux)
  Upgrade autoconf (after upgrading minimum required to 2.67)
  Revert "Warn if forked from the event loop during event_reinit()"
  eliminate some C4267 warnings in Windows
  autotools: attach doxygen target into all target
  cmake: attach doxygen target into all target
  Fix memory corruption in EV_CLOSURE_EVENT_FINALIZE with debug enabled
  test: prevent duplicate event_enable_debug_mode() for TT_ENABLE_DEBUG_MODE
  test: introduce TT_ENABLE_DEBUG_MODE flag
  sample/http-server: fix parameter parsing
  sample/signal-test: fix use of uninitialized variable
  Fix typos in comments (sample/test/event-internal.h)
  sample/signal-test: add NULL checks
  Change the minimum version of automake to 1.13 and autoconf to 2.67
  Add Uninstall.cmake.in into dist archive
  • Loading branch information
azat committed Jul 5, 2020
2 parents 4c908dd + 1324a03 commit 5df3037
Show file tree
Hide file tree
Showing 91 changed files with 5,188 additions and 2,031 deletions.
42 changes: 42 additions & 0 deletions .github/workflows/abi.yml
@@ -0,0 +1,42 @@
---
name: abi

on:
push:
branches:
- patches-2.1
- release-*-pull
tags:
- release-*

jobs:
abi:
runs-on: ubuntu-18.04
if: "!contains(github.event.head_commit.message, 'ci skip')"
strategy:
fail-fast: false

steps:
- uses: actions/checkout@v2.0.0

- name: Install Dependencies
run:
sudo apt install
abi-tracker
abi-monitor
abi-dumper
abi-compliance-checker
pkgdiff
vtable-dumper

- name: Generate
shell: bash
run: |
./extra/abi-check/abi_check.sh
env:
ABI_CHECK_ROOT: /tmp/le-abi-root

- uses: actions/upload-artifact@v1
with:
name: build
path: /tmp/le-abi-root/work/abi-check
210 changes: 210 additions & 0 deletions .github/workflows/linux.yml
@@ -0,0 +1,210 @@
---
name: linux

on:
pull_request:
types: [opened, synchronize]
paths-ignore:
- '**.md'
- '.mailmap'
- 'ChangeLog*'
- 'whatsnew*'
- 'LICENSE'
push:
paths-ignore:
- '**.md'
- '.mailmap'
- 'ChangeLog*'
- 'whatsnew*'
- 'LICENSE'

jobs:
cmake:
runs-on: ${{ matrix.os }}
if: "!contains(github.event.head_commit.message, 'ci skip')"
strategy:
fail-fast: false
matrix:
os: [ubuntu-18.04]
EVENT_MATRIX:
- DIST
- NONE
- DISABLE_OPENSSL
- DISABLE_THREAD_SUPPORT
- DISABLE_DEBUG_MODE
- DISABLE_MM_REPLACEMENT
- COMPILER_CLANG
- TEST_EXPORT_STATIC
- TEST_EXPORT_SHARED
- ASAN
- TSAN
- UBSAN

steps:
- uses: actions/checkout@v2.0.0
- name: Cache Build
uses: actions/cache@v1.1.0
with:
path: build
key: ${{ matrix.os }}-cmake-${{ matrix.EVENT_MATRIX }}-v2
- name: Cache Dist Build
uses: actions/cache@v1.1.0
with:
path: dist
key: ${{ matrix.os }}-cmake-dist-${{ matrix.EVENT_MATRIX }}-v2

- name: Build And Test
shell: bash
run: |
if [ "${{ matrix.EVENT_MATRIX }}" == "DIST" ]; then
./autogen.sh
mkdir -p dist
cd dist
../configure
rm -fr *.tar.gz
make dist
archive=$(echo *.tar.gz)
tar -vxf $archive
cd $(basename $archive .tar.gz)
fi
export TSAN_OPTIONS=suppressions=$PWD/extra/tsan.supp
export LSAN_OPTIONS=suppressions=$PWD/extra/lsan.supp
if [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_OPENSSL" ]; then
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON"
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_THREAD_SUPPORT" ]; then
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_THREAD_SUPPORT=ON"
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_DEBUG_MODE" ]; then
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_DEBUG_MODE=ON"
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_MM_REPLACEMENT" ]; then
EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_MM_REPLACEMENT=ON"
elif [ "${{ matrix.EVENT_MATRIX }}" == "COMPILER_CLANG" ]; then
EVENT_CMAKE_OPTIONS=""
export CC=clang
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_STATIC" ]; then
EVENT_CMAKE_OPTIONS="-DEVENT__LIBRARY_TYPE=STATIC -DEVENT__DISABLE_TESTS=ON -DEVENT__DISABLE_SAMPLES=ON"
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_SHARED" ]; then
EVENT_CMAKE_OPTIONS="-DEVENT__LIBRARY_TYPE=SHARED -DEVENT__DISABLE_TESTS=ON -DEVENT__DISABLE_SAMPLES=ON"
elif [ "${{ matrix.EVENT_MATRIX }}" == "ASAN" ]; then
EVENT_CMAKE_OPTIONS="-DCMAKE_C_FLAGS=-fsanitize=address -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=debug"
elif [ "${{ matrix.EVENT_MATRIX }}" == "TSAN" ]; then
EVENT_CMAKE_OPTIONS="-DCMAKE_C_FLAGS=-fsanitize=thread -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=debug"
elif [ "${{ matrix.EVENT_MATRIX }}" == "UBSAN" ]; then
EVENT_CMAKE_OPTIONS="-DCMAKE_C_FLAGS=-fsanitize=undefined -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=debug"
else
EVENT_CMAKE_OPTIONS=""
fi
#run build and test
JOBS=20
export CTEST_PARALLEL_LEVEL=$JOBS
export CTEST_OUTPUT_ON_FAILURE=1
mkdir -p build
cd build
echo [cmake]: cmake .. $EVENT_CMAKE_OPTIONS
cmake .. $EVENT_CMAKE_OPTIONS || (rm -rf * && cmake .. $EVENT_CMAKE_OPTIONS)
cmake --build .
if [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_STATIC" ]; then
sudo python3 ../test-export/test-export.py static
elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_SHARED" ]; then
sudo python3 ../test-export/test-export.py shared
else
cmake --build . --target verify
fi
- uses: actions/upload-artifact@v1
if: failure()
with:
name: ${{ matrix.os }}-cmake-${{ matrix.EVENT_MATRIX }}-build
path: build
- uses: actions/upload-artifact@v1
if: failure() && matrix.EVENT_MATRIX == 'DIST'
with:
name: ${{ matrix.os }}-cmake-${{ matrix.EVENT_MATRIX }}-dist
path: dist

autotools:
runs-on: ${{ matrix.os }}
if: "!contains(github.event.head_commit.message, 'ci skip')"
strategy:
fail-fast: false
matrix:
os: [ubuntu-18.04]
EVENT_MATRIX:
- DIST
- NONE
- DISABLE_OPENSSL
- DISABLE_THREAD_SUPPORT
- DISABLE_DEBUG_MODE
- DISABLE_MM_REPLACEMENT
- COMPILER_CLANG

steps:
- uses: actions/checkout@v2.0.0
- name: Cache Build
uses: actions/cache@v1.1.0
with:
path: build
key: ${{ matrix.os }}-autotools-${{ matrix.EVENT_MATRIX }}-v2
- name: Cache Dist Build
uses: actions/cache@v1.1.0
with:
path: dist
key: ${{ matrix.os }}-autotools-dist-${{ matrix.EVENT_MATRIX }}-v2

- name: Build And Test
shell: bash
run: |
if [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_OPENSSL" ]; then
EVENT_CONFIGURE_OPTIONS="--disable-openssl"
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_THREAD_SUPPORT" ]; then
EVENT_CONFIGURE_OPTIONS="--disable-thread-support"
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_DEBUG_MODE" ]; then
EVENT_CONFIGURE_OPTIONS="--disable-debug-mode"
elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_MM_REPLACEMENT" ]; then
EVENT_CONFIGURE_OPTIONS="--disable-malloc-replacement"
elif [ "${{ matrix.EVENT_MATRIX }}" == "COMPILER_CLANG" ]; then
EVENT_CONFIGURE_OPTIONS=""
export CC=clang
else
EVENT_CONFIGURE_OPTIONS=""
fi
#run build and test
JOBS=20
./autogen.sh
if [ "${{ matrix.EVENT_MATRIX }}" == "DIST" ]; then
mkdir -p dist
cd dist
rm -fr *.tar.gz
../configure $EVENT_CONFIGURE_OPTIONS
make dist
archive=$(echo *.tar.gz)
tar -vxf $archive
cd $(basename $archive .tar.gz)
fi
mkdir -p build
cd build
echo [configure]: ../configure $EVENT_CONFIGURE_OPTIONS
../configure $EVENT_CONFIGURE_OPTIONS
make
make -j $JOBS verify
- uses: actions/upload-artifact@v1
if: failure()
with:
name: ${{ matrix.os }}-autotools-${{ matrix.EVENT_MATRIX }}-build
path: build
- uses: actions/upload-artifact@v1
if: failure() && matrix.EVENT_MATRIX == 'DIST'
with:
name: ${{ matrix.os }}-autotools-${{ matrix.EVENT_MATRIX }}-dist
path: dist

0 comments on commit 5df3037

Please sign in to comment.