From: 胡玮文 Date: Wed, 14 Apr 2021 17:33:18 +0000 (+0800) Subject: cmake: fix default systemd unit install dir X-Git-Tag: v17.1.0~116^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8e49d3617012a70f037b506c99ddd0debd53a3e8;p=ceph.git cmake: fix default systemd unit install dir The original usage of CMAKE_INSTALL_LIBEXECDIR is incorrect. Also try to get the path from pkg-config Signed-off-by: 胡玮文 --- diff --git a/ceph.spec.in b/ceph.spec.in index 3579d7e628ea..5be5d5a1333a 100644 --- a/ceph.spec.in +++ b/ceph.spec.in @@ -1282,7 +1282,7 @@ cmake .. \ -DCMAKE_INSTALL_MANDIR:PATH=%{_mandir} \ -DCMAKE_INSTALL_DOCDIR:PATH=%{_docdir}/ceph \ -DCMAKE_INSTALL_INCLUDEDIR:PATH=%{_includedir} \ - -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR:PATH=%{_unitdir} \ + -DSYSTEMD_SYSTEM_UNIT_DIR:PATH=%{_unitdir} \ -DWITH_MANPAGE:BOOL=ON \ -DWITH_PYTHON3:STRING=%{python3_version} \ -DWITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF \ diff --git a/debian/control b/debian/control index 1800b000eeeb..8f5c9c8e1bb5 100644 --- a/debian/control +++ b/debian/control @@ -100,6 +100,7 @@ Build-Depends: automake, python3-yaml, ragel , socat , + systemd, systemtap-sdt-dev , uuid-dev , uuid-runtime, diff --git a/debian/rules b/debian/rules index 0e7883e39812..3ad9f248b7bf 100755 --- a/debian/rules +++ b/debian/rules @@ -39,7 +39,6 @@ extraopts += -DWITH_RBD_SSD_CACHE=ON extraopts += -DCMAKE_INSTALL_LIBDIR=/usr/lib extraopts += -DCMAKE_INSTALL_LIBEXECDIR=/usr/libexec extraopts += -DCMAKE_INSTALL_SYSCONFDIR=/etc -extraopts += -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=/lib/systemd/system ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) extraopts += -DBOOST_J=$(NUMJOBS) diff --git a/systemd/CMakeLists.txt b/systemd/CMakeLists.txt index 499b5d190241..ad75ce61cd8d 100644 --- a/systemd/CMakeLists.txt +++ b/systemd/CMakeLists.txt @@ -1,5 +1,14 @@ -set(CMAKE_INSTALL_SYSTEMD_SERVICEDIR "${CMAKE_INSTALL_LIBEXECDIR}/systemd/system" - CACHE PATH "Location for systemd service files") +find_package(PkgConfig QUIET REQUIRED) +pkg_get_variable(SYSTEMD_SYSTEM_UNIT_DIR "systemd" "systemd_system_unit_dir") +if(NOT SYSTEMD_SYSTEM_UNIT_DIR) + pkg_get_variable(SYSTEMD_SYSTEM_UNIT_DIR "systemd" "systemdsystemunitdir") + if(NOT SYSTEMD_SYSTEM_UNIT_DIR) + set(SYSTEMD_SYSTEM_UNIT_DIR "${CMAKE_INSTALL_LIBDIR}/systemd/system") + endif() +endif() +set(SYSTEMD_SYSTEM_UNIT_DIR "${SYSTEMD_SYSTEM_UNIT_DIR}" + CACHE PATH "Location for systemd system unit files") + set(CEPH_SYSTEMD_ENV_DIR "/etc/sysconfig" CACHE PATH "Location for systemd service environmental variable settings files") set(SYSTEMD_ENV_FILE "${CEPH_SYSTEMD_ENV_DIR}/ceph") @@ -21,7 +30,7 @@ foreach(service @ONLY) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${service}.service - DESTINATION ${CMAKE_INSTALL_SYSTEMD_SERVICEDIR}) + DESTINATION ${SYSTEMD_SYSTEM_UNIT_DIR}) endforeach() install(FILES @@ -36,4 +45,4 @@ install(FILES ceph-immutable-object-cache.target ceph-volume@.service cephfs-mirror.target - DESTINATION ${CMAKE_INSTALL_SYSTEMD_SERVICEDIR}) + DESTINATION ${SYSTEMD_SYSTEM_UNIT_DIR})