From 0aec148efe7d9e032a5ae446bf359d7cd9e1364d Mon Sep 17 00:00:00 2001 From: Chris McFarlen Date: Tue, 29 Aug 2023 08:50:13 -0500 Subject: [PATCH] setup default install path, runtime user and group --- CMakeLists.txt | 20 ++++++++++++++++++++ include/tscore/ink_config.h.cmake.in | 5 ++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e3724f2199..f78863f0e60 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,6 +57,24 @@ option(ENABLE_LUAJIT "Use LuaJIT (default OFF)") option(ENABLE_MIMALLOC "Use mimalloc (default OFF)") option(ENABLE_DOCS "Build docs (default OFF)") +# Setup user +# NOTE: this is the user trafficserver runs as +set(WITH_USER nobody CACHE STRING "The system user (default nobody)") +# NOTE: I can't tell that this is used at all besides being printed +set(WITH_GROUP nobody CACHE STRING "The system group (default nobody, or specified user's group)") + +if(WITH_GROUP STREQUAL nobody) + execute_process(COMMAND id -ng ${WITH_USER} OUTPUT_VARIABLE TS_PKGSYSGROUP OUTPUT_STRIP_TRAILING_WHITESPACE) +else() + set(TS_PKGSYSGROUP ${WITH_GROUP}) +endif() +set(TS_PKGSYSUSER ${WITH_USER}) + +# Setup default install directory +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX /usr/local/trafficserver CACHE PATH "Default install path" FORCE) +endif() + if(CMAKE_SYSTEM_NAME STREQUAL Linux) set(DEFAULT_POSIX_CAP ON) endif() @@ -468,6 +486,8 @@ cmake_print_variables(CMAKE_CXX_FLAGS) cmake_print_variables(CMAKE_C_FLAGS) cmake_print_variables(BUILD_PERSON) cmake_print_variables(BUILD_GROUP) +cmake_print_variables(TS_PKGSYSUSER) +cmake_print_variables(TS_PKGSYSGROUP) cmake_print_variables(BUILD_MACHINE) cmake_print_variables(DEFAULT_STACK_SIZE) cmake_print_variables(CMAKE_INSTALL_RPATH) diff --git a/include/tscore/ink_config.h.cmake.in b/include/tscore/ink_config.h.cmake.in index da9f929d958..ec9a82f54f2 100644 --- a/include/tscore/ink_config.h.cmake.in +++ b/include/tscore/ink_config.h.cmake.in @@ -87,9 +87,8 @@ #define SIZEOF_VOIDP @CMAKE_SIZEOF_VOID_P@ -/* TODO(cmcfarlen): make this configurable */ -#define TS_PKGSYSUSER "@pkgsysuser@" -#define TS_PKGSYSGROUP "@pkgsysgroup@" +#define TS_PKGSYSUSER "@TS_PKGSYSUSER@" +#define TS_PKGSYSGROUP "@TS_PKGSYSGROUP@" #define TS_BUILD_PREFIX "@CMAKE_INSTALL_PREFIX@" #define TS_BUILD_EXEC_PREFIX ""