Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Hi, Please unblock package libmemcached 1.1.4-1, it contains fix for #1032479 (CVE-2023-27478). Removing libmemcached from testing would pull a hell lot of packages with it. The upstream changes between 1.1.3 and 1.1.4 are minimal and the code changes are limited to fixing the CVE; It also fixes the underlinking problem that we had to patch. Thanks, Ondrej [ Checklist ] [x] all changes are documented in the d/changelog [x] I reviewed all changes and I approve them [x] attach debdiff against the package in testing unblock libmemcached/1.1.4-1 -----BEGIN PGP SIGNATURE----- iQKTBAEBCgB9FiEEw2Gx4wKVQ+vGJel9g3Kkd++uWcIFAmQSouNfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEMz NjFCMUUzMDI5NTQzRUJDNjI1RTk3RDgzNzJBNDc3RUZBRTU5QzIACgkQg3Kkd++u WcK6XxAAp5XHOJE5RV6adouX85kXtGR9Yj7L9LcRH/n77IReorLZa/JpxtKceha9 JufAm0CK8fWuvJ5HqYcqo2BClpIiyjLSz8WtuwJw8lQMoblOikpC36P2Cw362UO7 /9guIyuyEaMOY25f6N0P7+w3Xpd6eJXksCvpAYUnSCitBz9Ce0MLiRvQaXtBFT0r WBQnKd63kF6t/ZG75Et8pJJgUoIxarlrBPe7EwwIepvoQO5RcNt3TqUFzy9uOF2C 74GOMOn8RLLYFlQyhUfVds18m53i5pxXa2B+leYfvVvZhkTrZuJCrDPUUlAxtkfP WDfUPCKzegYcUfwSiIPDqjihPiMD+OasuUPfDKPG39e2iQts9wUeCMkRnBOVHUVw Pp/zt5KGPXwvgz9xeKBIVRbquVt+l3lmGI/qUU3vCezVi4nhOlnrwXoPyC5QoWG3 ZGe1DY0nzcSLq1yviUWmUTVQwHfp9dxoJPIvsAi7sh5saTnnquxEC/xUjTWn1wQ3 uKHUw3uFnZ5q8VYqdsAFjTbCogz8MZsyZlsYcxspDCEkW8JoKpdSl9zZiZ9ouoap Gy4IqQBmQCU9u2oBiwf9CWLywxkzmmHYuCdNGwzspOZbqfOB4iY4tsq9n5uM/KsR zlT3OO/DQdiEOztBZJQIhWuZ6VFMDpqMrVdDQIXjecvpknAr+MU= =JrGZ -----END PGP SIGNATURE-----
diff -Nru libmemcached-1.1.3/.builds/freebsd.yml libmemcached-1.1.4/.builds/freebsd.yml --- libmemcached-1.1.3/.builds/freebsd.yml 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/.builds/freebsd.yml 2023-03-06 19:36:56.000000000 +0100 @@ -45,11 +45,5 @@ maybe cmake --build debug -j2 --target test - install: | maybe cmake --install debug --prefix /tmp - - package: | - maybe cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_DOCS_MANGZ=ON -S libmemcached -B release - maybe cmake --build release -j2 --target package -- VERBOSE= - maybe cmake -DCPACK_COMPONENT_INSTALL=ON release - maybe cmake --build release -j2 --target package -- VERBOSE= - maybe cmake --build release -j2 --target push-artifacts -- VERBOSE= - success: | notify-gitter success diff -Nru libmemcached-1.1.3/.builds/openbsd.yml libmemcached-1.1.4/.builds/openbsd.yml --- libmemcached-1.1.3/.builds/openbsd.yml 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/.builds/openbsd.yml 2023-03-06 19:36:56.000000000 +0100 @@ -33,11 +33,5 @@ maybe cmake --build debug -j2 --target test - install: | maybe cmake --install debug --prefix /tmp - - package: | - maybe cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_DOCS_MANGZ=ON -S libmemcached -B release - maybe cmake --build release -j2 --target package -- VERBOSE= - maybe cmake -DCPACK_COMPONENT_INSTALL=ON release - maybe cmake --build release -j2 --target package -- VERBOSE= - maybe cmake --build release -j2 --target push-artifacts -- VERBOSE= - success: notify-gitter success diff -Nru libmemcached-1.1.3/.builds/scripts/notify-gitter libmemcached-1.1.4/.builds/scripts/notify-gitter --- libmemcached-1.1.3/.builds/scripts/notify-gitter 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/.builds/scripts/notify-gitter 2023-03-06 19:36:56.000000000 +0100 @@ -1,6 +1,8 @@ #!/usr/bin/env bash set -eu +test -f ~/.gitter || exit 0 + GITTER=$(cat ~/.gitter) STATUS=$1 diff -Nru libmemcached-1.1.3/ChangeLog libmemcached-1.1.4/ChangeLog --- libmemcached-1.1.3/ChangeLog 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/ChangeLog 2023-03-06 19:36:56.000000000 +0100 @@ -1,5 +1,22 @@ # ChangeLog v1.1 +## v 1.1.4 + +> released 2022-03-06 + +* Fix [gh #107](https://github.com/awesomized/libmemcached/issues/107): + macOS: deprecated sasl API (improve detection of `libsasl2`). +* Fix [gh #131](https://github.com/awesomized/libmemcached/issues/131): + Consider renaming tools (add `CLIENT_PREFIX` build option; default: `mem`) +* Fix [gh #132](https://github.com/awesomized/libmemcached/issues/132): + Add build of static library (add `BUILD_SHARED_LIBS` build option; default: `ON`). +* Fix [gh #134](https://github.com/awesomized/libmemcached/issues/134): + Update client option documentation. +* Fix [gh #136](https://github.com/awesomized/libmemcached/issues/136): + `libmemcachedutil` is underlinked (link against libmemcached). +* Fix [gh php-memcached#531](https://github.com/php-memcached-dev/php-memcached/issues/531): + `get` returns random values when lower than default `OPT_POLL_TIMEOUT` is set. + ## v 1.1.3 > released 2022-11-09 diff -Nru libmemcached-1.1.3/ChangeLog-1.1.md libmemcached-1.1.4/ChangeLog-1.1.md --- libmemcached-1.1.3/ChangeLog-1.1.md 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/ChangeLog-1.1.md 2023-03-06 19:36:56.000000000 +0100 @@ -1,5 +1,22 @@ # ChangeLog v1.1 +## v 1.1.4 + +> released 2022-03-06 + +* Fix [gh #107](https://github.com/awesomized/libmemcached/issues/107): + macOS: deprecated sasl API (improve detection of `libsasl2`). +* Fix [gh #131](https://github.com/awesomized/libmemcached/issues/131): + Consider renaming tools (add `CLIENT_PREFIX` build option; default: `mem`) +* Fix [gh #132](https://github.com/awesomized/libmemcached/issues/132): + Add build of static library (add `BUILD_SHARED_LIBS` build option; default: `ON`). +* Fix [gh #134](https://github.com/awesomized/libmemcached/issues/134): + Update client option documentation. +* Fix [gh #136](https://github.com/awesomized/libmemcached/issues/136): + `libmemcachedutil` is underlinked (link against libmemcached). +* Fix [gh php-memcached#531](https://github.com/php-memcached-dev/php-memcached/issues/531): + `get` returns random values when lower than default `OPT_POLL_TIMEOUT` is set. + ## v 1.1.3 > released 2022-11-09 diff -Nru libmemcached-1.1.3/ChangeLog.md libmemcached-1.1.4/ChangeLog.md --- libmemcached-1.1.3/ChangeLog.md 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/ChangeLog.md 2023-03-06 19:36:56.000000000 +0100 @@ -1,5 +1,22 @@ # ChangeLog v1.1 +## v 1.1.4 + +> released 2022-03-06 + +* Fix [gh #107](https://github.com/awesomized/libmemcached/issues/107): + macOS: deprecated sasl API (improve detection of `libsasl2`). +* Fix [gh #131](https://github.com/awesomized/libmemcached/issues/131): + Consider renaming tools (add `CLIENT_PREFIX` build option; default: `mem`) +* Fix [gh #132](https://github.com/awesomized/libmemcached/issues/132): + Add build of static library (add `BUILD_SHARED_LIBS` build option; default: `ON`). +* Fix [gh #134](https://github.com/awesomized/libmemcached/issues/134): + Update client option documentation. +* Fix [gh #136](https://github.com/awesomized/libmemcached/issues/136): + `libmemcachedutil` is underlinked (link against libmemcached). +* Fix [gh php-memcached#531](https://github.com/php-memcached-dev/php-memcached/issues/531): + `get` returns random values when lower than default `OPT_POLL_TIMEOUT` is set. + ## v 1.1.3 > released 2022-11-09 diff -Nru libmemcached-1.1.3/CMake/CheckDebug.cmake libmemcached-1.1.4/CMake/CheckDebug.cmake --- libmemcached-1.1.3/CMake/CheckDebug.cmake 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/CMake/CheckDebug.cmake 2023-03-06 19:36:56.000000000 +0100 @@ -15,7 +15,7 @@ if(${NAME} IN_LIST ${VAR} OR ${LIB} IN_LIST ${VAR}) make_have_identifier(${LIB} HAVE) cmake_push_check_state(RESET) - set(CMAKE_REQUIRED_LIBRARIES ${LIB}) + set(CMAKE_REQUIRED_LIBRARIES -fsanitize=${NAME}) check_cxx_compiler_flag(-fsanitize=${NAME} ${HAVE}) cmake_pop_check_state() if(${HAVE}) diff -Nru libmemcached-1.1.3/CMake/_Include.cmake libmemcached-1.1.4/CMake/_Include.cmake --- libmemcached-1.1.3/CMake/_Include.cmake 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/CMake/_Include.cmake 2023-03-06 19:36:56.000000000 +0100 @@ -131,6 +131,11 @@ if(HAVE_LIBSASL) set(LIBMEMCACHED_WITH_SASL_SUPPORT 1) pkgconfig_export(REQUIRES libsasl2) + cmake_push_check_state() + set(CMAKE_REQUIRED_INCLUDES "${LIBSASL_INCLUDEDIR}") + set(CMAKE_REQUIRED_LIBRARIES "${LIBSASL_LIBRARIES}") + check_symbol(sasl_client_done sasl/sasl.h) + cmake_pop_check_state() endif() endif() diff -Nru libmemcached-1.1.3/CMakeConfig.txt libmemcached-1.1.4/CMakeConfig.txt --- libmemcached-1.1.3/CMakeConfig.txt 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/CMakeConfig.txt 2023-03-06 19:36:56.000000000 +0100 @@ -23,6 +23,11 @@ set(TARGET_NAMELINK_COMPONENT NAMELINK_COMPONENT dev DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() +set(CLIENT_PREFIX mem + CACHE STRING "client prefix (default mem; i.e.: memstat, memcp, memcat ...)") + +option(BUILD_SHARED_LIBS "whether to build shared libraries" + ON) option(BUILD_TESTING "whether to enable build of the test suite" $ENV{BUILD_TESTING}) option(BUILD_DOCSONLY "build *only* documentation" diff -Nru libmemcached-1.1.3/CMakeLists.txt libmemcached-1.1.4/CMakeLists.txt --- libmemcached-1.1.3/CMakeLists.txt 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/CMakeLists.txt 2023-03-06 19:36:56.000000000 +0100 @@ -30,19 +30,19 @@ include(CMake/_Include.cmake) set(CLIENTS - memcapable - memcat - memcp - memdump - memerror - memexist - memflush - memparse - memping - memrm - memslap - memstat - memtouch + capable + cat + cp + dump + error + exist + flush + parse + ping + rm + slap + stat + touch ) add_subdirectory(include) diff -Nru libmemcached-1.1.3/CMakeVersions.txt libmemcached-1.1.4/CMakeVersions.txt --- libmemcached-1.1.3/CMakeVersions.txt 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/CMakeVersions.txt 2023-03-06 19:36:56.000000000 +0100 @@ -2,9 +2,9 @@ # libmemcached # -set(LIBMEMCACHED_VERSION 1.1.3) +set(LIBMEMCACHED_VERSION 1.1.4) set(LIBMEMCACHED_VERSION_INC 1.0) -set(LIBMEMCACHED_VERSION_HEX 0x001001003) +set(LIBMEMCACHED_VERSION_HEX 0x001001004) # libmemcached.so diff -Nru libmemcached-1.1.3/contrib/bin/memaslap/CMakeLists.txt libmemcached-1.1.4/contrib/bin/memaslap/CMakeLists.txt --- libmemcached-1.1.3/contrib/bin/memaslap/CMakeLists.txt 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/contrib/bin/memaslap/CMakeLists.txt 2023-03-06 19:36:56.000000000 +0100 @@ -9,7 +9,7 @@ check_dependency(LIBEVENT event) if(HAVE_LIBEVENT AND HAVE_ATOMICS) - add_executable(memaslap + add_executable(aslap ms_main.c ms_conn.c ms_setting.c @@ -17,19 +17,19 @@ ms_stats.c ms_task.c ms_thread.c) - target_include_directories(memaslap PRIVATE + target_include_directories(aslap PRIVATE ${CMAKE_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}) - target_link_libraries(memaslap PRIVATE libmemcached Threads::Threads ${LIBEVENT} m) - set_property(TARGET memaslap PROPERTY C_STANDARD 11) + target_link_libraries(aslap PRIVATE libmemcached Threads::Threads ${LIBEVENT} m) + set_target_properties(aslap PROPERTIES C_STANDARD 11 OUTPUT_NAME ${CLIENT_PREFIX}aslap) if(CMAKE_INSTALL_RPATH) - set_target_properties(${CLIENT} PROPERTIES + set_target_properties(aslap PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}/../${CMAKE_INSTALL_LIBDIR}) endif() - install(TARGETS memaslap + install(TARGETS aslap RUNTIME COMPONENT bin DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() diff -Nru libmemcached-1.1.3/debian/changelog libmemcached-1.1.4/debian/changelog --- libmemcached-1.1.3/debian/changelog 2023-02-23 01:50:44.000000000 +0100 +++ libmemcached-1.1.4/debian/changelog 2023-03-06 19:38:02.000000000 +0100 @@ -1,3 +1,9 @@ +libmemcached (1.1.4-1) unstable; urgency=high + + * New upstream version 1.1.4 + + -- Ondřej Surý <ond...@debian.org> Mon, 06 Mar 2023 19:38:02 +0100 + libmemcached (1.1.3-3) unstable; urgency=medium * Prevent libmemcachedutil underlinking by removing the conditional diff -Nru libmemcached-1.1.3/debian/patches/0001-Prevent-libmemcachedutil-underlinking-by-removing-th.patch libmemcached-1.1.4/debian/patches/0001-Prevent-libmemcachedutil-underlinking-by-removing-th.patch --- libmemcached-1.1.3/debian/patches/0001-Prevent-libmemcachedutil-underlinking-by-removing-th.patch 2023-02-23 01:50:44.000000000 +0100 +++ libmemcached-1.1.4/debian/patches/0001-Prevent-libmemcachedutil-underlinking-by-removing-th.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,24 +0,0 @@ -From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ond...@sury.org> -Date: Thu, 23 Feb 2023 01:50:21 +0100 -Subject: Prevent libmemcachedutil underlinking by removing the conditional - around target_link_libraries - ---- - src/libmemcachedutil/CMakeLists.txt | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/src/libmemcachedutil/CMakeLists.txt b/src/libmemcachedutil/CMakeLists.txt -index 78e87d3..49bc4e1 100644 ---- a/src/libmemcachedutil/CMakeLists.txt -+++ b/src/libmemcachedutil/CMakeLists.txt -@@ -23,9 +23,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL AppleClang) - LINK_FLAGS "-Wl,-undefined,dynamic_lookup" - ) - endif() --if(MSVC OR MINGW) -- target_link_libraries(libmemcachedutil PUBLIC libmemcached) --endif() -+target_link_libraries(libmemcachedutil PUBLIC libmemcached) - target_link_libraries(libmemcachedutil PUBLIC Threads::Threads) - if(HAVE_LIBSASL) - target_link_libraries(libmemcachedutil PUBLIC ${LIBSASL}) diff -Nru libmemcached-1.1.3/debian/patches/series libmemcached-1.1.4/debian/patches/series --- libmemcached-1.1.3/debian/patches/series 2023-02-23 01:50:44.000000000 +0100 +++ libmemcached-1.1.4/debian/patches/series 2023-03-06 19:38:02.000000000 +0100 @@ -1 +0,0 @@ -0001-Prevent-libmemcachedutil-underlinking-by-removing-th.patch diff -Nru libmemcached-1.1.3/debian/rules libmemcached-1.1.4/debian/rules --- libmemcached-1.1.3/debian/rules 2023-02-23 01:50:44.000000000 +0100 +++ libmemcached-1.1.4/debian/rules 2023-03-06 19:38:02.000000000 +0100 @@ -3,7 +3,7 @@ TMP=$(CURDIR)/debian/tmp/ %: - dh $@ --with autoreconf -X.la -Xlibmemcached-awesome -Xlibmemcachedprotocol.so -Xlibmemcachedprotocol-0.0 -O--dbgsym-migration='libmemcached-dbg (<< 1.0.18-5~)' --buildsystem=cmake + dh $@ --with autoreconf -X.la -Xlibp9y.a -Xlibmemcached-awesome -Xlibmemcachedprotocol.so -Xlibmemcachedprotocol-0.0 -O--dbgsym-migration='libmemcached-dbg (<< 1.0.18-5~)' --buildsystem=cmake override_dh_auto_configure: dh_auto_configure --buildsystem=cmake -- \ diff -Nru libmemcached-1.1.3/debian/upstream/signing-key.asc libmemcached-1.1.4/debian/upstream/signing-key.asc --- libmemcached-1.1.3/debian/upstream/signing-key.asc 1970-01-01 01:00:00.000000000 +0100 +++ libmemcached-1.1.4/debian/upstream/signing-key.asc 2023-03-06 19:38:02.000000000 +0100 @@ -0,0 +1,30 @@ +-----BEGIN PGP ARMORED FILE----- +Comment: Use "gpg --dearmor" for unpacking + +mQENBE3uqzUBCADh6f5+LRiEpgxD9G/bo9mv3tqdiR5ovlmwlChTwf7l+rIbbm2Z +p6NjKu4AUdBgUfsZe4SjGhRNWf7S79TSZNaiYoI6X2j+ETa2Q4PYyyKkPKlby2mr +E63H/I6iuQkqWqD95SxFoLpg3SrN38Irbb3j8RBaD7ws07hrFH0FVd1CtOeS+YeS +fT5Mj72flCZOEvu6p2XAvEM5ZddMUGk8Z4ev4z7qrM39rLA59mfVhwKoNiRmB534 +Q/N1hmGZEY2tGztYRugfT0egDkxULrsv/0xpRXizA+Fw6hSnGW29RokS9ZEdjURW +96GBTe8MVbrsBXN7hMpNkTOvPUnAHkrOHLsrABEBAAG0HkJyaWFuIEFrZXIgPGJy +aWFuQHRhbmdlbnQub3JnPokBOAQTAQIAIgUCTe6rNQIbAwYLCQgHAwIGFQgCCQoL +BBYCAwECHgECF4AACgkQi07jX9okiBMzxgf/cr3Rlhk4vinHiAYJJwsAp6FBKU2o +pBBpmp1erXoiQzujlcKtWVtA9/C84KeDncYDN1KHOjksuOygnEOTieMRkysp99m8 +Q7p5DMXV8DU4smkTPzh8YVBc1To/bm7++2g82TXvpL8oZrMh+scCQO1jfaVG6HOK +BIka7kf8X4nQp9hhWyGRoKiA9TvMJ02i7E8pR+/hp4kCIrFk9VtPvVFXaZkhUq/e +c1h2GcCNUB5GFUPSc0vh1v1N0lpYUcMBhCDHJUDYrX5S6TRna1h7Nog5QvGJA5h+ +OW6qoLxNmw9NzPbX4IIMJ+fyohy2jSPxbp3SJM1JpcXUEGpYOQjFOR9wgrkBDQRN +7qs1AQgAtyFmp0v78yNdp9qkfTwGFtozAavBOFTG/0kAlAdIrJ6xnRbz9f5keDrr +j9JTEGnI4+QIsrbvY9vplG+ZIVxefS9BUMPL9OmgYaPl/UmFYTNtTDHyuNQDfNxu +SPq096UKhoqMpG5/a0BYuXxGUr9P97SmyKWzQlI3Um47dziJJkDFhNQt+16BOdYD +lkEXjZ+6+lQYPrlrrRxz+O26BbStsu3/Kkik8VL8fIAPQuLGEpI0Wyp5WbkVXuRi +cMbMN7aChR/Ttu5gets59yA5Pg77c7j4EGcfCMr14+FzbQeOzQG7E1g4qM6YZhSO +6C9ZSTyewGNOAVVKNp7LanYrqpm3GQARAQABiQEfBBgBAgAJBQJN7qs1AhsMAAoJ +EItO41/aJIgT364H/ieE7++8IjQw0O+4f/mcCpeMD8HZk2KkrQO/U9gNWqzQjKEV +7K1F82MmY/UjGatUMRsoQ2qD8h0l7dXtskAURVamjvwEG3ydbyqqmOMNDTJarrCV +YGCUUR/+7I0DUiqG5GzrnnFkirNLmbYXbuW8BWvBGCI9YYekiAlzInwO5JAGdrwV +fAXxlEm7GNrUySyDmEzVGiuDbjUbpQA7IyJtqpRboR7R08ruljf9CGzn6XqwVthI +e+W3d8QA7q42hDZWRikEEGbH1nC0B3ME3WNhVjUbqTjR5/PmN4iykZWLMroS4NeY +bVkXf/vg4i5fnVmKXnfgfM3gop7voxbBkNjz5Js= +=B43W +-----END PGP ARMORED FILE----- Binary files /tmp/rg_uWpjnBI/libmemcached-1.1.3/debian/upstream-signing-key.pgp and /tmp/ZpOUphpagE/libmemcached-1.1.4/debian/upstream-signing-key.pgp differ diff -Nru libmemcached-1.1.3/docs/CMakeLists.txt libmemcached-1.1.4/docs/CMakeLists.txt --- libmemcached-1.1.3/docs/CMakeLists.txt 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/CMakeLists.txt 2023-03-06 19:36:56.000000000 +0100 @@ -50,7 +50,7 @@ COMMAND ${CMAKE_COMMAND} -E touch "${SPHINX_HTML_DIR}" BYPRODUCTS ${SPHINX_HTML_DIR} - DEPENDS "${DOCS_SOURCE}" + DEPENDS "${DOCS_SOURCE}" conf.py.in ) add_custom_target(html ALL DEPENDS "${SPHINX_HTML_DIR}") @@ -73,7 +73,7 @@ COMMAND ${CMAKE_COMMAND} -E touch "${SPHINX_MAN_DIR}" BYPRODUCTS ${SPHINX_MAN_DIR} - DEPENDS "${DOCS_SOURCE}" + DEPENDS "${DOCS_SOURCE}" conf.py.in ) add_custom_target(man ALL DEPENDS "${SPHINX_MAN_DIR}") diff -Nru libmemcached-1.1.3/docs/conf.py.in libmemcached-1.1.4/docs/conf.py.in --- libmemcached-1.1.3/docs/conf.py.in 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/conf.py.in 2023-03-06 19:36:56.000000000 +0100 @@ -191,27 +191,46 @@ ('libmemcachedutil/memcached_pool' ,'memcached_pool_st' ,u'libmemcached Documentation' ,man_authors,3), ('libmemcachedutil/memcached_pool' ,'memcached_pool' ,u'libmemcached Documentation' ,man_authors,3), - ('bin/memcapable' , 'memcapable' , u'libmemcached Documentation' , man_authors, 1), - ('bin/memcat' , 'memcat' , u'libmemcached Documentation' , man_authors, 1), - ('bin/memcp' , 'memcp' , u'libmemcached Documentation' , man_authors, 1), - ('bin/memdump' , 'memdump' , u'libmemcached Documentation' , man_authors, 1), - ('bin/memerror' , 'memerror' , u'libmemcached Documentation' , man_authors, 1), - ('bin/memflush' , 'memflush' , u'libmemcached Documentation' , man_authors, 1), - ('bin/memrm' , 'memrm' , u'libmemcached Documentation' , man_authors, 1), - ('bin/memaslap' , 'memaslap' , u'libmemcached Documentation' , man_authors, 1), - ('bin/memslap' , 'memslap' , u'libmemcached Documentation' , man_authors, 1), - ('bin/memstat' , 'memstat' , u'libmemcached Documentation' , man_authors, 1), - ('bin/memexist' , 'memexist' , u'libmemcached Documentation' , man_authors, 1), - ('bin/memparse' , 'memparse' , u'libmemcached Documentation' , man_authors, 1), - ('bin/memping' , 'memping' , u'libmemcached Documentation' , man_authors, 1), - ('bin/memtouch' , 'memtouch' , u'libmemcached Documentation' , man_authors, 1), + ('bin/memcapable' , 'memcapable' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memcat' , 'memcat' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memcp' , 'memcp' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memdump' , 'memdump' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memerror' , 'memerror' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memflush' , 'memflush' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memrm' , 'memrm' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memaslap' , 'memaslap' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memslap' , 'memslap' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memstat' , 'memstat' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memexist' , 'memexist' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memparse' , 'memparse' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memping' , 'memping' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memtouch' , 'memtouch' ,u'libmemcached Documentation' , man_authors, 1), ] +if '@CLIENT_PREFIX@' != 'mem' : + man_pages.extend([ + ('bin/memcapable' , '@CLIENT_PREFIX@capable' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memcat' , '@CLIENT_PREFIX@cat' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memcp' , '@CLIENT_PREFIX@cp' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memdump' , '@CLIENT_PREFIX@dump' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memerror' , '@CLIENT_PREFIX@error' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memflush' , '@CLIENT_PREFIX@flush' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memrm' , '@CLIENT_PREFIX@rm' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memaslap' , '@CLIENT_PREFIX@aslap' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memslap' , '@CLIENT_PREFIX@slap' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memstat' , '@CLIENT_PREFIX@stat' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memexist' , '@CLIENT_PREFIX@exist' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memparse' , '@CLIENT_PREFIX@parse' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memping' , '@CLIENT_PREFIX@ping' ,u'libmemcached Documentation' , man_authors, 1), + ('bin/memtouch' , '@CLIENT_PREFIX@touch' ,u'libmemcached Documentation' , man_authors, 1), + ]) + rst_prolog = """ -.. |libhashkit_version| replace:: 1.0 -.. |libmemcached_version| replace:: 1.0 -.. |libmemcachedprotocol_version| replace:: 0.0 -.. |libmemcachedutil_version| replace:: 1.0 +.. |client_prefix| replace:: @CLIENT_PREFIX@ +.. |libhashkit_version| replace:: @LIBHASHKIT_VERSION_INC@ +.. |libmemcached_version| replace:: @LIBMEMCACHED_VERSION_INC@ +.. |libmemcachedprotocol_version| replace:: @LIBMEMCACHEDPROTOCOL_VERSION_INC@ +.. |libmemcachedutil_version| replace:: @LIBMEMCACHEDUTIL_VERSION_INC@ """ @SPHINX_CONF_APPEND@ diff -Nru libmemcached-1.1.3/docs/source/bin/common/env.rst libmemcached-1.1.4/docs/source/bin/common/env.rst --- libmemcached-1.1.3/docs/source/bin/common/env.rst 1970-01-01 01:00:00.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/common/env.rst 2023-03-06 19:36:56.000000000 +0100 @@ -0,0 +1,7 @@ +ENVIRONMENT +----------- + +.. envvar:: MEMCACHED_SERVERS + + Specify a list of servers. + diff -Nru libmemcached-1.1.3/docs/source/bin/common/note_contrib_options.rst libmemcached-1.1.4/docs/source/bin/common/note_contrib_options.rst --- libmemcached-1.1.3/docs/source/bin/common/note_contrib_options.rst 1970-01-01 01:00:00.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/common/note_contrib_options.rst 2023-03-06 19:36:56.000000000 +0100 @@ -0,0 +1,8 @@ + +CONTRIBUTED PROGRAM +................... + +This is a contributed program. + +This program doesn't follow the standard flag/option scheme. + diff -Nru libmemcached-1.1.3/docs/source/bin/common/note_program_prefix.rst libmemcached-1.1.4/docs/source/bin/common/note_program_prefix.rst --- libmemcached-1.1.3/docs/source/bin/common/note_program_prefix.rst 1970-01-01 01:00:00.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/common/note_program_prefix.rst 2023-03-06 19:36:56.000000000 +0100 @@ -0,0 +1,10 @@ + +PROGRAM PREFIX +.............. + +The prefix of this program is variable, i.e. it can be configured at build time. + +Usually the client programs of ``libmemcached-awesome`` are prefixed with ``mem``, like ``memcat`` or ``memcp``. + +It can be configured, though, to replace the prefix with something else like ``mc``, in case of that, +the client programs of ``libmemcached-awesome`` would be called ``mccat``, ``mccp``, etc. respectively. diff -Nru libmemcached-1.1.3/docs/source/bin/memaslap.rst libmemcached-1.1.4/docs/source/bin/memaslap.rst --- libmemcached-1.1.3/docs/source/bin/memaslap.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/memaslap.rst 2023-03-06 19:36:56.000000000 +0100 @@ -5,11 +5,12 @@ SYNOPSIS -------- -memaslap [options] +|client_prefix|\aslap [options] .. program:: memaslap .. option:: --help +.. option:: --servers .. envvar:: MEMCACHED_SERVERS @@ -29,7 +30,7 @@ connections in each thread. Each connection keeps key size distribution, value size distribution, and command distribution by itself. -You can specify servers via the :option:`memslap --servers` option or via the +You can specify servers via the :option:`memaslap --servers` option or via the environment variable :envvar:`MEMCACHED_SERVERS`. FEATURES @@ -999,6 +1000,12 @@ memaslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m -p 2 +NOTES +----- + +.. include:: common/note_program_prefix.rst +.. include:: common/note_contrib_options.rst + SEE ALSO -------- diff -Nru libmemcached-1.1.3/docs/source/bin/memcapable.rst libmemcached-1.1.4/docs/source/bin/memcapable.rst --- libmemcached-1.1.3/docs/source/bin/memcapable.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/memcapable.rst 2023-03-06 19:36:56.000000000 +0100 @@ -6,7 +6,7 @@ .. program:: memcapable -memcapable [options] +|client_prefix|\capable [options] Check a memcached server's capabilities and compatibility. @@ -39,6 +39,14 @@ Set the timeout for an IO operation to/from the server to \ *n*\ seconds. + +NOTES +----- + +.. include:: common/note_program_prefix.rst +.. include:: common/note_contrib_options.rst + + SEE ALSO -------- diff -Nru libmemcached-1.1.3/docs/source/bin/memcat.rst libmemcached-1.1.4/docs/source/bin/memcat.rst --- libmemcached-1.1.3/docs/source/bin/memcat.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/memcat.rst 2023-03-06 19:36:56.000000000 +0100 @@ -6,7 +6,7 @@ .. program:: memcat -memcat [options] key [key...] +|client_prefix|\cat [options] key [key...] Read and output the value of one key or the values of a set of keys. @@ -23,20 +23,17 @@ OPTIONS ------- -.. include:: options/all.rst -.. include:: options/common.rst +.. include:: options/common_get.rst +.. include:: options/flags_noarg.rst .. include:: options/hash.rst +.. include:: options/file_out.rst -.. option:: --flag +.. include:: common/env.rst - Display stored flags. +NOTES +----- -ENVIRONMENT ------------ - -.. envvar:: MEMCACHED_SERVERS - - Specify a list of servers. +.. include:: common/note_program_prefix.rst SEE ALSO -------- diff -Nru libmemcached-1.1.3/docs/source/bin/memcp.rst libmemcached-1.1.4/docs/source/bin/memcp.rst --- libmemcached-1.1.3/docs/source/bin/memcp.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/memcp.rst 2023-03-06 19:36:56.000000000 +0100 @@ -6,7 +6,7 @@ .. program:: memcp -memcp [options] \-\-servers <hostname[:port]...> <file...> +|client_prefix|\cp [options] \-\-servers <hostname[:port]...> <file...> Copy files to a collection of memcached servers. @@ -21,37 +21,42 @@ OPTIONS ------- -.. include:: options/all.rst -.. include:: options/common.rst -.. include:: options/expire.rst -.. include:: options/flag.rst -.. include:: options/hash.rst -.. include:: options/sasl.rst +.. include:: options/common_set.rst +.. include:: /bin/options/flags_reqarg.rst .. include:: options/udp.rst -.. option:: --buffer - - Enable internal buffering of commands. - -.. option:: --set +.. option:: -S|--set Issue *SET* command(s). This is the default mode. - See also :option:`--add` and :option:`--replace`. + See also :option:`-A|--add` and :option:`-R|--replace`. -.. option:: --add +.. option:: -A|--add Issue *ADD* command(s). -.. option:: --replace +.. option:: -R|--replace Issue *REPLACE* command(s). -ENVIRONMENT ------------ +.. option:: -.|--basename + + Use basename of path as key (default). + +.. option:: -+|--relative + + Use relative path (as passed), instead of basename only. + +.. option:: -/|--absolute + + Use absolute path (real path), instead of basename only. + + +.. include:: common/env.rst -.. envvar:: MEMCACHED_SERVERS +NOTES +----- - Specify the list of servers. +.. include:: common/note_program_prefix.rst SEE ALSO -------- diff -Nru libmemcached-1.1.3/docs/source/bin/memdump.rst libmemcached-1.1.4/docs/source/bin/memdump.rst --- libmemcached-1.1.3/docs/source/bin/memdump.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/memdump.rst 2023-03-06 19:36:56.000000000 +0100 @@ -6,7 +6,7 @@ .. program:: memdump -memdump [options] +|client_prefix|\dump [options] Dump a list of keys from a server. @@ -20,17 +20,16 @@ OPTIONS ------- -.. include:: options/all.rst -.. include:: options/common.rst -.. include:: options/hash.rst -.. include:: options/sasl.rst +.. include:: options/common_get.rst +.. include:: options/file_out.rst -ENVIRONMENT ------------ -.. envvar:: MEMCACHED_SERVERS +.. include:: common/env.rst + +NOTES +----- - Specify the list of servers. +.. include:: common/note_program_prefix.rst SEE ALSO -------- diff -Nru libmemcached-1.1.3/docs/source/bin/memerror.rst libmemcached-1.1.4/docs/source/bin/memerror.rst --- libmemcached-1.1.3/docs/source/bin/memerror.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/memerror.rst 2023-03-06 19:36:56.000000000 +0100 @@ -6,7 +6,7 @@ .. program:: memerror -memerror [options] <error code> +|client_prefix|\error [options] <error code> Translate a memcached error code into a string. @@ -20,13 +20,15 @@ ------- .. include:: options/all.rst +.. include:: options/common.rst -ENVIRONMENT ------------ -.. envvar:: MEMCACHED_SERVERS +.. include:: common/env.rst + +NOTES +----- - Specify the list of servers. +.. include:: common/note_program_prefix.rst SEE ALSO -------- diff -Nru libmemcached-1.1.3/docs/source/bin/memexist.rst libmemcached-1.1.4/docs/source/bin/memexist.rst --- libmemcached-1.1.3/docs/source/bin/memexist.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/memexist.rst 2023-03-06 19:36:56.000000000 +0100 @@ -6,7 +6,7 @@ .. program:: memexist -memexist [options] <key> +|client_prefix|\exist [options] <key> Check for the existence of a key. @@ -18,17 +18,15 @@ OPTIONS ------- -.. include:: options/all.rst -.. include:: options/common.rst +.. include:: options/common_get.rst .. include:: options/hash.rst -.. include:: options/sasl.rst -ENVIRONMENT ------------ +.. include:: common/env.rst -.. envvar:: MEMCACHED_SERVERS +NOTES +----- - Specify the list of servers. +.. include:: common/note_program_prefix.rst SEE ALSO -------- diff -Nru libmemcached-1.1.3/docs/source/bin/memflush.rst libmemcached-1.1.4/docs/source/bin/memflush.rst --- libmemcached-1.1.3/docs/source/bin/memflush.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/memflush.rst 2023-03-06 19:36:56.000000000 +0100 @@ -4,7 +4,7 @@ SYNOPSIS -------- -memflush [options] +|client_prefix|\flush [options] .. program:: memflush @@ -22,9 +22,7 @@ OPTIONS ------- -.. include:: options/all.rst -.. include:: options/common.rst -.. include:: options/sasl.rst +.. include:: options/common_get.rst .. include:: options/expire.rst .. note:: @@ -53,12 +51,13 @@ .. _memcached protocol documentation: https://github.com/memcached/memcached/blob/master/doc/protocol.txt -ENVIRONMENT ------------ -.. envvar:: MEMCACHED_SERVERS +.. include:: common/env.rst + +NOTES +----- - Specify the list of servers. +.. include:: common/note_program_prefix.rst SEE ALSO -------- diff -Nru libmemcached-1.1.3/docs/source/bin/memparse.rst libmemcached-1.1.4/docs/source/bin/memparse.rst --- libmemcached-1.1.3/docs/source/bin/memparse.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/memparse.rst 2023-03-06 19:36:56.000000000 +0100 @@ -6,7 +6,7 @@ .. program:: memparse -memparse <option string> +|client_prefix|\parse <option string> Parse and validate an option string. @@ -20,6 +20,12 @@ None. +NOTES +----- + +.. include:: common/note_program_prefix.rst + + SEE ALSO -------- diff -Nru libmemcached-1.1.3/docs/source/bin/memping.rst libmemcached-1.1.4/docs/source/bin/memping.rst --- libmemcached-1.1.3/docs/source/bin/memping.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/memping.rst 2023-03-06 19:36:56.000000000 +0100 @@ -4,7 +4,7 @@ SYNOPSIS -------- -memping [options] [server] +|client_prefix|\ping [options] [server] .. program:: memping @@ -22,12 +22,17 @@ .. include:: options/common.rst .. include:: options/sasl.rst -ENVIRONMENT ------------ +.. option:: -s|--servers <list of servers> + + Specify the list of servers as *hostname[:port][,hostname[:port]...]*. + + +.. include:: common/env.rst -.. envvar:: MEMCACHED_SERVERS +NOTES +----- - Specify the list of servers. +.. include:: common/note_program_prefix.rst SEE ALSO -------- diff -Nru libmemcached-1.1.3/docs/source/bin/memrm.rst libmemcached-1.1.4/docs/source/bin/memrm.rst --- libmemcached-1.1.3/docs/source/bin/memrm.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/memrm.rst 2023-03-06 19:36:56.000000000 +0100 @@ -4,7 +4,7 @@ SYNOPSIS -------- -memrm [options] <key ...> +|client_prefix|\rm [options] <key ...> .. program:: memrm @@ -18,17 +18,14 @@ OPTIONS ------- -.. include:: options/all.rst -.. include:: options/common.rst -.. include:: options/hash.rst -.. include:: options/sasl.rst +.. include:: options/common_set.rst -ENVIRONMENT ------------ +.. include:: common/env.rst -.. envvar:: MEMCACHED_SERVERS +NOTES +----- - Specify the list of servers. +.. include:: common/note_program_prefix.rst SEE ALSO -------- diff -Nru libmemcached-1.1.3/docs/source/bin/memslap.rst libmemcached-1.1.4/docs/source/bin/memslap.rst --- libmemcached-1.1.3/docs/source/bin/memslap.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/memslap.rst 2023-03-06 19:36:56.000000000 +0100 @@ -4,7 +4,7 @@ SYNOPSIS -------- -memslap [options] +|client_prefix|\slap [options] .. program:: memslap @@ -21,15 +21,41 @@ OPTIONS ------- -.. include:: options/all.rst -.. include:: options/common.rst +.. include:: options/common_get.rst +.. include:: options/hash.rst +.. include:: options/udp.rst -ENVIRONMENT ------------ +.. option:: -R|--noreply + + Enable the NOREPLY behavior for storage commands. + +.. option:: -F|--flush + + Flush all servers prior test. + +.. option:: -t|--test <arg> + + Test to perform (options: get, mget, set; default: get). + +.. option:: -c|--concurrency <num> + + Concurrency (number of threads to start; default: 1). + +.. option:: -e|--execute-number <num> + + Number of times to execute the tests (default: 10000). + +.. option:: -l|--initial-load <num> + + Number of keys to load before executing tests (default: 10000). + + +.. include:: common/env.rst -.. envvar:: MEMCACHED_SERVERS +NOTES +----- - Specify the list of servers. +.. include:: common/note_program_prefix.rst SEE ALSO -------- diff -Nru libmemcached-1.1.3/docs/source/bin/memstat.rst libmemcached-1.1.4/docs/source/bin/memstat.rst --- libmemcached-1.1.3/docs/source/bin/memstat.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/memstat.rst 2023-03-06 19:36:56.000000000 +0100 @@ -4,7 +4,7 @@ SYNOPSIS -------- -memstat [options] +|client_prefix|\stat [options] [stat args] .. program:: memstat @@ -19,31 +19,42 @@ OPTIONS ------- -.. include:: options/all.rst -.. include:: options/common.rst -.. include:: options/sasl.rst +.. include:: options/common_get.rst -.. option:: --analyze +.. option:: -A|--args <stat> - Analyze and print differences of a server cluster. A memory and uptime comparison is performed by default. + Stat args. - Available additional modes: + **DEPRECATED:** use positional arguments. - --analyze=latency - Network latency comparison +.. option:: -a|--analyze [<arg>] + + Analyze and print differences of a server cluster. + A memory and uptime comparison is performed by default. + Options: + + --analyze[=default] + Memory and uptime comparison. + --analyze=latency + Network latency comparison. -.. option:: --server-version +.. option:: -S|-server-version Obtain and print server version(s) only. -ENVIRONMENT ------------ +.. option:: --iterations + + Iteration count of GETs sent by the latency test (default: 1000). + + +.. include:: common/env.rst -.. envvar:: MEMCACHED_SERVERS +NOTES +----- - Specify the list of servers. +.. include:: common/note_program_prefix.rst SEE ALSO -------- diff -Nru libmemcached-1.1.3/docs/source/bin/memtouch.rst libmemcached-1.1.4/docs/source/bin/memtouch.rst --- libmemcached-1.1.3/docs/source/bin/memtouch.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/memtouch.rst 2023-03-06 19:36:56.000000000 +0100 @@ -6,7 +6,7 @@ .. program:: memtouch -memtouch [options] <key> +|client_prefix|\touch [options] <key> DESCRIPTION ----------- @@ -16,11 +16,16 @@ OPTIONS ------- -.. include:: options/all.rst -.. include:: options/common.rst -.. include:: options/expire.rst +.. include:: options/common_get.rst .. include:: options/hash.rst -.. include:: options/sasl.rst +.. include:: options/expire.rst + +.. include:: common/env.rst + +NOTES +----- + +.. include:: common/note_program_prefix.rst SEE ALSO -------- diff -Nru libmemcached-1.1.3/docs/source/bin/options/all.rst libmemcached-1.1.4/docs/source/bin/options/all.rst --- libmemcached-1.1.3/docs/source/bin/options/all.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/options/all.rst 2023-03-06 19:36:56.000000000 +0100 @@ -1,8 +1,8 @@ -.. option:: --help +.. option:: -h|--help Display help. -.. option:: --version +.. option:: -V|--version Display version. diff -Nru libmemcached-1.1.3/docs/source/bin/options/common_get.rst libmemcached-1.1.4/docs/source/bin/options/common_get.rst --- libmemcached-1.1.3/docs/source/bin/options/common_get.rst 1970-01-01 01:00:00.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/options/common_get.rst 2023-03-06 19:36:56.000000000 +0100 @@ -0,0 +1,6 @@ + +.. include:: /bin/options/all.rst +.. include:: /bin/options/common.rst +.. include:: /bin/options/net.rst +.. include:: /bin/options/proto.rst +.. include:: /bin/options/sasl.rst diff -Nru libmemcached-1.1.3/docs/source/bin/options/common.rst libmemcached-1.1.4/docs/source/bin/options/common.rst --- libmemcached-1.1.3/docs/source/bin/options/common.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/options/common.rst 2023-03-06 19:36:56.000000000 +0100 @@ -1,20 +1,11 @@ -.. option:: --quiet +.. option:: -q|--quiet Operate quietly. -.. option:: --verbose +.. option:: -v|--verbose Operate more verbosely. -.. option:: --debug - - See :option:`--verbose`. - -.. option:: --servers <list of servers> - - Specify the list of servers as *hostname[:port][,hostname[:port]...]*. - -.. option:: --binary - - Enable binary protocol. +.. option:: -d|--debug + See :option:`-v\|--verbose`. diff -Nru libmemcached-1.1.3/docs/source/bin/options/common_set.rst libmemcached-1.1.4/docs/source/bin/options/common_set.rst --- libmemcached-1.1.3/docs/source/bin/options/common_set.rst 1970-01-01 01:00:00.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/options/common_set.rst 2023-03-06 19:36:56.000000000 +0100 @@ -0,0 +1,8 @@ + +.. include:: /bin/options/all.rst +.. include:: /bin/options/common.rst +.. include:: /bin/options/expire.rst +.. include:: /bin/options/hash.rst +.. include:: /bin/options/net.rst +.. include:: /bin/options/proto.rst +.. include:: /bin/options/sasl.rst diff -Nru libmemcached-1.1.3/docs/source/bin/options/expire.rst libmemcached-1.1.4/docs/source/bin/options/expire.rst --- libmemcached-1.1.3/docs/source/bin/options/expire.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/options/expire.rst 2023-03-06 19:36:56.000000000 +0100 @@ -1,4 +1,4 @@ -.. option:: --expire <expiration> +.. option:: -e|--expire <expiration> Use *expiration* seconds (or a UNIX timestamp). diff -Nru libmemcached-1.1.3/docs/source/bin/options/file_out.rst libmemcached-1.1.4/docs/source/bin/options/file_out.rst --- libmemcached-1.1.3/docs/source/bin/options/file_out.rst 1970-01-01 01:00:00.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/options/file_out.rst 2023-03-06 19:36:56.000000000 +0100 @@ -0,0 +1,6 @@ + +.. option:: -f|--file [<file>] + + Output to file instead of standard output. + + *NOTE:* defaults to <key> if no argument was provided. diff -Nru libmemcached-1.1.3/docs/source/bin/options/flag.rst libmemcached-1.1.4/docs/source/bin/options/flag.rst --- libmemcached-1.1.3/docs/source/bin/options/flag.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/options/flag.rst 1970-01-01 01:00:00.000000000 +0100 @@ -1,4 +0,0 @@ -.. option:: --flag <number> - - Use *number* as flag. - diff -Nru libmemcached-1.1.3/docs/source/bin/options/flags_noarg.rst libmemcached-1.1.4/docs/source/bin/options/flags_noarg.rst --- libmemcached-1.1.3/docs/source/bin/options/flags_noarg.rst 1970-01-01 01:00:00.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/options/flags_noarg.rst 2023-03-06 19:36:56.000000000 +0100 @@ -0,0 +1,4 @@ +.. option:: -F|--flags + + Display key's flags. + diff -Nru libmemcached-1.1.3/docs/source/bin/options/flags_reqarg.rst libmemcached-1.1.4/docs/source/bin/options/flags_reqarg.rst --- libmemcached-1.1.3/docs/source/bin/options/flags_reqarg.rst 1970-01-01 01:00:00.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/options/flags_reqarg.rst 2023-03-06 19:36:56.000000000 +0100 @@ -0,0 +1,4 @@ +.. option:: -F|--flags <number> + + Use *number* as key's flags. + diff -Nru libmemcached-1.1.3/docs/source/bin/options/hash.rst libmemcached-1.1.4/docs/source/bin/options/hash.rst --- libmemcached-1.1.3/docs/source/bin/options/hash.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/options/hash.rst 2023-03-06 19:36:56.000000000 +0100 @@ -1,4 +1,4 @@ -.. option:: --hash <algorithm> +.. option:: -H|--hash <algorithm> Use *algorithm* as key hash algo. See :enumerator:`memcached_behavior_t::MEMCACHED_BEHAVIOR_HASH`. diff -Nru libmemcached-1.1.3/docs/source/bin/options/net.rst libmemcached-1.1.4/docs/source/bin/options/net.rst --- libmemcached-1.1.3/docs/source/bin/options/net.rst 1970-01-01 01:00:00.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/options/net.rst 2023-03-06 19:36:56.000000000 +0100 @@ -0,0 +1,12 @@ + +.. option:: -s|--servers <list of servers> + + Specify the list of servers as *hostname[:port][,hostname[:port]...]*. + +.. option:: -n|--non-blocking + + Enable non-blocking operations. + +.. option:: -N|--tcp-nodelay + + Disable Nagle's algorithm. diff -Nru libmemcached-1.1.3/docs/source/bin/options/proto.rst libmemcached-1.1.4/docs/source/bin/options/proto.rst --- libmemcached-1.1.3/docs/source/bin/options/proto.rst 1970-01-01 01:00:00.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/options/proto.rst 2023-03-06 19:36:56.000000000 +0100 @@ -0,0 +1,8 @@ + +.. option:: -b|--binary + + Enable binary protocol. + +.. option:: -B|--buffer + + Buffer requests. diff -Nru libmemcached-1.1.3/docs/source/bin/options/sasl.rst libmemcached-1.1.4/docs/source/bin/options/sasl.rst --- libmemcached-1.1.3/docs/source/bin/options/sasl.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/options/sasl.rst 2023-03-06 19:36:56.000000000 +0100 @@ -1,8 +1,8 @@ -.. option:: --username <username> +.. option:: -u|--username <username> Use *username* for SASL authentication. -.. option:: --password <password> +.. option:: -p|--password <password> Use *password* for SASL authentication. diff -Nru libmemcached-1.1.3/docs/source/bin/options/udp.rst libmemcached-1.1.4/docs/source/bin/options/udp.rst --- libmemcached-1.1.3/docs/source/bin/options/udp.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/bin/options/udp.rst 2023-03-06 19:36:56.000000000 +0100 @@ -1,4 +1,4 @@ -.. option:: --udp +.. option:: -U|--udp Enable UDP operation mode. diff -Nru libmemcached-1.1.3/docs/source/ChangeLog-1.1.rst libmemcached-1.1.4/docs/source/ChangeLog-1.1.rst --- libmemcached-1.1.3/docs/source/ChangeLog-1.1.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/ChangeLog-1.1.rst 2023-03-06 19:36:56.000000000 +0100 @@ -5,6 +5,28 @@ ChangeLog v1.1 ============== +v 1.1.4 +------- + +.. + + released 2022-03-06 + + + +* Fix `gh #107 <https://github.com/awesomized/libmemcached/issues/107>`_\ : + macOS: deprecated sasl API (improve detection of ``libsasl2``\ ). +* Fix `gh #131 <https://github.com/awesomized/libmemcached/issues/131>`_\ : + Consider renaming tools (add ``CLIENT_PREFIX`` build option; default: ``mem``\ ) +* Fix `gh #132 <https://github.com/awesomized/libmemcached/issues/132>`_\ : + Add build of static library (add ``BUILD_SHARED_LIBS`` build option; default: ``ON``\ ). +* Fix `gh #134 <https://github.com/awesomized/libmemcached/issues/134>`_\ : + Update client option documentation. +* Fix `gh #136 <https://github.com/awesomized/libmemcached/issues/136>`_\ : + ``libmemcachedutil`` is underlinked (link against libmemcached). +* Fix `gh php-memcached#531 <https://github.com/php-memcached-dev/php-memcached/issues/531>`_\ : + ``get`` returns random values when lower than default ``OPT_POLL_TIMEOUT`` is set. + v 1.1.3 ------- diff -Nru libmemcached-1.1.3/docs/source/libmemcached/memcached_analyze.rst libmemcached-1.1.4/docs/source/libmemcached/memcached_analyze.rst --- libmemcached-1.1.3/docs/source/libmemcached/memcached_analyze.rst 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/docs/source/libmemcached/memcached_analyze.rst 2023-03-06 19:36:56.000000000 +0100 @@ -28,7 +28,7 @@ and sets the result to the `memcached_analysis_st` structure. The return value must be freed by the calling application. -.. seealso:: :option:`memstat --analyze` +.. seealso:: :option:`memstat -a|--analyze [<arg>]` A command line tool to analyze a memcached server. diff -Nru libmemcached-1.1.3/.github/workflows/cmake-build-ci.gen libmemcached-1.1.4/.github/workflows/cmake-build-ci.gen --- libmemcached-1.1.3/.github/workflows/cmake-build-ci.gen 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/.github/workflows/cmake-build-ci.gen 2023-03-06 19:36:56.000000000 +0100 @@ -5,102 +5,156 @@ const DEF = [ "os" => "Linux", - "Linux" => "ubuntu-20.04", - "Windows" => "windows-2019", - "macOS" => "macos-10.15", - "ubuntu-20.04" => "gnu", - "windows-2019" => "msvc", - "macos-10.15" => "clang", + + "Linux" => "ubuntu-22.04", "ubuntu-22.04" => "gnu", + "Windows" => "windows-2022", "windows-2022" => "msvc", + "macOS" => "macos-12", "macos-12" => "clang", + "gnu" => [ - "ver" => "cur", "CC" => "gcc", "CXX" => "g++", ], "clang" => [ - "ver" => "cur", "CC" => "clang", "CXX" => "clang++", ], - "msvc" => [ // dummy - "ver" => "cur", - "CC" => "msvc", - "CXX" => "msvc", + "msvc" => [ + "CMAKE_GENERATOR" => "Visual Studio" ], - "mingw" => [ // dummy - "ver" => "cur", - "CC" => "mingw", - "CXX" => "mingw", + "mingw" => [ + "CMAKE_GENERATOR" => "MinGW Makefiles" ] ]; const MAP = [ - 'env.OS_VER' => [ - "ubuntu-20.04" => [ - 'env.CC_VND' => [ - "gnu" => [ - 'env.CC_VER' => [ - "new" => "-10", - "cur" => "-9", + "Linux" => [ + 'env.OS_VER' => [ + "ubuntu-22.04" => [ + 'env.CC_VND' => [ + "gnu" => [ + 'env.CC_VER' => [ + "new" => "-12", + "cur" => "-11", + "old" => "-10", + ] + ], + "clang" => [ + 'env.CC_VER' => [ + "new" => "-14", + "cur" => "-13", + ] ] - ], - "clang" => [ - 'env.CC_VER' => [ - "new" => "-12", - "cur" => "-11", - "old" => "-10" + ] + ], + "ubuntu-20.04" => [ + 'env.CC_VND' => [ + "gnu" => [ + 'env.CC_VER' => [ + "new" => "-10", + "cur" => "-9", + ] + ], + "clang" => [ + 'env.CC_VER' => [ + "new" => "-12", + "cur" => "-11", + "old" => "-10" + ] ] ] - ] + ], ], - "ubuntu-18.04" => [ - 'env.CC_VND' => [ - "gnu" => [ - 'env.CC_VER' => [ - "new" => "-10", - "cur" => "-9", - "old" => "-7" + ], + "Windows" => [ + 'env.OS_VER' => [ + "windows-2022" => [ + 'env.CC_VND' => [ + "msvc" => [ + "env.CC_VER" => [ + "cur" => " 17 2022" + ] + ], + "mingw" => [ + "env.CC_VER" => [ + "cur" => "" + ] ] - ], - "clang" => [ - 'env.CC_VER' => [ - "cur" => "-9", + ] + ], + "windows-2019" => [ + 'env.CC_VND' => [ + "msvc" => [ + "env.CC_VER" => [ + "cur" => " 16 2019" + ] + ], + "mingw" => [ + "env.CC_VER" => [ + "cur" => "" + ] ] ] - ] - ], - ] + ], + ] + ], + "macOS" => [] ]; const ENV = [ - "ubuntu-20.04" => [ + "ubuntu-22.04" => [ "clang" => [ "new" => [ "CXXFLAGS" => "-stdlib=libc++", - "INSTALL_CXX" => "libc++-12-dev libc++abi-12-dev" + "INSTALL_CXX" => "libc++-14-dev libc++abi-14-dev" ], "cur" => [ "CXXFLAGS" => "-stdlib=libc++", - "INSTALL_CXX" => "libc++-11-dev libc++abi-11-dev" - ], - "old" => [ - "CXXFLAGS" => "-stdlib=libc++", - "INSTALL_CXX" => "libc++-10-dev libc++abi-10-dev" + "INSTALL_CXX" => "libc++-13-dev libc++abi-13-dev" ], ] ], - "ubuntu-18.04" => [ + "ubuntu-20.04" => [ "clang" => [ "new" => [ - "CXXFLAGS" => "-stdlib=libc++" + "CXXFLAGS" => "-stdlib=libc++", + "INSTALL_CXX" => "libc++-12-dev libc++abi-12-dev" ], "cur" => [ - "CXXFLAGS" => "-stdlib=libc++" + "CXXFLAGS" => "-stdlib=libc++", + "INSTALL_CXX" => "libc++-11-dev libc++abi-11-dev" ], "old" => [ - "CXXFLAGS" => "-stdlib=libc++" + "CXXFLAGS" => "-stdlib=libc++", + "INSTALL_CXX" => "libc++-10-dev libc++abi-10-dev" ], ] - ] + ], ]; +function set_addpath($os_vnd, $paths) { + foreach ((array) $paths as $path) if ($os_vnd == "Windows") { +?> + echo "<?=$path?>" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append +<?php + } else { +?> + echo 'PATH="$PATH:<?=$path?>"' >> ${GITHUB_ENV} +<?php + } +} +function step_setenv($os_vnd, $var, $val) { + if ($var === "PATH") { + return set_addpath($os_vnd, $val); + } + if ($os_vnd == "Windows") { +?> + echo '<?=$var?>=<?=$val?>' | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append +<?php + } else { +?> + echo <?=$var?>="<?=$val?>" >> ${GITHUB_ENV} +<?php + } +} + /** * @var bool $splat_map false = no splat map, null = default splat map, true = full splat map */ @@ -111,14 +165,10 @@ run: | echo "c:\msys64\usr\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append echo "c:\msys64\mingw64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - echo 'CMAKE_GENERATOR=Visual Studio 16 2019' | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - - name: Prepare environment (MinGW) - if: env.CC_VND == 'mingw' - run: | - echo 'CMAKE_GENERATOR=MinGW Makefiles' | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append <?php - } elseif ($splat_map !== false) { - foreach (MAP as $os_is => $os_vers) { + } + if ($splat_map !== false) { + foreach (MAP[$os_vnd] as $os_is => $os_vers) { foreach ($os_vers as $os_ver => $cc_vnds_) { if (!$splat_map && DEF[DEF["os"]] != $os_ver) continue; foreach ($cc_vnds_ as $cc_vnd_is => $cc_vnds) { @@ -126,19 +176,18 @@ if (!$splat_map && DEF[DEF[DEF["os"]]] != $cc_vnd) continue; foreach ($cc_vers_ as $cc_ver_is => $cc_vers) { foreach ($cc_vers as $cc_ver => $ver) { - if (!$splat_map && DEF[DEF[DEF[DEF["os"]]]]["ver"] != $cc_ver) continue; + if (!$splat_map && "cur" != $cc_ver) continue; ?> - name: Prepare environment (<?= "for $cc_ver $cc_vnd on $os_ver" ?>) if: (<?="$os_is=='$os_ver') && ($cc_vnd_is=='$cc_vnd') && ($cc_ver_is=='$cc_ver'"?>) run: | - echo CC="<?=DEF[$cc_vnd]["CC"] . $ver?>" >> ${GITHUB_ENV} - echo CXX="<?=DEF[$cc_vnd]["CXX"] . $ver?>" >> ${GITHUB_ENV} <?php + foreach (DEF[$cc_vnd] as $env => $val) { + step_setenv($os_vnd, $env, $val . $ver); + } if (isset(ENV[$os_ver][$cc_vnd][$cc_ver])) { foreach (ENV[$os_ver][$cc_vnd][$cc_ver] as $env => $val) { -?> - echo <?=$env?>="<?=$val?>" >> ${GITHUB_ENV} -<?php + step_setenv($os_vnd, $env, $val); } } } @@ -172,7 +221,7 @@ if ($os_vnd === "macOS") : ?> run: | - brew install bison flex sphinx-doc ${INSTALL_MEMCACHED} + brew install bison flex libevent pkg-config sphinx-doc ${INSTALL_MEMCACHED} brew services stop memcached || true echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV} <?php @@ -184,6 +233,8 @@ release: false path-type: inherit install: >- + bison + flex rsync openssh <?php @@ -197,7 +248,8 @@ then cd memcached ./autogen.sh - ./configure CFLAGS="-O2 -pipe" \ + cp configure{,.old} && sed -e 's/-Werror//g' <configure.old >configure + ./configure CFLAGS="-O2 -pipe -fcommon" \ --prefix=${MEMCACHED_PREFIX} \ --enable-sasl \ --enable-sasl-pwdb \ @@ -244,7 +296,7 @@ - name: Package env: PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }} - if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ') + if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' run: | cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package @@ -276,8 +328,7 @@ function defaults($os_vnd = DEF["os"]) { $os_ver = DEF[$os_vnd]; $cc_vnd = DEF[$os_ver]; - $cc_ver = DEF[$cc_vnd]["ver"]; - return "$os_ver, $cc_vnd, $cc_ver"; + return "$os_ver, $cc_vnd"; } function env_override($os_vnd, $cc_vnd = null) { @@ -286,7 +337,7 @@ OS_VND: <?=$os_vnd?> # OS_VER: <?=DEF[$os_vnd]?> # CC_VND: <?=$cc_vnd?> # - CC_VER: <?=DEF[$cc_vnd]["ver"]?> # + CC_VER: cur <?php } @@ -320,51 +371,77 @@ OS_VND: <?=DEF["os"]?> # OS_VER: <?=DEF[DEF["os"]]?> # CC_VND: <?=DEF[DEF[DEF["os"]]]?> # - CC_VER: <?=DEF[DEF[DEF[DEF["os"]]]]["ver"]?> # + CC_VER: cur jobs: - # new memcached - dbg-new: - name: dbg-new (<?=defaults()?>) + # sanitizer + debug-sanitizer: + name: debug sanitizer runs-on: <?=DEF[DEF["os"]]?> # + strategy: + matrix: + sanitizer: ['address;undefined', 'thread'] + env: + CMAKE_BUILD_TYPE: "Debug" + BUILD_TESTING: "ON" + VERBOSE: "ON" + ENABLE_SANITIZERS: ${{ matrix.sanitizer }} + steps: + - uses: actions/checkout@v3 +<?php steps("Linux"); ?> + +# memcached + debug-memcached: + name: debug memcached + runs-on: <?=DEF[DEF["os"]]?> # + continue-on-error: true + strategy: + matrix: + memcached: ['master', '1.6.17', '1.6.9', '1.5.22', '1.5.6'] env: CMAKE_BUILD_TYPE: "Debug" BUILD_TESTING: "ON" VERBOSE: "ON" - CFLAGS: "-O0 --coverage" - CXXFLAGS: "-O0 --coverage" INSTALL_MEMCACHED: "" MEMCACHED_PREFIX: "/tmp" ENABLE_SASL: "ON" steps: - - uses: actions/checkout@v2 - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + - uses: actions/checkout@v3 with: repository: memcached/memcached path: memcached - ref: 1.6.7 + ref: ${{ matrix.memcached }} <?php steps("Linux"); ?> - - uses: codecov/codecov-action@v1.0.13 - # sanitizer build - sanitizer: +# coverage linux + debug-coverage-linux: + name: debug coverage (<?=defaults()?>) runs-on: <?=DEF[DEF["os"]]?> # - strategy: - matrix: - sanitizer: ['address;undefined', 'thread'] env: CMAKE_BUILD_TYPE: "Debug" BUILD_TESTING: "ON" VERBOSE: "ON" - ENABLE_SANITIZERS: ${{ matrix.sanitizer }} + CFLAGS: "-O0 --coverage" + CXXFLAGS: "-O0 --coverage" + INSTALL_MEMCACHED: "" + MEMCACHED_PREFIX: "/tmp" + ENABLE_SASL: "ON" steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + - uses: actions/checkout@v3 + with: + repository: memcached/memcached + path: memcached + ref: 1.6.7 <?php steps("Linux"); ?> + - uses: codecov/codecov-action@v3 + - # mac debug - dbg-mac: - name: dbg-mac (<?=DEF["macOS"]?>, <?=DEF[DEF["macOS"]]?>, <?=DEF[DEF[DEF["macOS"]]]["ver"]?>) + # coverage mac + debug-coverage-mac: + name: debug coverage (<?=defaults("macOS")?>) runs-on: <?=DEF["macOS"]?> # env: CMAKE_BUILD_TYPE: "Debug" @@ -375,31 +452,36 @@ <?php env_override("macOS")?> continue-on-error: true steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 <?php steps("macOS", false); ?> - - uses: codecov/codecov-action@v1.0.13 + - uses: codecov/codecov-action@v3 - # mac release - rel-mac: - name: rel-mac (<?=DEF["macOS"]?>, <?=DEF[DEF["macOS"]]?>, <?=DEF[DEF[DEF["macOS"]]]["ver"]?>) - runs-on: <?=DEF["macOS"]?> # + # mac release builds + mac: + name: release + strategy: + fail-fast: false + matrix: + os_ver: [macos-12, macos-11, macos-10.15] + runs-on: ${{ matrix.os_ver }} env: CMAKE_BUILD_TYPE: "Release" BUILD_DOCS_MANGZ: "ON" <?php env_override("macOS")?> continue-on-error: true steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 <?php steps("macOS", false); ?> # windows release builds windows: + name: release strategy: fail-fast: false matrix: - os_ver: [<?=DEF["Windows"]?>] + os_ver: [windows-2022, windows-2019] cc_vnd: [msvc, mingw] cc_ver: [cur] runs-on: ${{ matrix.os_ver }} @@ -411,7 +493,7 @@ CC_VND: ${{ matrix.cc_vnd }} CC_VER: ${{ matrix.cc_ver }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 <?php steps("Windows", true); ?> @@ -421,7 +503,7 @@ strategy: fail-fast: false matrix: - os_ver: [ubuntu-20.04, ubuntu-18.04] + os_ver: [ubuntu-22.04, ubuntu-20.04] cc_vnd: [gnu, clang] cc_ver: [new, cur, old] runs-on: ${{ matrix.os_ver }} @@ -434,7 +516,7 @@ CC_VND: ${{ matrix.cc_vnd }} CC_VER: ${{ matrix.cc_ver }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 <?php steps("Linux", true); ?> diff -Nru libmemcached-1.1.3/.github/workflows/cmake-build-ci.yml libmemcached-1.1.4/.github/workflows/cmake-build-ci.yml --- libmemcached-1.1.3/.github/workflows/cmake-build-ci.yml 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/.github/workflows/cmake-build-ci.yml 2023-03-06 19:36:56.000000000 +0100 @@ -26,37 +26,122 @@ ENABLE_HASH_HSIEH: "ON" ENABLE_DTRACE: "OFF" OS_VND: Linux # - OS_VER: ubuntu-20.04 # + OS_VER: ubuntu-22.04 # CC_VND: gnu # - CC_VER: cur # + CC_VER: cur jobs: - # new memcached - dbg-new: - name: dbg-new (ubuntu-20.04, gnu, cur) - runs-on: ubuntu-20.04 # + # sanitizer + debug-sanitizer: + name: debug sanitizer + runs-on: ubuntu-22.04 # + strategy: + matrix: + sanitizer: ['address;undefined', 'thread'] + env: + CMAKE_BUILD_TYPE: "Debug" + BUILD_TESTING: "ON" + VERBOSE: "ON" + ENABLE_SANITIZERS: ${{ matrix.sanitizer }} + steps: + - uses: actions/checkout@v3 + - name: Prepare environment (for cur gnu on ubuntu-22.04) + if: (env.OS_VER=='ubuntu-22.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur') + run: | + echo CC="gcc-11" >> ${GITHUB_ENV} + echo CXX="g++-11" >> ${GITHUB_ENV} + - name: Install dependencies (Linux) + if: runner.os == 'Linux' + run: | + sudo apt-get update -y + sudo apt-get install -my \ + libevent-dev \ + libsasl2-dev \ + libtbb-dev \ + python3-sphinx \ + ${INSTALL_MEMCACHED} \ + ${INSTALL_CC} ${INSTALL_CXX} + sudo systemctl stop memcached || true + - name: Build memcached + if: runner.os != 'Windows' + run: | + if test -d memcached + then + cd memcached + ./autogen.sh + cp configure{,.old} && sed -e 's/-Werror//g' <configure.old >configure + ./configure CFLAGS="-O2 -pipe -fcommon" \ + --prefix=${MEMCACHED_PREFIX} \ + --enable-sasl \ + --enable-sasl-pwdb \ + --disable-coverage \ + --disable-dependency-tracking \ + --disable-docs \ + --disable-extstore \ + --disable-option-checking \ + ; + make -j2 + make install + cd .. + echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV} + fi + - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }}) + run: cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build + - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }} + run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 + - name: Test + if: env.BUILD_TESTING == 'ON' + run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test + - name: Install + if: env.BUILD_TESTING == 'ON' + run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp + - name: Failed tests log + if: ${{ env.BUILD_TESTING == 'ON' && failure() }} + run: cat build/Testing/Temporary/LastTest.log || true + - name: Package + env: + PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }} + if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' + run: | + cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build + cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package + cmake -DCPACK_COMPONENT_INSTALL=ON build + cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package + cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts + - name: Notify Gitter + env: + GITTER: ${{ secrets.GITTER }} + if: (success() || failure()) && env.GITTER != '' + run: bash .github/notify-gitter.sh ${{ job.status }} + +# memcached + debug-memcached: + name: debug memcached + runs-on: ubuntu-22.04 # + continue-on-error: true + strategy: + matrix: + memcached: ['master', '1.6.17', '1.6.9', '1.5.22', '1.5.6'] env: CMAKE_BUILD_TYPE: "Debug" BUILD_TESTING: "ON" VERBOSE: "ON" - CFLAGS: "-O0 --coverage" - CXXFLAGS: "-O0 --coverage" INSTALL_MEMCACHED: "" MEMCACHED_PREFIX: "/tmp" ENABLE_SASL: "ON" steps: - - uses: actions/checkout@v2 - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + - uses: actions/checkout@v3 with: repository: memcached/memcached path: memcached - ref: 1.6.7 - - name: Prepare environment (for cur gnu on ubuntu-20.04) - if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur') + ref: ${{ matrix.memcached }} + - name: Prepare environment (for cur gnu on ubuntu-22.04) + if: (env.OS_VER=='ubuntu-22.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur') run: | - echo CC="gcc-9" >> ${GITHUB_ENV} - echo CXX="g++-9" >> ${GITHUB_ENV} + echo CC="gcc-11" >> ${GITHUB_ENV} + echo CXX="g++-11" >> ${GITHUB_ENV} - name: Install dependencies (Linux) if: runner.os == 'Linux' run: | @@ -76,7 +161,8 @@ then cd memcached ./autogen.sh - ./configure CFLAGS="-O2 -pipe" \ + cp configure{,.old} && sed -e 's/-Werror//g' <configure.old >configure + ./configure CFLAGS="-O2 -pipe -fcommon" \ --prefix=${MEMCACHED_PREFIX} \ --enable-sasl \ --enable-sasl-pwdb \ @@ -107,7 +193,7 @@ - name: Package env: PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }} - if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ') + if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' run: | cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package @@ -119,26 +205,32 @@ GITTER: ${{ secrets.GITTER }} if: (success() || failure()) && env.GITTER != '' run: bash .github/notify-gitter.sh ${{ job.status }} - - uses: codecov/codecov-action@v1.0.13 - # sanitizer build - sanitizer: - runs-on: ubuntu-20.04 # - strategy: - matrix: - sanitizer: ['address;undefined', 'thread'] +# coverage linux + debug-coverage-linux: + name: debug coverage (ubuntu-22.04, gnu) + runs-on: ubuntu-22.04 # env: CMAKE_BUILD_TYPE: "Debug" BUILD_TESTING: "ON" VERBOSE: "ON" - ENABLE_SANITIZERS: ${{ matrix.sanitizer }} + CFLAGS: "-O0 --coverage" + CXXFLAGS: "-O0 --coverage" + INSTALL_MEMCACHED: "" + MEMCACHED_PREFIX: "/tmp" + ENABLE_SASL: "ON" steps: - - uses: actions/checkout@v2 - - name: Prepare environment (for cur gnu on ubuntu-20.04) - if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur') + - uses: actions/checkout@v3 + - uses: actions/checkout@v3 + with: + repository: memcached/memcached + path: memcached + ref: 1.6.7 + - name: Prepare environment (for cur gnu on ubuntu-22.04) + if: (env.OS_VER=='ubuntu-22.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur') run: | - echo CC="gcc-9" >> ${GITHUB_ENV} - echo CXX="g++-9" >> ${GITHUB_ENV} + echo CC="gcc-11" >> ${GITHUB_ENV} + echo CXX="g++-11" >> ${GITHUB_ENV} - name: Install dependencies (Linux) if: runner.os == 'Linux' run: | @@ -158,7 +250,8 @@ then cd memcached ./autogen.sh - ./configure CFLAGS="-O2 -pipe" \ + cp configure{,.old} && sed -e 's/-Werror//g' <configure.old >configure + ./configure CFLAGS="-O2 -pipe -fcommon" \ --prefix=${MEMCACHED_PREFIX} \ --enable-sasl \ --enable-sasl-pwdb \ @@ -189,7 +282,7 @@ - name: Package env: PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }} - if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ') + if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' run: | cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package @@ -201,11 +294,13 @@ GITTER: ${{ secrets.GITTER }} if: (success() || failure()) && env.GITTER != '' run: bash .github/notify-gitter.sh ${{ job.status }} + - uses: codecov/codecov-action@v3 + - # mac debug - dbg-mac: - name: dbg-mac (macos-10.15, clang, cur) - runs-on: macos-10.15 # + # coverage mac + debug-coverage-mac: + name: debug coverage (macos-12, clang) + runs-on: macos-12 # env: CMAKE_BUILD_TYPE: "Debug" BUILD_TESTING: "ON" @@ -213,16 +308,16 @@ CFLAGS: "-O0 --coverage" CXXFLAGS: "-O0 --coverage" OS_VND: macOS # - OS_VER: macos-10.15 # + OS_VER: macos-12 # CC_VND: clang # - CC_VER: cur # + CC_VER: cur continue-on-error: true steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install dependencies (macOS) if: runner.os == 'macOS' run: | - brew install bison flex sphinx-doc ${INSTALL_MEMCACHED} + brew install bison flex libevent pkg-config sphinx-doc ${INSTALL_MEMCACHED} brew services stop memcached || true echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV} - name: Build memcached @@ -232,7 +327,8 @@ then cd memcached ./autogen.sh - ./configure CFLAGS="-O2 -pipe" \ + cp configure{,.old} && sed -e 's/-Werror//g' <configure.old >configure + ./configure CFLAGS="-O2 -pipe -fcommon" \ --prefix=${MEMCACHED_PREFIX} \ --enable-sasl \ --enable-sasl-pwdb \ @@ -263,7 +359,7 @@ - name: Package env: PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }} - if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ') + if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' run: | cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package @@ -275,28 +371,32 @@ GITTER: ${{ secrets.GITTER }} if: (success() || failure()) && env.GITTER != '' run: bash .github/notify-gitter.sh ${{ job.status }} - - uses: codecov/codecov-action@v1.0.13 + - uses: codecov/codecov-action@v3 - # mac release - rel-mac: - name: rel-mac (macos-10.15, clang, cur) - runs-on: macos-10.15 # + # mac release builds + mac: + name: release + strategy: + fail-fast: false + matrix: + os_ver: [macos-12, macos-11, macos-10.15] + runs-on: ${{ matrix.os_ver }} env: CMAKE_BUILD_TYPE: "Release" BUILD_DOCS_MANGZ: "ON" OS_VND: macOS # - OS_VER: macos-10.15 # + OS_VER: macos-12 # CC_VND: clang # - CC_VER: cur # + CC_VER: cur continue-on-error: true steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Install dependencies (macOS) if: runner.os == 'macOS' run: | - brew install bison flex sphinx-doc ${INSTALL_MEMCACHED} + brew install bison flex libevent pkg-config sphinx-doc ${INSTALL_MEMCACHED} brew services stop memcached || true echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV} - name: Build memcached @@ -306,7 +406,8 @@ then cd memcached ./autogen.sh - ./configure CFLAGS="-O2 -pipe" \ + cp configure{,.old} && sed -e 's/-Werror//g' <configure.old >configure + ./configure CFLAGS="-O2 -pipe -fcommon" \ --prefix=${MEMCACHED_PREFIX} \ --enable-sasl \ --enable-sasl-pwdb \ @@ -337,7 +438,7 @@ - name: Package env: PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }} - if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ') + if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' run: | cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package @@ -352,10 +453,11 @@ # windows release builds windows: + name: release strategy: fail-fast: false matrix: - os_ver: [windows-2019] + os_ver: [windows-2022, windows-2019] cc_vnd: [msvc, mingw] cc_ver: [cur] runs-on: ${{ matrix.os_ver }} @@ -367,16 +469,27 @@ CC_VND: ${{ matrix.cc_vnd }} CC_VER: ${{ matrix.cc_ver }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Prepare environment (Windows) run: | echo "c:\msys64\usr\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append echo "c:\msys64\mingw64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + - name: Prepare environment (for cur msvc on windows-2022) + if: (env.OS_VER=='windows-2022') && (env.CC_VND=='msvc') && (env.CC_VER=='cur') + run: | + echo 'CMAKE_GENERATOR=Visual Studio 17 2022' | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + - name: Prepare environment (for cur mingw on windows-2022) + if: (env.OS_VER=='windows-2022') && (env.CC_VND=='mingw') && (env.CC_VER=='cur') + run: | + echo 'CMAKE_GENERATOR=MinGW Makefiles' | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + - name: Prepare environment (for cur msvc on windows-2019) + if: (env.OS_VER=='windows-2019') && (env.CC_VND=='msvc') && (env.CC_VER=='cur') + run: | echo 'CMAKE_GENERATOR=Visual Studio 16 2019' | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - - name: Prepare environment (MinGW) - if: env.CC_VND == 'mingw' + - name: Prepare environment (for cur mingw on windows-2019) + if: (env.OS_VER=='windows-2019') && (env.CC_VND=='mingw') && (env.CC_VER=='cur') run: | echo 'CMAKE_GENERATOR=MinGW Makefiles' | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - name: Install dependencies (Windows) @@ -386,6 +499,8 @@ release: false path-type: inherit install: >- + bison + flex rsync openssh - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }}) @@ -404,7 +519,7 @@ - name: Package env: PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }} - if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ') + if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' run: | cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package @@ -422,7 +537,7 @@ strategy: fail-fast: false matrix: - os_ver: [ubuntu-20.04, ubuntu-18.04] + os_ver: [ubuntu-22.04, ubuntu-20.04] cc_vnd: [gnu, clang] cc_ver: [new, cur, old] runs-on: ${{ matrix.os_ver }} @@ -435,9 +550,38 @@ CC_VND: ${{ matrix.cc_vnd }} CC_VER: ${{ matrix.cc_ver }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 + - name: Prepare environment (for new gnu on ubuntu-22.04) + if: (env.OS_VER=='ubuntu-22.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new') + run: | + echo CC="gcc-12" >> ${GITHUB_ENV} + echo CXX="g++-12" >> ${GITHUB_ENV} + - name: Prepare environment (for cur gnu on ubuntu-22.04) + if: (env.OS_VER=='ubuntu-22.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur') + run: | + echo CC="gcc-11" >> ${GITHUB_ENV} + echo CXX="g++-11" >> ${GITHUB_ENV} + - name: Prepare environment (for old gnu on ubuntu-22.04) + if: (env.OS_VER=='ubuntu-22.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old') + run: | + echo CC="gcc-10" >> ${GITHUB_ENV} + echo CXX="g++-10" >> ${GITHUB_ENV} + - name: Prepare environment (for new clang on ubuntu-22.04) + if: (env.OS_VER=='ubuntu-22.04') && (env.CC_VND=='clang') && (env.CC_VER=='new') + run: | + echo CC="clang-14" >> ${GITHUB_ENV} + echo CXX="clang++-14" >> ${GITHUB_ENV} + echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV} + echo INSTALL_CXX="libc++-14-dev libc++abi-14-dev" >> ${GITHUB_ENV} + - name: Prepare environment (for cur clang on ubuntu-22.04) + if: (env.OS_VER=='ubuntu-22.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur') + run: | + echo CC="clang-13" >> ${GITHUB_ENV} + echo CXX="clang++-13" >> ${GITHUB_ENV} + echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV} + echo INSTALL_CXX="libc++-13-dev libc++abi-13-dev" >> ${GITHUB_ENV} - name: Prepare environment (for new gnu on ubuntu-20.04) if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new') run: | @@ -469,27 +613,6 @@ echo CXX="clang++-10" >> ${GITHUB_ENV} echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV} echo INSTALL_CXX="libc++-10-dev libc++abi-10-dev" >> ${GITHUB_ENV} - - name: Prepare environment (for new gnu on ubuntu-18.04) - if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new') - run: | - echo CC="gcc-10" >> ${GITHUB_ENV} - echo CXX="g++-10" >> ${GITHUB_ENV} - - name: Prepare environment (for cur gnu on ubuntu-18.04) - if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur') - run: | - echo CC="gcc-9" >> ${GITHUB_ENV} - echo CXX="g++-9" >> ${GITHUB_ENV} - - name: Prepare environment (for old gnu on ubuntu-18.04) - if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old') - run: | - echo CC="gcc-7" >> ${GITHUB_ENV} - echo CXX="g++-7" >> ${GITHUB_ENV} - - name: Prepare environment (for cur clang on ubuntu-18.04) - if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur') - run: | - echo CC="clang-9" >> ${GITHUB_ENV} - echo CXX="clang++-9" >> ${GITHUB_ENV} - echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV} - name: Install dependencies (Linux) if: runner.os == 'Linux' run: | @@ -509,7 +632,8 @@ then cd memcached ./autogen.sh - ./configure CFLAGS="-O2 -pipe" \ + cp configure{,.old} && sed -e 's/-Werror//g' <configure.old >configure + ./configure CFLAGS="-O2 -pipe -fcommon" \ --prefix=${MEMCACHED_PREFIX} \ --enable-sasl \ --enable-sasl-pwdb \ @@ -540,7 +664,7 @@ - name: Package env: PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }} - if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ') + if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' run: | cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package diff -Nru libmemcached-1.1.3/src/bin/CMakeLists.txt libmemcached-1.1.4/src/bin/CMakeLists.txt --- libmemcached-1.1.3/src/bin/CMakeLists.txt 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/src/bin/CMakeLists.txt 2023-03-06 19:36:56.000000000 +0100 @@ -1,8 +1,8 @@ add_subdirectory(common) foreach(CLIENT IN LISTS CLIENTS) - add_executable(${CLIENT} ${CLIENT}.cc) - set_property(TARGET ${CLIENT} PROPERTY CXX_STANDARD ${CXX_STANDARD}) + add_executable(${CLIENT} mem${CLIENT}.cc) + set_target_properties(${CLIENT} PROPERTIES CXX_STANDARD ${CXX_STANDARD} OUTPUT_NAME ${CLIENT_PREFIX}${CLIENT}) target_include_directories(${CLIENT} PRIVATE ..) target_link_libraries(${CLIENT} PRIVATE libclient_common) if(CMAKE_INSTALL_RPATH) @@ -14,9 +14,9 @@ # extra sources -target_sources(memcapable PRIVATE ../libmemcached/byteorder.cc) +target_sources(capable PRIVATE ../libmemcached/byteorder.cc) # extra libs -target_link_libraries(memping PRIVATE libmemcachedutil) -target_link_libraries(memslap PRIVATE Threads::Threads) +target_link_libraries(ping PRIVATE libmemcachedutil) +target_link_libraries(slap PRIVATE Threads::Threads) diff -Nru libmemcached-1.1.3/src/libhashkit/CMakeLists.txt libmemcached-1.1.4/src/libhashkit/CMakeLists.txt --- libmemcached-1.1.3/src/libhashkit/CMakeLists.txt 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/src/libhashkit/CMakeLists.txt 2023-03-06 19:36:56.000000000 +0100 @@ -21,12 +21,12 @@ strerror.cc string.cc ) -add_library(libhashkit SHARED) +add_library(libhashkit) add_library(hashkit ALIAS libhashkit) set_target_properties(libhashkit PROPERTIES CXX_STANDARD ${CXX_STANDARD} - LIBRARY_OUTPUT_NAME hashkit - LIBRARY_OUTPUT_NAME_DEBUG hashkit-dbg + OUTPUT_NAME hashkit + OUTPUT_NAME_DEBUG hashkit-dbg SOVERSION ${LIBHASHKIT_SO_SOVERSION} VERSION ${LIBHASHKIT_SO_VERSION}) target_compile_options(libhashkit PRIVATE -DBUILDING_HASHKIT) diff -Nru libmemcached-1.1.3/src/libmemcached/CMakeLists.txt libmemcached-1.1.4/src/libmemcached/CMakeLists.txt --- libmemcached-1.1.3/src/libmemcached/CMakeLists.txt 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/src/libmemcached/CMakeLists.txt 2023-03-06 19:36:56.000000000 +0100 @@ -85,12 +85,12 @@ ) endif() -add_library(libmemcached SHARED) +add_library(libmemcached) add_library(memcached ALIAS libmemcached) set_target_properties(libmemcached PROPERTIES CXX_STANDARD ${CXX_STANDARD} - LIBRARY_OUTPUT_NAME memcached - LIBRARY_OUTPUT_NAME_DEBUG memcached-dbg + OUTPUT_NAME memcached + OUTPUT_NAME_DEBUG memcached-dbg SOVERSION ${LIBMEMCACHED_SO_SOVERSION} VERSION ${LIBMEMCACHED_SO_VERSION}) target_compile_definitions(libmemcached PRIVATE -DBUILDING_LIBMEMCACHED) @@ -147,7 +147,7 @@ add_library(libmemcachedinternal STATIC) add_library(memcachedinternal ALIAS libmemcachedinternal) -set_target_properties(libmemcachedinternal PROPERTIES CXX_STANDARD ${CXX_STANDARD} LIBRARY_OUTPUT_NAME memcachedinternal) +set_target_properties(libmemcachedinternal PROPERTIES CXX_STANDARD ${CXX_STANDARD} OUTPUT_NAME memcachedinternal) target_compile_definitions(libmemcachedinternal PRIVATE -DBUILDING_LIBMEMCACHEDINTERNAL) target_link_libraries(libmemcachedinternal PUBLIC libhashkit Threads::Threads ${CMAKE_DL_LIBS}) target_link_libraries(libmemcachedinternal PRIVATE p9y) diff -Nru libmemcached-1.1.3/src/libmemcached/purge.cc libmemcached-1.1.4/src/libmemcached/purge.cc --- libmemcached-1.1.3/src/libmemcached/purge.cc 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/src/libmemcached/purge.cc 2023-03-06 19:36:56.000000000 +0100 @@ -108,9 +108,6 @@ WATCHPOINT_ERROR(rc); is_successful = false; } - if (rc == MEMCACHED_TIMEOUT) { - break; - } if (ptr->root->callbacks) { memcached_callback_st cb = *ptr->root->callbacks; diff -Nru libmemcached-1.1.3/src/libmemcached/response.cc libmemcached-1.1.4/src/libmemcached/response.cc --- libmemcached-1.1.3/src/libmemcached/response.cc 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/src/libmemcached/response.cc 2023-03-06 19:36:56.000000000 +0100 @@ -761,7 +761,7 @@ rc = textual_read_one_response(instance, buffer, buffer_length, result); } - if (memcached_fatal(rc) && rc != MEMCACHED_TIMEOUT) { + if (memcached_fatal(rc)) { memcached_io_reset(instance); } diff -Nru libmemcached-1.1.3/src/libmemcached/sasl.cc libmemcached-1.1.4/src/libmemcached/sasl.cc --- libmemcached-1.1.3/src/libmemcached/sasl.cc 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/src/libmemcached/sasl.cc 2023-03-06 19:36:56.000000000 +0100 @@ -92,7 +92,11 @@ extern "C" { static void sasl_shutdown_function() { +#if HAVE_SASL_CLIENT_DONE + (void) sasl_client_done(); +#else sasl_done(); +#endif } static std::atomic<int> sasl_startup_state(SASL_OK); diff -Nru libmemcached-1.1.3/src/libmemcachedprotocol/CMakeLists.txt libmemcached-1.1.4/src/libmemcachedprotocol/CMakeLists.txt --- libmemcached-1.1.3/src/libmemcachedprotocol/CMakeLists.txt 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/src/libmemcachedprotocol/CMakeLists.txt 2023-03-06 19:36:56.000000000 +0100 @@ -9,12 +9,12 @@ pedantic.c ../libmemcached/byteorder.cc ) -add_library(libmemcachedprotocol SHARED) +add_library(libmemcachedprotocol) add_library(memcachedprotocol ALIAS libmemcachedprotocol) set_target_properties(libmemcachedprotocol PROPERTIES CXX_STANDARD ${CXX_STANDARD} - LIBRARY_OUTPUT_NAME memcachedprotocol - LIBRARY_OUTPUT_NAME_DEBUG memcachedprotocol-dbg + OUTPUT_NAME memcachedprotocol + OUTPUT_NAME_DEBUG memcachedprotocol-dbg SOVERSION ${LIBMEMCACHEDPROTOCOL_SO_SOVERSION} VERSION ${LIBMEMCACHEDPROTOCOL_SO_VERSION}) target_compile_definitions(libmemcachedprotocol PRIVATE -DBUILDING_LIBMEMCACHED) diff -Nru libmemcached-1.1.3/src/libmemcachedutil/CMakeLists.txt libmemcached-1.1.4/src/libmemcachedutil/CMakeLists.txt --- libmemcached-1.1.3/src/libmemcachedutil/CMakeLists.txt 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/src/libmemcachedutil/CMakeLists.txt 2023-03-06 19:36:56.000000000 +0100 @@ -6,15 +6,15 @@ ping.cc version.cc ) -add_library(libmemcachedutil SHARED) +add_library(libmemcachedutil) add_library(memcachedutil ALIAS libmemcachedutil) if(CMAKE_USE_PTHREADS_INIT) target_sources(libmemcachedutil PRIVATE pool.cc) endif() set_target_properties(libmemcachedutil PROPERTIES CXX_STANDARD ${CXX_STANDARD} - LIBRARY_OUTPUT_NAME memcachedutil - LIBRARY_OUTPUT_NAME_DEBUG memcachedutil-dbg + OUTPUT_NAME memcachedutil + OUTPUT_NAME_DEBUG memcachedutil-dbg SOVERSION ${LIBMEMCACHEDUTIL_SO_SOVERSION} VERSION ${LIBMEMCACHEDUTIL_SO_VERSION}) target_compile_definitions(libmemcachedutil PRIVATE -DBUILDING_LIBMEMCACHED) @@ -23,10 +23,7 @@ LINK_FLAGS "-Wl,-undefined,dynamic_lookup" ) endif() -if(MSVC OR MINGW) - target_link_libraries(libmemcachedutil PUBLIC libmemcached) -endif() -target_link_libraries(libmemcachedutil PUBLIC Threads::Threads) +target_link_libraries(libmemcachedutil PUBLIC libmemcached Threads::Threads) if(HAVE_LIBSASL) target_link_libraries(libmemcachedutil PUBLIC ${LIBSASL}) endif() diff -Nru libmemcached-1.1.3/src/p9y/CMakeLists.txt libmemcached-1.1.4/src/p9y/CMakeLists.txt --- libmemcached-1.1.3/src/p9y/CMakeLists.txt 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/src/p9y/CMakeLists.txt 2023-03-06 19:36:56.000000000 +0100 @@ -20,6 +20,17 @@ ${CMAKE_BINARY_DIR}/include ) +install(TARGETS p9y EXPORT p9y-targets + RUNTIME COMPONENT bin DESTINATION ${CMAKE_INSTALL_BINDIR} + ARCHIVE COMPONENT lib DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY COMPONENT lib DESTINATION ${CMAKE_INSTALL_LIBDIR} + ${TARGET_NAMELINK_COMPONENT} + ) +export(EXPORT p9y-targets NAMESPACE libmemcached::) +install(EXPORT p9y-targets NAMESPACE libmemcached:: + COMPONENT dev + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) + if(NOT HAVE_GETOPT_H) target_sources(p9y PRIVATE getopt.c) endif() diff -Nru libmemcached-1.1.3/test/CMakeLists.txt libmemcached-1.1.4/test/CMakeLists.txt --- libmemcached-1.1.3/test/CMakeLists.txt 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/test/CMakeLists.txt 2023-03-06 19:36:56.000000000 +0100 @@ -70,7 +70,7 @@ add_dependencies(runtests ${CLIENTS} timeout) if(TARGET memaslap) configure_set(HAVE_MEMASLAP 1) - add_dependencies(runtests memaslap) + add_dependencies(runtests aslap) endif() configure_file(${CONFIGURE_FILE_IN} ${CONFIGURE_FILE_OUT} @ONLY) diff -Nru libmemcached-1.1.3/test/lib/ReturnMatcher.cpp libmemcached-1.1.4/test/lib/ReturnMatcher.cpp --- libmemcached-1.1.3/test/lib/ReturnMatcher.cpp 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/test/lib/ReturnMatcher.cpp 2023-03-06 19:36:56.000000000 +0100 @@ -24,7 +24,7 @@ } string ReturnMatcher::describe() const { - return "is " + to_string(expected) - + "\n actual: " + memcached_last_error_message(memc); + return "// but '" + to_string(expected) + "' was expected\n" + + "last error: " + memcached_last_error_message(memc); } diff -Nru libmemcached-1.1.3/test/tests/memcached/noblock.cpp libmemcached-1.1.4/test/tests/memcached/noblock.cpp --- libmemcached-1.1.3/test/tests/memcached/noblock.cpp 2023-02-03 11:59:40.000000000 +0100 +++ libmemcached-1.1.4/test/tests/memcached/noblock.cpp 2023-03-06 19:36:56.000000000 +0100 @@ -10,7 +10,7 @@ REQUIRE_SUCCESS(memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_TCP_NODELAY, 1)); REQUIRE_SUCCESS(memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_POLL_TIMEOUT, timeout)); - auto num = timeout ? 10'000 : 1'000'000; + auto num = 10000; auto hit = 0u; auto rnd = random_ascii_string(512); for (auto i = 0; i < num; ++i) { @@ -23,20 +23,16 @@ break; case MEMCACHED_TIMEOUT: case MEMCACHED_WRITE_FAILURE: - if(!timeout) { - --i; - } ++hit; - REQUIRE(true); break; default: REQUIRE(false); } } - INFO("failures triggered: " << hit); + INFO("timeout=" << timeout << " failures triggered: " << hit); if (timeout) { - CHECK_FALSE(hit); + REQUIRE_FALSE(hit); } else { - CHECK(hit > 0); + REQUIRE(hit > 0); } } diff -Nru libmemcached-1.1.3/test/tests/memcached/regression/gh-php-memcached_0531.cpp libmemcached-1.1.4/test/tests/memcached/regression/gh-php-memcached_0531.cpp --- libmemcached-1.1.3/test/tests/memcached/regression/gh-php-memcached_0531.cpp 1970-01-01 01:00:00.000000000 +0100 +++ libmemcached-1.1.4/test/tests/memcached/regression/gh-php-memcached_0531.cpp 2023-03-06 19:36:56.000000000 +0100 @@ -0,0 +1,29 @@ +#include "test/lib/common.hpp" +#include "test/lib/MemcachedCluster.hpp" + +TEST_CASE("memcached_regression_gh-php-memcached_0531") { + auto test = MemcachedCluster{Cluster{Server{MEMCACHED_BINARY, {"-p", random_socket_or_port_string("-p")}}, 1}}; + auto memc = &test.memc; + auto nonblock = GENERATE(0, 1); + + INFO("nonblock=" << nonblock); + + REQUIRE_SUCCESS(memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_NO_BLOCK, nonblock)); + + REQUIRE_SUCCESS(memcached_set(memc, S("first"), S("first"), 0, 0)); + REQUIRE_SUCCESS(memcached_set(memc, S("second"), S("second"), 0, 0)); + + REQUIRE_SUCCESS(memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_POLL_TIMEOUT, 0)); + + memcached_return_t rc; + size_t len; + Malloced value1(memcached_get(memc, S("first"), &len, nullptr, &rc)); + REQUIRE_RC(MEMCACHED_TIMEOUT, rc); + REQUIRE_FALSE(*value1); + + REQUIRE_SUCCESS(memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_POLL_TIMEOUT, 100)); + + Malloced value2(memcached_get(memc, S("second"), &len, nullptr, &rc)); + REQUIRE_SUCCESS(rc); + REQUIRE(string(*value2) == string("second")); +}