From 1c29bcf78627b12aaf24c383d88b0f33867f38a0 Mon Sep 17 00:00:00 2001 From: Andreas Rogge Date: Mon, 29 Jan 2024 17:43:31 +0100 Subject: [PATCH] cmake: configure individual files in core/platforms/ Instead of configuring all .in files, the CMakeLists now configure only the files they need and put those in the output directory --- .gitignore | 36 +-------------------------- core/CMakeLists.txt | 2 +- core/platforms/darwin/CMakeLists.txt | 19 ++++++++------ core/platforms/debian/CMakeLists.txt | 7 ++++-- core/platforms/freebsd/CMakeLists.txt | 11 +++++--- core/platforms/packaging/bareos.spec | 6 ++--- core/platforms/redhat/CMakeLists.txt | 11 +++++--- core/platforms/suse/CMakeLists.txt | 11 +++++--- core/platforms/systemd/CMakeLists.txt | 19 +++++++++++--- 9 files changed, 57 insertions(+), 65 deletions(-) diff --git a/.gitignore b/.gitignore index 00f0a9bf66f..7d0943d4289 100644 --- a/.gitignore +++ b/.gitignore @@ -21,41 +21,7 @@ webui/version.php # Ignore files created by core/cmake/BareosConfigureFile.cmake # can be regenerated by running the following command: -# find debian/ core/src/ core/platforms/ core/scripts/ -not -path 'core/src/droplet/*' -name '*.in' -print | sed -e 's/\.in$//' | sort -core/platforms/aix/bareos-fd -core/platforms/darwin/resources/com.bareos.bareos-fd.plist -core/platforms/darwin/resources/postinstall -core/platforms/darwin/resources/preinstall -core/platforms/darwin/resources/ReadMe.html -core/platforms/darwin/resources/uninstall-bareos -core/platforms/darwin/resources/welcome.txt -core/platforms/debian/set_dbconfig_vars.sh -core/platforms/freebsd/bareos-dir -core/platforms/freebsd/bareos-fd -core/platforms/freebsd/bareos-sd -core/platforms/hurd/bareos-dir -core/platforms/hurd/bareos-fd -core/platforms/hurd/bareos-sd -core/platforms/openbsd/bareos-dir -core/platforms/openbsd/bareos-fd -core/platforms/openbsd/bareos-sd -core/platforms/redhat/bareos-dir -core/platforms/redhat/bareos-fd -core/platforms/redhat/bareos-sd -core/platforms/slackware/functions.bareos -core/platforms/slackware/rc.bareos-dir -core/platforms/slackware/rc.bareos-fd -core/platforms/slackware/rc.bareos-sd -core/platforms/solaris/bareos-dir -core/platforms/solaris/bareos-fd -core/platforms/solaris/bareos-sd -core/platforms/suse/bareos-dir -core/platforms/suse/bareos-fd -core/platforms/suse/bareos-sd -core/platforms/systemd/bareos-dir.service -core/platforms/systemd/bareos-fd.service -core/platforms/systemd/bareos-sd.service -core/platforms/univention/conffiles/etc/apt/sources.list.d/60_bareos.list +# find debian/ core/src/ core/scripts/ -not -path 'core/src/droplet/*' -name '*.in' -print | sed -e 's/\.in$//' | sort core/scripts/bareos core/scripts/bareos-config core/scripts/bareos-config-lib.sh diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index e26a822d591..34cd874c684 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -730,7 +730,7 @@ endif() include(BareosConfigureFile) bareos_configure_file( GLOB_RECURSE "${CMAKE_SOURCE_DIR}/debian/*.in" "src/*.in" "scripts/*.in" - "platforms/*.in" IN_TREE + IN_TREE ) add_subdirectory(platforms) diff --git a/core/platforms/darwin/CMakeLists.txt b/core/platforms/darwin/CMakeLists.txt index 843a40b7f91..8b2f3446c5b 100644 --- a/core/platforms/darwin/CMakeLists.txt +++ b/core/platforms/darwin/CMakeLists.txt @@ -1,6 +1,6 @@ # BAREOS® - Backup Archiving REcovery Open Sourced # -# Copyright (C) 2019-2020 Bareos GmbH & Co. KG +# Copyright (C) 2019-2024 Bareos GmbH & Co. KG # # This program is Free Software; you can redistribute it and/or # modify it under the terms of version three of the GNU Affero General Public @@ -18,14 +18,17 @@ # 02110-1301, USA. message("Entering ${CMAKE_CURRENT_SOURCE_DIR}") +include(BareosConfigureFile) +bareos_configure_file(GLOB_RECURSE "resources/*.in") + install( - FILES resources/com.bareos.bareos-fd.plist + FILES ${CMAKE_CURRENT_BINARY_DIR}/resources/com.bareos.bareos-fd.plist DESTINATION "${scriptdir}" COMPONENT filedaemon ) install( - FILES resources/uninstall-bareos + FILES ${CMAKE_CURRENT_BINARY_DIR}/resources/uninstall-bareos DESTINATION "${scriptdir}" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE @@ -49,13 +52,13 @@ set(CPACK_PACKAGE_DESCRIPTION_FILE set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/bareos-logo.png") -set(CPACK_PRODUCTBUILD_RESOURCES_DIR "${CMAKE_CURRENT_LIST_DIR}/resources") +set(CPACK_PRODUCTBUILD_RESOURCES_DIR "${CMAKE_CURRENT_BINARY_DIR}/resources") set(CPACK_RESOURCE_FILE_WELCOME - "${CMAKE_CURRENT_LIST_DIR}/resources/welcome.txt" + "${CMAKE_CURRENT_BINARY_DIR}/resources/welcome.txt" ) set(CPACK_RESOURCE_FILE_README - "${CMAKE_CURRENT_LIST_DIR}/resources/ReadMe.html" + "${CMAKE_CURRENT_BINARY_DIR}/resources/ReadMe.html" ) set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/AGPL-3.0.txt") @@ -66,10 +69,10 @@ set(CPACK_GENERATOR "productbuild") set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) set(CPACK_PREFLIGHT_FILEDAEMON_SCRIPT - "${CMAKE_CURRENT_LIST_DIR}/resources/preinstall" + "${CMAKE_CURRENT_BINARY_DIR}/resources/preinstall" ) set(CPACK_POSTFLIGHT_FILEDAEMON_SCRIPT - "${CMAKE_CURRENT_LIST_DIR}/resources/postinstall" + "${CMAKE_CURRENT_BINARY_DIR}/resources/postinstall" ) set(CPACK_SET_DESTDIR TRUE) diff --git a/core/platforms/debian/CMakeLists.txt b/core/platforms/debian/CMakeLists.txt index f3e39fcda61..ae02960dbbb 100644 --- a/core/platforms/debian/CMakeLists.txt +++ b/core/platforms/debian/CMakeLists.txt @@ -1,6 +1,6 @@ # BAREOS® - Backup Archiving REcovery Open Sourced # -# Copyright (C) 2017-2023 Bareos GmbH & Co. KG +# Copyright (C) 2017-2024 Bareos GmbH & Co. KG # # This program is Free Software; you can redistribute it and/or # modify it under the terms of version three of the GNU Affero General Public @@ -22,11 +22,14 @@ set(DESTSTARTDIR "${sysconfdir}/init.d/") message(STATUS "installing startfiles to ${DESTSTARTDIR}") +include(BareosConfigureFile) +bareos_configure_file(FILES set_dbconfig_vars.sh.in) + # logrotate # dbconfig install( - FILES "${CMAKE_CURRENT_LIST_DIR}/../debian/set_dbconfig_vars.sh" + FILES "${CMAKE_CURRENT_BINARY_DIR}/set_dbconfig_vars.sh" DESTINATION "${scriptdir}/" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE diff --git a/core/platforms/freebsd/CMakeLists.txt b/core/platforms/freebsd/CMakeLists.txt index 3fc908a9b78..24a174d62d8 100644 --- a/core/platforms/freebsd/CMakeLists.txt +++ b/core/platforms/freebsd/CMakeLists.txt @@ -1,6 +1,6 @@ # BAREOS® - Backup Archiving REcovery Open Sourced # -# Copyright (C) 2018-2020 Bareos GmbH & Co. KG +# Copyright (C) 2018-2024 Bareos GmbH & Co. KG # # This program is Free Software; you can redistribute it and/or # modify it under the terms of version three of the GNU Affero General Public @@ -18,13 +18,16 @@ # 02110-1301, USA. message("Entering ${CMAKE_CURRENT_SOURCE_DIR}") +include(BareosConfigureFile) +bareos_configure_file(FILES bareos-fd.in bareos-sd.in bareos-dir.in) + set(DESTSTARTDIR "${sysconfdir}/rc.d/") message(STATUS "installing startfiles to ${DESTSTARTDIR}") # Install autostart fd install( - FILES "${CMAKE_CURRENT_LIST_DIR}/bareos-fd" + FILES "${CMAKE_CURRENT_BINARY_DIR}/bareos-fd" DESTINATION "${DESTSTARTDIR}/" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE @@ -32,7 +35,7 @@ install( # Install autostart sd install( - FILES "${CMAKE_CURRENT_LIST_DIR}/bareos-sd" + FILES "${CMAKE_CURRENT_BINARY_DIR}/bareos-sd" DESTINATION "${DESTSTARTDIR}/" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE @@ -40,7 +43,7 @@ install( # Install autostart dir install( - FILES "${CMAKE_CURRENT_LIST_DIR}/bareos-dir" + FILES "${CMAKE_CURRENT_BINARY_DIR}/bareos-dir" DESTINATION "${DESTSTARTDIR}/" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE diff --git a/core/platforms/packaging/bareos.spec b/core/platforms/packaging/bareos.spec index 96a7f63ded4..4572fcd4bad 100644 --- a/core/platforms/packaging/bareos.spec +++ b/core/platforms/packaging/bareos.spec @@ -1021,9 +1021,9 @@ rm -f %{buildroot}%{plugin_dir}/bareos-fd-vmware.py* # install systemd service files %if 0%{?systemd_support} install -d -m 755 %{buildroot}%{_unitdir} -install -m 644 core/platforms/systemd/bareos-dir.service %{buildroot}%{_unitdir} -install -m 644 core/platforms/systemd/bareos-fd.service %{buildroot}%{_unitdir} -install -m 644 core/platforms/systemd/bareos-sd.service %{buildroot}%{_unitdir} +install -m 644 %{CMAKE_BUILDDIR}/core/platforms/systemd/bareos-dir.service %{buildroot}%{_unitdir} +install -m 644 %{CMAKE_BUILDDIR}/core/platforms/systemd/bareos-fd.service %{buildroot}%{_unitdir} +install -m 644 %{CMAKE_BUILDDIR}/core/platforms/systemd/bareos-sd.service %{buildroot}%{_unitdir} %if 0%{?suse_version} ln -sf service %{buildroot}%{_sbindir}/rcbareos-dir ln -sf service %{buildroot}%{_sbindir}/rcbareos-fd diff --git a/core/platforms/redhat/CMakeLists.txt b/core/platforms/redhat/CMakeLists.txt index ef1d0ef27a5..0c98134c5dc 100644 --- a/core/platforms/redhat/CMakeLists.txt +++ b/core/platforms/redhat/CMakeLists.txt @@ -1,6 +1,6 @@ # BAREOS® - Backup Archiving REcovery Open Sourced # -# Copyright (C) 2017-2020 Bareos GmbH & Co. KG +# Copyright (C) 2017-2024 Bareos GmbH & Co. KG # # This program is Free Software; you can redistribute it and/or # modify it under the terms of version three of the GNU Affero General Public @@ -18,13 +18,16 @@ # 02110-1301, USA. message("Entering ${CMAKE_CURRENT_SOURCE_DIR}") +include(BareosConfigureFile) +bareos_configure_file(FILES bareos-fd.in bareos-sd.in bareos-dir.in) + set(DESTSTARTDIR "${sysconfdir}/rc.d/init.d/") message(STATUS "installing startfiles to ${DESTSTARTDIR}") # Install autostart fd install( - FILES "${CMAKE_CURRENT_LIST_DIR}/bareos-fd" + FILES "${CMAKE_CURRENT_BINARY_DIR}/bareos-fd" DESTINATION "${DESTSTARTDIR}/" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE @@ -32,7 +35,7 @@ install( # Install autostart sd install( - FILES "${CMAKE_CURRENT_LIST_DIR}/bareos-sd" + FILES "${CMAKE_CURRENT_BINARY_DIR}/bareos-sd" DESTINATION "${DESTSTARTDIR}/" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE @@ -40,7 +43,7 @@ install( # Install autostart dir install( - FILES "${CMAKE_CURRENT_LIST_DIR}/bareos-dir" + FILES "${CMAKE_CURRENT_BINARY_DIR}/bareos-dir" DESTINATION "${DESTSTARTDIR}/" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE diff --git a/core/platforms/suse/CMakeLists.txt b/core/platforms/suse/CMakeLists.txt index f282be599cb..a05ee2a0924 100644 --- a/core/platforms/suse/CMakeLists.txt +++ b/core/platforms/suse/CMakeLists.txt @@ -1,6 +1,6 @@ # BAREOS® - Backup Archiving REcovery Open Sourced # -# Copyright (C) 2017-2020 Bareos GmbH & Co. KG +# Copyright (C) 2017-2024 Bareos GmbH & Co. KG # # This program is Free Software; you can redistribute it and/or # modify it under the terms of version three of the GNU Affero General Public @@ -18,6 +18,9 @@ # 02110-1301, USA. message("Entering ${CMAKE_CURRENT_SOURCE_DIR}") +include(BareosConfigureFile) +bareos_configure_file(FILES bareos-fd.in bareos-sd.in bareos-dir.in) + set(FIREWALL_DIR ${sysconfdir}/sysconfig/SuSEfirewall2.d/services/) set(DESTSTARTDIR ${sysconfdir}/init.d/) @@ -27,21 +30,21 @@ install(DIRECTORY DESTINATION ${DESTSTARTDIR}) # Install autostart fd install( - FILES "${CMAKE_CURRENT_LIST_DIR}/bareos-fd" + FILES "${CMAKE_CURRENT_BINARY_DIR}/bareos-fd" DESTINATION "${DESTSTARTDIR}" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) # Install autostart sd install( - FILES "${CMAKE_CURRENT_LIST_DIR}/bareos-sd" + FILES "${CMAKE_CURRENT_BINARY_DIR}/bareos-sd" DESTINATION "${DESTSTARTDIR}" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) # Install autostart dir install( - FILES "${CMAKE_CURRENT_LIST_DIR}/bareos-dir" + FILES "${CMAKE_CURRENT_BINARY_DIR}/bareos-dir" DESTINATION "${DESTSTARTDIR}" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE diff --git a/core/platforms/systemd/CMakeLists.txt b/core/platforms/systemd/CMakeLists.txt index 10b6b072bb5..f6304ea3af8 100644 --- a/core/platforms/systemd/CMakeLists.txt +++ b/core/platforms/systemd/CMakeLists.txt @@ -1,6 +1,6 @@ # BAREOS® - Backup Archiving REcovery Open Sourced # -# Copyright (C) 2017-2020 Bareos GmbH & Co. KG +# Copyright (C) 2017-2024 Bareos GmbH & Co. KG # # This program is Free Software; you can redistribute it and/or # modify it under the terms of version three of the GNU Affero General Public @@ -18,9 +18,20 @@ # 02110-1301, USA. message("Entering ${CMAKE_CURRENT_SOURCE_DIR}") +include(BareosConfigureFile) +bareos_configure_file( + FILES bareos-fd.service.in bareos-sd.service.in bareos-dir.service.in +) + message(STATUS "CMAKE_CURRENT_LIST_FILE: " ${CMAKE_CURRENT_LIST_FILE}) message(STATUS "installing systemd files to ${SYSTEMD_UNITDIR}") -install(FILES "bareos-sd.service" DESTINATION ${SYSTEMD_UNITDIR}) -install(FILES "bareos-fd.service" DESTINATION ${SYSTEMD_UNITDIR}) -install(FILES "bareos-dir.service" DESTINATION ${SYSTEMD_UNITDIR}) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/bareos-sd.service" + DESTINATION ${SYSTEMD_UNITDIR} +) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/bareos-fd.service" + DESTINATION ${SYSTEMD_UNITDIR} +) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/bareos-dir.service" + DESTINATION ${SYSTEMD_UNITDIR} +)