summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliuxueli <[email protected]>2020-05-29 16:45:30 +0800
committerliuxueli <[email protected]>2020-05-29 16:45:30 +0800
commit0e2056b48ef99aa9d7cf2a0443cb26f61f485fc2 (patch)
treef5295838709e885f50dec6ab67c3ce628ef4ce70
parent4b9a7067282ab2875504c1b4810bcf6735b907ba (diff)
修复rpm -U安装时配置文件被覆盖
-rw-r--r--CMakeLists.txt9
-rw-r--r--cmake/preInstall.sh11
-rw-r--r--cmake/preUninstall.sh6
3 files changed, 26 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0a60904..666b898 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,6 +34,7 @@ include_directories(/opt/MESA/include/MESA/)
file(GLOB SRC
"src/*.c"
+ "src/*.cpp"
)
set(DNS_DEPEND_DYN_LIB ssl crypto)
@@ -44,6 +45,14 @@ set_target_properties(quic PROPERTIES PREFIX "")
target_link_libraries(quic ${DNS_DEPEND_DYN_LIB})
set_target_properties(quic PROPERTIES OUTPUT_NAME ${lib_name})
+set(CPACK_RPM_USER_FILELIST "%config(noreplace) ${CMAKE_INSTALL_PREFIX}/plug/protocol/quic/quic.inf"
+ "%config(noreplace) ${CMAKE_INSTALL_PREFIX}/conf/quic/quic.conf"
+ "%config(noreplace) ${CMAKE_INSTALL_PREFIX}/etc/entrylist.conf"
+ "%config(noreplace) ${CMAKE_INSTALL_PREFIX}/plug/conflist.inf ")
+
+SET(CPACK_RPM_PRE_INSTALL_SCRIPT_FILE "${PROJECT_SOURCE_DIR}/cmake/preInstall.sh")
+SET(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE "${PROJECT_SOURCE_DIR}/cmake/preUninstall.sh")
+
install(TARGETS quic LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/plug/protocol/quic COMPONENT LIBRARY)
install(FILES bin/quic.inf DESTINATION ${CMAKE_INSTALL_PREFIX}/plug/protocol/quic COMPONENT PROFILE)
install(FILES bin/quic.conf DESTINATION ${CMAKE_INSTALL_PREFIX}/conf/quic COMPONENT PROFILE)
diff --git a/cmake/preInstall.sh b/cmake/preInstall.sh
new file mode 100644
index 0000000..7188830
--- /dev/null
+++ b/cmake/preInstall.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+DST=${RPM_INSTALL_PREFIX}
+mkdir -p ${DST}/plug/protocol/
+touch ${DST}/plug/conflist.inf
+touch ${DST}/etc/entrylist.conf
+if [[ -z `grep -rn 'quic.inf' ${DST}/plug/conflist.inf` ]];then
+ sed -i '/\[protocol\]/a\./plug/protocol/quic/quic.inf' ${DST}/plug/conflist.inf
+fi
+if [[ -z `grep -rn 'quic' ${DST}etc/entrylist.conf` ]];then
+ echo "QUIC" >> ${DST}etc/entrylist.conf
+fi
diff --git a/cmake/preUninstall.sh b/cmake/preUninstall.sh
new file mode 100644
index 0000000..ae4c8fc
--- /dev/null
+++ b/cmake/preUninstall.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+DST=${RPM_INSTALL_PREFIX}
+mkdir -p ${DST}/plug/business/
+touch ${DST}/plug/conflist.inf
+sed -i '/quic.inf/d' ${DST}/plug/conflist.inf
+sed -i '/QUIC/d' ${DST}etc/entrylist.conf