未验证 提交 302085df 编写于 作者: F Fankux 提交者: GitHub

Merge pull request #28 from shimengfei/dev

upgrade libobcdc
......@@ -15,6 +15,7 @@ option(WITH_DEMO "With Demos" OFF)
option(WITH_JNI_LIB "With oblogreader jni lib" OFF)
option(WITH_GLOG "With google log" ON)
option(WITH_DEPS "With precompiled deps" ON)
option(USE_OBCDC_NS "With libobcdc" ON)
option(USE_LIBOBLOG "With precompiled liboblog" OFF)
option(USE_CXX11_ABI "Build with C++11 ABI" OFF)
......@@ -27,6 +28,12 @@ SET(DEP_VAR $ENV{DEP_VAR})
SET(JAVA_HOME $ENV{JAVA_HOME})
SET(FIND_LIBOBLOG ON)
if (USE_OBCDC_NS)
SET(OBCDC_NAME "libobcdc")
SET(OBCDC_NAME_VAR "-DUSE_OBCDC_NS")
else()
SET(OBCDC_NAME "liboblog")
endif ()
if (WITH_DEPS)
execute_process(
COMMAND bash deps/dep_create.sh ${OMS_PROJECT_BUILD_PATH}/deps
......@@ -39,7 +46,7 @@ if (WITH_DEPS)
if (NOT USE_LIBOBLOG)
SET(FIND_LIBOBLOG OFF)
SET(LIBOBLOG_INCLUDE_PATH ${DEP_VAR}/usr/include/)
SET(LIBOBLOG_LIBRARIES ${DEP_VAR}/usr/lib/liboblog.so)
SET(LIBOBLOG_LIBRARIES ${DEP_VAR}/usr/lib/${OBCDC_NAME}.so)
endif ()
# make openssl found
......@@ -176,10 +183,10 @@ SET_PROPERTY(TARGET oblogmsg PROPERTY IMPORTED_LOCATION ${OBLOGMSG_LIBRARIES})
# oblog
if (FIND_LIBOBLOG)
find_path(LIBOBLOG_INCLUDE_PATH NAMES liboblog.h)
find_library(LIBOBLOG_LIBRARIES NAMES liboblog.so)
find_path(LIBOBLOG_INCLUDE_PATH NAMES ${OBCDC_NAME}.h)
find_library(LIBOBLOG_LIBRARIES NAMES ${OBCDC_NAME}.so)
if ((NOT LIBOBLOG_INCLUDE_PATH) OR (NOT LIBOBLOG_LIBRARIES))
message(FATAL_ERROR "Fail to find liboblog")
message(FATAL_ERROR "Fail to find ${OBCDC_NAME}")
endif ()
endif ()
GET_FILENAME_COMPONENT(LIBOBLOG_LIB_DIR ${LIBOBLOG_LIBRARIES} DIRECTORY)
......@@ -220,9 +227,8 @@ endif ()
SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -static-libstdc++ ${DEBUG_SYMBOL} -pipe -m64 -Wall -fPIC -Wno-reorder ${ASAN_COMPILE_OPTION} -D__OMS_VERSION__=\\\"${GIT_VERSION}\\\" ${OBLOGMSG_MAPPING}")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 ${DEBUG_SYMBOL} -pipe -m64 -Wall -fPIC ${ASAN_COMPILE_OPTION} -D__STDC_LIMIT_MACROS -D__OMS_VERSION__=\\\"${GIT_VERSION}\\\" ${OBLOGMSG_MAPPING}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -static-libstdc++ ${DEBUG_SYMBOL} -pipe -m64 -Wall -fPIC -Wno-reorder ${ASAN_COMPILE_OPTION} -D__OMS_VERSION__=\\\"${GIT_VERSION}\\\" ${OBLOGMSG_MAPPING} ${OBCDC_NAME_VAR}")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 ${DEBUG_SYMBOL} -pipe -m64 -Wall -fPIC ${ASAN_COMPILE_OPTION} -D__STDC_LIMIT_MACROS -D__OMS_VERSION__=\\\"${GIT_VERSION}\\\" ${OBLOGMSG_MAPPING} ${OBCDC_NAME_VAR}")
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
SET(PLATFORM_SPEC rt)
......@@ -302,6 +308,11 @@ if (WITH_GLOG)
endif ()
target_include_directories(common PUBLIC ${COMMON_INC})
if (USE_OBCDC_NS)
set(DEP_OBCDC_LIB obcdc)
else()
set(DEP_OBCDC_LIB oblog)
endif ()
# oblogreader
set(OBLOGREADER_INC ${COMMON_INC} ./src/oblogreader/ ${LIBOBLOG_INCLUDE_PATH})
file(GLOB OBLOGREADER_SRC ./src/oblogreader/*.cpp)
......@@ -310,7 +321,7 @@ add_dependencies(oblogreader_static common oblogmsg)
set_target_properties(oblogreader_static PROPERTIES OUTPUT_NAME "oblogreader")
target_include_directories(oblogreader_static PUBLIC ${OBLOGREADER_INC})
target_link_directories(oblogreader_static PUBLIC ${DEP_LIB_PATH})
target_link_libraries(oblogreader_static libcommon.a oblog ${DEP_LIBS})
target_link_libraries(oblogreader_static libcommon.a ${DEP_OBCDC_LIB} ${DEP_LIBS})
# oblogreader_jni
if (WITH_JNI_LIB)
......@@ -320,7 +331,7 @@ if (WITH_JNI_LIB)
add_dependencies(oblogreader_jni oblogreader_static)
target_include_directories(oblogreader_jni PUBLIC ${OBLOGREADER_JNI_INC})
target_link_directories(oblogreader_jni PUBLIC ${DEP_LIB_PATH})
target_link_libraries(oblogreader_jni liboblogreader.a libcommon.a oblog ${DEP_LIBS})
target_link_libraries(oblogreader_jni liboblogreader.a libcommon.a ${DEP_OBCDC_LIB} ${DEP_LIBS})
endif ()
# logproxy static
......@@ -332,7 +343,7 @@ add_dependencies(logproxy_static oblogreader_static oblogmsg)
set_target_properties(logproxy_static PROPERTIES OUTPUT_NAME "logproxy")
target_include_directories(logproxy_static PUBLIC ${LOGPROXY_INC})
target_link_directories(logproxy_static PUBLIC ${DEP_LIB_PATH})
target_link_libraries(logproxy_static liboblogreader.a libcommon.a oblog ${DEP_LIBS})
target_link_libraries(logproxy_static liboblogreader.a libcommon.a ${DEP_OBCDC_LIB} ${DEP_LIBS})
SET(BASE_LIBS liblogproxy.a liboblogreader.a libcommon.a)
......@@ -341,7 +352,7 @@ add_executable(logproxy ./src/entry.cpp)
add_dependencies(logproxy logproxy_static)
target_include_directories(logproxy PUBLIC ${DEP_INC} ${LOGPROXY_INC})
target_link_directories(logproxy PUBLIC ${DEP_LIB_PATH})
target_link_libraries(logproxy ${BASE_LIBS} oblog ${DEP_LIBS})
target_link_libraries(logproxy ${BASE_LIBS} ${DEP_OBCDC_LIB} ${DEP_LIBS})
target_link_options(logproxy PUBLIC "${ASAN_LINK_OPTION}")
if (WITH_DEMO)
......@@ -372,7 +383,7 @@ if (WITH_TEST)
add_dependencies(test_oblogreader logproxy_static gtest)
target_include_directories(test_oblogreader PUBLIC ${LOGPROXY_INC})
target_link_directories(test_oblogreader PUBLIC ${DEP_LIB_PATH})
target_link_libraries(test_oblogreader ${BASE_LIBS} oblog ${DEP_LIBS})
target_link_libraries(test_oblogreader ${BASE_LIBS} ${DEP_OBCDC_LIB} ${DEP_LIBS})
target_link_options(test_oblogreader PUBLIC ${ASAN_LINK_OPTION})
endif ()
......
......@@ -80,7 +80,7 @@
3, 请将如下声明文本放入每个源文件的头部注释中。
Copyright (c) 2021 OceanBase
OceanBase CE is licensed under Mulan PubL v2.
OceanBase Migration Service LogProxy is licensed under Mulan PubL v2.
You can use this software according to the terms and conditions of the Mulan PubL v2.
You may obtain a copy of Mulan PubL v2 at:
http://license.coscl.org.cn/MulanPubL-2.0
......@@ -170,7 +170,7 @@ Create a file named “LICENSE” which contains the whole context of this Licen
Attach the statement to the appropriate annotated syntax at the beginning of each source file.
Copyright (c) 2021 OceanBase
OceanBase CE is licensed under Mulan PubL v2.
OceanBase Migration Service LogProxy is licensed under Mulan PubL v2.
You can use this software according to the terms and conditions of the Mulan PubL v2.
You may obtain a copy of Mulan PubL v2 at:
http://license.coscl.org.cn/MulanPubL-2.0
......
......@@ -28,7 +28,7 @@ oblogproxy会安装在目录 `/usr/local/oblogproxy` 。
|---------------|------------|
| 3.1.1 | 1.0.0 |
| 3.1.2 | 1.0.1 |
| 3.1.3 | 暂无 |
| 3.1.3 | 1.0.2 |
### 3. 配置系统租户
获得observer的sys租户账号密码,通常在创建observer集群时创建,也可以单独创建。oblogproxy需要加密的配置,执行以下命令即可得到:
......
......@@ -11,10 +11,10 @@ set(CPACK_RPM_PACKAGE_RELEASE_DIST ON)
# RPM package informations.
set(CPACK_PACKAGING_INSTALL_PREFIX /usr/local/oblogproxy)
list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/local/oblogproxy")
set(CPACK_PACKAGE_NAME "oblogproxy")
set(CPACK_PACKAGE_NAME ${OBLOGPROXY_PACKAGE_NAME})
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "oblogproxy is a clog proxy server for OceanBase CE")
set(CPACK_PACKAGE_VENDOR "Ant Group CO., Ltd.")
set(CPACK_PACKAGE_VERSION 1.0.1)
set(CPACK_PACKAGE_VERSION ${OBLOGPROXY_PACKAGE_VERSION})
set(CPACK_PACKAGE_VERSION_MAJOR 1)
set(CPACK_PACKAGE_VERSION_MINOR 0)
set(CPACK_PACKAGE_VERSION_PATCH 1)
......@@ -60,9 +60,11 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/utils_post.script "/sbin/ldconfig /usr/li
set(CPACK_RPM_UTILS_POST_INSTALL_SCRIPT_FILE ${CMAKE_CURRENT_BINARY_DIR}/utils_post.script)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/utils_postun.script "/sbin/ldconfig")
set(CPACK_RPM_UTILS_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_CURRENT_BINARY_DIR}/utils_postun.script)
set(CPACK_RPM_PACKAGE_REQUIRES "devdeps-libaio >= 0.3.112, devdeps-openssl-static >= 1.0.1e, oceanbase-ce-devel = 3.1.2")
if(USE_OBCDC_NS)
set(CPACK_RPM_PACKAGE_REQUIRES "devdeps-libaio >= 0.3.112, devdeps-openssl-static >= 1.0.1e, oceanbase-ce-devel = 3.1.3")
else()
set(CPACK_RPM_PACKAGE_REQUIRES "devdeps-libaio >= 0.3.112, devdeps-openssl-static >= 1.0.1e, oceanbase-ce-devel = 3.1.2")
endif()
# install cpack to make everything work
include(CPack)
......
......@@ -7,7 +7,7 @@ stable_repo=https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/
[deps]
devdeps-openssl-static-1.0.1e-3.el7.x86_64.rpm
devdeps-libaio-0.3.112-3.el7.x86_64.rpm
oceanbase-ce-devel-3.1.2-10000392021123010.el7.x86_64.rpm
oceanbase-ce-devel-3.1.3-10100032022041510.el7.x86_64.rpm
[tools]
obdevtools-gcc-5.2.0-3.el7.x86_64.rpm
\ No newline at end of file
......@@ -7,7 +7,7 @@ stable_repo=https://mirrors.aliyun.com/oceanbase/community/stable/el/8/x86_64/
[deps]
devdeps-openssl-static-1.0.1e-3.el8.x86_64.rpm
devdeps-libaio-0.3.112-3.el8.x86_64.rpm
oceanbase-ce-devel-3.1.2-10000392021123010.el8.x86_64.rpm
oceanbase-ce-devel-3.1.3-10100042022051821.el8.x86_64.rpm
[tools]
obdevtools-gcc-5.2.0-3.el8.x86_64.rpm
......@@ -80,16 +80,17 @@ make -j 6
#### 全部编译参数
| 选项 | 默认 | 说明 |
| ------ | -------- | ------- |
| WITH_DEBUG | ON | 调试模式带 Debug 符号 |
| WITH_ASAN | OFF | 编译带 [AddressSanitizer](https://github.com/google/sanitizers) |
| WITH_TEST | OFF | 测试 |
| WITH_DEMO | OFF | Demo |
| WITH_GLOG | ON | 使用glog |
| WITH_DEPS | ON | 自动下载预编译依赖 |
| USE_LIBOBLOG | OFF | 使用自定义预编译的liboblog |
| USE_CXX11_ABI | ON | 是否使用C++11 ABI。注意如果用了预编译的依赖,需要保持一致,否则会找不到符号 |
| 选项 | 默认 | 说明 |
| ------ |-----|-------------------------------------------------------------------------------------------|
| WITH_DEBUG | ON | 调试模式带 Debug 符号 |
| WITH_ASAN | OFF | 编译带 [AddressSanitizer](https://github.com/google/sanitizers) |
| WITH_TEST | OFF | 测试 |
| WITH_DEMO | OFF | Demo |
| WITH_GLOG | ON | 使用glog |
| WITH_DEPS | ON | 自动下载预编译依赖 |
| USE_LIBOBLOG | OFF | 使用自定义预编译的liboblog |
| USE_OBCDC_NS | ON | 是否使用obcdc进行编译。注意oblogproxy 对 obcdc (原liboblog) 有版本依赖,USE_OBCDC_NS=OFF时,兼容obcdc 3.1.2及之前版本 |
| USE_CXX11_ABI | ON | 是否使用C++11 ABI。注意如果用了预编译的依赖,需要保持一致,否则会找不到符号 |
### 编译依赖说明
......
......@@ -43,7 +43,7 @@ cd $PROJECT_DIR
rm -rf build_rpm
mkdir build_rpm
cd build_rpm
${CMAKE_COMMAND} .. -DOBLOGPROXY_RELEASEID=$RELEASE
${CMAKE_COMMAND} .. -DOBLOGPROXY_RELEASEID=$RELEASE -DUSE_OBCDC_NS=ON -DOBLOGPROXY_PACKAGE_NAME=$PROJECT_NAME -DOBLOGPROXY_PACKAGE_VERSION=$VERSION
make -j${CPU_CORES} rpm
# archiving artifacts
......
......@@ -464,7 +464,6 @@ void Communicator::on_event(int fd, short event, void* arg)
delete msg;
}
}
//对于ER_CLOSE_CHANNEL,先处理错误再释放内存
switch (err) {
case EventResult::ER_CLOSE_CHANNEL:
c.remove_channel(ch->_peer);
......
......@@ -18,7 +18,11 @@
// this three MUST BE ordered like this
#include "LogRecord.h"
#ifdef USE_OBCDC_NS
#include "libobcdc.h"
#else
#include "liboblog.h"
#endif
#ifndef OB_TIMEOUT
#define OB_TIMEOUT -4012
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册