From 655290bf97f2dc71b3b1cf107d15178996cf620f Mon Sep 17 00:00:00 2001 From: Qiyu Yan Date: Wed, 5 Aug 2020 05:08:10 +0800 Subject: [PATCH] Don't hardcode paths --- CMakeLists.txt | 10 +++++++--- cgnoproxy | 2 -- cgnoproxy.cmake | 2 ++ cgproxy.service => cgproxy.service.cmake | 2 +- cgproxyd | 2 -- cgproxyd.cmake | 2 ++ execsnoop-bcc/CMakeLists.txt | 2 +- src/CMakeLists.txt | 2 ++ src/{common.h => common.h.cmake} | 8 ++++---- tools/CMakeLists.txt | 2 +- 10 files changed, 20 insertions(+), 14 deletions(-) delete mode 100644 cgnoproxy create mode 100644 cgnoproxy.cmake rename cgproxy.service => cgproxy.service.cmake (66%) delete mode 100644 cgproxyd create mode 100644 cgproxyd.cmake rename src/{common.h => common.h.cmake} (92%) diff --git a/CMakeLists.txt b/CMakeLists.txt index ac9ff44..31ab2af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,11 +27,15 @@ if (build_test) add_subdirectory(test) endif() +configure_file(cgnoproxy.cmake cgnoproxy) +configure_file(cgproxyd.cmake cgproxyd) +configure_file(cgproxy.service.cmake cgproxy.service) + # instal scripts and other things -install(PROGRAMS cgproxyd TYPE BIN) -install(PROGRAMS cgnoproxy TYPE BIN) +install(PROGRAMS ${CMAKE_BINARY_DIR}/cgproxyd TYPE BIN) +install(PROGRAMS ${CMAKE_BINARY_DIR}/cgnoproxy TYPE BIN) install(PROGRAMS cgroup-tproxy.sh DESTINATION ${CMAKE_INSTALL_DATADIR}/cgproxy/scripts) -install(FILES cgproxy.service DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/systemd/system) +install(FILES ${CMAKE_BINARY_DIR}/cgproxy.service DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/systemd/system) install(FILES config.json DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/cgproxy) install(FILES readme.md DESTINATION ${CMAKE_INSTALL_DOCDIR}) diff --git a/cgnoproxy b/cgnoproxy deleted file mode 100644 index 241ae61..0000000 --- a/cgnoproxy +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -exec /usr/bin/cgproxy --noproxy $@ \ No newline at end of file diff --git a/cgnoproxy.cmake b/cgnoproxy.cmake new file mode 100644 index 0000000..17c698f --- /dev/null +++ b/cgnoproxy.cmake @@ -0,0 +1,2 @@ +#!/bin/sh +exec @CMAKE_INSTALL_FULL_BINDIR@/cgproxy --noproxy $@ \ No newline at end of file diff --git a/cgproxy.service b/cgproxy.service.cmake similarity index 66% rename from cgproxy.service rename to cgproxy.service.cmake index 9a1baaa..5bb8026 100644 --- a/cgproxy.service +++ b/cgproxy.service.cmake @@ -4,7 +4,7 @@ After=network.target [Service] Type=simple -ExecStart=/usr/bin/cgproxyd --execsnoop +ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/cgproxyd --execsnoop [Install] WantedBy=multi-user.target diff --git a/cgproxyd b/cgproxyd deleted file mode 100644 index 217261e..0000000 --- a/cgproxyd +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -exec /usr/bin/cgproxy --daemon $@ \ No newline at end of file diff --git a/cgproxyd.cmake b/cgproxyd.cmake new file mode 100644 index 0000000..eacbdd0 --- /dev/null +++ b/cgproxyd.cmake @@ -0,0 +1,2 @@ +#!/bin/sh +exec @CMAKE_INSTALL_FULL_BINDIR@/cgproxy --daemon $@ \ No newline at end of file diff --git a/execsnoop-bcc/CMakeLists.txt b/execsnoop-bcc/CMakeLists.txt index 51b68d8..635420e 100644 --- a/execsnoop-bcc/CMakeLists.txt +++ b/execsnoop-bcc/CMakeLists.txt @@ -3,4 +3,4 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}) add_library(execsnoop MODULE execsnoop.cpp ../src/common.cpp) target_link_libraries(execsnoop bcc) -install(TARGETS execsnoop DESTINATION /usr/lib/cgproxy/ PERMISSIONS ${basic_permission}) +install(TARGETS execsnoop DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cgproxy/ PERMISSIONS ${basic_permission}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 06e51dd..7fba76c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,7 +2,9 @@ find_package(nlohmann_json REQUIRED) include_directories(${PROJECT_SOURCE_DIR}) include_directories(${PROJECT_SOURCE_DIR}/execsnoop-kernel/) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(${CMAKE_CURRENT_BINARY_DIR}) +configure_file(common.h.cmake common.h) if (build_execsnoop_dl) add_definitions(-DBUIlD_EXECSNOOP_DL) diff --git a/src/common.h b/src/common.h.cmake similarity index 92% rename from src/common.h rename to src/common.h.cmake index 16aa9e5..4d4ae5d 100644 --- a/src/common.h +++ b/src/common.h.cmake @@ -7,15 +7,15 @@ #include using namespace std; -#define TPROXY_IPTABLS_START "/usr/share/cgproxy/scripts/cgroup-tproxy.sh" -#define TPROXY_IPTABLS_CLEAN "/usr/share/cgproxy/scripts/cgroup-tproxy.sh stop" +#define TPROXY_IPTABLS_START "@CMAKE_INSTALL_FULL_DATADIR@/cgproxy/scripts/cgroup-tproxy.sh" +#define TPROXY_IPTABLS_CLEAN "@CMAKE_INSTALL_FULL_DATADIR@/cgproxy/scripts/cgroup-tproxy.sh stop" -#define LIBEXECSNOOP_SO "/usr/lib/cgproxy/libexecsnoop.so" +#define LIBEXECSNOOP_SO "@CMAKE_INSTALL_FULL_LIBDIR@/cgproxy/libexecsnoop.so" #define CGROUP2_MOUNT_POINT "/var/run/cgproxy/cgroup2" #define PID_LOCK_FILE "/var/run/cgproxyd.pid" #define SOCKET_PATH "/tmp/cgproxy_unix_socket" #define LISTEN_BACKLOG 64 -#define DEFAULT_CONFIG_FILE "/etc/cgproxy/config.json" +#define DEFAULT_CONFIG_FILE "@CMAKE_INSTALL_FULL_SYSCONFDIR@/cgproxy/config.json" #define READ_SIZE_MAX 128 #define CGROUP_PROXY_PRESVERED "/proxy.slice" diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 41f33b5..60be96a 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -2,4 +2,4 @@ include_directories(${PROJECT_SOURCE_DIR}) include_directories(${PROJECT_SOURCE_DIR}/src) add_executable(cgattach cgattach.cpp ../src/cgroup_attach.cpp ../src/common.cpp) -install(TARGETS cgattach DESTINATION /usr/bin PERMISSIONS ${basic_permission}) \ No newline at end of file +install(TARGETS cgattach DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} PERMISSIONS ${basic_permission}) \ No newline at end of file