From b3162bafc3d26fcc0703ab169f704ac507dcc2bd Mon Sep 17 00:00:00 2001 From: anzz1 Date: Wed, 20 Sep 2023 08:34:44 +0300 Subject: [PATCH] fix build & docker image --- Dockerfile | 16 +++++++++-- README.md | 7 +++++ cmake/modules/Findrabbitmq-c.cmake | 28 +++++++++++++++++++ code/CMakeLists.txt | 2 +- code/FESL/CMakeLists.txt | 2 +- code/GP/CMakeLists.txt | 2 +- code/cdkey/CMakeLists.txt | 2 +- code/core/CMakeLists.txt | 8 +++--- .../OS/MessageQueue/rabbitmq/rmqConnection.h | 2 +- code/core/SSL/OpenSSL/SSL/SSLIOInterface.h | 4 ++- code/gamestats/CMakeLists.txt | 2 +- code/natneg/CMakeLists.txt | 2 +- code/peerchat/CMakeLists.txt | 2 +- code/qr/CMakeLists.txt | 2 +- code/search/CMakeLists.txt | 2 +- code/serverbrowsing/CMakeLists.txt | 2 +- code/test/core/CMakeLists.txt | 2 +- code/test/qr/CMakeLists.txt | 2 +- code/test/qr/v2/CMakeLists.txt | 2 +- code/test/serverbrowsing/CMakeLists.txt | 2 +- code/test/serverbrowsing/V1/CMakeLists.txt | 2 +- code/test/serverbrowsing/V2/CMakeLists.txt | 2 +- code/utmaster/CMakeLists.txt | 2 +- docker-compose.yaml | 14 +++++++++- docker-support/openspy.xml | 24 ++++++++++++++++ 25 files changed, 110 insertions(+), 27 deletions(-) create mode 100644 cmake/modules/Findrabbitmq-c.cmake diff --git a/Dockerfile b/Dockerfile index 0706a4cd..8562f709 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,12 +31,21 @@ RUN ./configure --without-ssl --disable-shared RUN make RUN make DESTDIR=/root/fs-out install +WORKDIR /root/ +RUN curl -L https://codeload.github.com/redis/hiredis/tar.gz/v1.1.0 > hiredis.tar.gz +RUN mkdir hiredis-src hiredis-bin +RUN tar -xvzf hiredis.tar.gz --strip 1 -C hiredis-src +WORKDIR hiredis-bin +RUN cmake -DCMAKE_BUILD_TYPE="Release" ../hiredis-src +RUN make +RUN make DESTDIR=/root/fs-out install + WORKDIR /root/ RUN curl -L https://codeload.github.com/alanxz/rabbitmq-c/tar.gz/v0.9.0 > rabbitmq.tar.gz RUN mkdir rabbitmq-src rabbitmq-bin RUN tar -xvzf rabbitmq.tar.gz --strip 1 -C rabbitmq-src WORKDIR rabbitmq-bin -RUN cmake -DCMAKE_BUILD_TYPE="Release" -DENABLE_SSL_SUPPORT="OFF" ../rabbitmq-src +RUN cmake -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_INCLUDEDIR="include/rabbitmq-c" -DENABLE_SSL_SUPPORT="OFF" ../rabbitmq-src RUN make RUN make DESTDIR=/root/fs-out install @@ -45,14 +54,15 @@ RUN curl -L http://github.com/zeux/pugixml/releases/download/v1.9/pugixml-1.9.ta RUN mkdir pugixml-src pugixml-bin RUN tar -xvzf pugixml.tar.gz --strip 1 -C pugixml-src WORKDIR pugixml-bin -RUN cmake -DCMAKE_BUILD_TYPE="Release" ../pugixml-src +RUN cmake -DCMAKE_BUILD_TYPE="Release" -DCMAKE_CXX_FLAGS="-fPIC" ../pugixml-src RUN make RUN make DESTDIR=/root/fs-out install COPY code /root/code +COPY cmake /root/cmake RUN mkdir /root/os-bin /root/os-make WORKDIR /root/os-make -run cmake -DCMAKE_BINARY_DIR="/root/os-bin" -DCMAKE_CXX_FLAGS="-I/root/fs-out/usr/local/include -L/root/fs-out/usr/local/lib -lz -L/root/fs-out/usr/local/lib/x86_64-linux-gnu/" -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE="Release" ../code +run cmake -DCMAKE_PREFIX_PATH="/root/fs-out/usr/local" -DCMAKE_BINARY_DIR="/root/os-bin" -DCMAKE_CXX_FLAGS="-I/root/fs-out/usr/local/include -I/root/fs-out/usr/local/include/rabbitmq-c -L/root/fs-out/usr/local/lib -lz -L/root/fs-out/usr/local/lib/x86_64-linux-gnu/ -pthread" -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE="Release" ../code run make RUN mkdir -p /root/fs-out/opt/openspy/bin /root/fs-out/opt/openspy/lib RUN mv /root/os-make/bin/* /root/fs-out/opt/openspy/bin diff --git a/README.md b/README.md index 0fcba701..290ff4b4 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,13 @@ This is a full rewrite of the old openspy. Each service runs as a seperate proce ## Building A [docker file](Dockerfile) has been created to convey the required build and runtime environment. This has not been used for development, but can be helpful for testing and just getting the project running. +```sh +git clone https://github.com/chc/openspy-core-v2.git +cd openspy-core-v2 +docker build -t os-core . +docker-compose up +``` + ## Running If you refer to the "openspy-web-backend" project, this will have everything you need to get openspy running. From the perspective of this application, the requirements are redis, rabbitmq, and then the openspy-web-backend. diff --git a/cmake/modules/Findrabbitmq-c.cmake b/cmake/modules/Findrabbitmq-c.cmake new file mode 100644 index 00000000..e011a253 --- /dev/null +++ b/cmake/modules/Findrabbitmq-c.cmake @@ -0,0 +1,28 @@ + +find_package(PkgConfig QUIET) +pkg_check_modules(PC_RABBITMQ QUIET rabbitmq) + +find_path(RABBITMQ_INCLUDE_DIR + NAMES rabbitmq-c/amqp.h + HINTS ${PC_RABBITMQ_INCLUDEDIR} ${PC_RABBITMQ_INCLUDE_DIRS}) + +find_library(RABBITMQ_LIBRARY + NAMES rabbitmq librabbitmq + HINTS ${PC_RABBITMQ_LIBDIR} ${PC_RABBITMQ_LIBRARY_DIRS}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(rabbitmq + REQUIRED_VARS RABBITMQ_LIBRARY RABBITMQ_INCLUDE_DIR) + +if (RABBITMQ_FOUND) + set(RABBITMQ_LIBRARIES ${RABBITMQ_LIBRARY}) + set(RABBITMQ_INCLUDE_DIRS ${RABBITMQ_INCLUDE_DIR}) + if (NOT TARGET rabbitmq::rabbitmq) + add_library(rabbitmq::rabbitmq UNKNOWN IMPORTED) + set_target_properties(rabbitmq::rabbitmq PROPERTIES + IMPORTED_LOCATION "${RABBITMQ_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${RABBITMQ_INCLUDE_DIR}") + endif () +endif () + +mark_as_advanced(RABBITMQ_INCLUDE_DIR RABBITMQ_LIBRARY) \ No newline at end of file diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index f91d3a78..01b4916a 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) #Where to find local cmake scripts set(OS_CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/../cmake/modules) diff --git a/code/FESL/CMakeLists.txt b/code/FESL/CMakeLists.txt index 5679d13c..254756b7 100644 --- a/code/FESL/CMakeLists.txt +++ b/code/FESL/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(FESL) diff --git a/code/GP/CMakeLists.txt b/code/GP/CMakeLists.txt index 6cf97def..948ef0cb 100644 --- a/code/GP/CMakeLists.txt +++ b/code/GP/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(GP) diff --git a/code/cdkey/CMakeLists.txt b/code/cdkey/CMakeLists.txt index 696c4250..9af46207 100644 --- a/code/cdkey/CMakeLists.txt +++ b/code/cdkey/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(cdkey) diff --git a/code/core/CMakeLists.txt b/code/core/CMakeLists.txt index 29701021..6e0fd70d 100644 --- a/code/core/CMakeLists.txt +++ b/code/core/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(openspy_core) @@ -111,7 +111,7 @@ IF(WIN32) set (ALL_PLAT ${PLAT_THREAD_SRCS} ${PLAT_THREAD_HDRS} ${PLAT_LOGGER_SRCS} ${PLAT_LOGGER_HDRS} ${PLAT_TIMER_SRCS} ${PLAT_TIMER_HDRS}) add_library (openspy SHARED ${ALL_SRCS} ${ALL_PLAT}) target_link_libraries(openspy ws2_32.lib ${CURL_LIBRARIES} pugixml rabbitmq::rabbitmq ${JANSSON_LIBRARIES} ${hiredis_LIBRARIES} ${SSL_LIBS}) - add_compile_definitions(EVTMGR_USE_SELECT=1) + add_definitions(-DEVTMGR_USE_SELECT=1) ELSE() #unix file(GLOB PLAT_THREAD_SRCS "OS/Threads/PThreads/*.cpp") @@ -136,9 +136,9 @@ ELSE() #unix add_library (openspy SHARED ${ALL_SRCS} ${ALL_PLAT}) target_link_libraries(openspy pthread ${CURL_LIBRARIES} z pugixml rabbitmq::rabbitmq ${JANSSON_LIBRARIES} ${hiredis_LIBRARIES} ${SSL_LIBS}) if(APPLE) - add_compile_definitions(EVTMGR_USE_SELECT=1) + add_definitions(-DEVTMGR_USE_SELECT=1) else() - add_compile_definitions(EVTMGR_USE_EPOLL=1) + add_definitions(-DEVTMGR_USE_EPOLL=1) endif() ENDIF() diff --git a/code/core/OS/MessageQueue/rabbitmq/rmqConnection.h b/code/core/OS/MessageQueue/rabbitmq/rmqConnection.h index 1d6a43a2..dfc180ed 100644 --- a/code/core/OS/MessageQueue/rabbitmq/rmqConnection.h +++ b/code/core/OS/MessageQueue/rabbitmq/rmqConnection.h @@ -5,7 +5,7 @@ #include #include #include -#include +#include namespace MQ { class rmqListenerData { public: diff --git a/code/core/SSL/OpenSSL/SSL/SSLIOInterface.h b/code/core/SSL/OpenSSL/SSL/SSLIOInterface.h index e59f0815..96e182ca 100644 --- a/code/core/SSL/OpenSSL/SSL/SSLIOInterface.h +++ b/code/core/SSL/OpenSSL/SSL/SSLIOInterface.h @@ -7,7 +7,9 @@ #include -#include +//#include +#include + #include namespace SSLNetIOIFace { diff --git a/code/gamestats/CMakeLists.txt b/code/gamestats/CMakeLists.txt index e6ffc0ce..396919ed 100644 --- a/code/gamestats/CMakeLists.txt +++ b/code/gamestats/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(gstats) diff --git a/code/natneg/CMakeLists.txt b/code/natneg/CMakeLists.txt index b5e9933c..95bb58ef 100644 --- a/code/natneg/CMakeLists.txt +++ b/code/natneg/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(natneg) diff --git a/code/peerchat/CMakeLists.txt b/code/peerchat/CMakeLists.txt index ad1d3c48..1ce08205 100644 --- a/code/peerchat/CMakeLists.txt +++ b/code/peerchat/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(peerchat) diff --git a/code/qr/CMakeLists.txt b/code/qr/CMakeLists.txt index 4fbbd1c5..509aefbd 100644 --- a/code/qr/CMakeLists.txt +++ b/code/qr/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(qr) diff --git a/code/search/CMakeLists.txt b/code/search/CMakeLists.txt index f9a3195b..b055cc2a 100644 --- a/code/search/CMakeLists.txt +++ b/code/search/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(SM) diff --git a/code/serverbrowsing/CMakeLists.txt b/code/serverbrowsing/CMakeLists.txt index 6cc98895..381449c6 100644 --- a/code/serverbrowsing/CMakeLists.txt +++ b/code/serverbrowsing/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(serverbrowsing) diff --git a/code/test/core/CMakeLists.txt b/code/test/core/CMakeLists.txt index 43762eb7..6bc7d737 100644 --- a/code/test/core/CMakeLists.txt +++ b/code/test/core/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(serverbrowsing_test) diff --git a/code/test/qr/CMakeLists.txt b/code/test/qr/CMakeLists.txt index fc7fe22e..c161d35d 100644 --- a/code/test/qr/CMakeLists.txt +++ b/code/test/qr/CMakeLists.txt @@ -1,3 +1,3 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) add_subdirectory(v2) \ No newline at end of file diff --git a/code/test/qr/v2/CMakeLists.txt b/code/test/qr/v2/CMakeLists.txt index fd656e94..6b3dcb64 100644 --- a/code/test/qr/v2/CMakeLists.txt +++ b/code/test/qr/v2/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(qr_test) diff --git a/code/test/serverbrowsing/CMakeLists.txt b/code/test/serverbrowsing/CMakeLists.txt index 783372f0..52c2cb6d 100644 --- a/code/test/serverbrowsing/CMakeLists.txt +++ b/code/test/serverbrowsing/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(serverbrowsing_test) diff --git a/code/test/serverbrowsing/V1/CMakeLists.txt b/code/test/serverbrowsing/V1/CMakeLists.txt index 5c4d6ecf..7cb53dcc 100644 --- a/code/test/serverbrowsing/V1/CMakeLists.txt +++ b/code/test/serverbrowsing/V1/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(serverbrowsing_v1_test) diff --git a/code/test/serverbrowsing/V2/CMakeLists.txt b/code/test/serverbrowsing/V2/CMakeLists.txt index 56c86b4c..dee28e0f 100644 --- a/code/test/serverbrowsing/V2/CMakeLists.txt +++ b/code/test/serverbrowsing/V2/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(serverbrowsing_v2_test) diff --git a/code/utmaster/CMakeLists.txt b/code/utmaster/CMakeLists.txt index 5e06715a..6d2e28a5 100644 --- a/code/utmaster/CMakeLists.txt +++ b/code/utmaster/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.22) +cmake_minimum_required (VERSION 3.5) project(utmaster) diff --git a/docker-compose.yaml b/docker-compose.yaml index 9ec1ca89..b3b1ffc5 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -15,7 +15,7 @@ services: natneg: ports: - "27901:30695" - command: /opt/openspy/bin/qr + command: /opt/openspy/bin/natneg env_file: .env-local image: os-core GP: @@ -30,12 +30,24 @@ services: command: /opt/openspy/bin/SM env_file: .env-local image: os-core + cdkey: + ports: + - "29910:30835" + command: /opt/openspy/bin/cdkey + env_file: .env-local + image: os-core gstats: ports: - "29920:30836" command: /opt/openspy/bin/gstats env_file: .env-local image: os-core + peerchat: + ports: + - "6667:30771" + command: /opt/openspy/bin/peerchat + env_file: .env-local + image: os-core FESL-bf2142: ports: - "18300:30837" diff --git a/docker-support/openspy.xml b/docker-support/openspy.xml index 4b7e0f83..e32b0939 100644 --- a/docker-support/openspy.xml +++ b/docker-support/openspy.xml @@ -101,6 +101,30 @@ + + + + +
+ 0.0.0.0 + 30835 +
+
+
+
+
+ + + + +
+ 0.0.0.0 + 30771 +
+
+
+
+