<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/3da501d9ddf1b6cb3a5bc1de6558ffe4f0d0e519">https://github.com/macports/macports-ports/commit/3da501d9ddf1b6cb3a5bc1de6558ffe4f0d0e519</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 3da501d9ddf Akumuli: update to 0.8.80, fix the build (#15631)
</span>3da501d9ddf is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 3da501d9ddf1b6cb3a5bc1de6558ffe4f0d0e519
</span>Author: Sergey Fedorov <vital.had@gmail.com>
AuthorDate: Sun Aug 7 07:28:43 2022 +0545

<span style='display:block; white-space:pre;color:#404040;'>    Akumuli: update to 0.8.80, fix the build (#15631)
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fixes: https://trac.macports.org/ticket/60658
</span>---
 databases/Akumuli/Portfile                         | 36 ++++++--
 databases/Akumuli/files/patch-cmakelists.diff      | 96 ++++++++++++++++++++++
 databases/Akumuli/files/patch-httpserver.diff      | 94 +++++++++++++++++++++
 databases/Akumuli/files/patch-missing-headers.diff | 30 +++++++
 databases/Akumuli/files/patch-queryparser.diff     | 16 ++++
 5 files changed, 264 insertions(+), 8 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/Akumuli/Portfile b/databases/Akumuli/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index afd55e8f7ba..05be3fe338d 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/databases/Akumuli/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/databases/Akumuli/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,10 +5,9 @@ PortGroup           github 1.0
</span> PortGroup           cmake 1.1
 PortGroup           boost 1.0
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup        akumuli Akumuli 0.8.78 v
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        akumuli Akumuli 0.8.80 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span> categories          databases
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms           darwin
</span> maintainers         nomaintainer
 license             Apache-2
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -17,9 +16,9 @@ long_description    Akumuli is a time-series database for modern hardware. It ca
</span>                     store and process time-series data in real-time. \
                     The word akumuli can be translated from Esperanto as accumulate.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           sha256  110fff1c2c636f5361d5ca8d510e99c1e55af717c9731343066299d1d435bf8c \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160  e4cdaf87f55ffdd369a71cd7c519c6c24bcf6f14 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    551148
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           sha256  26859ca401f577ba795ca7d1282824396395f6a7a33963b097e1f562ed0742e8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  41196d7dd93a807b5e6b55cfdb576932b2ceb876 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    551145
</span> 
 depends_lib-append  port:jemalloc \
                     port:sqlite3 \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -29,8 +28,29 @@ depends_lib-append  port:jemalloc \
</span>                     port:muparser \
                     port:log4cxx
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.cxx_standard 2011
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.cxxflags-append -std=c++11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          patch-cmakelists.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-missing-headers.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-queryparser.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-httpserver.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 'std::shared_mutex' is only available from C++17 onwards
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/akumuli/Akumuli/issues/383
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2017
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.cxxflags-append -std=c++17
</span> configure.args-append \
                     -DAPR_INCLUDE_DIR=${prefix}/include/apr-1 \
                     -DAPRUTIL_INCLUDE_DIR=${prefix}/include/apr-1
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *gcc* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Needed for httpserver.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxxflags-append -fpermissive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Undefined symbols: "___atomic_fetch_add_8",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # referenced from: __ZN7Akumuli12LogSequencer4nextEv in input_log.cpp.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.ldflags-append -latomic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform darwin 10 powerpc {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Rosetta needs manual arch setting
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append -DFORCE_ARCH=ppc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/Akumuli/files/patch-cmakelists.diff b/databases/Akumuli/files/patch-cmakelists.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..86c050c2a7d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/databases/Akumuli/files/patch-cmakelists.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,96 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 'std::shared_mutex' is only available from C++17 onwards: https://github.com/akumuli/Akumuli/issues/383
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# PPC arch is not supported by the upstream, so it is experimental.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- CMakeLists.txt.orig    2020-05-19 18:47:08.000000000 +0545
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ CMakeLists.txt 2022-08-06 04:23:11.000000000 +0545
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -32,6 +32,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         set(APP_ARCH "arm64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "ppc")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(APP_ARCH "ppc")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "ppc64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(APP_ARCH "ppc64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if("${APP_ARCH}" STREQUAL "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         message(FATAL_ERROR  "Architecture not supported")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,13 +55,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Debug flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_CXX_FLAGS_DEBUG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG -Wall -Werror -ggdb -fsanitize=address -std=c++11")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG -Wall -Werror -ggdb -fsanitize=address -std=c++17")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_C_FLAGS_DEBUG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  "${CMAKE_C_FLAGS_DEBUG} -DDEBUG -Wall -Werror -ggdb -fsanitize=address -std=c99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Generic release flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_CXX_FLAGS_RELEASEGEN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -mtune=generic -O3 -std=c++11")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -mtune=generic -O3 -std=c++17")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_C_FLAGS_RELEASEGEN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  "${CMAKE_C_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -mtune=generic -O3 -std=c99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -63,24 +69,40 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if("${APP_ARCH}" STREQUAL "amd64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # Use this flags only on amd64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_CXX_FLAGS_RELEASE 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -march=corei7-avx -O3 -std=c++11")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -march=corei7-avx -O3 -std=c++17")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_C_FLAGS_RELEASE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      "${CMAKE_C_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -march=corei7-avx -O3 -std=c99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     message("amd64 CXXFLAGS ${CMAKE_CXX_FLAGS_RELEASE}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elseif("${APP_ARCH}" STREQUAL "i386")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # Use this flags only on amd64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_CXX_FLAGS_RELEASE 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -march=corei7-avx -O3 -std=c++11")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -march=corei7-avx -O3 -std=c++17")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_C_FLAGS_RELEASE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      "${CMAKE_C_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -march=corei7-avx -O3 -std=c99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     add_definitions(-DDISABLE_X64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     add_definitions(-DDISABLEAVX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     add_definitions(-DDISABLE_EMBEDDED_ASM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     message("i386 CXXFLAGS ${CMAKE_CXX_FLAGS_RELEASE}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elseif("${APP_ARCH}" STREQUAL "ppc")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # This work on ppc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_CXX_FLAGS_RELEASE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -O3 -std=c++17")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_C_FLAGS_RELEASE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     "${CMAKE_C_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -O3 -std=c99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    add_definitions(-DDISABLE_EMBEDDED_ASM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message("ppc CXXFLAGS ${CMAKE_CXX_FLAGS_RELEASE}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elseif("${APP_ARCH}" STREQUAL "ppc64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # This work on ppc64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_CXX_FLAGS_RELEASE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -O3 -std=c++17")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_C_FLAGS_RELEASE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     "${CMAKE_C_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -O3 -std=c99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    add_definitions(-DDISABLE_EMBEDDED_ASM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message("ppc64 CXXFLAGS ${CMAKE_CXX_FLAGS_RELEASE}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elseif("${APP_ARCH}" STREQUAL "arm64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # This work on arm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_CXX_FLAGS_RELEASE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -O3 -std=c++11")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -O3 -std=c++17")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_C_FLAGS_RELEASE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      "${CMAKE_C_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -O3 -std=c99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     add_definitions(-DDISABLE_EMBEDDED_ASM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -88,7 +110,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elseif("${APP_ARCH}" STREQUAL "arm")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # This work on arm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_CXX_FLAGS_RELEASE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -O3 -std=c++11")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -O3 -std=c++17")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_C_FLAGS_RELEASE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      "${CMAKE_C_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -O3 -std=c99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     add_definitions(-DDISABLE_EMBEDDED_ASM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -96,7 +118,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # This work on arm64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_CXX_FLAGS_RELEASE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -O3 -std=c++11")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -O3 -std=c++17")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_C_FLAGS_RELEASE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      "${CMAKE_C_FLAGS_RELEASE} -Wall -Werror -ffast-math -funroll-loops -O3 -std=c99")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     message("unknown CXXFLAGS ${CMAKE_CXX_FLAGS_RELEASE}")
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/Akumuli/files/patch-httpserver.diff b/databases/Akumuli/files/patch-httpserver.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..d0740ed63ba
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/databases/Akumuli/files/patch-httpserver.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,94 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# error: no matching function for call to 'MHD_start_daemon'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- akumulid/httpserver.h.orig     2020-05-19 18:47:08.000000000 +0545
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ akumulid/httpserver.h  2022-08-07 06:00:50.000000000 +0545
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26,6 +26,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "logger.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "server.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// https://github.com/macports/macports-ports/pull/8941/files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// Beginning with v0.9.71, libmicrohttpd changed the return type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// of most functions from int to enum MHD_Result
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// https://git.gnunet.org/gnunet.git/tree/src/include/gnunet_mhd_compat.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// proposes to define a constant for the return type so it works well
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// with all versions of libmicrohttpd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MHD_VERSION >= 0x00097002
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define MHD_RESULT enum MHD_Result
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define MHD_RESULT int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace Akumuli {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace Http {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- akumulid/httpserver.cpp.orig   2020-05-19 18:47:08.000000000 +0545
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ akumulid/httpserver.cpp        2022-08-07 07:05:55.000000000 +0545
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -51,21 +51,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return ApiEndpoint::UNKNOWN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static int accept_connection(void           *cls,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             MHD_Connection *connection,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             const char     *url,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             const char     *method,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             const char     *version,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             const char     *upload_data,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             size_t         *upload_data_size,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             void          **con_cls)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static MHD_RESULT accept_connection(void           *cls,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                    MHD_Connection *connection,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                    const char     *url,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                    const char     *method,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                    const char     *version,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                    const char     *upload_data,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                    size_t         *upload_data_size,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                    void          **con_cls)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     std::string path = url;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     auto error_response = [&](const char* msg, unsigned int error_code) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         char buffer[0x200];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         int len = snprintf(buffer, 0x200, "-%s\r\n", msg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         auto response = MHD_create_response_from_buffer(len, buffer, MHD_RESPMEM_MUST_COPY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        int ret = MHD_queue_response(connection, error_code, response);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MHD_RESULT ret = MHD_queue_response(connection, error_code, response);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         MHD_destroy_response(response);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -104,7 +104,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             auto response = MHD_create_response_from_callback(MHD_SIZE_UNKNOWN, 64*1024, &read_callback, cursor, &free_callback);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            int ret = MHD_queue_response(connection, MHD_HTTP_OK, response);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            MHD_RESULT ret = MHD_queue_response(connection, MHD_HTTP_OK, response);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             MHD_destroy_response(response);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -123,7 +123,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (path == "/api/stats") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             std::string stats = queryproc->get_all_stats();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             auto response = MHD_create_response_from_buffer(stats.size(), const_cast<char*>(stats.data()), MHD_RESPMEM_MUST_COPY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            int ret = MHD_add_response_header(response, "content-type", "application/json");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            MHD_RESULT ret = MHD_add_response_header(response, "content-type", "application/json");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (ret == MHD_NO) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -133,7 +133,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         } else if (path == "/api/function-names") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             std::string stats = queryproc->get_resource("function-names");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             auto response = MHD_create_response_from_buffer(stats.size(), const_cast<char*>(stats.data()), MHD_RESPMEM_MUST_COPY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            int ret = MHD_add_response_header(response, "content-type", "application/json");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            MHD_RESULT ret = MHD_add_response_header(response, "content-type", "application/json");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (ret == MHD_NO) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -143,7 +143,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         } else if (path == "/api/version") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             std::string version = queryproc->get_resource("version");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             auto response = MHD_create_response_from_buffer(version.size(), const_cast<char*>(version.data()), MHD_RESPMEM_MUST_COPY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            int ret = MHD_add_response_header(response, "content-type", "application/json");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            MHD_RESULT ret = MHD_add_response_header(response, "content-type", "application/json");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (ret == MHD_NO) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/Akumuli/files/patch-missing-headers.diff b/databases/Akumuli/files/patch-missing-headers.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..870ac985f8c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/databases/Akumuli/files/patch-missing-headers.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,30 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/akumuli/Akumuli/issues/382
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libakumuli/storage2.cpp.orig   2020-05-19 18:47:08.000000000 +0545
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libakumuli/storage2.cpp        2022-08-06 04:26:26.000000000 +0545
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -41,6 +41,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "fcntl_compat.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <cstdlib>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stack>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace Akumuli {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Utility functions & classes //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libakumuli/query_processing/eval.cpp.orig      2020-05-19 18:47:08.000000000 +0545
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libakumuli/query_processing/eval.cpp   2022-08-06 04:26:45.000000000 +0545
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4,6 +4,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <functional>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <set>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <array>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <boost/algorithm/string.hpp>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "muParser.h"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/Akumuli/files/patch-queryparser.diff b/databases/Akumuli/files/patch-queryparser.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..dad6292027d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/databases/Akumuli/files/patch-queryparser.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Existing code fails to build:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# libakumuli/query_processing/queryparser.cpp:82:53: error: invalid conversion from 'const char*' to 'std::basic_string<char>::size_type' {aka 'long unsigned int'} [-fpermissive]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# libakumuli/query_processing/queryparser.cpp:82:63: error: no matching function for call to 'std::basic_string<char>::basic_string(char*, const char*&)'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Patch reverts to an earlier version from: https://github.com/akumuli/Akumuli/commit/ffab018fc5ce17395b20931cf9272c81f493aca6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libakumuli/query_processing/queryparser.cpp.orig       2020-05-19 18:47:08.000000000 +0545
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libakumuli/query_processing/queryparser.cpp    2022-08-06 09:25:58.000000000 +0545
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -79,7 +79,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (status != AKU_SUCCESS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return status;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    series_.push_back(std::string(canonical.data(), keystr_end));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    series_.push_back(canonical);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return AKU_SUCCESS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span></pre><pre style='margin:0'>

</pre>