From a398d4f9758424f430091cccb1be633ddb42fe28 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Fri, 23 Apr 2021 20:59:11 +0200 Subject: [PATCH 01/18] build without conan --- login_server/CMakeLists.txt | 131 +++++++++------------- login_server/Dockerfile | 4 +- login_server/Dockerfile.debug | 24 +++- login_server/Dockerfiles/build_and_run.sh | 3 +- login_server/README | 2 + login_server/dependencies/poco | 2 +- login_server/unix_parse_proto.sh | 4 +- 7 files changed, 85 insertions(+), 85 deletions(-) diff --git a/login_server/CMakeLists.txt b/login_server/CMakeLists.txt index 4502249e5..4ab4ad2de 100644 --- a/login_server/CMakeLists.txt +++ b/login_server/CMakeLists.txt @@ -6,6 +6,15 @@ SET ( CMAKE_CXX_FLAGS "-std=c++17" ) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) +if(WIN32) + set(CMAKE_CXX_FLAGS "/MP /EHsc") + set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3") + set(CMAKE_CXX_FLAGS_RELEASE "-O3") +else() + set(INSTALL_BINDIR "bin") + set(INSTALL_PLUGINDIR "bin") +endif() + include_directories( "dependencies" "dependencies/tinf/src/" @@ -14,13 +23,21 @@ include_directories( "dependencies/spirit-po/include" "dependencies/grpc/include" "dependencies/grpc/third_party/protobuf/src" + "dependencies/grpc/third_party/googletest/googletest/include" + "dependencies/poco/Crypto/include" + "dependencies/poco/Data/include" + "dependencies/poco/Util/include" + "dependencies/poco/Foundation/include" + "dependencies/poco/JSON/include" + "dependencies/poco/Net/include" + "dependencies/poco/NetSSL_OpenSSL/include" "src/cpp/proto" ) -#if(WIN32) -#include_directories("dependencies/mariadb-connector-c/include", "dependencies/mariadb-connector-c/build/include") -set(MYSQL_INCLUDE_DIR "dependencies/mariadb-connector-c/include") -#endif(WIN32) + + + +#set(MYSQL_INCLUDE_DIR "dependencies/mariadb-connector-c/include") FILE(GLOB CONTROLLER "src/cpp/controller/*.cpp" "src/cpp/controller/*.h") FILE(GLOB TINF "dependencies/tinf/src/*.c" "dependencies/tinf/src/*.h") @@ -84,12 +101,9 @@ if(MSVC) source_group("Test" FILES ${TEST}) endif() - -include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup() - - add_executable(Gradido_LoginServer ${LOCAL_SRCS}) + +############################## config and add mariadb ################################### set(CLIENT_PLUGIN_DIALOG OFF) set(CLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD OFF) set(CLIENT_PLUGIN_REMOTE_IO OFF) @@ -111,6 +125,21 @@ add_subdirectory("dependencies/mariadb-connector-c") set(DEP_PATH "dependencies") set(MARIADB_CONNECTOR_PATH "${DEP_PATH}/mariadb-connector-c/build/libmariadb") +if(WIN32) + find_library(MYSQL_LIBRARIES mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Release" REQUIRED) + find_library(COMPILED_MARIADB_CLIENT_DEBUG mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Debug" REQUIRED) +endif() + +############################## config and add poco ################################### +add_subdirectory("dependencies/poco") +set(ENABLE_MONGODB OFF) +set(ENABLE_DATA_SQLITE OFF) +set(ENABLE_REDIS OFF) + +set(POCO_LIBS PocoFoundation PocoUtil PocoNet PocoNetSSL PocoData) + +############################## config and add grpc ################################### + set(GRPC_PATH "${DEP_PATH}/grpc/build") set(GRPC_ABSL_PATH "${GRPC_PATH}/third_party/abseil-cpp/absl/types") set(GRPC_CARES_PATH "${GRPC_PATH}/third_party/cares/cares/lib") @@ -118,77 +147,17 @@ set(GRPC_BORING_SSL_PATH "${GRPC_PATH}/third_party/boringssl-with-bazel") set(GRPC_RE2_PATH "${GRPC_PATH}/third_party/re2") set(GRPC_PROTOBUF_PATH "${GRPC_PATH}/third_party/protobuf") - - if(WIN32) - - find_library(MYSQL_LIBRARIES mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Release" REQUIRED) - find_library(COMPILED_MARIADB_CLIENT_DEBUG mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Debug" REQUIRED) - - find_library(CONAN_OPENSSL_SSL ssleay32 PATHS ${CONAN_LIB_DIRS_OPENSSL} REQUIRED NO_DEFAULT_PATH ) - find_library(CONAN_OPENSSL_CRYPTO libeay32 PATHS ${CONAN_LIB_DIRS_OPENSSL} REQUIRED NO_DEFAULT_PATH ) - set(GRPC_PATH "${GRPC_PATH}/Debug") set(GRPC_ABSL_PATH "${GRPC_ABSL_PATH}/Debug") set(GRPC_CARES_PATH "${GRPC_CARES_PATH}/Debug") set(GRPC_BORING_SSL_PATH "${GRPC_CGRPC_BORING_SSL_PATHARES_PATH}/Debug") set(GRPC_RE2_PATH "${GRPC_RE2_PATH}/Debug") set(GRPC_PROTOBUF_DEBUG_PATH "${GRPC_PROTOBUF_PATH}/Debug") - - - list(REMOVE_ITEM CONAN_LIBS "libeay32.lib") - list(REMOVE_ITEM CONAN_LIBS "ssleay32.lib") - - -else() - #find_package(MariaDBClient PATHS "dependencies/cmake-modules") - #find_library(MYSQL_LIBRARIES libmariadb.so PATHS ${MARIADB_CONNECTOR_PATH} REQUIRED) - find_library(CONAN_OPENSSL_SSL ssl PATHS ${CONAN_LIB_DIRS_OPENSSL} REQUIRED NO_DEFAULT_PATH ) - find_library(CONAN_OPENSSL_CRYPTO crypto PATHS ${CONAN_LIB_DIRS_OPENSSL} REQUIRED NO_DEFAULT_PATH ) - set(GRPC_PROTOBUF_DEBUG_PATH "${GRPC_PROTOBUF_PATH}") - - list(REMOVE_ITEM CONAN_LIBS "ssl") - list(REMOVE_ITEM CONAN_LIBS "crypto") - list(REMOVE_ITEM CONAN_LIBS "dl") - -# find_library(MYSQL_LIBRARIES libmariadb.so PATHS ${MARIADB_CONNECTOR_PATH} REQUIRED) - find_library(CONAN_OPENSSL_SSL ssl PATHS ${CONAN_LIB_DIRS_OPENSSL} REQUIRED NO_DEFAULT_PATH ) - find_library(CONAN_OPENSSL_CRYPTO crypto PATHS ${CONAN_LIB_DIRS_OPENSSL} REQUIRED NO_DEFAULT_PATH ) - set(GRPC_PROTOBUF_DEBUG_PATH "${GRPC_PROTOBUF_PATH}") - - list(REMOVE_ITEM CONAN_LIBS "ssl") - list(REMOVE_ITEM CONAN_LIBS "crypto") - list(REMOVE_ITEM CONAN_LIBS "dl") - endif() -# load same ssl version like used from poco -#find_package(OpenSSL PATHS "../" NO_DEFAULT_PATH) -set(CONAN_OPENSSL_CUSTOM_LIBS - ${CONAN_OPENSSL_SSL} - ${CONAN_OPENSSL_CRYPTO} -) -include_directories(${CONAN_INCLUDE_DIRS_OPENSSL}) -# build grpc - - - -if(WIN32) - - set(CMAKE_CXX_FLAGS "/MP /EHsc") - #set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3") - #set(CMAKE_CXX_FLAGS_RELEASE "-O3") - -else() - - set(INSTALL_BINDIR "bin") - set(INSTALL_PLUGINDIR "bin") - target_link_libraries(Gradido_LoginServer ${CONAN_OPENSSL_CUSTOM_LIBS}) - -endif() - set(BUILD_TESTING OFF) set(gRPC_SSL_PROVIDER "package") add_subdirectory("dependencies/grpc/") @@ -196,14 +165,19 @@ set(gRPC_SSL_PROVIDER "package") message(STATUS "Using gRPC via add_subdirectory.") set(GRPC_LIBS libprotobuf grpc++_reflection grpc++) -target_link_libraries(Gradido_LoginServer ${CONAN_LIBS}) + +############################## build login server ################################### +if(UNIX) + set(INSTALL_BINDIR "bin") + set(INSTALL_PLUGINDIR "bin") +endif() +target_link_libraries(Gradido_LoginServer ${GRPC_LIBS} ${POCO_LIBS} sodium) if(WIN32) TARGET_LINK_LIBRARIES(Gradido_LoginServer optimized ${MYSQL_LIBRARIES} Shlwapi) TARGET_LINK_LIBRARIES(Gradido_LoginServer debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi) - TARGET_LINK_LIBRARIES(Gradido_LoginServer debug ${GRPC_LIBS} ${PROTOBUF_DEBUG_LIBS}) else() # unix - target_link_libraries(Gradido_LoginServer libmariadb ${GRPC_LIBS} ${CMAKE_DL_LIBS} ${PROTOBUF_LIBS}) + target_link_libraries(Gradido_LoginServer libmariadb) endif() # install @@ -218,25 +192,26 @@ install(DIRECTORY src/LOCALE DESTINATION /etc/grd_login/ endif(UNIX) -enable_testing() + # ---------------------- Test ----------------------------------------- +add_subdirectory("dependencies/grpc/third_party/googletest") +enable_testing() #project(Gradido_LoginServer_Test C CXX) #_TEST_BUILD -#find_package(gtest) + add_executable(Gradido_LoginServer_Test ${LOCAL_SRCS} ${LOCAL_TEST_SRC}) target_compile_definitions(Gradido_LoginServer_Test PUBLIC "_TEST_BUILD") -target_link_libraries(Gradido_LoginServer_Test ${CONAN_LIBS} ) +target_link_libraries(Gradido_LoginServer_Test ${POCO_LIBS} ${GRPC_LIBS} sodium gtest) if(WIN32) TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test optimized ${MYSQL_LIBRARIES} Shlwapi) - TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi) - TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${GRPC_LIBS} ${PROTOBUF_DEBUG_LIBS}) + TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${COMPILED_MARIADB_CLIENT_DEBUG} ${PROTOBUF_DEBUG_LIBS} Shlwapi) else() - target_link_libraries(Gradido_LoginServer_Test libmariadb ${GRPC_LIBS} ${CMAKE_DL_LIBS} ${PROTOBUF_LIBS}) + target_link_libraries(Gradido_LoginServer_Test libmariadb ${CMAKE_DL_LIBS} ${PROTOBUF_LIBS}) endif() add_test(NAME main COMMAND Gradido_LoginServer_Test) diff --git a/login_server/Dockerfile b/login_server/Dockerfile index e6c2d6b89..b4a15b3f3 100644 --- a/login_server/Dockerfile +++ b/login_server/Dockerfile @@ -7,6 +7,9 @@ ENV DOCKER_WORKDIR="/code" USER root +RUN apt-get update \ + && apt-get -y --no-install-recommends install libsodium-dev libboost-all-dev \ + && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* RUN mkdir -p ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR} @@ -22,7 +25,6 @@ RUN chmod +x compile_pot.sh && ./compile_pot.sh RUN mkdir build && \ cd build && \ - conan install .. --build=missing && \ cmake .. && \ make -j$(nproc) protoc grpc_cpp_plugin diff --git a/login_server/Dockerfile.debug b/login_server/Dockerfile.debug index bb65996fb..ae54eb062 100644 --- a/login_server/Dockerfile.debug +++ b/login_server/Dockerfile.debug @@ -1,12 +1,33 @@ +######################################################################################################### +# cmake +######################################################################################################### +FROM gcc:9 as cmake-gcc-9 + +ENV DOCKER_WORKDIR="/code" +RUN mkdir -p ${DOCKER_WORKDIR} +WORKDIR ${DOCKER_WORKDIR} + +USER root + +RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 \ + && cd CMake \ + && ./bootstrap \ + && make -j${nproc} \ + && make install ######################################################################################################### # debug build preparation ######################################################################################################### -From conanio/gcc9 as build_debug_preparation +FROM cmake-gcc-9 as build_debug_preparation + USER root ENV DOCKER_WORKDIR="/code" +RUN apt-get update \ + && apt-get -y --no-install-recommends install libsodium-dev libboost-all-dev \ + && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* + RUN mkdir -p ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR} @@ -30,3 +51,4 @@ WORKDIR ${DOCKER_WORKDIR} RUN chmod +x ./Dockerfiles/build_and_run.sh CMD ./Dockerfiles/build_and_run.sh; ./build/bin/Gradido_LoginServer + diff --git a/login_server/Dockerfiles/build_and_run.sh b/login_server/Dockerfiles/build_and_run.sh index e18dcd17d..d7ad51ef2 100644 --- a/login_server/Dockerfiles/build_and_run.sh +++ b/login_server/Dockerfiles/build_and_run.sh @@ -1,9 +1,8 @@ #!/bin/bash cd build -conan install .. --build=missing -s build_type=Debug cmake -DCMAKE_BUILD_TYPE=Debug .. -make -j${CPU_COUNT} protoc grpc_cpp_plugin +make -j${nproc} protoc grpc_cpp_plugin cd .. if [ ! -d "./src/cpp/proto/hedera" ] ; then diff --git a/login_server/README b/login_server/README index 85f15134c..3e7843a58 100644 --- a/login_server/README +++ b/login_server/README @@ -1,3 +1,5 @@ +sudo apt install libsodium-dev libboost-all-dev + # get dependencies git submodule update --init --recursive diff --git a/login_server/dependencies/poco b/login_server/dependencies/poco index 3fc3e5f5b..b95393dcc 160000 --- a/login_server/dependencies/poco +++ b/login_server/dependencies/poco @@ -1 +1 @@ -Subproject commit 3fc3e5f5b8462f7666952b43381383a79b8b5d92 +Subproject commit b95393dcc3640807838e8323b4e600e54d2e8116 diff --git a/login_server/unix_parse_proto.sh b/login_server/unix_parse_proto.sh index 43fdc3a14..88c4c4b5d 100755 --- a/login_server/unix_parse_proto.sh +++ b/login_server/unix_parse_proto.sh @@ -5,8 +5,8 @@ fi if [ ! -d "./src/cpp/proto/gradido" ] ; then mkdir ./src/cpp/proto/gradido fi -PROTOC_PATH=./build/bin -CPP_PLUGIN_PATH=./build/bin +PROTOC_PATH=./build/dependencies/grpc/third_party/protobuf/bin +CPP_PLUGIN_PATH=./build/dependencies/grpc/bin $PROTOC_PATH/protoc --cpp_out=./src/cpp/proto --proto_path=./src/proto ./src/proto/gradido/*.proto if [ ! -d "./src/cpp/proto/hedera" ] ; then From c3022a884937e5eda0d7cba078fef5173270dbb8 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Fri, 23 Apr 2021 21:20:32 +0200 Subject: [PATCH 02/18] update release build --- login_server/Dockerfile | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/login_server/Dockerfile b/login_server/Dockerfile index b4a15b3f3..221045de3 100644 --- a/login_server/Dockerfile +++ b/login_server/Dockerfile @@ -1,14 +1,32 @@ +######################################################################################################### +# cmake +######################################################################################################### +FROM gcc:9 as cmake-gcc-9 + +ENV DOCKER_WORKDIR="/code" +RUN mkdir -p ${DOCKER_WORKDIR} +WORKDIR ${DOCKER_WORKDIR} + +USER root + +RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 \ + && cd CMake \ + && ./bootstrap \ + && make -j${nproc} \ + && make install + + ######################################################################################################### # Build release ######################################################################################################### -From conanio/gcc9 as release +From cmake-gcc-9 as release ENV DOCKER_WORKDIR="/code" USER root RUN apt-get update \ - && apt-get -y --no-install-recommends install libsodium-dev libboost-all-dev \ + && apt-get -y --no-install-recommends install libsodium-dev libboost-all-dev gettext \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* RUN mkdir -p ${DOCKER_WORKDIR} From 0255465b5ccdb556c468e32a0783895291f753d5 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Fri, 23 Apr 2021 22:39:56 +0200 Subject: [PATCH 03/18] test and fix login release docker build --- login_server/Dockerfile | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/login_server/Dockerfile b/login_server/Dockerfile index 221045de3..da0eb03c2 100644 --- a/login_server/Dockerfile +++ b/login_server/Dockerfile @@ -58,13 +58,20 @@ CMD ["./code"] # run release ######################################################################################################### #From alpine:latest as login_server -FROM alpine:latest as login_server +FROM ubuntu:latest as login_server +USER root WORKDIR "/usr/bin" +RUN apt-get update \ + && apt-get -y --no-install-recommends install libsodium-dev libssl-dev \ + && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* + COPY --from=release /code/build/bin/Gradido_LoginServer /usr/bin/ -COPY --from=release /code/build/lib/libmariadb.so.3 /usr/lib/ +COPY --from=release /code/build/lib/*.so.64 /usr/lib/ +COPY --from=release /code/build/dependencies/mariadb-connector-c/libmariadb/libmariadb.so.3 /usr/lib/ +#COPY --from=release /code/build/lib/libmariadb.so.3 /usr/lib/ RUN chmod +x /usr/bin/Gradido_LoginServer ENTRYPOINT ["/usr/bin/Gradido_LoginServer"] -CMD Gradido_LoginServer +#CMD Gradido_LoginServer From 604755db152b245e2b7b1fccbc4f930f8b30b2f1 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Tue, 27 Apr 2021 00:05:40 +0200 Subject: [PATCH 04/18] rebuilding debug build strategie for minimum space and time requirements for user --- .gitmodules | 13 +- docker-compose.override.yml | 12 +- login_server/CMakeLists.txt | 12 +- login_server/CMakeLists.txt.lib | 133 ++++++++++++++++++ login_server/Dockerfile | 2 +- login_server/Dockerfile.alpine-debug | 21 +++ login_server/Dockerfile.debug | 17 +-- .../Dockerfiles/Dockerfile.dependencies | 113 ++++++++++----- .../Dockerfile.dependencies-alpine | 87 ++++++++++++ login_server/Dockerfiles/build_and_run.sh | 22 --- login_server/README | 2 +- login_server/compile_pot.sh | 2 - login_server/dependencies/libsodium | 1 + login_server/dependencies/mariadb-connector-c | 1 - login_server/parse_proto.sh | 16 --- login_server/scripts/build_debug.sh | 25 ++++ login_server/scripts/compile_pot.sh | 2 + .../{ => scripts}/files_to_translate.txt | 0 login_server/scripts/prepare_build.sh | 15 ++ login_server/scripts/unix_parse_proto.sh | 19 +++ login_server/scripts/windows_parse_proto.sh | 19 +++ login_server/src/cpp/lib/DRHashList.cpp | 1 + login_server/unix_parse_proto.sh | 19 --- login_server/windows_parse_proto.sh | 19 --- 24 files changed, 432 insertions(+), 141 deletions(-) create mode 100644 login_server/CMakeLists.txt.lib create mode 100644 login_server/Dockerfile.alpine-debug create mode 100644 login_server/Dockerfiles/Dockerfile.dependencies-alpine delete mode 100644 login_server/Dockerfiles/build_and_run.sh delete mode 100755 login_server/compile_pot.sh create mode 160000 login_server/dependencies/libsodium delete mode 160000 login_server/dependencies/mariadb-connector-c delete mode 100644 login_server/parse_proto.sh create mode 100755 login_server/scripts/build_debug.sh create mode 100755 login_server/scripts/compile_pot.sh rename login_server/{ => scripts}/files_to_translate.txt (100%) create mode 100755 login_server/scripts/prepare_build.sh create mode 100755 login_server/scripts/unix_parse_proto.sh create mode 100644 login_server/scripts/windows_parse_proto.sh delete mode 100755 login_server/unix_parse_proto.sh delete mode 100644 login_server/windows_parse_proto.sh diff --git a/.gitmodules b/.gitmodules index 7ebe00a4d..216f32025 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,4 +28,15 @@ [submodule "community_server/src/protobuf"] path = community_server/src/protobuf url = git@github.com:gradido/gradido_protocol.git - +[submodule "login_server/dependencies/libsodium"] + path = login_server/dependencies/libsodium + url = https://github.com/jedisct1/libsodium.git +[submodule "login_server/dependencies/boost/static_assert"] + path = login_server/dependencies/boost/static_assert + url = https://github.com/boostorg/static_assert.git +[submodule "login_server/dependencies/boost/iterator"] + path = login_server/dependencies/boost/iterator + url = https://github.com/boostorg/iterator.git +[submodule "login_server/dependencies/boost/spirit"] + path = login_server/dependencies/boost/spirit + url = https://github.com/boostorg/spirit.git diff --git a/docker-compose.override.yml b/docker-compose.override.yml index b3c399d3a..a95b3dde1 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -24,8 +24,8 @@ services: ######################################################### login-server: build: - target: login_server_debug - dockerfile: Dockerfile.debug + target: login_server_alpine_debug + dockerfile: Dockerfile.alpine-debug security_opt: - seccomp:unconfined cap_add: @@ -33,9 +33,10 @@ services: volumes: - ./logs:/var/log/grd_login - ./login_server/src:/code/src + - ./login_server/dependencies:/code/dependencies + - ./login_server/scripts:/code/scripts - ./configs/login_server:/etc/grd_login - - login_build:/code/build - - conan:/root/.conan + - login_build_alpine:/code/build ######################################################### @@ -100,6 +101,5 @@ services: volumes: frontend_node_modules: - login_build: - conan: + login_build_alpine: diff --git a/login_server/CMakeLists.txt b/login_server/CMakeLists.txt index 4ab4ad2de..b43127a48 100644 --- a/login_server/CMakeLists.txt +++ b/login_server/CMakeLists.txt @@ -14,10 +14,12 @@ else() set(INSTALL_BINDIR "bin") set(INSTALL_PLUGINDIR "bin") endif() +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ./lib) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ./lib) include_directories( "dependencies" - "dependencies/tinf/src/" + "dependencies/tinf/src" "dependencies/mariadb-connector-c/include" "dependencies/mariadb-connector-c/build/include" "dependencies/spirit-po/include" @@ -131,10 +133,12 @@ if(WIN32) endif() ############################## config and add poco ################################### +#SET(SOME_EXPAT_OPTION OFF CACHE BOOL "Use some expat option") +SET(ENABLE_MONGODB OFF CACHE BOOL "" FORCE) +SET(ENABLE_DATA_SQLITE OFF CACHE BOOL "" FORCE) +SET(ENABLE_REDIS OFF CACHE BOOL "" FORCE) +SET(ENABLE_PAGECOMPILER_FILE2PAGE OFF CACHE BOOL "" FORCE) add_subdirectory("dependencies/poco") -set(ENABLE_MONGODB OFF) -set(ENABLE_DATA_SQLITE OFF) -set(ENABLE_REDIS OFF) set(POCO_LIBS PocoFoundation PocoUtil PocoNet PocoNetSSL PocoData) diff --git a/login_server/CMakeLists.txt.lib b/login_server/CMakeLists.txt.lib new file mode 100644 index 000000000..89640db06 --- /dev/null +++ b/login_server/CMakeLists.txt.lib @@ -0,0 +1,133 @@ +cmake_minimum_required(VERSION 3.18.2) +project(Gradido_LoginServer C CXX) +SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin" ) + +SET ( CMAKE_CXX_FLAGS "-std=c++17" ) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +if(WIN32) + set(CMAKE_CXX_FLAGS "/MP /EHsc") + set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3") + set(CMAKE_CXX_FLAGS_RELEASE "-O3") +else() + set(INSTALL_BINDIR "bin") + set(INSTALL_PLUGINDIR "bin") +endif() + +include_directories( + "dependencies" + "dependencies/tinf/src" + "dependencies/mariadb-connector-c/include" + "dependencies/mariadb-connector-c/build/include" + "dependencies/spirit-po/include" + "dependencies/grpc/include" + "dependencies/grpc/third_party/protobuf/src" + "dependencies/grpc/third_party/googletest/googletest/include" + "dependencies/poco/Crypto/include" + "dependencies/poco/Data/include" + "dependencies/poco/Util/include" + "dependencies/poco/Foundation/include" + "dependencies/poco/JSON/include" + "dependencies/poco/Net/include" + "dependencies/poco/NetSSL_OpenSSL/include" + "src/cpp/proto" +) + + + + +#set(MYSQL_INCLUDE_DIR "dependencies/mariadb-connector-c/include") + +FILE(GLOB CONTROLLER "src/cpp/controller/*.cpp" "src/cpp/controller/*.h") +FILE(GLOB TINF "dependencies/tinf/src/*.c" "dependencies/tinf/src/*.h") +FILE(GLOB HTTPInterface "src/cpp/HTTPInterface/*.h" "src/cpp/HTTPInterface/*.cpp") +FILE(GLOB JSONInterface "src/cpp/JSONInterface/*.h" "src/cpp/JSONInterface/*.cpp") +FILE(GLOB TASKS "src/cpp/tasks/*.cpp" "src/cpp/tasks/*.h") +FILE(GLOB SINGLETON_MANAGER "src/cpp/SingletonManager/*.h" "src/cpp/SingletonManager/*.cpp") +FILE(GLOB LIB_SRC "src/cpp/lib/*.h" "src/cpp/lib/*.cpp") +FILE(GLOB MODEL "src/cpp/model/*.h" "src/cpp/model/*.cpp") +FILE(GLOB MODEL_TABLE "src/cpp/model/table/*.h" "src/cpp/model/table/*.cpp") +FILE(GLOB MODEL_EMAIL "src/cpp/model/email/*.h" "src/cpp/model/email/*.cpp") +FILE(GLOB MODEL_HEDERA "src/cpp/model/hedera/*.h" "src/cpp/model/hedera/*.cpp") +FILE(GLOB MODEL_GRADIDO "src/cpp/model/gradido/*.h" "src/cpp/model/gradido/*.cpp") +FILE(GLOB CRYPTO "src/cpp/Crypto/*.h" "src/cpp/Crypto/*.cpp") +FILE(GLOB MAIN "src/cpp/*.cpp" "src/cpp/*.c" "src/cpp/*.h") +FILE(GLOB MYSQL "src/cpp/MySQL/*.cpp" "src/cpp/MySQL/*.h" "src/cpp/MySQL/Poco/*.h") +FILE(GLOB PROTO_GRADIDO "src/cpp/proto/gradido/*.cc" "src/cpp/proto/gradido/*.h") +FILE(GLOB PROTO_HEDERA "src/cpp/proto/hedera/*.cc" "src/cpp/proto/hedera/*.h") + +# used only for test project +FILE(GLOB TEST "src/cpp/test/*.cpp" "src/cpp/test/*.h") +FILE(GLOB TEST_CRYPTO "src/cpp/test/crypto/*.cpp" "src/cpp/test/crypto/*.h") +FILE(GLOB TEST_MODEL "src/cpp/test/model/*.cpp" "src/cpp/test/model/*.h") +FILE(GLOB TEST_MODEL_TABLE "src/cpp/test/model/table/*.cpp" "src/cpp/test/model/table/*.h") +FILE(GLOB TEST_CONTROLLER "src/cpp/test/controller/*.cpp" "src/cpp/test/controller/*.h") + +SET(LOCAL_SRCS + ${CONTROLLER} ${TINF} ${MAIN} ${HTTPInterface} + ${JSONInterface} ${CRYPTO} + ${MODEL} ${MODEL_TABLE} ${MODEL_EMAIL} ${MODEL_HEDERA} ${MODEL_GRADIDO} + ${SINGLETON_MANAGER} ${LIB_SRC} ${MYSQL} ${TASKS} + ${PROTO_GRADIDO} ${PROTO_HEDERA} +) +SET(LOCAL_TEST_SRC + ${TEST} ${TEST_CRYPTO} ${TEST_MODEL} ${TEST_MODEL_TABLE} ${TEST_CONTROLLER} +) +aux_source_directory("src/cpp" LOCAL_SRCS) + +if(MSVC) + # src + source_group("controller" FILES ${CONTROLLER}) + source_group("proto\\gradido" FILES ${PROTO_GRADIDO}) + source_group("proto\\hedera" FILES ${PROTO_HEDERA}) + source_group("tinf" FILES ${TINF}) + source_group("Crypto" FILES ${CRYPTO}) + source_group("tasks" FILES ${TASKS}) + source_group("model\\table" FILES ${MODEL_TABLE}) + source_group("model\\email" FILES ${MODEL_EMAIL}) + source_group("model\\hedera" FILES ${MODEL_HEDERA}) + source_group("model\\gradido" FILES ${MODEL_GRADIDO}) + source_group("model" FILES ${MODEL}) + source_group("mysql" FILES ${MYSQL}) + source_group("SingletonManager" FILES ${SINGLETON_MANAGER}) + source_group("lib" FILES ${LIB_SRC}) + source_group("HTTP-Interface" FILES ${HTTPInterface}) + source_group("Json-Interface" FILES ${JSONInterface}) + source_group("Test\\crypto" FILES ${TEST_CRYPTO}) + source_group("Test\\model\\table" FILES ${TEST_MODEL_TABLE}) + source_group("Test\\model" FILES ${TEST_MODEL}) + source_group("Test\\controller" FILES ${TEST_CONTROLLER}) + source_group("Test" FILES ${TEST}) +endif() + +add_executable(Gradido_LoginServer ${LOCAL_SRCS}) + +############################## config and add mariadb ################################### + +find_library(MYSQL_LIBRARIES mariadbd PATHS "pre_build/dependencies/mariadb-connector-c/libmariadb/lib" REQUIRED) + +############################## config and add poco ################################### +set(BUILD_LIB_PATH "pre_build/lib") +find_library(POCO_FOUNDATION_LIB PocoFoundationd PATHS ${BUILD_LIB_PATH} REQUIRED) +find_library(POCO_UTIL_LIB PocoUtild PATHS ${BUILD_LIB_PATH} REQUIRED) +find_library(POCO_NET_SSL_LIB PocoNetSSLd PATHS ${BUILD_LIB_PATH} REQUIRED) +find_library(POCO_DATA_LIB PocoDatad PATHS ${BUILD_LIB_PATH} REQUIRED) +find_library(POCO_JSON_LIB PocoJSONd PATHS ${BUILD_LIB_PATH} REQUIRED) +find_library(POCO_NET_LIB PocoNetd PATHS ${BUILD_LIB_PATH} REQUIRED) + +set(POCO_LIBS ${POCO_FOUNDATION_LIB} ${POCO_UTIL_LIB} ${POCO_NET_SSL_LIB} ${POCO_DATA_LIB} ${POCO_JSON_LIB} ${POCO_NET_LIB}) + +############################## config and add grpc ################################### + + +find_library(PROTOBUF_LIB protobufd PATHS "pre_build/dependencies/grpc/third_party/protobuf/lib" REQUIRED) +set(DEPENDENCIES_GRPC_LIB_PATH "pre_build/dependencies/grpc/lib") +find_library(GRPC_PP_REFLECTION grpc++_reflectiond PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED) +find_library(GRPC_PP grpc++d PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED) + +set(GRPC_LIBS, ${GRPC_PP_REFLECTION} ${GRPC_PP} ${PROTOBUF_LIB}) +############################## build login server ################################### + +target_link_libraries(Gradido_LoginServer ${GRPC_LIBS} ${POCO_LIBS} ${MYSQL_LIBRARIES} sodium) + diff --git a/login_server/Dockerfile b/login_server/Dockerfile index 221045de3..224cc3964 100644 --- a/login_server/Dockerfile +++ b/login_server/Dockerfile @@ -26,7 +26,7 @@ ENV DOCKER_WORKDIR="/code" USER root RUN apt-get update \ - && apt-get -y --no-install-recommends install libsodium-dev libboost-all-dev gettext \ + && apt-get -y --no-install-recommends install libboost-all-dev gettext \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* RUN mkdir -p ${DOCKER_WORKDIR} diff --git a/login_server/Dockerfile.alpine-debug b/login_server/Dockerfile.alpine-debug new file mode 100644 index 000000000..3ca2b5da3 --- /dev/null +++ b/login_server/Dockerfile.alpine-debug @@ -0,0 +1,21 @@ +FROM gradido/login_dependencies:alpine-stage2.1 as login_server_alpine_debug + +ENV DOCKER_WORKDIR="/code" + + +EXPOSE 1200 +EXPOSE 1201 +WORKDIR ${DOCKER_WORKDIR} + +COPY ./CMakeLists.txt.lib ./CMakeLists.txt +RUN ls -la ${DOCKER_WORKDIR}/pre_build && \ + ls -la ${DOCKER_WORKDIR}/pre_build/lib && \ + ls -la ${DOCKER_WORKDIR}/pre_build/dependencies && \ + ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/protobuf/lib && \ + ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/lib && \ + ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/mariadb-connector-c/ && \ + ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/mariadb-connector-c/libmariadb && \ + ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/mariadb-connector-c/libmariadb/lib + +CMD cp -r ${DOCKER_WORKDIR}/pre_build/bin ${DOCKER_WORKDIR}/build/bin; cd scripts; ./prepare_build.sh; ./build_debug.sh; cd ..; ./build/bin/Gradido_LoginServer + diff --git a/login_server/Dockerfile.debug b/login_server/Dockerfile.debug index ae54eb062..6b68c9593 100644 --- a/login_server/Dockerfile.debug +++ b/login_server/Dockerfile.debug @@ -12,7 +12,7 @@ USER root RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 \ && cd CMake \ && ./bootstrap \ - && make -j${nproc} \ + && make -j$(nproc) \ && make install ######################################################################################################### @@ -24,19 +24,14 @@ USER root ENV DOCKER_WORKDIR="/code" -RUN apt-get update \ - && apt-get -y --no-install-recommends install libsodium-dev libboost-all-dev \ - && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* - RUN mkdir -p ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR} COPY . . -RUN cd dependencies/mariadb-connector-c && \ - mkdir build && \ - cd build && \ - cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSL=OFF .. +RUN cd scripts \ + && chmod +x ./prepare_build.sh \ + && ./prepare_build.sh ######################################################################################################### # run debug @@ -48,7 +43,7 @@ ENV DOCKER_WORKDIR="/code" EXPOSE 1200 EXPOSE 1201 WORKDIR ${DOCKER_WORKDIR} -RUN chmod +x ./Dockerfiles/build_and_run.sh +RUN chmod +x ./scripts/build_and_run.sh -CMD ./Dockerfiles/build_and_run.sh; ./build/bin/Gradido_LoginServer +CMD ./scripts/build_and_run.sh; ./build/bin/Gradido_LoginServer diff --git a/login_server/Dockerfiles/Dockerfile.dependencies b/login_server/Dockerfiles/Dockerfile.dependencies index 0194c7c82..79a573ea2 100644 --- a/login_server/Dockerfiles/Dockerfile.dependencies +++ b/login_server/Dockerfiles/Dockerfile.dependencies @@ -1,56 +1,93 @@ ######################################################################################################### -# debug build preparation +# gcc 9 with libssl ######################################################################################################### -From conanio/gcc9 as build_debug_preparation +FROM gcc:9 as gcc_9_libssl USER root +RUN apt-get update && \ + apt-get install -y --no-install-recommends libssl-dev libboost-dev && \ + apt-get autoclean && \ + apt-get autoremove && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + + +######################################################################################################### +# gcc 9 cmake +######################################################################################################### +FROM gcc_9_libssl as gcc_9_cmake + +USER root ENV DOCKER_WORKDIR="/code" - + RUN mkdir -p ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR} + +RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 && \ + cd CMake && \ + ./bootstrap --parallel=$(nproc) && \ + make -j$(nproc) && \ + make install && \ + cd .. && \ + rm -rf CMake + +######################################################################################################### +# debug build preparation +######################################################################################################### +FROM gcc_9_libssl as build_debug_dependencies + +USER root +ENV DOCKER_WORKDIR="/code" + +RUN mkdir -p ${DOCKER_WORKDIR} +WORKDIR ${DOCKER_WORKDIR} + +# copy CMake from last stage +COPY --from=gcc_9_cmake /usr/local/bin/cmake /usr/local/bin/cmake +COPY --from=gcc_9_cmake /usr/local/share/cmake-3.19/Modules /usr/local/share/cmake-3.19/Modules +COPY --from=gcc_9_cmake /usr/local/share/cmake-3.19/Templates /usr/local/share/cmake-3.19/Templates + COPY ./dependencies ./dependencies -COPY ./conanfile.txt ./conanfile.txt - - -RUN cd dependencies/mariadb-connector-c && \ - mkdir build && \ - cd build && \ - cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSL=OFF .. - - -RUN mkdir build && \ - cd build && \ - conan install .. --build=missing -s build_type=Debug - - -######################################################################################################### -# debug build proto and grpc -######################################################################################################### -From build_debug_preparation as proto_grpc - -ENV DOCKER_WORKDIR="/code" -WORKDIR ${DOCKER_WORKDIR} - +COPY ./scripts ./scripts COPY ./CMakeLists.txt . -RUN cd build && \ - cmake -DCMAKE_BUILD_TYPE=Debug .. && \ - make -j${CPU_COUNT} protoc grpc_cpp_plugin +COPY ./src ./src + + +RUN cd scripts && \ + chmod +x ./prepare_build.sh && \ + ./prepare_build.sh && \ + mkdir ../build && \ + chmod +x ./build_debug.sh && \ + ./build_debug.sh + +# remove unneccessary stuff +RUN rm -rf build/bin/Gradido_LoginServer ######################################################################################################### -# parse proto and gettext +# debug build ######################################################################################################### -From proto_grpc as proto_parse +FROM gcc_9_libssl as build_debug +USER root ENV DOCKER_WORKDIR="/code" + +RUN mkdir -p ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR} -RUN mkdir src && \ - cd src && \ - mkdir cpp -COPY ./src/proto ./src/proto -COPY ./unix_parse_proto.sh . -RUN chmod +x unix_parse_proto.sh && \ - ./unix_parse_proto.sh - +# copy CMake from last stage +COPY --from=build_debug_dependencies /usr/local/bin/cmake /usr/local/bin/cmake +COPY --from=build_debug_dependencies /usr/local/share/cmake-3.19 /usr/local/share/cmake-3.19 + +COPY --from=build_debug_dependencies /code/build/bin /code/build/bin +COPY --from=build_debug_dependencies /code/build/lib /code/build/lib + +# grpc +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/lib /build/dependencies/grpc/lib +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/protobuf/lib /build/dependencies/grpc/third_party/protobuf/lib +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/re2/lib /build/dependencies/grpc/third_party/re2/lib +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/zlib/lib /build/dependencies/grpc/third_party/zlib/lib +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/cares/cares/lib /build/dependencies/grpc/third_party/cares/cares/lib +COPY --from=build_debug_dependencies /code/build/dependencies/mariadb-connector-c/libmariadb/lib /build/dependencies/mariadb-connector-c/libmariadb/lib + diff --git a/login_server/Dockerfiles/Dockerfile.dependencies-alpine b/login_server/Dockerfiles/Dockerfile.dependencies-alpine new file mode 100644 index 000000000..3d06df22c --- /dev/null +++ b/login_server/Dockerfiles/Dockerfile.dependencies-alpine @@ -0,0 +1,87 @@ + +##### BUILD-ENV ##### +FROM alpine:3.13.5 as alpine-build + +RUN apk add --update --no-cache icu-dev +RUN apk add --no-cache git openssl-dev make gcc musl-dev g++ linux-headers libintl gettext-dev boost-dev libsodium-dev + + +##### CMAKE ##### +FROM alpine-build as alpine-gxx-cmake + +USER root +ENV DOCKER_WORKDIR="/code" + +RUN mkdir -p ${DOCKER_WORKDIR} +WORKDIR ${DOCKER_WORKDIR} + +RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 && \ + cd CMake && \ + ./bootstrap --parallel=$(nproc) && \ + make -j$(nproc) && \ + make install && \ + cd .. && \ + rm -rf CMake + +RUN ls -la /usr/include/boost + +##### BUILD ENV ############## +FROM alpine-build as build_debug_dependencies + +USER root +ENV DOCKER_WORKDIR="/code" + +RUN mkdir -p ${DOCKER_WORKDIR} +WORKDIR ${DOCKER_WORKDIR} + +RUN apk add --no-cache git make gettext openssl-dev +# copy CMake from last stage +COPY --from=alpine-gxx-cmake /usr/local/bin/cmake /usr/local/bin/cmake +COPY --from=alpine-gxx-cmake /usr/local/share/cmake-3.19/Modules /usr/local/share/cmake-3.19/Modules +COPY --from=alpine-gxx-cmake /usr/local/share/cmake-3.19/Templates /usr/local/share/cmake-3.19/Templates + + + +# COPY files from context +COPY ./dependencies ./dependencies +COPY ./scripts ./scripts +COPY ./CMakeLists.txt . +COPY ./src ./src + +# run build +RUN cd scripts && \ + chmod +x ./prepare_build.sh && \ + ./prepare_build.sh && \ + mkdir ../build && \ + chmod +x ./build_debug.sh && \ + ./build_debug.sh + +######################################################################################################### +# builded libs and binaries +######################################################################################################### +FROM alpine-build as debug_builded + +USER root +ENV DOCKER_WORKDIR="/code" + +RUN mkdir -p ${DOCKER_WORKDIR} +WORKDIR ${DOCKER_WORKDIR} + +RUN apk add --no-cache bash + +# copy CMake from last stage +COPY --from=build_debug_dependencies /usr/local/bin/cmake /usr/local/bin/cmake +COPY --from=build_debug_dependencies /usr/local/share/cmake-3.19 /usr/local/share/cmake-3.19 + +COPY --from=build_debug_dependencies /code/build/bin ${DOCKER_WORKDIR}/pre_build/bin +COPY --from=build_debug_dependencies /code/build/lib ${DOCKER_WORKDIR}/pre_build/lib + +# grpc +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/lib +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/protobuf/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/protobuf/lib +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/re2/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/re2/lib +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/zlib/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/zlib/lib +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/cares/cares/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/cares/cares/lib +COPY --from=build_debug_dependencies /code/build/dependencies/mariadb-connector-c/libmariadb/lib ${DOCKER_WORKDIR}/pre_build/dependencies/mariadb-connector-c/libmariadb/lib + + diff --git a/login_server/Dockerfiles/build_and_run.sh b/login_server/Dockerfiles/build_and_run.sh deleted file mode 100644 index d7ad51ef2..000000000 --- a/login_server/Dockerfiles/build_and_run.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -cd build -cmake -DCMAKE_BUILD_TYPE=Debug .. -make -j${nproc} protoc grpc_cpp_plugin -cd .. - -if [ ! -d "./src/cpp/proto/hedera" ] ; then -#if [ ! -f "./src/cpp/proto/gradido/TransactionBody.pb.h"] ; then - chmod +x unix_parse_proto.sh - ./unix_parse_proto.sh -fi -chmod +x compile_pot.sh - -./compile_pot.sh - -cd build -cmake -DCMAKE_BUILD_TYPE=Debug .. -make -j$(nproc) Gradido_LoginServer -#echo "building done" -chmod +x ./bin/Gradido_LoginServer -#./bin/Gradido_LoginServer diff --git a/login_server/README b/login_server/README index 3e7843a58..400aee30a 100644 --- a/login_server/README +++ b/login_server/README @@ -1,4 +1,4 @@ -sudo apt install libsodium-dev libboost-all-dev +sudo apt install libsodium-dev # get dependencies git submodule update --init --recursive diff --git a/login_server/compile_pot.sh b/login_server/compile_pot.sh deleted file mode 100755 index df6f5e435..000000000 --- a/login_server/compile_pot.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -xgettext -D src/cpp -p src/LOCALE -o messages.pot --from-code=UTF-8 --files-from=files_to_translate.txt diff --git a/login_server/dependencies/libsodium b/login_server/dependencies/libsodium new file mode 160000 index 000000000..8aedf4733 --- /dev/null +++ b/login_server/dependencies/libsodium @@ -0,0 +1 @@ +Subproject commit 8aedf4733884a25434b5c17c79c7e7dee27e6eb0 diff --git a/login_server/dependencies/mariadb-connector-c b/login_server/dependencies/mariadb-connector-c deleted file mode 160000 index 159540fe8..000000000 --- a/login_server/dependencies/mariadb-connector-c +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 159540fe8c8f30b281748fe8a1b79e8b17993a67 diff --git a/login_server/parse_proto.sh b/login_server/parse_proto.sh deleted file mode 100644 index 1ec7c106e..000000000 --- a/login_server/parse_proto.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -if [ ! -d "./src/cpp/proto" ] ; then - mkdir ./src/cpp/proto -fi -if [ ! -d "./src/cpp/proto/gradido" ] ; then - mkdir ./src/cpp/proto/gradido -fi - -./protoc --cpp_out=./src/cpp/proto --proto_path=./src/proto ./src/proto/gradido/*.proto - -if [ ! -d "./src/cpp/proto/hedera" ] ; then - mkdir ./src/cpp/proto/hedera -fi - - -./protoc --plugin=protoc-gen-grpc=./grpc_cpp_plugin.exe --cpp_out=./src/cpp/proto/hedera --grpc_out=./src/cpp/proto/hedera --proto_path=./src/proto/hedera/hedera-protobuf/src/main/proto ./src/proto/hedera/hedera-protobuf/src/main/proto/*.proto diff --git a/login_server/scripts/build_debug.sh b/login_server/scripts/build_debug.sh new file mode 100755 index 000000000..9f6158da8 --- /dev/null +++ b/login_server/scripts/build_debug.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +cd ../build +cmake -DCMAKE_BUILD_TYPE=Debug .. +if [ ! -f "./bin/protoc" ] ; then + make -j$(nproc) protoc + cp ./dependencies/grpc/third_party/protobuf/bin/* ./bin/ +fi +if [ ! -f "./bin/grpc_cpp_plugin" ] ; then + make -j$(nproc) grpc_cpp_plugin + cp ./dependencies/grpc/bin/grpc_cpp_plugin ./bin/grpc_cpp_plugin +fi +cd ../scripts +if [ ! -d "./src/cpp/proto/hedera" ] ; then + chmod +x unix_parse_proto.sh + ./unix_parse_proto.sh +fi +chmod +x compile_pot.sh +./compile_pot.sh + +cd ../build +cmake -DCMAKE_BUILD_TYPE=Debug .. +make -j$(nproc) Gradido_LoginServer PageCompiler + +chmod +x ./bin/Gradido_LoginServer diff --git a/login_server/scripts/compile_pot.sh b/login_server/scripts/compile_pot.sh new file mode 100755 index 000000000..1d817be55 --- /dev/null +++ b/login_server/scripts/compile_pot.sh @@ -0,0 +1,2 @@ +#!/bin/sh +xgettext -D ../src/cpp -p ../src/LOCALE -o messages.pot --from-code=UTF-8 --files-from=files_to_translate.txt diff --git a/login_server/files_to_translate.txt b/login_server/scripts/files_to_translate.txt similarity index 100% rename from login_server/files_to_translate.txt rename to login_server/scripts/files_to_translate.txt diff --git a/login_server/scripts/prepare_build.sh b/login_server/scripts/prepare_build.sh new file mode 100755 index 000000000..8706e4139 --- /dev/null +++ b/login_server/scripts/prepare_build.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# generate version for mariadb connector + +cd ../dependencies/mariadb-connector-c +if [ -d "./build" ] ; then + rm -rf ./build +fi +mkdir build +cd build +cmake -DWITH_SSL=OFF .. +cd ../../ + + + diff --git a/login_server/scripts/unix_parse_proto.sh b/login_server/scripts/unix_parse_proto.sh new file mode 100755 index 000000000..5f8a86023 --- /dev/null +++ b/login_server/scripts/unix_parse_proto.sh @@ -0,0 +1,19 @@ +#!/bin/sh +if [ ! -d "../src/cpp/proto" ] ; then + mkdir ../src/cpp/proto +fi +if [ ! -d "../src/cpp/proto/gradido" ] ; then + mkdir ../src/cpp/proto/gradido +fi +PROTOC_PATH=../build/bin +CPP_PLUGIN_PATH=../build/bin +$PROTOC_PATH/protoc --cpp_out=../src/cpp/proto --proto_path=../src/proto ../src/proto/gradido/*.proto + +if [ ! -d "../src/cpp/proto/hedera" ] ; then + mkdir ../src/cpp/proto/hedera +fi + +GOOGLE_PROTOBUF_INCLUDES=../dependencies/grpc/third_party/protobuf/src +$PROTOC_PATH/protoc --plugin=protoc-gen-grpc=$CPP_PLUGIN_PATH/grpc_cpp_plugin --cpp_out=../src/cpp/proto/hedera --grpc_out=../src/cpp/proto/hedera --proto_path=$GOOGLE_PROTOBUF_INCLUDES --proto_path=../src/proto/hedera/hedera-protobuf/src/main/proto ../src/proto/hedera/hedera-protobuf/src/main/proto/*.proto + + diff --git a/login_server/scripts/windows_parse_proto.sh b/login_server/scripts/windows_parse_proto.sh new file mode 100644 index 000000000..b01ae74d7 --- /dev/null +++ b/login_server/scripts/windows_parse_proto.sh @@ -0,0 +1,19 @@ +#!/bin/bash +if [ ! -d "../src/cpp/proto" ] ; then + mkdir ../src/cpp/proto +fi +if [ ! -d "../src/cpp/proto/gradido" ] ; then + mkdir ../src/cpp/proto/gradido +fi +PROTOC_PATH=build/bin +CPP_PLUGIN_PATH=build/bin +$PROTOC_PATH/protoc.exe --cpp_out=../src/cpp/proto --proto_path=../src/proto ../src/proto/gradido/*.proto + +if [ ! -d "./src/cpp/proto/hedera" ] ; then + mkdir ./src/cpp/proto/hedera +fi + +GOOGLE_PROTOBUF_INCLUDES=../dependencies/grpc/third_party/protobuf/src +$PROTOC_PATH/protoc.exe --plugin=protoc-gen-grpc=$CPP_PLUGIN_PATH/grpc_cpp_plugin.exe --cpp_out=../src/cpp/proto/hedera --grpc_out=../src/cpp/proto/hedera --proto_path=$GOOGLE_PROTOBUF_INCLUDES --proto_path=../src/proto/hedera/hedera-protobuf/src/main/proto ../src/proto/hedera/hedera-protobuf/src/main/proto/*.proto + + diff --git a/login_server/src/cpp/lib/DRHashList.cpp b/login_server/src/cpp/lib/DRHashList.cpp index b912f742c..62429b094 100644 --- a/login_server/src/cpp/lib/DRHashList.cpp +++ b/login_server/src/cpp/lib/DRHashList.cpp @@ -6,6 +6,7 @@ #include #include +#include using namespace std; diff --git a/login_server/unix_parse_proto.sh b/login_server/unix_parse_proto.sh deleted file mode 100755 index 88c4c4b5d..000000000 --- a/login_server/unix_parse_proto.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -if [ ! -d "./src/cpp/proto" ] ; then - mkdir ./src/cpp/proto -fi -if [ ! -d "./src/cpp/proto/gradido" ] ; then - mkdir ./src/cpp/proto/gradido -fi -PROTOC_PATH=./build/dependencies/grpc/third_party/protobuf/bin -CPP_PLUGIN_PATH=./build/dependencies/grpc/bin -$PROTOC_PATH/protoc --cpp_out=./src/cpp/proto --proto_path=./src/proto ./src/proto/gradido/*.proto - -if [ ! -d "./src/cpp/proto/hedera" ] ; then - mkdir ./src/cpp/proto/hedera -fi - -GOOGLE_PROTOBUF_INCLUDES=./dependencies/grpc/third_party/protobuf/src -$PROTOC_PATH/protoc --plugin=protoc-gen-grpc=$CPP_PLUGIN_PATH/grpc_cpp_plugin --cpp_out=./src/cpp/proto/hedera --grpc_out=./src/cpp/proto/hedera --proto_path=$GOOGLE_PROTOBUF_INCLUDES --proto_path=./src/proto/hedera/hedera-protobuf/src/main/proto ./src/proto/hedera/hedera-protobuf/src/main/proto/*.proto - - diff --git a/login_server/windows_parse_proto.sh b/login_server/windows_parse_proto.sh deleted file mode 100644 index 90497e6b8..000000000 --- a/login_server/windows_parse_proto.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -if [ ! -d "./src/cpp/proto" ] ; then - mkdir ./src/cpp/proto -fi -if [ ! -d "./src/cpp/proto/gradido" ] ; then - mkdir ./src/cpp/proto/gradido -fi -PROTOC_PATH=build/bin -CPP_PLUGIN_PATH=build/bin -$PROTOC_PATH/protoc.exe --cpp_out=./src/cpp/proto --proto_path=./src/proto ./src/proto/gradido/*.proto - -if [ ! -d "./src/cpp/proto/hedera" ] ; then - mkdir ./src/cpp/proto/hedera -fi - -GOOGLE_PROTOBUF_INCLUDES=./dependencies/grpc/third_party/protobuf/src -$PROTOC_PATH/protoc.exe --plugin=protoc-gen-grpc=$CPP_PLUGIN_PATH/grpc_cpp_plugin.exe --cpp_out=./src/cpp/proto/hedera --grpc_out=./src/cpp/proto/hedera --proto_path=$GOOGLE_PROTOBUF_INCLUDES --proto_path=./src/proto/hedera/hedera-protobuf/src/main/proto ./src/proto/hedera/hedera-protobuf/src/main/proto/*.proto - - From 68f3c3736d61e483e634efb8ea8af2fb9e9c9f79 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Tue, 27 Apr 2021 11:04:04 +0200 Subject: [PATCH 05/18] update modules --- .gitmodules | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/.gitmodules b/.gitmodules index 216f32025..62e643b38 100644 --- a/.gitmodules +++ b/.gitmodules @@ -27,16 +27,10 @@ [submodule "community_server/src/protobuf"] path = community_server/src/protobuf - url = git@github.com:gradido/gradido_protocol.git + url = https://github.com/gradido/gradido_protocol.git [submodule "login_server/dependencies/libsodium"] path = login_server/dependencies/libsodium url = https://github.com/jedisct1/libsodium.git -[submodule "login_server/dependencies/boost/static_assert"] - path = login_server/dependencies/boost/static_assert - url = https://github.com/boostorg/static_assert.git -[submodule "login_server/dependencies/boost/iterator"] - path = login_server/dependencies/boost/iterator - url = https://github.com/boostorg/iterator.git -[submodule "login_server/dependencies/boost/spirit"] - path = login_server/dependencies/boost/spirit - url = https://github.com/boostorg/spirit.git +[submodule "login_server/src/proto"] + path = login_server/src/proto + url = https://github.com/gradido/gradido_protocol.git From d1da7b72b2703218df7d71b5ad6e332ccddf1bb4 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Mon, 3 May 2021 15:38:51 +0200 Subject: [PATCH 06/18] update dependencie docker to allow different build types --- .../Dockerfile.dependencies-alpine | 96 ++++++++----------- 1 file changed, 41 insertions(+), 55 deletions(-) diff --git a/login_server/Dockerfiles/Dockerfile.dependencies-alpine b/login_server/Dockerfiles/Dockerfile.dependencies-alpine index 3d06df22c..ef4d74dd6 100644 --- a/login_server/Dockerfiles/Dockerfile.dependencies-alpine +++ b/login_server/Dockerfiles/Dockerfile.dependencies-alpine @@ -9,79 +9,65 @@ RUN apk add --no-cache git openssl-dev make gcc musl-dev g++ linux-headers libin ##### CMAKE ##### FROM alpine-build as alpine-gxx-cmake -USER root -ENV DOCKER_WORKDIR="/code" - -RUN mkdir -p ${DOCKER_WORKDIR} -WORKDIR ${DOCKER_WORKDIR} - RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 && \ cd CMake && \ ./bootstrap --parallel=$(nproc) && \ make -j$(nproc) && \ - make install && \ - cd .. && \ - rm -rf CMake + make install -RUN ls -la /usr/include/boost +######### BUILD grpc ############## +FROM alpine-gxx-cmake as alpine-gxx-grpc -##### BUILD ENV ############## -FROM alpine-build as build_debug_dependencies +ARG BUILD_TYPE=Debug -USER root -ENV DOCKER_WORKDIR="/code" +RUN git clone https://github.com/grpc/grpc.git --branch=v1.37.0 --recursive -j4 && \ + cd grpc && \ + mkdir build && cd build && \ + cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE .. && make -j$(nproc) && \ + make install -RUN mkdir -p ${DOCKER_WORKDIR} -WORKDIR ${DOCKER_WORKDIR} +######### BUILD poco ############## +FROM alpine-gxx-cmake as alpine-gxx-poco -RUN apk add --no-cache git make gettext openssl-dev -# copy CMake from last stage -COPY --from=alpine-gxx-cmake /usr/local/bin/cmake /usr/local/bin/cmake -COPY --from=alpine-gxx-cmake /usr/local/share/cmake-3.19/Modules /usr/local/share/cmake-3.19/Modules -COPY --from=alpine-gxx-cmake /usr/local/share/cmake-3.19/Templates /usr/local/share/cmake-3.19/Templates +ARG BUILD_TYPE=Debug +RUN git clone https://github.com/pocoproject/poco.git --recursive && \ + cd poco && \ + git checkout poco-1.9.4-release && \ + mkdir cmake-build && cd cmake-build && \ + cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE .. && make -j$(nproc) && \ + make install +######### BUILD mariadb ########### +FROM alpine-gxx-cmake as alpine-gxx-mariadb-connector -# COPY files from context -COPY ./dependencies ./dependencies -COPY ./scripts ./scripts -COPY ./CMakeLists.txt . -COPY ./src ./src +ARG BUILD_TYPE=Debug -# run build -RUN cd scripts && \ - chmod +x ./prepare_build.sh && \ - ./prepare_build.sh && \ - mkdir ../build && \ - chmod +x ./build_debug.sh && \ - ./build_debug.sh +RUN git clone https://github.com/mariadb-corporation/mariadb-connector-c.git && \ + cd mariadb-connector-c && \ + git checkout 159540f && \ + mkdir build && cd build && \ + cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE .. && make -j$(nproc) && \ + make install ######################################################################################################### # builded libs and binaries ######################################################################################################### -FROM alpine-build as debug_builded +FROM alpine-build as alpine-libs -USER root -ENV DOCKER_WORKDIR="/code" +# copy CMake from cmake stage +COPY --from=alpine-gxx-cmake /usr/local/bin/cmake /usr/local/bin/cmake +COPY --from=alpine-gxx-cmake /usr/local/share/cmake-3.19/Modules /usr/local/share/cmake-3.19/Modules +COPY --from=alpine-gxx-cmake /usr/local/share/cmake-3.19/Templates /usr/local/share/cmake-3.19/Templates -RUN mkdir -p ${DOCKER_WORKDIR} -WORKDIR ${DOCKER_WORKDIR} - -RUN apk add --no-cache bash - -# copy CMake from last stage -COPY --from=build_debug_dependencies /usr/local/bin/cmake /usr/local/bin/cmake -COPY --from=build_debug_dependencies /usr/local/share/cmake-3.19 /usr/local/share/cmake-3.19 - -COPY --from=build_debug_dependencies /code/build/bin ${DOCKER_WORKDIR}/pre_build/bin -COPY --from=build_debug_dependencies /code/build/lib ${DOCKER_WORKDIR}/pre_build/lib - -# grpc -COPY --from=build_debug_dependencies /code/build/dependencies/grpc/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/lib -COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/protobuf/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/protobuf/lib -COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/re2/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/re2/lib -COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/zlib/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/zlib/lib -COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/cares/cares/lib ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/cares/cares/lib -COPY --from=build_debug_dependencies /code/build/dependencies/mariadb-connector-c/libmariadb/lib ${DOCKER_WORKDIR}/pre_build/dependencies/mariadb-connector-c/libmariadb/lib +# copy from grpc +COPY --from=alpine-gxx-grpc /usr/local /usr/local + + +# COPY from poco +COPY --from=alpine-gxx-poco /usr/local /usr/local + +# COPY from mariadb +COPY --from=alpine-gxx-mariadb-connector /usr/local /usr/local From 928cc0044dd6e164def64aea4e339b66dc442176 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Mon, 3 May 2021 16:49:19 +0200 Subject: [PATCH 07/18] update parse proto with cmake, only if not exist or newer, change folder, update includes --- login_server/CMakeLists.txt | 122 +++-- login_server/src/LOCALE/messages.pot | 431 ++++++++++++++++++ login_server/src/cpp/controller/HederaId.h | 4 +- login_server/src/cpp/lib/DataTypeConverter.h | 10 +- login_server/src/cpp/model/email/Email.cpp | 12 +- .../src/cpp/model/gradido/GroupMemberUpdate.h | 4 +- .../src/cpp/model/gradido/Transaction.cpp | 118 ++--- .../src/cpp/model/gradido/Transaction.h | 32 +- .../src/cpp/model/gradido/TransactionBase.h | 12 +- .../src/cpp/model/gradido/TransactionBody.h | 22 +- .../cpp/model/gradido/TransactionCreation.h | 6 +- .../cpp/model/gradido/TransactionTransfer.h | 4 +- .../cpp/model/hedera/ConsensusCreateTopic.h | 6 +- .../cpp/model/hedera/ConsensusSubmitMessage.h | 6 +- .../src/cpp/model/hedera/ConsensusTopicInfo.h | 4 +- .../model/hedera/CryptoCreateTransaction.h | 6 +- .../model/hedera/CryptoTransferTransaction.h | 4 +- login_server/src/cpp/model/hedera/Query.h | 10 +- login_server/src/cpp/model/hedera/Response.h | 10 +- .../src/cpp/model/hedera/Transaction.h | 6 +- .../src/cpp/model/hedera/TransactionBody.h | 8 +- .../model/hedera/TransactionGetReceiptQuery.h | 6 +- .../src/cpp/model/hedera/TransactionId.h | 6 +- .../src/cpp/model/hedera/TransactionRecord.h | 4 +- .../cpp/model/hedera/TransactionResponse.h | 4 +- .../cpp/test/controller/TestHederaAccount.cpp | 6 +- .../cpp/test/controller/TestHederaAccount.h | 4 +- .../src/cpp/test/controller/TestHederaId.cpp | 2 +- .../src/cpp/test/controller/TestHederaId.h | 4 +- .../crypto/TestAuthenticatedEncryption.cpp | 4 +- 30 files changed, 686 insertions(+), 191 deletions(-) create mode 100644 login_server/src/LOCALE/messages.pot diff --git a/login_server/CMakeLists.txt b/login_server/CMakeLists.txt index b43127a48..bfa5fcb72 100644 --- a/login_server/CMakeLists.txt +++ b/login_server/CMakeLists.txt @@ -33,12 +33,102 @@ include_directories( "dependencies/poco/JSON/include" "dependencies/poco/Net/include" "dependencies/poco/NetSSL_OpenSSL/include" - "src/cpp/proto" + "build" + "build/proto" ) +############################## config and add grpc ################################### + +set(GRPC_PATH "${DEP_PATH}/grpc/build") +set(GRPC_ABSL_PATH "${GRPC_PATH}/third_party/abseil-cpp/absl/types") +set(GRPC_CARES_PATH "${GRPC_PATH}/third_party/cares/cares/lib") +set(GRPC_BORING_SSL_PATH "${GRPC_PATH}/third_party/boringssl-with-bazel") +set(GRPC_RE2_PATH "${GRPC_PATH}/third_party/re2") +set(GRPC_PROTOBUF_PATH "${GRPC_PATH}/third_party/protobuf") + +if(WIN32) + set(GRPC_PATH "${GRPC_PATH}/Debug") + set(GRPC_ABSL_PATH "${GRPC_ABSL_PATH}/Debug") + set(GRPC_CARES_PATH "${GRPC_CARES_PATH}/Debug") + set(GRPC_BORING_SSL_PATH "${GRPC_CGRPC_BORING_SSL_PATHARES_PATH}/Debug") + set(GRPC_RE2_PATH "${GRPC_RE2_PATH}/Debug") + set(GRPC_PROTOBUF_DEBUG_PATH "${GRPC_PROTOBUF_PATH}/Debug") +endif() +set(BUILD_TESTING OFF) +set(gRPC_SSL_PROVIDER "package") +add_subdirectory("dependencies/grpc/") +set(gRPC_SSL_PROVIDER "package") +message(STATUS "Using gRPC via add_subdirectory.") + +set(GRPC_LIBS libprotobuf grpc++_reflection grpc++) + +############################## parse protobuf files ################################### + +FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/proto GRADIDO_PROTO_MODEL_PATH) +FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/proto/hedera/hedera-protobuf/src/main/proto HEDERA_PROTO_MODEL_PATH) +FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build/proto PROTOBINDING_PATH) +file(MAKE_DIRECTORY ${PROTOBINDING_PATH}) +file(MAKE_DIRECTORY ${PROTOBINDING_PATH}/gradido) +file(MAKE_DIRECTORY ${PROTOBINDING_PATH}/hedera) + +FILE(GLOB DATAMODEL_GRADIDO_PROTOS "${GRADIDO_PROTO_MODEL_PATH}/gradido/*.proto") +FILE(GLOB DATAMODEL_HEDERA_PROTOS "${HEDERA_PROTO_MODEL_PATH}/*.proto") + +find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin PATHS "build/dependencies/grpc/bin" REQUIRED) +find_program(PROTOBUF_PROTOC_EXECUTABLE protoc PATHS "build/dependencies/grpc/third_party/protobuf/bin" REQUIRED) +FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/grpc/third_party/protobuf/src GOOGLE_PROTOBUF_INCLUDES) + +FOREACH(proto ${DATAMODEL_GRADIDO_PROTOS}) + FILE(TO_NATIVE_PATH ${proto} proto_native) + get_filename_component(proto_parsed ${proto} NAME_WLE) + FILE(TO_NATIVE_PATH ${PROTOBINDING_PATH}/gradido/${proto_parsed}.pb.h proto_parsed_native) + + IF(${proto_native} IS_NEWER_THAN ${proto_parsed_native}) + EXECUTE_PROCESS( + COMMAND + ${PROTOBUF_PROTOC_EXECUTABLE} + --proto_path=${GRADIDO_PROTO_MODEL_PATH} + --cpp_out=${PROTOBINDING_PATH} + ${proto_native} + RESULT_VARIABLE rv + ) + # Optional, but that can show the user if something have gone wrong with the proto generation + IF(${rv}) + MESSAGE("Generation of data model returned ${rv} for proto ${proto_native}") + ENDIF() + ENDIF() + +ENDFOREACH(proto) + +FOREACH(proto ${DATAMODEL_HEDERA_PROTOS}) + FILE(TO_NATIVE_PATH ${proto} proto_native) + get_filename_component(proto_parsed ${proto} NAME_WLE) + FILE(TO_NATIVE_PATH ${PROTOBINDING_PATH}/hedera/${proto_parsed}.pb.h proto_parsed_native) + IF(${proto_native} IS_NEWER_THAN ${proto_parsed_native}) + EXECUTE_PROCESS( + COMMAND + ${PROTOBUF_PROTOC_EXECUTABLE} + --plugin=protoc-gen-grpc=${GRPC_CPP_PLUGIN} + --proto_path=${HEDERA_PROTO_MODEL_PATH} + --proto_path=${GOOGLE_PROTOBUF_INCLUDES} + --cpp_out=${PROTOBINDING_PATH}/hedera + --grpc_out ${PROTOBINDING_PATH}/hedera + ${proto_native} + RESULT_VARIABLE rv + ) + # Optional, but that can show the user if something have gone wrong with the proto generation + IF(${rv}) + MESSAGE("Generation of data model returned ${rv} for proto ${proto_native}") + ENDIF() + ENDIF() +ENDFOREACH(proto) + + +############################## bind source files ################################### + #set(MYSQL_INCLUDE_DIR "dependencies/mariadb-connector-c/include") FILE(GLOB CONTROLLER "src/cpp/controller/*.cpp" "src/cpp/controller/*.h") @@ -56,8 +146,8 @@ FILE(GLOB MODEL_GRADIDO "src/cpp/model/gradido/*.h" "src/cpp/model/gradido/*.cpp FILE(GLOB CRYPTO "src/cpp/Crypto/*.h" "src/cpp/Crypto/*.cpp") FILE(GLOB MAIN "src/cpp/*.cpp" "src/cpp/*.c" "src/cpp/*.h") FILE(GLOB MYSQL "src/cpp/MySQL/*.cpp" "src/cpp/MySQL/*.h" "src/cpp/MySQL/Poco/*.h") -FILE(GLOB PROTO_GRADIDO "src/cpp/proto/gradido/*.cc" "src/cpp/proto/gradido/*.h") -FILE(GLOB PROTO_HEDERA "src/cpp/proto/hedera/*.cc" "src/cpp/proto/hedera/*.h") +FILE(GLOB PROTO_GRADIDO "${PROTOBINDING_PATH}/gradido/*.cc" "${PROTOBINDING_PATH}/gradido/*.h") +FILE(GLOB PROTO_HEDERA "${PROTOBINDING_PATH}/hedera/*.cc" "${PROTOBINDING_PATH}/hedera/*.h") # used only for test project FILE(GLOB TEST "src/cpp/test/*.cpp" "src/cpp/test/*.h") @@ -142,33 +232,7 @@ add_subdirectory("dependencies/poco") set(POCO_LIBS PocoFoundation PocoUtil PocoNet PocoNetSSL PocoData) -############################## config and add grpc ################################### -set(GRPC_PATH "${DEP_PATH}/grpc/build") -set(GRPC_ABSL_PATH "${GRPC_PATH}/third_party/abseil-cpp/absl/types") -set(GRPC_CARES_PATH "${GRPC_PATH}/third_party/cares/cares/lib") -set(GRPC_BORING_SSL_PATH "${GRPC_PATH}/third_party/boringssl-with-bazel") -set(GRPC_RE2_PATH "${GRPC_PATH}/third_party/re2") -set(GRPC_PROTOBUF_PATH "${GRPC_PATH}/third_party/protobuf") - -if(WIN32) - set(GRPC_PATH "${GRPC_PATH}/Debug") - set(GRPC_ABSL_PATH "${GRPC_ABSL_PATH}/Debug") - set(GRPC_CARES_PATH "${GRPC_CARES_PATH}/Debug") - set(GRPC_BORING_SSL_PATH "${GRPC_CGRPC_BORING_SSL_PATHARES_PATH}/Debug") - set(GRPC_RE2_PATH "${GRPC_RE2_PATH}/Debug") - set(GRPC_PROTOBUF_DEBUG_PATH "${GRPC_PROTOBUF_PATH}/Debug") -endif() - - - -set(BUILD_TESTING OFF) -set(gRPC_SSL_PROVIDER "package") -add_subdirectory("dependencies/grpc/") -set(gRPC_SSL_PROVIDER "package") -message(STATUS "Using gRPC via add_subdirectory.") - -set(GRPC_LIBS libprotobuf grpc++_reflection grpc++) ############################## build login server ################################### if(UNIX) diff --git a/login_server/src/LOCALE/messages.pot b/login_server/src/LOCALE/messages.pot new file mode 100644 index 000000000..568881671 --- /dev/null +++ b/login_server/src/LOCALE/messages.pot @@ -0,0 +1,431 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-04-26 22:00+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:181 +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:260 +msgid "Login" +msgstr "" + +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:181 +msgid "E-Mail or password isn't right, please try again!" +msgstr "" + +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:190 +msgid "Passwort" +msgstr "" + +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:190 +msgid "" +"Passwort wird noch berechnet, bitte versuche es in etwa 1 Minute erneut." +msgstr "" + +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:193 +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:196 +msgid "User" +msgstr "" + +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:193 +msgid "Error in saved data, the server admin will look at it." +msgstr "" + +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:196 +msgid "Benutzer ist deaktiviert, kein Login möglich!" +msgstr "" + +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:260 +msgid "Username and password are needed!" +msgstr "" + +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:290 +#: model/Session.cpp:164 model/Session.cpp:171 model/Session.cpp:219 +#: model/Session.cpp:229 +msgid "E-Mail" +msgstr "" + +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:291 +msgid "Password" +msgstr "" + +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:292 +msgid " Login " +msgstr "" + +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:297 +msgid "You haven't any account yet? Please follow the link to create one." +msgstr "" + +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:299 +msgid "Create New Account" +msgstr "" + +#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:303 +msgid "Passwort vergessen" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:73 +msgid "E-Mail verifizieren" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:78 +msgid "" +"Deine E-Mail wurde erfolgreich bestätigt. Du kannst nun Gradidos versenden." +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:79 +msgid "Zur Startseite" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:81 +msgid "Bitte gib deinen E-Mail Verification Code ein:" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:82 +#: model/Session.cpp:187 +msgid "Email Verification Code" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:83 +msgid "Überprüfe Code" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:86 +msgid "Du hast bisher keinen Code erhalten?" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:87 +msgid "E-Mail erneut zuschicken (in Arbeit)" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:90 +msgid "Funktioniert dein E-Mail Verification Code nicht?" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:91 +msgid "Schicke uns eine E-Mail und wir kümmern uns darum: " +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:92 +#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:151 +msgid "E-Mail an Support schicken" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:113 +#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:124 +msgid "Gib bitte hier deine E-Mail Adresse an:" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:116 +msgid "Bestätigen" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:126 +msgid "Hast du dir deine Passphrase notiert oder gemerkt?" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:131 +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:206 +msgid "Ja" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:136 +msgid "Nein" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:140 +msgid "Absenden" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:145 +msgid "Dir wird eine E-Mail zugeschickt um dein Passwort zurückzusetzen." +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:147 +msgid "Der Admin hat eine E-Mail bekommen und wird sich bei dir melden." +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:149 +msgid "" +"Du hast bereits eine E-Mail bekommen. Bitte schau auch in dein Spam-" +"Verzeichnis nach. " +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:150 +msgid "" +"Du hast wirklich keine E-Mail erhalten und auch schon ein paar Minuten " +"gewartet?" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:26 +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:96 +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:117 +#: model/Session.cpp:463 model/Session.cpp:475 model/Session.cpp:489 +msgid "Passphrase" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:27 +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:266 +msgid "Neues Konto anlegen" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:28 +msgid "2/3" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:96 +msgid "" +"Diese Passphrase ist ungültig, bitte überprüfen oder neu " +"generieren (lassen)." +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:117 +msgid "intern error please try again later" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:132 +msgid "3/3" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:135 +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:138 +msgid "1/3" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:137 +msgid "Neues Passwort anlegen" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:148 +msgid "Passphrase abschreiben" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:159 +msgid "Was ist eine Passphrase?" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:160 +msgid "Deine Passphrase besteht aus den im grünen Feld angezeigten Wörtern." +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:161 +msgid "Sie dient deiner Sicherheit." +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:162 +msgid "" +"Du brauchst deine Passphrase um dein Konto wiederherzustellen, wenn du mal " +"dein Passwort vergessen haben solltest." +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:164 +msgid "Deine Passphrase (Groß/Kleinschreibung beachten)" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:169 +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:197 +msgid "Was zu tun ist:" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:170 +msgid "" +"Schreibe dir die obenstehende Passphrase von Hand auf ein Blatt " +"Papier!" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:171 +msgid "Speichere sie auf keinen Fall auf deinem Rechner oder Mobilgerät!!" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:172 +msgid "Bewahre sie an einem sicheren Ort auf!" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:174 +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:285 +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:290 +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:303 +msgid "Weiter" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:198 +msgid "Hast du dir deine Passphrase gemerkt?" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:199 +msgid "" +"Dann zeig es mir. Zur Unterstützung gebe ich dir deine Wörter aber in " +"anderer Reihenfolge." +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:200 +msgid "Klicke sie an um sie einzusetzen." +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:201 +msgid "Überprüfe dabei, ob du alle Wörter richtig geschrieben hast!" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:205 +msgid "" +"Weil du kein Javascript verwendest geht es direkt weiter. Hast du dir deine " +"Passphrase gemerkt oder aufgeschrieben?" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:252 +msgid "Deine E-Mail Adresse wurde erfolgreich bestätigt." +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:256 +msgid "Neue Gradido Adresse anlegen / wiederherstellen" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:257 +msgid "" +"Möchtest du ein neues Gradido-Konto anlegen oder ein bestehendes " +"wiederherstellen?" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:273 +msgid "Bestehendes Konto wiederherstellen" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:280 +msgid "" +"Falls du ein bestehendes Konto wiederherstellen willst, gib hier deine " +"Passphrase ein:" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:297 +msgid "Konto wiederherstellen / Neues Passwort anlegen" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:299 +msgid "" +"Um dein Konto wiederherzustellen und dir ein Neues Passwort auswählen zu " +"können, tippe hier bitte die Wörter deiner Passphrase in der richtigen " +"Reihenfolge ein, welche du dir aufgeschrieben hast." +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:313 +msgid "Fehler" +msgstr "" + +#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:314 +msgid "" +"Ungültige Seite, wenn du das siehst stimmt hier etwas nicht. Bitte wende " +"dich an den Server-Admin." +msgstr "" + +#: model/Session.cpp:150 model/Session.cpp:180 model/Session.cpp:769 +#: model/Session.cpp:775 model/Session.cpp:1051 model/Session.cpp:1067 +msgid "Benutzer" +msgstr "" + +#: model/Session.cpp:150 +msgid "Eingeloggter Benutzer ist kein Admin" +msgstr "" + +#: model/Session.cpp:156 model/Session.cpp:211 +msgid "Vorname" +msgstr "" + +#: model/Session.cpp:156 model/Session.cpp:160 model/Session.cpp:211 +#: model/Session.cpp:215 +msgid "" +"Bitte gebe einen Namen an. Mindestens 3 Zeichen, keines folgender Zeichen " +"<>&;" +msgstr "" + +#: model/Session.cpp:160 model/Session.cpp:215 +msgid "Nachname" +msgstr "" + +#: model/Session.cpp:164 model/Session.cpp:219 +msgid "Bitte gebe eine gültige E-Mail Adresse an." +msgstr "" + +#: model/Session.cpp:171 +msgid "Für diese E-Mail Adresse gibt es bereits einen Account" +msgstr "" + +#: model/Session.cpp:180 model/Session.cpp:187 +msgid "Fehler beim speichern!" +msgstr "" + +#: model/Session.cpp:229 +msgid "Für diese E-Mail Adresse gibt es bereits ein Konto" +msgstr "" + +#: model/Session.cpp:253 +msgid "Server" +msgstr "" + +#: model/Session.cpp:253 +msgid "Fehler beim speichen des Kontos bitte versuche es später noch einmal" +msgstr "" + +#: model/Session.cpp:348 model/Session.cpp:388 model/Session.cpp:956 +#: model/Session.cpp:965 +msgid "E-Mail Verification" +msgstr "" + +#: model/Session.cpp:348 +msgid "Du hast dein Konto bereits aktiviert!" +msgstr "" + +#: model/Session.cpp:388 +msgid "Falscher Code für aktiven Login" +msgstr "" + +#: model/Session.cpp:463 +msgid "Deine Passphrase ist ungütig" +msgstr "" + +#: model/Session.cpp:475 +msgid "Ein Fehler trat auf, bitte versuche es erneut" +msgstr "" + +#: model/Session.cpp:489 +msgid "Das ist nicht die richtige Passphrase." +msgstr "" + +#: model/Session.cpp:769 +msgid "Konnte Community Server nicht erreichen. E-Mail an den Admin ist raus." +msgstr "" + +#: model/Session.cpp:775 +msgid "" +"Fehler beim Löschen des Accounts. Bitte logge dich erneut ein und " +"versuche es nochmal." +msgstr "" + +#: model/Session.cpp:956 +msgid "Konnte kein passendes Konto finden." +msgstr "" + +#: model/Session.cpp:965 +msgid "Fehler beim laden des Benutzers." +msgstr "" + +#: model/Session.cpp:1051 +msgid "Kein gültiger Benutzer, bitte logge dich erneut ein." +msgstr "" + +#: model/Session.cpp:1067 +msgid "Fehler beim generieren der Passphrase, der Admin bekommt eine E-Mail. " +msgstr "" diff --git a/login_server/src/cpp/controller/HederaId.h b/login_server/src/cpp/controller/HederaId.h index 5ec8dffdf..fb43cd82b 100644 --- a/login_server/src/cpp/controller/HederaId.h +++ b/login_server/src/cpp/controller/HederaId.h @@ -8,7 +8,7 @@ #include "TableControllerBase.h" -#include "../proto/hedera/BasicTypes.pb.h" +#include "proto/hedera/BasicTypes.pb.h" namespace controller { class HederaAccount; @@ -43,4 +43,4 @@ namespace controller { }; } -#endif //GRADIDO_LOGIN_SERVER_CONTROLLER_HEDERA_ID_INCLUDE \ No newline at end of file +#endif //GRADIDO_LOGIN_SERVER_CONTROLLER_HEDERA_ID_INCLUDE diff --git a/login_server/src/cpp/lib/DataTypeConverter.h b/login_server/src/cpp/lib/DataTypeConverter.h index b3fe436a5..d61944081 100644 --- a/login_server/src/cpp/lib/DataTypeConverter.h +++ b/login_server/src/cpp/lib/DataTypeConverter.h @@ -11,9 +11,9 @@ #include "Poco/JSON/Array.h" #include "../SingletonManager/LanguageManager.h" -#include "../proto/hedera/Timestamp.pb.h" -#include "../proto/hedera/Duration.pb.h" -#include "../proto/gradido/BasicTypes.pb.h" +#include "proto/hedera/Timestamp.pb.h" +#include "proto/hedera/Duration.pb.h" +#include "proto/gradido/BasicTypes.pb.h" #include "sodium.h" @@ -37,13 +37,13 @@ namespace DataTypeConverter { MemoryBin* hexToBin(const std::string& hexString); MemoryBin* base64ToBin(const std::string& base64String, int variant = sodium_base64_VARIANT_ORIGINAL); - + std::string binToBase64(const unsigned char* data, size_t size, int variant = sodium_base64_VARIANT_ORIGINAL); inline std::string binToBase64(const MemoryBin* data, int variant = sodium_base64_VARIANT_ORIGINAL) { return binToBase64(data->data(), data->size(), variant); } inline std::string binToBase64(const std::string& proto_bin, int variant = sodium_base64_VARIANT_ORIGINAL) { return binToBase64((const unsigned char*)proto_bin.data(), proto_bin.size(), variant); } - + std::string binToHex(const unsigned char* data, size_t size); std::string binToHex(const Poco::Nullable& nullableBin); inline std::string binToHex(const MemoryBin* data) { return binToHex(data->data(), data->size());} diff --git a/login_server/src/cpp/model/email/Email.cpp b/login_server/src/cpp/model/email/Email.cpp index 185f13f74..36c411413 100644 --- a/login_server/src/cpp/model/email/Email.cpp +++ b/login_server/src/cpp/model/email/Email.cpp @@ -5,7 +5,7 @@ #include "../gradido/TransactionBase.h" -#include "../lib/DataTypeConverter.h" +#include "../../lib/DataTypeConverter.h" namespace model { @@ -169,7 +169,7 @@ Gradido Login-Server\n\ std::string content_string; switch (mType) { - case EMAIL_DEFAULT: + case EMAIL_DEFAULT: mailMessage->addRecipient(adminRecipient); mailMessage->setSubject(langCatalog->gettext_str("Default Email Subject")); mailMessage->addContent(new Poco::Net::StringPartSource(langCatalog->gettext_str("Empty Email Content"), mt.toString())); @@ -180,7 +180,7 @@ Gradido Login-Server\n\ mailMessage->setSubject(langCatalog->gettext_str("Error from Gradido Login Server")); mailMessage->addContent(new Poco::Net::StringPartSource(mErrorHtml, mt.toString())); break; - + case EMAIL_USER_VERIFICATION_CODE: case EMAIL_USER_VERIFICATION_CODE_RESEND: case EMAIL_USER_VERIFICATION_CODE_RESEND_AFTER_LONG_TIME: @@ -284,7 +284,7 @@ Gradido Login-Server\n\ std::string Email::replaceUserNamesAndLink( const char* src, const std::string& first_name, - const std::string& last_name, + const std::string& last_name, const std::string& link, Poco::UInt64 code ) { @@ -300,7 +300,7 @@ Gradido Login-Server\n\ else { addError(new Error(functionName, "no first_name placeholder found")); } - + findPos = result.find("[last_name]", findCursor); if (findPos != result.npos) { findCursor = findPos + last_name.size(); @@ -438,4 +438,4 @@ Gradido Login-Server\n\ return EMAIL_ERROR; } } -} \ No newline at end of file +} diff --git a/login_server/src/cpp/model/gradido/GroupMemberUpdate.h b/login_server/src/cpp/model/gradido/GroupMemberUpdate.h index 7bd146cfd..6a58000b9 100644 --- a/login_server/src/cpp/model/gradido/GroupMemberUpdate.h +++ b/login_server/src/cpp/model/gradido/GroupMemberUpdate.h @@ -2,7 +2,7 @@ #define __GRADIDO_LOGIN_SERVER_MODEL_GRADIDO_GROUP_MEMBER_UPDATE_H #include "TransactionBase.h" -#include "../../proto/gradido/GroupMemberUpdate.pb.h" +#include "proto/gradido/GroupMemberUpdate.pb.h" namespace model { @@ -26,4 +26,4 @@ namespace model { } } -#endif \ No newline at end of file +#endif diff --git a/login_server/src/cpp/model/gradido/Transaction.cpp b/login_server/src/cpp/model/gradido/Transaction.cpp index c8708ce35..f8203651c 100644 --- a/login_server/src/cpp/model/gradido/Transaction.cpp +++ b/login_server/src/cpp/model/gradido/Transaction.cpp @@ -9,9 +9,9 @@ #include "../../controller/HederaAccount.h" #include "../../controller/HederaRequest.h" -#include "../lib/DataTypeConverter.h" -#include "../lib/Profiler.h" -#include "../lib/JsonRequest.h" +#include "../../lib/DataTypeConverter.h" +#include "../../lib/Profiler.h" +#include "../../lib/JsonRequest.h" #include "../hedera/Transaction.h" #include "../hedera/TransactionId.h" @@ -30,7 +30,7 @@ namespace model { Transaction::Transaction(Poco::AutoPtr body) : mTransactionBody(body), mBodyBytesHash(0) { - + auto body_bytes = mTransactionBody->getBodyBytes(); mBodyBytesHash = DRMakeStringHash(body_bytes.data(), body_bytes.size()); mProtoTransaction.set_body_bytes(body_bytes); @@ -50,7 +50,7 @@ namespace model { auto body_bytes = mTransactionBody->getBodyBytes(); mBodyBytesHash = DRMakeStringHash(body_bytes.data(), body_bytes.size()); } - + Transaction::~Transaction() { Poco::ScopedLock _lock(mWorkMutex); @@ -76,7 +76,7 @@ namespace model { } auto body = TransactionBody::create("", user, proto::gradido::GroupMemberUpdate_MemberUpdateType_ADD_USER, group_model->getAlias()); - + Poco::AutoPtr result = new Transaction(body); auto model = result->getModel(); model->setHederaId(topic_id->getModel()->getID()); @@ -87,7 +87,7 @@ namespace model { Poco::AutoPtr Transaction::createCreation( Poco::AutoPtr receiver, - Poco::UInt32 amount, + Poco::UInt32 amount, Poco::DateTime targetDate, const std::string& memo, BlockchainType blockchainType @@ -101,7 +101,7 @@ namespace model { } auto network_type = ServerConfig::g_HederaNetworkType; auto receiver_model = receiver->getModel(); - + auto body = TransactionBody::create(memo, receiver, amount, targetDate, blockchainType); Poco::AutoPtr result = new Transaction(body); @@ -118,7 +118,7 @@ namespace model { } model->setHederaId(topic_id->getModel()->getID()); } - + result->insertPendingTaskIntoDB(receiver, model::table::TASK_TYPE_CREATION); PendingTasksManager::getInstance()->addTask(result); return result; @@ -129,7 +129,7 @@ namespace model { const MemoryBin* receiverPubkey, Poco::AutoPtr receiverGroup, Poco::UInt32 amount, - const std::string& memo, + const std::string& memo, BlockchainType blockchainType, bool inbound/* = true*/ ) @@ -143,25 +143,25 @@ namespace model { if (sender.isNull() || !sender->getModel() || !receiverPubkey || !amount) { return transaction; } - + auto sender_model = sender->getModel(); - - + + if (blockchainType == BLOCKCHAIN_MYSQL) { transaction_body = TransactionBody::create(memo, sender, receiverPubkey, amount, blockchainType); transaction = new Transaction(transaction_body); } - else if (blockchainType == BLOCKCHAIN_HEDERA) + else if (blockchainType == BLOCKCHAIN_HEDERA) { auto network_type = ServerConfig::g_HederaNetworkType; - - + + // LOCAL Transfer if (receiverGroup.isNull() || sender_model->getGroupId() == receiverGroup->getModel()->getID()) { topic_id = controller::HederaId::find(sender_model->getGroupId(), network_type); - if (topic_id.isNull()) + if (topic_id.isNull()) { em->addError(new ParamError(function_name, "could'n find topic for group: ", sender_model->getGroupId())); em->addError(new ParamError(function_name, "network type: ", network_type)); @@ -220,7 +220,7 @@ namespace model { transaction_model->setHederaId(topic_id->getModel()->getID()); } - + transaction->setParam("blockchain_type", (int)blockchainType); transaction->insertPendingTaskIntoDB(sender, model::table::TASK_TYPE_TRANSFER); PendingTasksManager::getInstance()->addTask(transaction); @@ -249,10 +249,10 @@ namespace model { } Poco::AutoPtr Transaction::createTransfer( - const MemoryBin* senderPubkey, - Poco::AutoPtr receiver, - std::string senderGroupAlias, - Poco::UInt32 amount, + const MemoryBin* senderPubkey, + Poco::AutoPtr receiver, + std::string senderGroupAlias, + Poco::UInt32 amount, const std::string& memo, BlockchainType blockchainType ) @@ -268,7 +268,7 @@ namespace model { //std::vector> bodys; auto receiver_model = receiver->getModel(); auto network_type = ServerConfig::g_HederaNetworkType; - + auto sender_groups = controller::Group::load(senderGroupAlias); if (!sender_groups.size()) { em->addError(new ParamError(function_name, "couldn't find group", senderGroupAlias)); @@ -286,10 +286,10 @@ namespace model { Poco::Timestamp pairedTransactionId; // create only inbound transaction, and outbound before sending to hedera //for (int i = 0; i < 1; i++) { - + //transaction_group = receiverGroup; //topic_group = sender_group; - + if (transaction_group.isNull()) { em->addError(new Error(function_name, "transaction group is zero, inbound")); em->sendErrorsAsEmail(); @@ -314,7 +314,7 @@ namespace model { return result; } - + Poco::AutoPtr Transaction::load(model::table::PendingTask* dbModel) { @@ -335,10 +335,10 @@ namespace model { if (!finished) { transaction->ifEnoughSignsProceed(nullptr); } - + return transaction; } - + bool Transaction::insertPendingTaskIntoDB(Poco::AutoPtr user, model::table::TaskType type) { static const char* function_name = "Transaction::insertPendingTaskIntoDB"; @@ -355,7 +355,7 @@ namespace model { model->setTaskType(type); model->setRequest(mProtoTransaction.SerializeAsString()); if (!model->insertIntoDB(true)) { - + return false; } return true; @@ -365,8 +365,8 @@ namespace model { { static const char function_name[] = "Transaction::addSign"; Poco::ScopedLock _lock(mWorkMutex); - - if (user.isNull() || !user->getModel()) + + if (user.isNull() || !user->getModel()) { addError(new Error(function_name, "error user is invalid")); return false; @@ -381,9 +381,9 @@ namespace model { } auto hash = DRMakeStringHash(bodyBytes.data(), bodyBytes.size()); - + auto sigMap = mProtoTransaction.mutable_sig_map(); - if (sigMap->sigpair_size() > 0 && mBodyBytesHash && mBodyBytesHash != hash) + if (sigMap->sigpair_size() > 0 && mBodyBytesHash && mBodyBytesHash != hash) { addError(new Error(function_name, "body bytes hash has changed and signature(s) exist already!")); return false; @@ -413,33 +413,33 @@ namespace model { auto gradido_key_pair = user->getGradidoKeyPair(); KeyPairEd25519* recovered_gradido_key_pair = nullptr; - if (!gradido_key_pair || !gradido_key_pair->hasPrivateKey()) + if (!gradido_key_pair || !gradido_key_pair->hasPrivateKey()) { - if (!user->tryLoadPassphraseUserBackup(&recovered_gradido_key_pair)) + if (!user->tryLoadPassphraseUserBackup(&recovered_gradido_key_pair)) { - if (user->setGradidoKeyPair(recovered_gradido_key_pair)) + if (user->setGradidoKeyPair(recovered_gradido_key_pair)) { user->getModel()->updatePrivkey(); } - } - else + } + else { addError(new Error(function_name, "user cannot decrypt private key")); return false; } } - + MemoryBin* sign = nullptr; - if (gradido_key_pair) + if (gradido_key_pair) { sign = gradido_key_pair->sign(bodyBytes); } - else if (recovered_gradido_key_pair) + else if (recovered_gradido_key_pair) { sign = recovered_gradido_key_pair->sign(bodyBytes); } - if (!sign) + if (!sign) { ErrorManager::getInstance()->sendErrorsAsEmail(); addError(new Error(function_name, "error by calculate signature")); @@ -457,7 +457,7 @@ namespace model { mm->releaseMemory(sign); updateRequestInDB(); - + return ifEnoughSignsProceed(user); } @@ -509,7 +509,7 @@ namespace model { // check if all signatures belong to current body bytes auto body_bytes = mProtoTransaction.body_bytes(); - for (auto it = sig_map.sigpair().begin(); it != sig_map.sigpair().end(); it++) + for (auto it = sig_map.sigpair().begin(); it != sig_map.sigpair().end(); it++) { KeyPairEd25519 key_pair((const unsigned char*)it->pubkey().data()); if (!key_pair.verify(body_bytes, it->ed25519())) { @@ -537,7 +537,7 @@ namespace model { addError(new ParamError(function_name, "user public key has invalid size: ", pubkey_size)); return false; } - for (auto it = sig_pairs.begin(); it != sig_pairs.end(); it++) + for (auto it = sig_pairs.begin(); it != sig_pairs.end(); it++) { if (it->pubkey().size() != KeyPairEd25519::getPublicKeySize()) { addError(new ParamError(function_name, "signed public key has invalid length: ", it->pubkey().size())); @@ -589,7 +589,7 @@ namespace model { static const char* function_name = "Transaction::runSendTransaction"; auto result = validate(); if (TRANSACTION_VALID_OK != result) { - if ( TRANSACTION_VALID_MISSING_SIGN == result || TRANSACTION_VALID_CODE_ERROR == result + if ( TRANSACTION_VALID_MISSING_SIGN == result || TRANSACTION_VALID_CODE_ERROR == result || TRANSACTION_VALID_MISSING_PARAM == result || TRANSCATION_VALID_INVALID_PUBKEY == result || TRANSACTION_VALID_INVALID_SIGN == result) { addError(new ParamError(function_name, "code error", TransactionValidationToString(result))); @@ -599,20 +599,20 @@ namespace model { addError(new ParamError(function_name, "validation return: ", TransactionValidationToString(result))); //sendErrorsAsEmail(); } - else + else { - + std::string error_name; std::string error_description; auto lm = LanguageManager::getInstance(); auto user_model = getUser()->getModel(); auto t = lm->getFreeCatalog(lm->languageFromString(user_model->getLanguageKey())); switch (result) { - case TRANSACTION_VALID_FORBIDDEN_SIGN: + case TRANSACTION_VALID_FORBIDDEN_SIGN: error_name = t->gettext_str("Signature Error"); error_description = t->gettext_str("Invalid signature!"); break; - case TRANSACTION_VALID_INVALID_TARGET_DATE: + case TRANSACTION_VALID_INVALID_TARGET_DATE: error_name = t->gettext_str("Creation Error"); error_description = t->gettext_str("Invalid target date! No future and only 3 month in the past."); break; @@ -628,7 +628,7 @@ namespace model { error_name = t->gettext_str("Group Error"); error_description = t->gettext_str("Invalid Group Alias! I didn't know group, please check alias and try again."); break; - default: + default: error_name = t->gettext_str("Unknown Error"); error_description = t->gettext_str("Admin gets an E-Mail"); addError(new ParamError(function_name, "unknown error", TransactionValidationToString(result))); @@ -738,7 +738,7 @@ namespace model { auto hedera_precheck_code_string = hedera_transaction_response->getPrecheckCodeString(); auto precheck_code = hedera_transaction_response->getPrecheckCode(); auto cost = hedera_transaction_response->getCost(); - + // for showing in docker std::clog << "hedera response: " << hedera_precheck_code_string << ", cost: " << cost @@ -791,7 +791,7 @@ namespace model { return -4; } return 0; - + } int Transaction::runSendTransactionMysql() { @@ -807,10 +807,10 @@ namespace model { auto base_64_message = DataTypeConverter::binToBase64(raw_message, sodium_base64_VARIANT_URLSAFE_NO_PADDING); if (base_64_message == "") { - addError(new Error(function_name, "error convert final transaction to base64")); + addError(new Error(function_name, "error convert final transaction to base64")); return -7; } - + // create json request auto user = getUser(); @@ -834,7 +834,7 @@ namespace model { } return 1; } - + getErrors(&json_request); return -1; @@ -888,8 +888,8 @@ namespace model { return json_message; } - - + + /// TASK //////////////////////// SendTransactionTask::SendTransactionTask(Poco::AutoPtr transaction) : UniLib::controller::CPUTask(ServerConfig::g_CPUScheduler), mTransaction(transaction) @@ -938,4 +938,4 @@ namespace model { } } -} \ No newline at end of file +} diff --git a/login_server/src/cpp/model/gradido/Transaction.h b/login_server/src/cpp/model/gradido/Transaction.h index 9ff59100e..87dd487a2 100644 --- a/login_server/src/cpp/model/gradido/Transaction.h +++ b/login_server/src/cpp/model/gradido/Transaction.h @@ -3,23 +3,23 @@ /* * @author: Dario Rekowski - * + * * @date: 12.10.2020 - * - * @brief: mainly for signing gradido transaction + * + * @brief: mainly for signing gradido transaction */ -#include "../../proto/gradido/GradidoTransaction.pb.h" +#include "proto/gradido/GradidoTransaction.pb.h" #include "TransactionBody.h" #include "../../tasks/GradidoTask.h" #include "../../controller/User.h" -#include "../tasks/CPUTask.h" +#include "../../tasks/CPUTask.h" namespace model { namespace gradido { - + class Transaction : public GradidoTask { @@ -32,21 +32,21 @@ namespace model { // groupMemberUpdate static Poco::AutoPtr createGroupMemberUpdate(Poco::AutoPtr user, Poco::AutoPtr group); //! \brief transfer - //! \return + //! \return static Poco::AutoPtr createTransfer( - Poco::AutoPtr sender, - const MemoryBin* receiverPubkey, - Poco::AutoPtr receiverGroup, - Poco::UInt32 amount, - const std::string& memo, + Poco::AutoPtr sender, + const MemoryBin* receiverPubkey, + Poco::AutoPtr receiverGroup, + Poco::UInt32 amount, + const std::string& memo, BlockchainType blockchainType, bool inbound = true); Poco::AutoPtr createTransfer( - const MemoryBin* senderPubkey, + const MemoryBin* senderPubkey, Poco::AutoPtr receiver, - std::string senderGroupAlias, - Poco::UInt32 amount, + std::string senderGroupAlias, + Poco::UInt32 amount, const std::string& memo, BlockchainType blockchainType); @@ -66,7 +66,7 @@ namespace model { //! \brief validate and if valid send transaction via Hedera Consensus Service to node server int runSendTransaction(); - + inline Poco::AutoPtr getTransactionBody() { Poco::ScopedLock _lock(mWorkMutex); return mTransactionBody; } //! \brief get current body bytes from proto transaction and save it into db diff --git a/login_server/src/cpp/model/gradido/TransactionBase.h b/login_server/src/cpp/model/gradido/TransactionBase.h index bea79c971..a2f97ab97 100644 --- a/login_server/src/cpp/model/gradido/TransactionBase.h +++ b/login_server/src/cpp/model/gradido/TransactionBase.h @@ -11,11 +11,11 @@ #pragma warning(disable:4800) -#include "../lib/NotificationList.h" -#include "../proto/gradido/BasicTypes.pb.h" -#include "../SingletonManager/MemoryManager.h" +#include "../../lib/NotificationList.h" +#include "proto/gradido/BasicTypes.pb.h" +#include "../../SingletonManager/MemoryManager.h" -#include "../controller/User.h" +#include "../../controller/User.h" namespace model { namespace gradido { @@ -40,7 +40,7 @@ namespace model { public: TransactionBase(const std::string& memo); virtual ~TransactionBase(); - //! \return 0 if ok, < 0 if error, > 0 if not implemented + //! \return 0 if ok, < 0 if error, > 0 if not implemented virtual int prepare() = 0; virtual TransactionValidation validate() = 0; @@ -72,4 +72,4 @@ namespace model { -#endif //GRADIDO_LOGIN_SERVER_MODEL_TRANSACTION_BASE_INCLUDE \ No newline at end of file +#endif //GRADIDO_LOGIN_SERVER_MODEL_TRANSACTION_BASE_INCLUDE diff --git a/login_server/src/cpp/model/gradido/TransactionBody.h b/login_server/src/cpp/model/gradido/TransactionBody.h index 92ad2f2b5..af7d97b27 100644 --- a/login_server/src/cpp/model/gradido/TransactionBody.h +++ b/login_server/src/cpp/model/gradido/TransactionBody.h @@ -7,7 +7,7 @@ #include "TransactionCreation.h" #include "TransactionTransfer.h" -#include "../../proto/gradido/TransactionBody.pb.h" +#include "proto/gradido/TransactionBody.pb.h" #include "../../lib/MultithreadContainer.h" @@ -39,24 +39,24 @@ namespace model { //! \brief GroupMemberUpdate Transaction static Poco::AutoPtr create(const std::string& memo, Poco::AutoPtr user, proto::gradido::GroupMemberUpdate_MemberUpdateType type, const std::string& targetGroupAlias); //! \brief GradidoTransfer Transaction - //! \param group if group.isNull() it is a local transfer, else cross group transfer, + //! \param group if group.isNull() it is a local transfer, else cross group transfer, //! \param group if group is same as sender group outbound, else inbound static Poco::AutoPtr create( const std::string& memo, - Poco::AutoPtr sender, - const MemoryBin* receiverPublicKey, - Poco::UInt32 amount, + Poco::AutoPtr sender, + const MemoryBin* receiverPublicKey, + Poco::UInt32 amount, BlockchainType blockchainType, - Poco::Timestamp pairedTransactionId = Poco::Timestamp(), + Poco::Timestamp pairedTransactionId = Poco::Timestamp(), Poco::AutoPtr group = nullptr ); static Poco::AutoPtr create(const std::string& memo, const MemoryBin* senderPublicKey, Poco::AutoPtr receiver, Poco::UInt32 amount, Poco::Timestamp pairedTransactionId = Poco::Timestamp(), Poco::AutoPtr group = nullptr); static Poco::AutoPtr create(const std::string& memo, const MemoryBin* senderPublicKey, const MemoryBin* receiverPublicKey, Poco::UInt32 amount, const std::string groupAlias, TransactionTransferType transferType, Poco::Timestamp pairedTransactionId = Poco::Timestamp()); //! \brief GradidoCreation Transaction static Poco::AutoPtr create( - const std::string& memo, - Poco::AutoPtr receiver, - Poco::UInt32 amount, + const std::string& memo, + Poco::AutoPtr receiver, + Poco::UInt32 amount, Poco::DateTime targetDate, BlockchainType blockchainType ); @@ -68,7 +68,7 @@ namespace model { static const char* transactionTypeToString(TransactionType type); std::string getMemo(); void setMemo(const std::string& memo); - + bool isCreation() { Poco::ScopedLock _lock(mWorkMutex); return mType == TRANSACTION_CREATION; } bool isTransfer() { Poco::ScopedLock _lock(mWorkMutex); return mType == TRANSACTION_TRANSFER; } bool isGroupMemberUpdate() { Poco::ScopedLock _lock(mWorkMutex); return mType == TRANSACTION_GROUP_MEMBER_UPDATE; } @@ -97,4 +97,4 @@ namespace model { } } -#endif //GRADIDO_LOGIN_SERVER_MODEL_GRADIDO_TRANSACTION_BASE_H \ No newline at end of file +#endif //GRADIDO_LOGIN_SERVER_MODEL_GRADIDO_TRANSACTION_BASE_H diff --git a/login_server/src/cpp/model/gradido/TransactionCreation.h b/login_server/src/cpp/model/gradido/TransactionCreation.h index 7304f49cd..5b7e592d8 100644 --- a/login_server/src/cpp/model/gradido/TransactionCreation.h +++ b/login_server/src/cpp/model/gradido/TransactionCreation.h @@ -12,8 +12,8 @@ #pragma warning(disable:4800) #include "TransactionBase.h" -#include "../proto/gradido/GradidoCreation.pb.h" -#include "../controller/User.h" +#include "proto/gradido/GradidoCreation.pb.h" +#include "../../controller/User.h" namespace model { namespace gradido { @@ -47,4 +47,4 @@ namespace model { } -#endif //GRADIDO_LOGIN_SERVER_MODEL_TRANSACTION_CREATION_INCLUDE \ No newline at end of file +#endif //GRADIDO_LOGIN_SERVER_MODEL_TRANSACTION_CREATION_INCLUDE diff --git a/login_server/src/cpp/model/gradido/TransactionTransfer.h b/login_server/src/cpp/model/gradido/TransactionTransfer.h index 57259059f..86da71207 100644 --- a/login_server/src/cpp/model/gradido/TransactionTransfer.h +++ b/login_server/src/cpp/model/gradido/TransactionTransfer.h @@ -15,7 +15,7 @@ //#include "Transaction.h" #include "../proto/gradido/GradidoTransfer.pb.h" -#include "../controller/User.h" +#include "../../controller/User.h" namespace model { namespace gradido { @@ -81,4 +81,4 @@ namespace model { } -#endif //GRADIDO_LOGIN_SERVER_MODEL_TRANSACTION_TRANSFER_INCLUDE \ No newline at end of file +#endif //GRADIDO_LOGIN_SERVER_MODEL_TRANSACTION_TRANSFER_INCLUDE diff --git a/login_server/src/cpp/model/hedera/ConsensusCreateTopic.h b/login_server/src/cpp/model/hedera/ConsensusCreateTopic.h index b639ee305..6dbd64257 100644 --- a/login_server/src/cpp/model/hedera/ConsensusCreateTopic.h +++ b/login_server/src/cpp/model/hedera/ConsensusCreateTopic.h @@ -4,11 +4,11 @@ #include "../../SingletonManager/MemoryManager.h" #include "../../controller/HederaId.h" -#include "../../proto/hedera/ConsensusCreateTopic.pb.h" +#include "proto/hedera/ConsensusCreateTopic.pb.h" namespace model { namespace hedera { - class ConsensusCreateTopic + class ConsensusCreateTopic { public: ConsensusCreateTopic(Poco::AutoPtr autoRenewHederaAccountId, Poco::UInt32 autoRenewPeriod); @@ -29,4 +29,4 @@ namespace model { } -#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_CREATE_TOPIC_H \ No newline at end of file +#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_CREATE_TOPIC_H diff --git a/login_server/src/cpp/model/hedera/ConsensusSubmitMessage.h b/login_server/src/cpp/model/hedera/ConsensusSubmitMessage.h index d08b72279..30b18664f 100644 --- a/login_server/src/cpp/model/hedera/ConsensusSubmitMessage.h +++ b/login_server/src/cpp/model/hedera/ConsensusSubmitMessage.h @@ -1,7 +1,7 @@ #ifndef __GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_SUBMIT_MESSAGE_H #define __GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_SUBMIT_MESSAGE_H -#include "../../proto/hedera/ConsensusSubmitMessage.pb.h" +#include "proto/hedera/ConsensusSubmitMessage.pb.h" #include "../../controller/HederaId.h" namespace model { @@ -20,7 +20,7 @@ namespace model { bool validate(); - + protected: proto::ConsensusSubmitMessageTransactionBody* mConsensusMessageBody; @@ -29,4 +29,4 @@ namespace model { } } -#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_SUBMIT_MESSAGE_H \ No newline at end of file +#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_SUBMIT_MESSAGE_H diff --git a/login_server/src/cpp/model/hedera/ConsensusTopicInfo.h b/login_server/src/cpp/model/hedera/ConsensusTopicInfo.h index 123b9496b..c25819498 100644 --- a/login_server/src/cpp/model/hedera/ConsensusTopicInfo.h +++ b/login_server/src/cpp/model/hedera/ConsensusTopicInfo.h @@ -2,7 +2,7 @@ #define __GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_GET_TOPIC_INFO_RESPONSE_H #include "../proto/hedera/ConsensusTopicInfo.pb.h" -#include "../SingletonManager/MemoryManager.h" +#include "../../SingletonManager/MemoryManager.h" #include "../../lib/DataTypeConverter.h" #include "Poco/DateTime.h" @@ -31,4 +31,4 @@ namespace model } } -#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_GET_TOPIC_INFO_RESPONSE_H \ No newline at end of file +#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_GET_TOPIC_INFO_RESPONSE_H diff --git a/login_server/src/cpp/model/hedera/CryptoCreateTransaction.h b/login_server/src/cpp/model/hedera/CryptoCreateTransaction.h index 7182f3506..8cb4f9039 100644 --- a/login_server/src/cpp/model/hedera/CryptoCreateTransaction.h +++ b/login_server/src/cpp/model/hedera/CryptoCreateTransaction.h @@ -1,9 +1,9 @@ #ifndef __GRADIDO_LOGIN_MODEL_HEDERA_CRYPTO_CREATE_TRANSACTION_H #define __GRADIDO_LOGIN_MODEL_HEDERA_CRYPTO_CREATE_TRANSACTION_H -#include "../../proto/hedera/CryptoCreate.pb.h" +#include "proto/hedera/CryptoCreate.pb.h" -#include "../Crypto/KeyPairHedera.h" +#include "../../Crypto/KeyPairHedera.h" namespace model { namespace hedera { @@ -28,4 +28,4 @@ namespace model { -#endif //__GRADIDO_LOGIN_MODEL_HEDERA_CRYPTO_CREATE_TRANSACTION_H \ No newline at end of file +#endif //__GRADIDO_LOGIN_MODEL_HEDERA_CRYPTO_CREATE_TRANSACTION_H diff --git a/login_server/src/cpp/model/hedera/CryptoTransferTransaction.h b/login_server/src/cpp/model/hedera/CryptoTransferTransaction.h index 21d9bd3c3..6b1db2405 100644 --- a/login_server/src/cpp/model/hedera/CryptoTransferTransaction.h +++ b/login_server/src/cpp/model/hedera/CryptoTransferTransaction.h @@ -10,7 +10,7 @@ * */ -#include "../../proto/hedera/CryptoTransfer.pb.h" +#include "proto/hedera/CryptoTransfer.pb.h" #include "../../controller/HederaId.h" namespace model { @@ -37,4 +37,4 @@ namespace model { } -#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CRYPTO_TRANSFER_TRANSACTION_H \ No newline at end of file +#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CRYPTO_TRANSFER_TRANSACTION_H diff --git a/login_server/src/cpp/model/hedera/Query.h b/login_server/src/cpp/model/hedera/Query.h index 0f149684c..4ed22d5b4 100644 --- a/login_server/src/cpp/model/hedera/Query.h +++ b/login_server/src/cpp/model/hedera/Query.h @@ -3,14 +3,14 @@ /*! * @author: Dario Rekowski - * + * * @date: 31.08.20 - * + * * @brief: class for put together hedera querys (ask for state data, not a transaction, but needs a payment transaction) * */ -#include "../../proto/hedera/Query.pb.h" +#include "proto/hedera/Query.pb.h" #include "../../controller/NodeServer.h" #include "../../Crypto/KeyPairHedera.h" #include "TransactionBody.h" @@ -39,7 +39,7 @@ namespace model { void setResponseType(proto::ResponseType type); proto::ResponseType getResponseType(); inline bool setTransactionFee(Poco::UInt64 fee) { return mTransactionBody->updateCryptoTransferAmount(fee);} - + inline const proto::Query* getProtoQuery() const { return &mQueryProto; } std::string getConnectionString() const; @@ -57,4 +57,4 @@ namespace model { } -#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_QUERY_H \ No newline at end of file +#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_QUERY_H diff --git a/login_server/src/cpp/model/hedera/Response.h b/login_server/src/cpp/model/hedera/Response.h index ea2445774..af5a36d80 100644 --- a/login_server/src/cpp/model/hedera/Response.h +++ b/login_server/src/cpp/model/hedera/Response.h @@ -10,7 +10,7 @@ * */ -#include "../../proto/hedera/Response.pb.h" +#include "proto/hedera/Response.pb.h" #include "ConsensusTopicInfo.h" #include "TransactionReceipt.h" #include "TransactionRecord.h" @@ -23,7 +23,7 @@ namespace model { public: Response(); ~Response(); - + inline proto::Response* getResponsePtr() { return &mResponseProto; } Poco::UInt64 getAccountBalance(); std::unique_ptr getConsensusTopicInfo(); @@ -31,17 +31,17 @@ namespace model { TransactionRecord* getTransactionRecord(); Poco::UInt64 getQueryCost(); proto::ResponseCodeEnum getResponseCode(); - + inline bool isCryptoGetAccountBalanceResponse() { return mResponseProto.has_cryptogetaccountbalance(); } inline bool isConsensusGetTopicInfoResponse() { return mResponseProto.has_consensusgettopicinfo(); } protected: proto::Response mResponseProto; - + }; } } -#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_RESPONSE_H \ No newline at end of file +#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_RESPONSE_H diff --git a/login_server/src/cpp/model/hedera/Transaction.h b/login_server/src/cpp/model/hedera/Transaction.h index 63d273eb0..6ba7e9511 100644 --- a/login_server/src/cpp/model/hedera/Transaction.h +++ b/login_server/src/cpp/model/hedera/Transaction.h @@ -10,7 +10,7 @@ * */ -#include "../../proto/hedera/Transaction.pb.h" +#include "proto/hedera/Transaction.pb.h" #include "../../Crypto/KeyPairHedera.h" #include "TransactionBody.h" @@ -25,7 +25,7 @@ namespace model { bool sign(std::unique_ptr keyPairHedera, const TransactionBody* transactionBody); bool sign(std::unique_ptr keyPairHedera, std::unique_ptr transactionBody); - + inline proto::Transaction* getTransaction() { return mTransaction; } inline std::string getConnectionString() const { return mConnection.getUriWithPort(); } const controller::NodeServerConnection& getConnection() const { return mConnection; } @@ -43,4 +43,4 @@ namespace model { } -#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_H \ No newline at end of file +#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_H diff --git a/login_server/src/cpp/model/hedera/TransactionBody.h b/login_server/src/cpp/model/hedera/TransactionBody.h index b9c25d0c4..c9975a42f 100644 --- a/login_server/src/cpp/model/hedera/TransactionBody.h +++ b/login_server/src/cpp/model/hedera/TransactionBody.h @@ -17,7 +17,7 @@ #include "ConsensusCreateTopic.h" #include "ConsensusSubmitMessage.h" -#include "../../proto/hedera/TransactionBody.pb.h" +#include "proto/hedera/TransactionBody.pb.h" namespace model { namespace hedera { @@ -44,7 +44,7 @@ namespace model { bool setCryptoCreate(CryptoCreateTransaction& cryptoCreateTransaction); bool setCreateTopic(ConsensusCreateTopic& consensusCreateTopicTransaction); bool setConsensusSubmitMessage(ConsensusSubmitMessage& consensusSubmitMessageTransaction); - //bool + //bool inline const proto::TransactionBody* getProtoTransactionBody() const { return &mTransactionBody; } inline std::string getConnectionString() const { return mConnection.getUriWithPort(); } @@ -54,7 +54,7 @@ namespace model { void updateTimestamp(); protected: - + proto::TransactionBody mTransactionBody; controller::NodeServerConnection mConnection; bool mHasBody; @@ -64,4 +64,4 @@ namespace model { } -#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_BODY_H \ No newline at end of file +#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_BODY_H diff --git a/login_server/src/cpp/model/hedera/TransactionGetReceiptQuery.h b/login_server/src/cpp/model/hedera/TransactionGetReceiptQuery.h index bf035a941..725f6b33e 100644 --- a/login_server/src/cpp/model/hedera/TransactionGetReceiptQuery.h +++ b/login_server/src/cpp/model/hedera/TransactionGetReceiptQuery.h @@ -2,7 +2,7 @@ #define GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_GET_RECEIPT_QUERY_H #include "QueryHeader.h" -#include "../../proto/hedera/TransactionGetReceipt.pb.h" +#include "proto/hedera/TransactionGetReceipt.pb.h" namespace model { namespace hedera { @@ -19,11 +19,11 @@ namespace model { protected: Poco::AutoPtr mQueryHeader; proto::TransactionGetReceiptQuery mProtoReceiptQuery; - + }; } } -#endif //GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_GET_RECEIPT_QUERY_H \ No newline at end of file +#endif //GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_GET_RECEIPT_QUERY_H diff --git a/login_server/src/cpp/model/hedera/TransactionId.h b/login_server/src/cpp/model/hedera/TransactionId.h index dcc877271..3f8c5114b 100644 --- a/login_server/src/cpp/model/hedera/TransactionId.h +++ b/login_server/src/cpp/model/hedera/TransactionId.h @@ -10,7 +10,7 @@ * */ -#include "../../proto/hedera/BasicTypes.pb.h" +#include "proto/hedera/BasicTypes.pb.h" #include "Poco/JSON/Object.h" @@ -26,7 +26,7 @@ namespace model { Poco::JSON::Object::Ptr convertToJSON(); - protected: + protected: Poco::Timestamp mTransactionValidStart; union { struct { @@ -41,4 +41,4 @@ namespace model { } -#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_ID_H \ No newline at end of file +#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_ID_H diff --git a/login_server/src/cpp/model/hedera/TransactionRecord.h b/login_server/src/cpp/model/hedera/TransactionRecord.h index d14f42303..15ec1c4b3 100644 --- a/login_server/src/cpp/model/hedera/TransactionRecord.h +++ b/login_server/src/cpp/model/hedera/TransactionRecord.h @@ -1,11 +1,11 @@ #ifndef __GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_RECORD_H #define __GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_RECORD_H -#include "../../proto/hedera/TransactionRecord.pb.h" +#include "proto/hedera/TransactionRecord.pb.h" namespace model { - namespace hedera + namespace hedera { class TransactionRecord { diff --git a/login_server/src/cpp/model/hedera/TransactionResponse.h b/login_server/src/cpp/model/hedera/TransactionResponse.h index 325cbe73f..2f6293191 100644 --- a/login_server/src/cpp/model/hedera/TransactionResponse.h +++ b/login_server/src/cpp/model/hedera/TransactionResponse.h @@ -1,7 +1,7 @@ #ifndef __GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_RESPONSE_H #define __GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_RESPONSE_H -#include "../../proto/hedera/TransactionResponse.pb.h" +#include "proto/hedera/TransactionResponse.pb.h" #include "Poco/Types.h" namespace model { @@ -27,4 +27,4 @@ namespace model { -#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_RESPONSE_H \ No newline at end of file +#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_RESPONSE_H diff --git a/login_server/src/cpp/test/controller/TestHederaAccount.cpp b/login_server/src/cpp/test/controller/TestHederaAccount.cpp index 772377d2e..aaeaea723 100644 --- a/login_server/src/cpp/test/controller/TestHederaAccount.cpp +++ b/login_server/src/cpp/test/controller/TestHederaAccount.cpp @@ -1,12 +1,12 @@ #include "TestHederaAccount.h" -#include "../SingletonManager/ConnectionManager.h" +#include "../../SingletonManager/ConnectionManager.h" namespace controller { void TestHederaAccount::SetUp() { - + } - + TEST_F(TestHederaAccount, TestPick) { auto hedera_account = controller::HederaAccount::pick(ServerConfig::HEDERA_TESTNET, false); EXPECT_FALSE(hedera_account.isNull()); diff --git a/login_server/src/cpp/test/controller/TestHederaAccount.h b/login_server/src/cpp/test/controller/TestHederaAccount.h index 7e8e7843a..721ba17e8 100644 --- a/login_server/src/cpp/test/controller/TestHederaAccount.h +++ b/login_server/src/cpp/test/controller/TestHederaAccount.h @@ -1,6 +1,6 @@ #include "gtest/gtest.h" -#include "../controller/HederaAccount.h" +#include "../../controller/HederaAccount.h" namespace controller { @@ -10,4 +10,4 @@ namespace controller { void SetUp() override; }; -} \ No newline at end of file +} diff --git a/login_server/src/cpp/test/controller/TestHederaId.cpp b/login_server/src/cpp/test/controller/TestHederaId.cpp index c2fed10dd..d08dc7e59 100644 --- a/login_server/src/cpp/test/controller/TestHederaId.cpp +++ b/login_server/src/cpp/test/controller/TestHederaId.cpp @@ -1,5 +1,5 @@ #include "TestHederaId.h" -#include "../SingletonManager/ConnectionManager.h" +#include "../../SingletonManager/ConnectionManager.h" namespace controller { void TestHederaId::SetUp() diff --git a/login_server/src/cpp/test/controller/TestHederaId.h b/login_server/src/cpp/test/controller/TestHederaId.h index b6e4b574e..e19b56862 100644 --- a/login_server/src/cpp/test/controller/TestHederaId.h +++ b/login_server/src/cpp/test/controller/TestHederaId.h @@ -1,6 +1,6 @@ #include "gtest/gtest.h" -#include "../controller/HederaId.h" +#include "../../controller/HederaId.h" namespace controller { @@ -10,4 +10,4 @@ namespace controller { void SetUp() override; }; -} \ No newline at end of file +} diff --git a/login_server/src/cpp/test/crypto/TestAuthenticatedEncryption.cpp b/login_server/src/cpp/test/crypto/TestAuthenticatedEncryption.cpp index e863e773d..6c292869a 100644 --- a/login_server/src/cpp/test/crypto/TestAuthenticatedEncryption.cpp +++ b/login_server/src/cpp/test/crypto/TestAuthenticatedEncryption.cpp @@ -5,7 +5,7 @@ #include "../../lib/Profiler.h" #include "../../lib/DataTypeConverter.h" -#include "../ServerConfig.h" +#include "../../ServerConfig.h" void TestAuthenticatedEncryption::SetUp() { @@ -39,4 +39,4 @@ TEST_F(TestAuthenticatedEncryption, encryptDecryptTest) { EXPECT_EQ(std::string((const char*)*decrypted_message, decrypted_message->size()), test_message); // */ -} \ No newline at end of file +} From 8f81d81cfc63631d06f07597a36d56285346b885 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Mon, 3 May 2021 16:52:17 +0200 Subject: [PATCH 08/18] ignore parsed file message.pot --- .gitignore | 1 + login_server/src/LOCALE/messages.pot | 431 --------------------------- 2 files changed, 1 insertion(+), 431 deletions(-) delete mode 100644 login_server/src/LOCALE/messages.pot diff --git a/.gitignore b/.gitignore index 5c23ad8bd..0539fb6eb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.log /node_modules/* .vscode +messages.pot diff --git a/login_server/src/LOCALE/messages.pot b/login_server/src/LOCALE/messages.pot deleted file mode 100644 index 568881671..000000000 --- a/login_server/src/LOCALE/messages.pot +++ /dev/null @@ -1,431 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-04-26 22:00+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:181 -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:260 -msgid "Login" -msgstr "" - -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:181 -msgid "E-Mail or password isn't right, please try again!" -msgstr "" - -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:190 -msgid "Passwort" -msgstr "" - -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:190 -msgid "" -"Passwort wird noch berechnet, bitte versuche es in etwa 1 Minute erneut." -msgstr "" - -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:193 -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:196 -msgid "User" -msgstr "" - -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:193 -msgid "Error in saved data, the server admin will look at it." -msgstr "" - -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:196 -msgid "Benutzer ist deaktiviert, kein Login möglich!" -msgstr "" - -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:260 -msgid "Username and password are needed!" -msgstr "" - -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:290 -#: model/Session.cpp:164 model/Session.cpp:171 model/Session.cpp:219 -#: model/Session.cpp:229 -msgid "E-Mail" -msgstr "" - -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:291 -msgid "Password" -msgstr "" - -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:292 -msgid " Login " -msgstr "" - -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:297 -msgid "You haven't any account yet? Please follow the link to create one." -msgstr "" - -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:299 -msgid "Create New Account" -msgstr "" - -#: F:\Gradido\gradido_stage2_local\login_server\src\cpsp\login.cpsp:303 -msgid "Passwort vergessen" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:73 -msgid "E-Mail verifizieren" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:78 -msgid "" -"Deine E-Mail wurde erfolgreich bestätigt. Du kannst nun Gradidos versenden." -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:79 -msgid "Zur Startseite" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:81 -msgid "Bitte gib deinen E-Mail Verification Code ein:" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:82 -#: model/Session.cpp:187 -msgid "Email Verification Code" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:83 -msgid "Überprüfe Code" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:86 -msgid "Du hast bisher keinen Code erhalten?" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:87 -msgid "E-Mail erneut zuschicken (in Arbeit)" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:90 -msgid "Funktioniert dein E-Mail Verification Code nicht?" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:91 -msgid "Schicke uns eine E-Mail und wir kümmern uns darum: " -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\checkEmail.cpsp:92 -#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:151 -msgid "E-Mail an Support schicken" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:113 -#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:124 -msgid "Gib bitte hier deine E-Mail Adresse an:" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:116 -msgid "Bestätigen" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:126 -msgid "Hast du dir deine Passphrase notiert oder gemerkt?" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:131 -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:206 -msgid "Ja" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:136 -msgid "Nein" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:140 -msgid "Absenden" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:145 -msgid "Dir wird eine E-Mail zugeschickt um dein Passwort zurückzusetzen." -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:147 -msgid "Der Admin hat eine E-Mail bekommen und wird sich bei dir melden." -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:149 -msgid "" -"Du hast bereits eine E-Mail bekommen. Bitte schau auch in dein Spam-" -"Verzeichnis nach. " -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\resetPassword.cpsp:150 -msgid "" -"Du hast wirklich keine E-Mail erhalten und auch schon ein paar Minuten " -"gewartet?" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:26 -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:96 -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:117 -#: model/Session.cpp:463 model/Session.cpp:475 model/Session.cpp:489 -msgid "Passphrase" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:27 -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:266 -msgid "Neues Konto anlegen" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:28 -msgid "2/3" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:96 -msgid "" -"Diese Passphrase ist ungültig, bitte überprüfen oder neu " -"generieren (lassen)." -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:117 -msgid "intern error please try again later" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:132 -msgid "3/3" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:135 -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:138 -msgid "1/3" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:137 -msgid "Neues Passwort anlegen" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:148 -msgid "Passphrase abschreiben" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:159 -msgid "Was ist eine Passphrase?" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:160 -msgid "Deine Passphrase besteht aus den im grünen Feld angezeigten Wörtern." -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:161 -msgid "Sie dient deiner Sicherheit." -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:162 -msgid "" -"Du brauchst deine Passphrase um dein Konto wiederherzustellen, wenn du mal " -"dein Passwort vergessen haben solltest." -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:164 -msgid "Deine Passphrase (Groß/Kleinschreibung beachten)" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:169 -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:197 -msgid "Was zu tun ist:" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:170 -msgid "" -"Schreibe dir die obenstehende Passphrase von Hand auf ein Blatt " -"Papier!" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:171 -msgid "Speichere sie auf keinen Fall auf deinem Rechner oder Mobilgerät!!" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:172 -msgid "Bewahre sie an einem sicheren Ort auf!" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:174 -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:285 -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:290 -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:303 -msgid "Weiter" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:198 -msgid "Hast du dir deine Passphrase gemerkt?" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:199 -msgid "" -"Dann zeig es mir. Zur Unterstützung gebe ich dir deine Wörter aber in " -"anderer Reihenfolge." -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:200 -msgid "Klicke sie an um sie einzusetzen." -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:201 -msgid "Überprüfe dabei, ob du alle Wörter richtig geschrieben hast!" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:205 -msgid "" -"Weil du kein Javascript verwendest geht es direkt weiter. Hast du dir deine " -"Passphrase gemerkt oder aufgeschrieben?" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:252 -msgid "Deine E-Mail Adresse wurde erfolgreich bestätigt." -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:256 -msgid "Neue Gradido Adresse anlegen / wiederherstellen" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:257 -msgid "" -"Möchtest du ein neues Gradido-Konto anlegen oder ein bestehendes " -"wiederherstellen?" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:273 -msgid "Bestehendes Konto wiederherstellen" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:280 -msgid "" -"Falls du ein bestehendes Konto wiederherstellen willst, gib hier deine " -"Passphrase ein:" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:297 -msgid "Konto wiederherstellen / Neues Passwort anlegen" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:299 -msgid "" -"Um dein Konto wiederherzustellen und dir ein Neues Passwort auswählen zu " -"können, tippe hier bitte die Wörter deiner Passphrase in der richtigen " -"Reihenfolge ein, welche du dir aufgeschrieben hast." -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:313 -msgid "Fehler" -msgstr "" - -#: F:\Gradido\gradido_login_server\src\cpsp\passphrase.cpsp:314 -msgid "" -"Ungültige Seite, wenn du das siehst stimmt hier etwas nicht. Bitte wende " -"dich an den Server-Admin." -msgstr "" - -#: model/Session.cpp:150 model/Session.cpp:180 model/Session.cpp:769 -#: model/Session.cpp:775 model/Session.cpp:1051 model/Session.cpp:1067 -msgid "Benutzer" -msgstr "" - -#: model/Session.cpp:150 -msgid "Eingeloggter Benutzer ist kein Admin" -msgstr "" - -#: model/Session.cpp:156 model/Session.cpp:211 -msgid "Vorname" -msgstr "" - -#: model/Session.cpp:156 model/Session.cpp:160 model/Session.cpp:211 -#: model/Session.cpp:215 -msgid "" -"Bitte gebe einen Namen an. Mindestens 3 Zeichen, keines folgender Zeichen " -"<>&;" -msgstr "" - -#: model/Session.cpp:160 model/Session.cpp:215 -msgid "Nachname" -msgstr "" - -#: model/Session.cpp:164 model/Session.cpp:219 -msgid "Bitte gebe eine gültige E-Mail Adresse an." -msgstr "" - -#: model/Session.cpp:171 -msgid "Für diese E-Mail Adresse gibt es bereits einen Account" -msgstr "" - -#: model/Session.cpp:180 model/Session.cpp:187 -msgid "Fehler beim speichern!" -msgstr "" - -#: model/Session.cpp:229 -msgid "Für diese E-Mail Adresse gibt es bereits ein Konto" -msgstr "" - -#: model/Session.cpp:253 -msgid "Server" -msgstr "" - -#: model/Session.cpp:253 -msgid "Fehler beim speichen des Kontos bitte versuche es später noch einmal" -msgstr "" - -#: model/Session.cpp:348 model/Session.cpp:388 model/Session.cpp:956 -#: model/Session.cpp:965 -msgid "E-Mail Verification" -msgstr "" - -#: model/Session.cpp:348 -msgid "Du hast dein Konto bereits aktiviert!" -msgstr "" - -#: model/Session.cpp:388 -msgid "Falscher Code für aktiven Login" -msgstr "" - -#: model/Session.cpp:463 -msgid "Deine Passphrase ist ungütig" -msgstr "" - -#: model/Session.cpp:475 -msgid "Ein Fehler trat auf, bitte versuche es erneut" -msgstr "" - -#: model/Session.cpp:489 -msgid "Das ist nicht die richtige Passphrase." -msgstr "" - -#: model/Session.cpp:769 -msgid "Konnte Community Server nicht erreichen. E-Mail an den Admin ist raus." -msgstr "" - -#: model/Session.cpp:775 -msgid "" -"Fehler beim Löschen des Accounts. Bitte logge dich erneut ein und " -"versuche es nochmal." -msgstr "" - -#: model/Session.cpp:956 -msgid "Konnte kein passendes Konto finden." -msgstr "" - -#: model/Session.cpp:965 -msgid "Fehler beim laden des Benutzers." -msgstr "" - -#: model/Session.cpp:1051 -msgid "Kein gültiger Benutzer, bitte logge dich erneut ein." -msgstr "" - -#: model/Session.cpp:1067 -msgid "Fehler beim generieren der Passphrase, der Admin bekommt eine E-Mail. " -msgstr "" From 92d83161841bb69047ba4ad0c4e217012d8afab3 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Tue, 4 May 2021 11:16:56 +0200 Subject: [PATCH 09/18] alpine build works --- docker-compose.override.yml | 1 - login_server/CMakeLists.txt.lib | 116 +++++++++++++----- login_server/Dockerfile.alpine-debug | 13 +- .../Dockerfile.dependencies-alpine | 6 + login_server/scripts/build_debug.sh | 17 +-- 5 files changed, 98 insertions(+), 55 deletions(-) diff --git a/docker-compose.override.yml b/docker-compose.override.yml index a95b3dde1..20ee4dfd3 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -102,4 +102,3 @@ services: volumes: frontend_node_modules: login_build_alpine: - diff --git a/login_server/CMakeLists.txt.lib b/login_server/CMakeLists.txt.lib index 89640db06..5c0d5310c 100644 --- a/login_server/CMakeLists.txt.lib +++ b/login_server/CMakeLists.txt.lib @@ -18,25 +18,92 @@ endif() include_directories( "dependencies" "dependencies/tinf/src" - "dependencies/mariadb-connector-c/include" - "dependencies/mariadb-connector-c/build/include" "dependencies/spirit-po/include" - "dependencies/grpc/include" - "dependencies/grpc/third_party/protobuf/src" - "dependencies/grpc/third_party/googletest/googletest/include" - "dependencies/poco/Crypto/include" - "dependencies/poco/Data/include" - "dependencies/poco/Util/include" - "dependencies/poco/Foundation/include" - "dependencies/poco/JSON/include" - "dependencies/poco/Net/include" - "dependencies/poco/NetSSL_OpenSSL/include" - "src/cpp/proto" + "/usr/local/include/mariadb" + "build" + "build/proto" ) +############################## config and add grpc ################################### +find_package(Protobuf REQUIRED) +include_directories(${Protobuf_INCLUDE_DIRS}) + +FIND_PACKAGE(gRPC CONFIG REQUIRED) +find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin) + +set(PROTOC_LIB_PATH "/usr/local/lib") +find_library(PROTOBUF_LIB protobufd PATHS ${PROTOC_LIB_PATH} REQUIRED) +find_library(PROTOBUF_LITE_LIB protobuf-lited PATHS ${PROTOC_LIB_PATH} REQUIRED) +find_library(PROTOC_LIB protocd PATHS ${PROTOC_LIB_PATH} REQUIRED) + +set(DEPENDENCIES_GRPC_LIB_PATH "pre_build/dependencies/grpc/lib") +find_library(GRPC_PP_REFLECTION grpc++_reflection PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED) +find_library(GRPC_PP grpc++ PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED) +find_library(GRPC_GPR gpr PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED) +#find_library(GRPC_GRPC grpc PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED) +#set(GRPC_LIBS ${GRPC_PP_REFLECTION} ${GRPC_PP} ${GRPC_GPR}) +set(PROTOBUF_LIBS ${PROTOBUF_LIB} ${PROTOBUF_LITE_LIB} ${PROTOC_LIB}) +############################## parse proto files ################################### + +FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/proto GRADIDO_PROTO_MODEL_PATH) +FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/proto/hedera/hedera-protobuf/src/main/proto HEDERA_PROTO_MODEL_PATH) +FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build/proto PROTOBINDING_PATH) +file(MAKE_DIRECTORY ${PROTOBINDING_PATH}) +file(MAKE_DIRECTORY ${PROTOBINDING_PATH}/gradido) +file(MAKE_DIRECTORY ${PROTOBINDING_PATH}/hedera) + +FILE(GLOB DATAMODEL_GRADIDO_PROTOS "${GRADIDO_PROTO_MODEL_PATH}/gradido/*.proto") +FILE(GLOB DATAMODEL_HEDERA_PROTOS "${HEDERA_PROTO_MODEL_PATH}/*.proto") + +FOREACH(proto ${DATAMODEL_GRADIDO_PROTOS}) + FILE(TO_NATIVE_PATH ${proto} proto_native) + get_filename_component(proto_parsed ${proto} NAME_WLE) + FILE(TO_NATIVE_PATH ${PROTOBINDING_PATH}/gradido/${proto_parsed}.pb.h proto_parsed_native) + + IF(${proto_native} IS_NEWER_THAN ${proto_parsed_native}) + EXECUTE_PROCESS( + COMMAND + ${PROTOBUF_PROTOC_EXECUTABLE} + --proto_path=${GRADIDO_PROTO_MODEL_PATH} + --cpp_out=${PROTOBINDING_PATH} + ${proto_native} + RESULT_VARIABLE rv + ) + # Optional, but that can show the user if something have gone wrong with the proto generation + IF(${rv}) + MESSAGE("Generation of data model returned ${rv} for proto ${proto_native}") + ENDIF() + ENDIF() + +ENDFOREACH(proto) + +FOREACH(proto ${DATAMODEL_HEDERA_PROTOS}) + FILE(TO_NATIVE_PATH ${proto} proto_native) + get_filename_component(proto_parsed ${proto} NAME_WLE) + FILE(TO_NATIVE_PATH ${PROTOBINDING_PATH}/hedera/${proto_parsed}.pb.h proto_parsed_native) + IF(${proto_native} IS_NEWER_THAN ${proto_parsed_native}) + EXECUTE_PROCESS( + COMMAND + ${PROTOBUF_PROTOC_EXECUTABLE} + --plugin=protoc-gen-grpc=${GRPC_CPP_PLUGIN} + --proto_path=${HEDERA_PROTO_MODEL_PATH} + --proto_path=${GOOGLE_PROTOBUF_INCLUDES} + --cpp_out=${PROTOBINDING_PATH}/hedera + --grpc_out ${PROTOBINDING_PATH}/hedera + ${proto_native} + RESULT_VARIABLE rv + ) + # Optional, but that can show the user if something have gone wrong with the proto generation + IF(${rv}) + MESSAGE("Generation of data model returned ${rv} for proto ${proto_native}") + ENDIF() + ENDIF() +ENDFOREACH(proto) + +############################## include src files ################################### #set(MYSQL_INCLUDE_DIR "dependencies/mariadb-connector-c/include") FILE(GLOB CONTROLLER "src/cpp/controller/*.cpp" "src/cpp/controller/*.h") @@ -54,8 +121,8 @@ FILE(GLOB MODEL_GRADIDO "src/cpp/model/gradido/*.h" "src/cpp/model/gradido/*.cpp FILE(GLOB CRYPTO "src/cpp/Crypto/*.h" "src/cpp/Crypto/*.cpp") FILE(GLOB MAIN "src/cpp/*.cpp" "src/cpp/*.c" "src/cpp/*.h") FILE(GLOB MYSQL "src/cpp/MySQL/*.cpp" "src/cpp/MySQL/*.h" "src/cpp/MySQL/Poco/*.h") -FILE(GLOB PROTO_GRADIDO "src/cpp/proto/gradido/*.cc" "src/cpp/proto/gradido/*.h") -FILE(GLOB PROTO_HEDERA "src/cpp/proto/hedera/*.cc" "src/cpp/proto/hedera/*.h") +FILE(GLOB PROTO_GRADIDO "${PROTOBINDING_PATH}/gradido/*.cc" "${PROTOBINDING_PATH}/gradido/*.h") +FILE(GLOB PROTO_HEDERA "${PROTOBINDING_PATH}/hedera/*.cc" "${PROTOBINDING_PATH}/hedera/*.h") # used only for test project FILE(GLOB TEST "src/cpp/test/*.cpp" "src/cpp/test/*.h") @@ -103,12 +170,11 @@ endif() add_executable(Gradido_LoginServer ${LOCAL_SRCS}) -############################## config and add mariadb ################################### - -find_library(MYSQL_LIBRARIES mariadbd PATHS "pre_build/dependencies/mariadb-connector-c/libmariadb/lib" REQUIRED) - +############################## find mariadb ################################### +find_library(MYSQL_LIBRARIES mariadb PATHS "/usr/local/lib/mariadb" REQUIRED) ############################## config and add poco ################################### -set(BUILD_LIB_PATH "pre_build/lib") +set(BUILD_LIB_PATH "(/usr/local/lib") + find_library(POCO_FOUNDATION_LIB PocoFoundationd PATHS ${BUILD_LIB_PATH} REQUIRED) find_library(POCO_UTIL_LIB PocoUtild PATHS ${BUILD_LIB_PATH} REQUIRED) find_library(POCO_NET_SSL_LIB PocoNetSSLd PATHS ${BUILD_LIB_PATH} REQUIRED) @@ -118,16 +184,8 @@ find_library(POCO_NET_LIB PocoNetd PATHS ${BUILD_LIB_PATH} REQUIRED) set(POCO_LIBS ${POCO_FOUNDATION_LIB} ${POCO_UTIL_LIB} ${POCO_NET_SSL_LIB} ${POCO_DATA_LIB} ${POCO_JSON_LIB} ${POCO_NET_LIB}) -############################## config and add grpc ################################### - -find_library(PROTOBUF_LIB protobufd PATHS "pre_build/dependencies/grpc/third_party/protobuf/lib" REQUIRED) -set(DEPENDENCIES_GRPC_LIB_PATH "pre_build/dependencies/grpc/lib") -find_library(GRPC_PP_REFLECTION grpc++_reflectiond PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED) -find_library(GRPC_PP grpc++d PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED) - -set(GRPC_LIBS, ${GRPC_PP_REFLECTION} ${GRPC_PP} ${PROTOBUF_LIB}) ############################## build login server ################################### -target_link_libraries(Gradido_LoginServer ${GRPC_LIBS} ${POCO_LIBS} ${MYSQL_LIBRARIES} sodium) +target_link_libraries(Gradido_LoginServer gRPC::grpc++ ${PROTOBUF_LIBS} ${MYSQL_LIBRARIES} ${POCO_LIBS} sodium pthread) diff --git a/login_server/Dockerfile.alpine-debug b/login_server/Dockerfile.alpine-debug index 3ca2b5da3..948d434d1 100644 --- a/login_server/Dockerfile.alpine-debug +++ b/login_server/Dockerfile.alpine-debug @@ -1,4 +1,4 @@ -FROM gradido/login_dependencies:alpine-stage2.1 as login_server_alpine_debug +FROM gradido/login_dependencies:alpine-debug-1 as login_server_alpine_debug ENV DOCKER_WORKDIR="/code" @@ -8,14 +8,7 @@ EXPOSE 1201 WORKDIR ${DOCKER_WORKDIR} COPY ./CMakeLists.txt.lib ./CMakeLists.txt -RUN ls -la ${DOCKER_WORKDIR}/pre_build && \ - ls -la ${DOCKER_WORKDIR}/pre_build/lib && \ - ls -la ${DOCKER_WORKDIR}/pre_build/dependencies && \ - ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/third_party/protobuf/lib && \ - ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/grpc/lib && \ - ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/mariadb-connector-c/ && \ - ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/mariadb-connector-c/libmariadb && \ - ls -la ${DOCKER_WORKDIR}/pre_build/dependencies/mariadb-connector-c/libmariadb/lib +COPY ./scripts ./scripts -CMD cp -r ${DOCKER_WORKDIR}/pre_build/bin ${DOCKER_WORKDIR}/build/bin; cd scripts; ./prepare_build.sh; ./build_debug.sh; cd ..; ./build/bin/Gradido_LoginServer +CMD cd scripts; ./build_debug.sh; cd ..; ./build/bin/Gradido_LoginServer diff --git a/login_server/Dockerfiles/Dockerfile.dependencies-alpine b/login_server/Dockerfiles/Dockerfile.dependencies-alpine index ef4d74dd6..a2cc3225c 100644 --- a/login_server/Dockerfiles/Dockerfile.dependencies-alpine +++ b/login_server/Dockerfiles/Dockerfile.dependencies-alpine @@ -26,6 +26,12 @@ RUN git clone https://github.com/grpc/grpc.git --branch=v1.37.0 --recursive -j4 cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE .. && make -j$(nproc) && \ make install +# abseil don't install themself correctly +RUN cp -r grpc/third_party/abseil-cpp/absl /usr/local/include/ + +# protobuf libs missing after make install +RUN cp grpc/build/third_party/protobuf/*.a /usr/local/lib/ + ######### BUILD poco ############## FROM alpine-gxx-cmake as alpine-gxx-poco diff --git a/login_server/scripts/build_debug.sh b/login_server/scripts/build_debug.sh index 9f6158da8..84356018e 100755 --- a/login_server/scripts/build_debug.sh +++ b/login_server/scripts/build_debug.sh @@ -1,25 +1,12 @@ #!/bin/sh -cd ../build -cmake -DCMAKE_BUILD_TYPE=Debug .. -if [ ! -f "./bin/protoc" ] ; then - make -j$(nproc) protoc - cp ./dependencies/grpc/third_party/protobuf/bin/* ./bin/ -fi -if [ ! -f "./bin/grpc_cpp_plugin" ] ; then - make -j$(nproc) grpc_cpp_plugin - cp ./dependencies/grpc/bin/grpc_cpp_plugin ./bin/grpc_cpp_plugin -fi cd ../scripts -if [ ! -d "./src/cpp/proto/hedera" ] ; then - chmod +x unix_parse_proto.sh - ./unix_parse_proto.sh -fi + chmod +x compile_pot.sh ./compile_pot.sh cd ../build cmake -DCMAKE_BUILD_TYPE=Debug .. -make -j$(nproc) Gradido_LoginServer PageCompiler +make -j$(nproc) Gradido_LoginServer chmod +x ./bin/Gradido_LoginServer From efc7c8bc2d87dc0d40bcf0f0ad57c77273b3df06 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Tue, 4 May 2021 11:56:16 +0200 Subject: [PATCH 10/18] update release build, use also prebuild alpine dependencies --- login_server/CMakeLists.txt.lib | 38 +++++++++-------- login_server/Dockerfile | 72 +++++++++------------------------ 2 files changed, 37 insertions(+), 73 deletions(-) diff --git a/login_server/CMakeLists.txt.lib b/login_server/CMakeLists.txt.lib index 5c0d5310c..6de10f72e 100644 --- a/login_server/CMakeLists.txt.lib +++ b/login_server/CMakeLists.txt.lib @@ -31,20 +31,7 @@ include_directories(${Protobuf_INCLUDE_DIRS}) FIND_PACKAGE(gRPC CONFIG REQUIRED) find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin) -set(PROTOC_LIB_PATH "/usr/local/lib") -find_library(PROTOBUF_LIB protobufd PATHS ${PROTOC_LIB_PATH} REQUIRED) -find_library(PROTOBUF_LITE_LIB protobuf-lited PATHS ${PROTOC_LIB_PATH} REQUIRED) -find_library(PROTOC_LIB protocd PATHS ${PROTOC_LIB_PATH} REQUIRED) - -set(DEPENDENCIES_GRPC_LIB_PATH "pre_build/dependencies/grpc/lib") -find_library(GRPC_PP_REFLECTION grpc++_reflection PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED) -find_library(GRPC_PP grpc++ PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED) -find_library(GRPC_GPR gpr PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED) -#find_library(GRPC_GRPC grpc PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED) - - -#set(GRPC_LIBS ${GRPC_PP_REFLECTION} ${GRPC_PP} ${GRPC_GPR}) -set(PROTOBUF_LIBS ${PROTOBUF_LIB} ${PROTOBUF_LITE_LIB} ${PROTOC_LIB}) +set(PROTOBUF_LIBS protobuf::libprotobuf protobuf::libprotobuf-lite protobuf::libprotoc) ############################## parse proto files ################################### @@ -175,12 +162,23 @@ find_library(MYSQL_LIBRARIES mariadb PATHS "/usr/local/lib/mariadb" REQUIRED) ############################## config and add poco ################################### set(BUILD_LIB_PATH "(/usr/local/lib") -find_library(POCO_FOUNDATION_LIB PocoFoundationd PATHS ${BUILD_LIB_PATH} REQUIRED) -find_library(POCO_UTIL_LIB PocoUtild PATHS ${BUILD_LIB_PATH} REQUIRED) -find_library(POCO_NET_SSL_LIB PocoNetSSLd PATHS ${BUILD_LIB_PATH} REQUIRED) -find_library(POCO_DATA_LIB PocoDatad PATHS ${BUILD_LIB_PATH} REQUIRED) -find_library(POCO_JSON_LIB PocoJSONd PATHS ${BUILD_LIB_PATH} REQUIRED) -find_library(POCO_NET_LIB PocoNetd PATHS ${BUILD_LIB_PATH} REQUIRED) +IF(CMAKE_BUILD_TYPE MATCHES Debug) + find_library(POCO_FOUNDATION_LIB PocoFoundationd PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_UTIL_LIB PocoUtild PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_NET_SSL_LIB PocoNetSSLd PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_DATA_LIB PocoDatad PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_JSON_LIB PocoJSONd PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_NET_LIB PocoNetd PATHS ${BUILD_LIB_PATH} REQUIRED) + message("use Poco Debug libs") +ELSE() + find_library(POCO_FOUNDATION_LIB PocoFoundation PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_UTIL_LIB PocoUtil PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_NET_SSL_LIB PocoNetSSL PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_DATA_LIB PocoData PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_JSON_LIB PocoJSON PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_NET_LIB PocoNet PATHS ${BUILD_LIB_PATH} REQUIRED) + message("use Poco Release libs") +ENDIF() set(POCO_LIBS ${POCO_FOUNDATION_LIB} ${POCO_UTIL_LIB} ${POCO_NET_SSL_LIB} ${POCO_DATA_LIB} ${POCO_JSON_LIB} ${POCO_NET_LIB}) diff --git a/login_server/Dockerfile b/login_server/Dockerfile index 0c7ff2849..93ff96978 100644 --- a/login_server/Dockerfile +++ b/login_server/Dockerfile @@ -1,76 +1,42 @@ -######################################################################################################### -# cmake -######################################################################################################### -FROM gcc:9 as cmake-gcc-9 - -ENV DOCKER_WORKDIR="/code" -RUN mkdir -p ${DOCKER_WORKDIR} -WORKDIR ${DOCKER_WORKDIR} - -USER root - -RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 \ - && cd CMake \ - && ./bootstrap \ - && make -j${nproc} \ - && make install - - ######################################################################################################### # Build release ######################################################################################################### -From cmake-gcc-9 as release +FROM gradido/login_dependencies:alpine-release-1 as release ENV DOCKER_WORKDIR="/code" - -USER root - -RUN apt-get update \ - && apt-get -y --no-install-recommends install libboost-all-dev gettext \ - && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* - -RUN mkdir -p ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR} -COPY . . - -RUN cd dependencies/mariadb-connector-c && \ - mkdir build && \ - cd build && \ - cmake -DWITH_SSL=OFF .. - -RUN chmod +x compile_pot.sh && ./compile_pot.sh - +COPY ./CMakeLists.txt.lib ./CMakeLists.txt +COPY ./src ./src +COPY ./dependencies ./dependencies +COPY ./scripts ./scripts +RUN cd scripts && \ + chmod +x compile_pot.sh && \ + ./compile_pot.sh + RUN mkdir build && \ cd build && \ - cmake .. && \ - make -j$(nproc) protoc grpc_cpp_plugin - -RUN chmod +x unix_parse_proto.sh && ./unix_parse_proto.sh + cmake -DCMAKE_BUILD_TYPE=Release .. && \ + make -j$(nproc) Gradido_LoginServer -RUN cd build && \ - cmake .. && \ - make -j$(nproc) Gradido_LoginServer - -CMD ["./code"] ######################################################################################################### # run release ######################################################################################################### #From alpine:latest as login_server -FROM ubuntu:latest as login_server +FROM alpine:3.13.5 as login_server USER root WORKDIR "/usr/bin" -RUN apt-get update \ - && apt-get -y --no-install-recommends install libsodium-dev libssl-dev \ - && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* - COPY --from=release /code/build/bin/Gradido_LoginServer /usr/bin/ -COPY --from=release /code/build/lib/*.so.64 /usr/lib/ -COPY --from=release /code/build/dependencies/mariadb-connector-c/libmariadb/libmariadb.so.3 /usr/lib/ -#COPY --from=release /code/build/lib/libmariadb.so.3 /usr/lib/ + +COPY --from=release /usr/local/lib/mariadb/libmariadb.so.3 /usr/local/lib/ +COPY --from=release /usr/local/lib/libPoco* /usr/local/lib/ +COPY --from=release /usr/lib/libsodium.so.23 /usr/lib/ +COPY --from=release /usr/lib/libstdc++.so.6 /usr/lib/ +COPY --from=release /usr/lib/libgcc_s.so.1 /usr/lib/ + RUN chmod +x /usr/bin/Gradido_LoginServer ENTRYPOINT ["/usr/bin/Gradido_LoginServer"] From 2b3dbc1fc5d9e4297e56362bf297fa0c6d8916c9 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Tue, 4 May 2021 12:02:48 +0200 Subject: [PATCH 11/18] use alpine build in test --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 295a3b638..8a1c00e1f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -50,7 +50,7 @@ jobs: ########################################################################## - name: login server | Build `test` image run: | - docker build --target login_server_debug -t "gradido/login_server:test" -f ./login_server/Dockerfile.debug login_server/ + docker build --target login_server_alpine_debug -t "gradido/login_server:test" -f ./login_server/Dockerfile.alpine-debug login_server/ docker save "gradido/login_server:test" > /tmp/login_server.tar - name: Upload Artifact uses: actions/upload-artifact@v2 From ab6c6160f9707fde365753f9bd4b2cd5cc00f14b Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Tue, 4 May 2021 12:04:46 +0200 Subject: [PATCH 12/18] don't checkout recursive because no needed for alpine build --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8a1c00e1f..5212f3e51 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -44,7 +44,7 @@ jobs: - name: Checkout code uses: actions/checkout@v2 with: - submodules: recursive + submodules: true ########################################################################## # BUILD LOGIN SERVER DOCKER IMAGE ######################################## ########################################################################## From b8f1c9c7e9ea3201c371a3b10a7b3cd2d922d9a1 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Tue, 4 May 2021 12:07:43 +0200 Subject: [PATCH 13/18] use release Docker because debug build in run step --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5212f3e51..688624549 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -50,7 +50,7 @@ jobs: ########################################################################## - name: login server | Build `test` image run: | - docker build --target login_server_alpine_debug -t "gradido/login_server:test" -f ./login_server/Dockerfile.alpine-debug login_server/ + docker build --target login_server -t "gradido/login_server:test" -f ./login_server/Dockerfile login_server/ docker save "gradido/login_server:test" > /tmp/login_server.tar - name: Upload Artifact uses: actions/upload-artifact@v2 From bfa9914ce43d2fac345b56dcd8e8715a294cdde1 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Tue, 4 May 2021 12:11:58 +0200 Subject: [PATCH 14/18] use recursive because else hedera protofiles are missing --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 688624549..6d854c88f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -44,7 +44,7 @@ jobs: - name: Checkout code uses: actions/checkout@v2 with: - submodules: true + submodules: recursive ########################################################################## # BUILD LOGIN SERVER DOCKER IMAGE ######################################## ########################################################################## From c407b2f38d2bac790cf430fb4210c472e7621656 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Tue, 4 May 2021 12:20:27 +0200 Subject: [PATCH 15/18] copy only needed dependencies --- login_server/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/login_server/Dockerfile b/login_server/Dockerfile index 93ff96978..bc3cb9807 100644 --- a/login_server/Dockerfile +++ b/login_server/Dockerfile @@ -8,7 +8,9 @@ WORKDIR ${DOCKER_WORKDIR} COPY ./CMakeLists.txt.lib ./CMakeLists.txt COPY ./src ./src -COPY ./dependencies ./dependencies +COPY ./dependencies/cmake-modules ./dependencies/cmake-modules +COPY ./dependencies/spirit-po ./dependencies/spirit-po +COPY ./dependencies/tinf ./dependencies/tinf COPY ./scripts ./scripts RUN cd scripts && \ chmod +x compile_pot.sh && \ From 6a8e0b48eaf8f6eff5baf8832f619c98a733539c Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 5 May 2021 14:01:31 +0200 Subject: [PATCH 16/18] fix visual studio build on windows --- login_server/CMakeLists.txt | 85 ++++++++++++++++++---------------- login_server/conanfile.txt | 8 +--- login_server/dependencies/poco | 2 +- 3 files changed, 46 insertions(+), 49 deletions(-) diff --git a/login_server/CMakeLists.txt b/login_server/CMakeLists.txt index bfa5fcb72..2813845ad 100644 --- a/login_server/CMakeLists.txt +++ b/login_server/CMakeLists.txt @@ -2,24 +2,20 @@ cmake_minimum_required(VERSION 3.18.2) project(Gradido_LoginServer C CXX) SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin" ) -SET ( CMAKE_CXX_FLAGS "-std=c++17" ) +SET(CMAKE_CXX_FLAGS "-std=c++17" ) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -if(WIN32) +IF(WIN32) set(CMAKE_CXX_FLAGS "/MP /EHsc") - set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3") - set(CMAKE_CXX_FLAGS_RELEASE "-O3") -else() - set(INSTALL_BINDIR "bin") - set(INSTALL_PLUGINDIR "bin") -endif() -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ./lib) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ./lib) +ENDIF() + +set(INSTALL_BINDIR "bin") +set(INSTALL_PLUGINDIR "bin") include_directories( "dependencies" - "dependencies/tinf/src" + "dependencies/tinf/src/" "dependencies/mariadb-connector-c/include" "dependencies/mariadb-connector-c/build/include" "dependencies/spirit-po/include" @@ -56,11 +52,10 @@ if(WIN32) endif() - set(BUILD_TESTING OFF) -set(gRPC_SSL_PROVIDER "package") +#set(gRPC_SSL_PROVIDER "package") add_subdirectory("dependencies/grpc/") -set(gRPC_SSL_PROVIDER "package") +#set(gRPC_SSL_PROVIDER "package") message(STATUS "Using gRPC via add_subdirectory.") set(GRPC_LIBS libprotobuf grpc++_reflection grpc++) @@ -77,10 +72,17 @@ file(MAKE_DIRECTORY ${PROTOBINDING_PATH}/hedera) FILE(GLOB DATAMODEL_GRADIDO_PROTOS "${GRADIDO_PROTO_MODEL_PATH}/gradido/*.proto") FILE(GLOB DATAMODEL_HEDERA_PROTOS "${HEDERA_PROTO_MODEL_PATH}/*.proto") -find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin PATHS "build/dependencies/grpc/bin" REQUIRED) -find_program(PROTOBUF_PROTOC_EXECUTABLE protoc PATHS "build/dependencies/grpc/third_party/protobuf/bin" REQUIRED) +IF(WIN32) + find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin PATHS "build/dependencies/grpc/bin/Debug") + find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin PATHS "build/dependencies/grpc/bin/Release") + find_program(PROTOBUF_PROTOC_EXECUTABLE protoc PATHS "build/dependencies/grpc/third_party/protobuf/bin/Debug" ) + find_program(PROTOBUF_PROTOC_EXECUTABLE protoc PATHS "build/dependencies/grpc/third_party/protobuf/bin/Release" ) +ELSE() + find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin PATHS "build/dependencies/grpc/bin") + find_program(PROTOBUF_PROTOC_EXECUTABLE protoc PATHS "build/dependencies/grpc/third_party/protobuf/bin" ) +ENDIF() FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/grpc/third_party/protobuf/src GOOGLE_PROTOBUF_INCLUDES) - +MESSAGE("protoc: ${PROTOBUF_PROTOC_EXECUTABLE} in build/dependencies/grpc/bin/${CMAKE_BUILD_TYPE}") FOREACH(proto ${DATAMODEL_GRADIDO_PROTOS}) FILE(TO_NATIVE_PATH ${proto} proto_native) get_filename_component(proto_parsed ${proto} NAME_WLE) @@ -129,8 +131,6 @@ ENDFOREACH(proto) ############################## bind source files ################################### -#set(MYSQL_INCLUDE_DIR "dependencies/mariadb-connector-c/include") - FILE(GLOB CONTROLLER "src/cpp/controller/*.cpp" "src/cpp/controller/*.h") FILE(GLOB TINF "dependencies/tinf/src/*.c" "dependencies/tinf/src/*.h") FILE(GLOB HTTPInterface "src/cpp/HTTPInterface/*.h" "src/cpp/HTTPInterface/*.cpp") @@ -146,8 +146,8 @@ FILE(GLOB MODEL_GRADIDO "src/cpp/model/gradido/*.h" "src/cpp/model/gradido/*.cpp FILE(GLOB CRYPTO "src/cpp/Crypto/*.h" "src/cpp/Crypto/*.cpp") FILE(GLOB MAIN "src/cpp/*.cpp" "src/cpp/*.c" "src/cpp/*.h") FILE(GLOB MYSQL "src/cpp/MySQL/*.cpp" "src/cpp/MySQL/*.h" "src/cpp/MySQL/Poco/*.h") -FILE(GLOB PROTO_GRADIDO "${PROTOBINDING_PATH}/gradido/*.cc" "${PROTOBINDING_PATH}/gradido/*.h") -FILE(GLOB PROTO_HEDERA "${PROTOBINDING_PATH}/hedera/*.cc" "${PROTOBINDING_PATH}/hedera/*.h") +FILE(GLOB PROTO_GRADIDO "build/proto/gradido/*.cc" "build/proto/gradido/*.h") +FILE(GLOB PROTO_HEDERA "build/proto/hedera/*.cc" "build/proto/hedera/*.h") # used only for test project FILE(GLOB TEST "src/cpp/test/*.cpp" "src/cpp/test/*.h") @@ -193,6 +193,11 @@ if(MSVC) source_group("Test" FILES ${TEST}) endif() + +include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) +conan_basic_setup() + + add_executable(Gradido_LoginServer ${LOCAL_SRCS}) ############################## config and add mariadb ################################### @@ -217,10 +222,10 @@ add_subdirectory("dependencies/mariadb-connector-c") set(DEP_PATH "dependencies") set(MARIADB_CONNECTOR_PATH "${DEP_PATH}/mariadb-connector-c/build/libmariadb") -if(WIN32) - find_library(MYSQL_LIBRARIES mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Release" REQUIRED) - find_library(COMPILED_MARIADB_CLIENT_DEBUG mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Debug" REQUIRED) -endif() +#if(WIN32) + #find_library(MYSQL_LIBRARIES mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Release" REQUIRED) + #find_library(COMPILED_MARIADB_CLIENT_DEBUG mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Debug" REQUIRED) +#endif() ############################## config and add poco ################################### #SET(SOME_EXPAT_OPTION OFF CACHE BOOL "Use some expat option") @@ -235,17 +240,15 @@ set(POCO_LIBS PocoFoundation PocoUtil PocoNet PocoNetSSL PocoData) ############################## build login server ################################### -if(UNIX) - set(INSTALL_BINDIR "bin") - set(INSTALL_PLUGINDIR "bin") -endif() -target_link_libraries(Gradido_LoginServer ${GRPC_LIBS} ${POCO_LIBS} sodium) + +target_link_libraries(Gradido_LoginServer ${GRPC_LIBS} ${POCO_LIBS}) if(WIN32) - TARGET_LINK_LIBRARIES(Gradido_LoginServer optimized ${MYSQL_LIBRARIES} Shlwapi) - TARGET_LINK_LIBRARIES(Gradido_LoginServer debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi) + target_link_libraries(Gradido_LoginServer ${CONAN_LIBS}) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer optimized ${MYSQL_LIBRARIES} Shlwapi) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi) else() # unix - target_link_libraries(Gradido_LoginServer libmariadb) + target_link_libraries(Gradido_LoginServer libmariadb sodium) endif() # install @@ -260,26 +263,26 @@ install(DIRECTORY src/LOCALE DESTINATION /etc/grd_login/ endif(UNIX) - +enable_testing() # ---------------------- Test ----------------------------------------- -add_subdirectory("dependencies/grpc/third_party/googletest") -enable_testing() #project(Gradido_LoginServer_Test C CXX) #_TEST_BUILD - +#find_package(gtest) add_executable(Gradido_LoginServer_Test ${LOCAL_SRCS} ${LOCAL_TEST_SRC}) target_compile_definitions(Gradido_LoginServer_Test PUBLIC "_TEST_BUILD") -target_link_libraries(Gradido_LoginServer_Test ${POCO_LIBS} ${GRPC_LIBS} sodium gtest) +target_link_libraries(Gradido_LoginServer_Test ${GRPC_LIBS} ${POCO_LIBS}) if(WIN32) - TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test optimized ${MYSQL_LIBRARIES} Shlwapi) - TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${COMPILED_MARIADB_CLIENT_DEBUG} ${PROTOBUF_DEBUG_LIBS} Shlwapi) + target_link_libraries(Gradido_LoginServer_Test ${CONAN_LIBS} ) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test optimized ${MYSQL_LIBRARIES} Shlwapi) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${GRPC_LIBS} ${PROTOBUF_DEBUG_LIBS}) else() - target_link_libraries(Gradido_LoginServer_Test libmariadb ${CMAKE_DL_LIBS} ${PROTOBUF_LIBS}) + target_link_libraries(Gradido_LoginServer_Test libmariadb sodium) endif() add_test(NAME main COMMAND Gradido_LoginServer_Test) diff --git a/login_server/conanfile.txt b/login_server/conanfile.txt index ae0fcd97b..5f7e8f608 100644 --- a/login_server/conanfile.txt +++ b/login_server/conanfile.txt @@ -1,13 +1,7 @@ [requires] -Poco/1.9.4@pocoproject/stable libsodium/1.0.18@bincrafters/stable boost/1.71.0@conan/stable -gtest/1.8.1@bincrafters/stable +libressl/3.2.1 [generators] cmake - -[options] -Poco:enable_data_sqlite=False -Poco:enable_mongodb=False -Poco:enable_redis=False diff --git a/login_server/dependencies/poco b/login_server/dependencies/poco index 3fc3e5f5b..b95393dcc 160000 --- a/login_server/dependencies/poco +++ b/login_server/dependencies/poco @@ -1 +1 @@ -Subproject commit 3fc3e5f5b8462f7666952b43381383a79b8b5d92 +Subproject commit b95393dcc3640807838e8323b4e600e54d2e8116 From 9689e8246942f85e49ac38290eb42b936d4deeb4 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 12 May 2021 12:54:40 +0200 Subject: [PATCH 17/18] update for build with windows --- login_server/CMakeLists.txt | 53 ++++++++++--------- login_server/conanfile.txt | 3 +- login_server/dependencies/mariadb-connector-c | 1 + 3 files changed, 32 insertions(+), 25 deletions(-) create mode 160000 login_server/dependencies/mariadb-connector-c diff --git a/login_server/CMakeLists.txt b/login_server/CMakeLists.txt index 2813845ad..c1b55d9c7 100644 --- a/login_server/CMakeLists.txt +++ b/login_server/CMakeLists.txt @@ -22,17 +22,21 @@ include_directories( "dependencies/grpc/include" "dependencies/grpc/third_party/protobuf/src" "dependencies/grpc/third_party/googletest/googletest/include" - "dependencies/poco/Crypto/include" - "dependencies/poco/Data/include" - "dependencies/poco/Util/include" - "dependencies/poco/Foundation/include" - "dependencies/poco/JSON/include" - "dependencies/poco/Net/include" - "dependencies/poco/NetSSL_OpenSSL/include" "build" "build/proto" ) +IF(UNIX) + include_directories( + "dependencies/poco/Crypto/include" + "dependencies/poco/Data/include" + "dependencies/poco/Util/include" + "dependencies/poco/Foundation/include" + "dependencies/poco/JSON/include" + "dependencies/poco/Net/include" + "dependencies/poco/NetSSL_OpenSSL/include" + ) +ENDIF() ############################## config and add grpc ################################### set(GRPC_PATH "${DEP_PATH}/grpc/build") @@ -193,10 +197,11 @@ if(MSVC) source_group("Test" FILES ${TEST}) endif() - -include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup() - +IF(WIN32) + include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) + conan_basic_setup() + #add_compile_definitions(POCO_NETSSL_WIN) +ENDIF() add_executable(Gradido_LoginServer ${LOCAL_SRCS}) @@ -229,26 +234,27 @@ set(MARIADB_CONNECTOR_PATH "${DEP_PATH}/mariadb-connector-c/build/libmariadb") ############################## config and add poco ################################### #SET(SOME_EXPAT_OPTION OFF CACHE BOOL "Use some expat option") -SET(ENABLE_MONGODB OFF CACHE BOOL "" FORCE) -SET(ENABLE_DATA_SQLITE OFF CACHE BOOL "" FORCE) -SET(ENABLE_REDIS OFF CACHE BOOL "" FORCE) -SET(ENABLE_PAGECOMPILER_FILE2PAGE OFF CACHE BOOL "" FORCE) -add_subdirectory("dependencies/poco") - -set(POCO_LIBS PocoFoundation PocoUtil PocoNet PocoNetSSL PocoData) +IF(UNIX) + SET(ENABLE_MONGODB OFF CACHE BOOL "" FORCE) + SET(ENABLE_DATA_SQLITE OFF CACHE BOOL "" FORCE) + SET(ENABLE_REDIS OFF CACHE BOOL "" FORCE) + SET(ENABLE_PAGECOMPILER_FILE2PAGE OFF CACHE BOOL "" FORCE) + add_subdirectory("dependencies/poco") + set(POCO_LIBS PocoFoundation PocoUtil PocoNet PocoNetSSL PocoData) +ENDIF() ############################## build login server ################################### -target_link_libraries(Gradido_LoginServer ${GRPC_LIBS} ${POCO_LIBS}) +target_link_libraries(Gradido_LoginServer ${GRPC_LIBS}) if(WIN32) - target_link_libraries(Gradido_LoginServer ${CONAN_LIBS}) + target_link_libraries(Gradido_LoginServer mariadbclient ${CONAN_LIBS}) #TARGET_LINK_LIBRARIES(Gradido_LoginServer optimized ${MYSQL_LIBRARIES} Shlwapi) #TARGET_LINK_LIBRARIES(Gradido_LoginServer debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi) else() # unix - target_link_libraries(Gradido_LoginServer libmariadb sodium) + target_link_libraries(Gradido_LoginServer ${POCO_LIBS} libmariadb sodium) endif() # install @@ -273,8 +279,7 @@ enable_testing() add_executable(Gradido_LoginServer_Test ${LOCAL_SRCS} ${LOCAL_TEST_SRC}) target_compile_definitions(Gradido_LoginServer_Test PUBLIC "_TEST_BUILD") - -target_link_libraries(Gradido_LoginServer_Test ${GRPC_LIBS} ${POCO_LIBS}) +target_link_libraries(Gradido_LoginServer_Test ${GRPC_LIBS} ) if(WIN32) target_link_libraries(Gradido_LoginServer_Test ${CONAN_LIBS} ) @@ -282,7 +287,7 @@ if(WIN32) #TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi) #TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${GRPC_LIBS} ${PROTOBUF_DEBUG_LIBS}) else() - target_link_libraries(Gradido_LoginServer_Test libmariadb sodium) + target_link_libraries(Gradido_LoginServer_Test ${POCO_LIBS} libmariadb sodium) endif() add_test(NAME main COMMAND Gradido_LoginServer_Test) diff --git a/login_server/conanfile.txt b/login_server/conanfile.txt index 5f7e8f608..5d3dd4ebb 100644 --- a/login_server/conanfile.txt +++ b/login_server/conanfile.txt @@ -1,7 +1,8 @@ [requires] +Poco/1.9.4@pocoproject/stable libsodium/1.0.18@bincrafters/stable boost/1.71.0@conan/stable -libressl/3.2.1 + [generators] cmake diff --git a/login_server/dependencies/mariadb-connector-c b/login_server/dependencies/mariadb-connector-c new file mode 160000 index 000000000..159540fe8 --- /dev/null +++ b/login_server/dependencies/mariadb-connector-c @@ -0,0 +1 @@ +Subproject commit 159540fe8c8f30b281748fe8a1b79e8b17993a67 From 9c38540892724c529de380f6933398a98a4c2e72 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Fri, 14 May 2021 01:40:01 +0200 Subject: [PATCH 18/18] v1.0.0 --- CHANGELOG.md | 3 ++- frontend/package.json | 2 +- package.json | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8af5505e0..26a3b3c4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,9 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [1.0.1](https://github.com/gradido/gradido/compare/0.9.4...1.0.1) +#### [1.0.0](https://github.com/gradido/gradido/compare/0.9.4...1.0.0) +- Release fix [`#428`](https://github.com/gradido/gradido/pull/428) - Send button only click [`#427`](https://github.com/gradido/gradido/pull/427) - use new function for balance overview in old frontend, update balance… [`#422`](https://github.com/gradido/gradido/pull/422) - thx.vue coloured background removed. design adapted to app [`#426`](https://github.com/gradido/gradido/pull/426) diff --git a/frontend/package.json b/frontend/package.json index 21b02ee2e..aa999ffbd 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "bootstrap-vue-gradido-wallet", - "version": "1.0.1", + "version": "1.0.0", "private": true, "scripts": { "start": "node run/server.js", diff --git a/package.json b/package.json index 0ebef23ff..9b37bd686 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gradido", - "version": "1.0.1", + "version": "1.0.0", "description": "Gradido", "main": "index.js", "repository": "git@github.com:gradido/gradido.git",