This is an automated email from the ASF dual-hosted git repository.

martinzink pushed a commit to branch MINIFICPP-2584-apache
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git


The following commit(s) were added to refs/heads/MINIFICPP-2584-apache by this 
push:
     new 2c54c6121 packaging dir and service file configuration
2c54c6121 is described below

commit 2c54c6121265c8884bfbfd1c3d8a27f409c3c404
Author: Martin Zink <[email protected]>
AuthorDate: Wed Jul 16 10:24:50 2025 +0200

    packaging dir and service file configuration
---
 .github/workflows/verify-package.yml               |   2 +-
 .gitignore                                         |   2 +-
 CMakeLists.txt                                     |  45 ++++---------
 bin/CMakeLists.txt                                 |  71 +++++++++++++++++++++
 bin/minifi.service.in                              |  16 +++++
 conanfile.py                                       |   2 +-
 {msi => packaging/msi}/MergeModulesFeature.xml     |   0
 .../msi}/VSRedistributablesComponent.xml           |   0
 .../msi}/VSRedistributablesFeature.xml             |   0
 {msi => packaging/msi}/WixWin.wsi.in               |   0
 {msi => packaging/msi}/bgr.png                     | Bin
 {msi => packaging/msi}/minifi-logo-ico.ico         | Bin
 {msi => packaging/msi}/minifi-logo-png-banner.png  | Bin
 {msi => packaging/msi}/x64.wsi                     |   0
 {msi => packaging/msi}/x86.wsi                     |   0
 packaging/{ => rpm}/check_rpm_contents.sh          |   0
 packaging/{ => rpm}/expected-rpm-contents.txt      |   0
 packaging/{ => rpm}/pre_install.sh                 |   0
 18 files changed, 104 insertions(+), 34 deletions(-)

diff --git a/.github/workflows/verify-package.yml 
b/.github/workflows/verify-package.yml
index 112f07483..de3140734 100644
--- a/.github/workflows/verify-package.yml
+++ b/.github/workflows/verify-package.yml
@@ -43,7 +43,7 @@ jobs:
 
       - id: check-rpm-contents
         run: |
-          packaging/check_rpm_contents.sh build/*.rpm 
packaging/expected-rpm-contents.txt
+          packaging/rpm/check_rpm_contents.sh build/*.rpm 
packaging/rpm/expected-rpm-contents.txt
 
       - uses: actions/upload-artifact@v4
         with:
diff --git a/.gitignore b/.gitignore
index 8a57ba1c0..189fd1d91 100644
--- a/.gitignore
+++ b/.gitignore
@@ -63,7 +63,7 @@ __pycache__/
 /content_repository
 /provenance_repository
 /logs
-msi/WixWin.wsi
+packaging/msi/WixWin.wsi
 docker/behavex_output
 
 .vs/**
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1a86eb7ff..047160012 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -427,8 +427,8 @@ if(WIN32)
     set(CPACK_COMPONENT_HEADERS_INSTALL_TYPES Developer Full)
     set(CPACK_COMPONENT_APPLICATIONS_INSTALL_TYPES Full)
     set(CPACK_WIX_EXTENSIONS WixUtilExtension)
-    set(CPACK_WIX_UI_BANNER 
"${CMAKE_CURRENT_SOURCE_DIR}/msi/minifi-logo-png-banner.png")
-    set(CPACK_WIX_UI_DIALOG "${CMAKE_CURRENT_SOURCE_DIR}/msi/bgr.png")
+    set(CPACK_WIX_UI_BANNER 
"${CMAKE_CURRENT_SOURCE_DIR}/packaging/msi/minifi-logo-png-banner.png")
+    set(CPACK_WIX_UI_DIALOG 
"${CMAKE_CURRENT_SOURCE_DIR}/packaging/msi/bgr.png")
 
     file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/fips/" DESTINATION 
"${CMAKE_CURRENT_BINARY_DIR}/fips/")
     file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE" DESTINATION 
"${CMAKE_CURRENT_BINARY_DIR}")
@@ -502,15 +502,15 @@ if(WIN32)
 
         if (BUILD_PLATFORM STREQUAL "x64")
             message("Using ${VCRUNTIME_X64_MERGEMODULE_PATH} VC 
Redistributable Merge Module")
-            configure_file("msi/x64.wsi" "msi/x64.wsi" @ONLY)
-            list(APPEND CPACK_WIX_EXTRA_SOURCES 
"${CMAKE_CURRENT_BINARY_DIR}/msi/x64.wsi")
+            configure_file("packaging/msi/x64.wsi" "packaging/msi/x64.wsi" 
@ONLY)
+            list(APPEND CPACK_WIX_EXTRA_SOURCES 
"${CMAKE_CURRENT_BINARY_DIR}/packaging/msi/x64.wsi")
         else()
             message("Using ${VCRUNTIME_X86_MERGEMODULE_PATH} VC 
Redistributable Merge Module")
-            configure_file("msi/x86.wsi" "msi/x86.wsi" @ONLY)
-            list(APPEND CPACK_WIX_EXTRA_SOURCES 
"${CMAKE_CURRENT_BINARY_DIR}/msi/x86.wsi")
+            configure_file("packaging/msi/x86.wsi" "packaging/msi/x86.wsi" 
@ONLY)
+            list(APPEND CPACK_WIX_EXTRA_SOURCES 
"${CMAKE_CURRENT_BINARY_DIR}/packaging/msi/x86.wsi")
         endif()
 
-        file(READ "${CMAKE_CURRENT_SOURCE_DIR}/msi/MergeModulesFeature.xml" 
WIX_EXTRA_FEATURES)
+        file(READ 
"${CMAKE_CURRENT_SOURCE_DIR}/packaging/msi/MergeModulesFeature.xml" 
WIX_EXTRA_FEATURES)
     elseif(MINIFI_INCLUDE_VC_REDIST_DLLS)
         message("Creating installer with Visual C++ Redistributable DLLs")
         file(GLOB VC_RUNTIME_X86_REDIST_CRT_DIR_LIST LIST_DIRECTORIES true 
"${VCRUNTIME_REDIST_DIR}/x86/Microsoft.VC*.CRT")
@@ -533,13 +533,13 @@ if(WIN32)
         else()
             message(FATAL_ERROR "Could not determine architecture, 
CMAKE_SIZEOF_VOID_P is unexpected: ${CMAKE_SIZEOF_VOID_P}")
         endif()
-        file(READ 
"${CMAKE_CURRENT_SOURCE_DIR}/msi/VSRedistributablesComponent.xml" 
WIX_EXTRA_COMPONENTS)
-        file(READ 
"${CMAKE_CURRENT_SOURCE_DIR}/msi/VSRedistributablesFeature.xml" 
WIX_EXTRA_FEATURES)
+        file(READ 
"${CMAKE_CURRENT_SOURCE_DIR}/packaging/msi/VSRedistributablesComponent.xml" 
WIX_EXTRA_COMPONENTS)
+        file(READ 
"${CMAKE_CURRENT_SOURCE_DIR}/packaging/msi/VSRedistributablesFeature.xml" 
WIX_EXTRA_FEATURES)
     else()
         message("Creating installer without UCRT or VC Redistributable")
     endif()
-    configure_file("${CMAKE_CURRENT_SOURCE_DIR}/msi/WixWin.wsi.in" 
"${CMAKE_CURRENT_SOURCE_DIR}/msi/WixWin.wsi")
-    set(CPACK_WIX_TEMPLATE "${CMAKE_CURRENT_SOURCE_DIR}/msi/WixWin.wsi")
+    configure_file("${CMAKE_CURRENT_SOURCE_DIR}/packaging/msi/WixWin.wsi.in" 
"${CMAKE_CURRENT_SOURCE_DIR}/packaging/msi/WixWin.wsi")
+    set(CPACK_WIX_TEMPLATE 
"${CMAKE_CURRENT_SOURCE_DIR}/packaging/msi/WixWin.wsi")
 else()
     set(CPACK_SOURCE_GENERATOR "TGZ")
 endif(WIN32)
@@ -588,17 +588,13 @@ set(CPACK_SOURCE_IGNORE_FILES
 )
 
 add_subdirectory(conf)
+add_subdirectory(bin)
 if (NOT WIN32)
     if (MINIFI_PACKAGING_TYPE STREQUAL "RPM")
         message(STATUS "Configuring for FHS/RPM package installation.")
         install(FILES fips/openssl.cnf fips/README.md
                 DESTINATION /${CMAKE_INSTALL_SYSCONFDIR}/${PROJECT_NAME}/fips
                 COMPONENT bin)
-        install(PROGRAMS bin/minifi.sh DESTINATION ${CMAKE_INSTALL_BINDIR})
-        install(FILES bin/minifi.service
-                DESTINATION ${CMAKE_INSTALL_LIBDIR}/systemd/system
-                COMPONENT bin
-        )
         install(DIRECTORY DESTINATION 
/${CMAKE_INSTALL_LOCALSTATEDIR}/lib/${PROJECT_NAME} COMPONENT bin)
         install(DIRECTORY DESTINATION 
/${CMAKE_INSTALL_LOCALSTATEDIR}/log/${PROJECT_NAME} COMPONENT bin)
         install(DIRECTORY extensions/python/pythonprocessors/
@@ -609,7 +605,6 @@ if (NOT WIN32)
                 COMPONENT bin)
     elseif (MINIFI_PACKAGING_TYPE STREQUAL "TGZ")
         message(STATUS "Configuring for self-contained TGZ package 
installation.")
-        install(PROGRAMS bin/minifi.sh DESTINATION bin)
         install(FILES fips/openssl.cnf fips/README.md
                 DESTINATION fips
                 COMPONENT bin)
@@ -619,18 +614,6 @@ if (NOT WIN32)
         install(DIRECTORY extensions/python/pythonprocessor-examples/
                 DESTINATION minifi-python-examples
                 COMPONENT bin)
-        install(PROGRAMS bin/minifi.sh
-                DESTINATION bin
-                COMPONENT bin)
-        if (APPLE)
-            install(FILES bin/minifi.plist
-                    DESTINATION bin
-                    COMPONENT bin)
-        else()
-            install(FILES bin/minifi.service
-                    DESTINATION bin
-                    COMPONENT bin)
-        endif()
     else()
         message(FATAL_ERROR "Invalid MINIFI_PACKAGING_TYPE")
     endif()
@@ -655,7 +638,7 @@ include(CPackComponent)
 if (WIN32)
     set(CPACK_GENERATOR "WIX")
     set(CPACK_WIX_UPGRADE_GUID "FE29F801-3486-4E9E-AFF9-838C1A5C8D59")
-    set(CPACK_WIX_PRODUCT_ICON 
"${CMAKE_CURRENT_SOURCE_DIR}/msi/minifi-logo-ico.ico")
+    set(CPACK_WIX_PRODUCT_ICON 
"${CMAKE_CURRENT_SOURCE_DIR}/packaging/msi/minifi-logo-ico.ico")
 elseif(APPLE)
     set(CPACK_GENERATOR "TGZ")
 else()
@@ -671,7 +654,7 @@ else()
         set(CMAKE_INSTALL_RPATH 
"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}")
         set(CPACK_RPM_DEFAULT_USER "minificpp")
         set(CPACK_RPM_DEFAULT_GROUP "minificpp")
-        set(CPACK_RPM_PRE_INSTALL_SCRIPT_FILE 
"${CMAKE_CURRENT_SOURCE_DIR}/packaging/pre_install.sh")
+        set(CPACK_RPM_PRE_INSTALL_SCRIPT_FILE 
"${CMAKE_CURRENT_SOURCE_DIR}/packaging/rpm/pre_install.sh")
         list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/var")
         list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/var/lib")
         list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/var/log")
diff --git a/bin/CMakeLists.txt b/bin/CMakeLists.txt
new file mode 100644
index 000000000..f9159b4a1
--- /dev/null
+++ b/bin/CMakeLists.txt
@@ -0,0 +1,71 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+#
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# Exclude conf for windows since we'll be doing the work in the WiX template
+
+if (WIN32)
+    return()
+endif()
+
+
+if (MINIFI_PACKAGING_TYPE STREQUAL "RPM")
+    set(MINIFI_HOME_ENV_VALUE "FHS")
+    set(MINIFI_EXEC_PATH "/usr/bin/minifi")
+elseif (MINIFI_PACKAGING_TYPE STREQUAL "TGZ")
+    set(MINIFI_HOME_ENV_VALUE "/opt/minifi-cpp")
+    set(MINIFI_EXEC_PATH "/opt/minifi-cpp/bin/minifi")
+else()
+    message(FATAL_ERROR "Invalid MINIFI_PACKAGING_TYPE")
+endif()
+
+
+if(APPLE)
+    configure_file(
+            minifi.service.in
+            ${CMAKE_BINARY_DIR}/bin/minifi.service
+            @ONLY
+    )
+else()
+    configure_file(
+            minifi.plist
+            ${CMAKE_BINARY_DIR}/bin/minifi.plist
+            @ONLY
+    )
+endif()
+
+
+configure_file(
+        minifi.sh
+        ${CMAKE_BINARY_DIR}/bin/minifi.sh
+        @ONLY
+)
+
+if (MINIFI_PACKAGING_TYPE STREQUAL "RPM")
+    install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/minifi.sh DESTINATION 
${CMAKE_INSTALL_BINDIR})
+    install(FILES ${CMAKE_BINARY_DIR}/bin/minifi.service DESTINATION 
${CMAKE_INSTALL_LIBDIR}/systemd/system COMPONENT bin)
+elseif (MINIFI_PACKAGING_TYPE STREQUAL "TGZ")
+    install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/minifi.sh DESTINATION 
${CMAKE_INSTALL_BINDIR})
+    if (APPLE)
+        install(FILES ${CMAKE_BINARY_DIR}/minifi.plist DESTINATION bin 
COMPONENT bin)
+    else()
+        install(FILES ${CMAKE_BINARY_DIR}/minifi.service DESTINATION bin 
COMPONENT bin)
+    endif()
+else()
+    message(FATAL_ERROR "Invalid MINIFI_PACKAGING_TYPE")
+endif()
\ No newline at end of file
diff --git a/bin/minifi.service.in b/bin/minifi.service.in
new file mode 100644
index 000000000..8787ffae3
--- /dev/null
+++ b/bin/minifi.service.in
@@ -0,0 +1,16 @@
+[Unit]
+Description=Starts and stops the MiNiFi C++ Agent
+After=network.target
+
+[Service]
+Type=simple
+Environment=MINIFI_HOME=@{MINIFI_HOME_ENV_VALUE}
+ExecStart=@{MINIFI_EXEC_PATH}
+Restart=on-failure
+RestartSec=3
+KillSignal=SIGTERM
+TimeoutStopSec=20
+RestartForceExitStatus=3
+
+[Install]
+WantedBy=multi-user.target
diff --git a/conanfile.py b/conanfile.py
index f4bf443de..908a0805f 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -9,7 +9,7 @@ required_conan_version = ">=2.0"
 
 shared_requires = ("openssl/3.2.1", "libcurl/8.4.0", "civetweb/1.16", 
"libxml2/2.12.6", "fmt/10.2.1", "spdlog/1.14.0", "catch2/3.5.4", "zlib/1.2.11", 
"zstd/1.5.2", "bzip2/1.0.8", "rocksdb/8.10.2@minifi/develop")
 
-shared_sources = ("CMakeLists.txt", "libminifi/*", "extensions/*", 
"minifi_main/*", "nanofi/*", "bin/*", "bootstrap/*", "cmake/*", "conf/*", 
"controller/*", "encrypt-config/*", "etc/*", "examples/*", "msi/*", 
"thirdparty/*", "docker/*", "LICENSE", "NOTICE", "README.md", "C2.md", 
"CONFIGURE.md", "CONTRIBUTING.md", "CONTROLLERS.md", "EXPRESSIONS.md", 
"Extensions.md", "JNI.md", "METRICS.md", "OPS.md", "PROCESSORS.md", 
"ThirdParties.md", "Windows.md", "aptitude.sh", "arch.sh", "bootstrap.sh" [...]
+shared_sources = ("CMakeLists.txt", "libminifi/*", "extensions/*", 
"minifi_main/*", "nanofi/*", "bin/*", "bootstrap/*", "cmake/*", "conf/*", 
"controller/*", "encrypt-config/*", "etc/*", "examples/*", "packaging/msi/*", 
"thirdparty/*", "docker/*", "LICENSE", "NOTICE", "README.md", "C2.md", 
"CONFIGURE.md", "CONTRIBUTING.md", "CONTROLLERS.md", "EXPRESSIONS.md", 
"Extensions.md", "JNI.md", "METRICS.md", "OPS.md", "PROCESSORS.md", 
"ThirdParties.md", "Windows.md", "aptitude.sh", "arch.sh", "boo [...]
 
 
 class MiNiFiCppMain(ConanFile):
diff --git a/msi/MergeModulesFeature.xml b/packaging/msi/MergeModulesFeature.xml
similarity index 100%
rename from msi/MergeModulesFeature.xml
rename to packaging/msi/MergeModulesFeature.xml
diff --git a/msi/VSRedistributablesComponent.xml 
b/packaging/msi/VSRedistributablesComponent.xml
similarity index 100%
rename from msi/VSRedistributablesComponent.xml
rename to packaging/msi/VSRedistributablesComponent.xml
diff --git a/msi/VSRedistributablesFeature.xml 
b/packaging/msi/VSRedistributablesFeature.xml
similarity index 100%
rename from msi/VSRedistributablesFeature.xml
rename to packaging/msi/VSRedistributablesFeature.xml
diff --git a/msi/WixWin.wsi.in b/packaging/msi/WixWin.wsi.in
similarity index 100%
rename from msi/WixWin.wsi.in
rename to packaging/msi/WixWin.wsi.in
diff --git a/msi/bgr.png b/packaging/msi/bgr.png
similarity index 100%
rename from msi/bgr.png
rename to packaging/msi/bgr.png
diff --git a/msi/minifi-logo-ico.ico b/packaging/msi/minifi-logo-ico.ico
similarity index 100%
rename from msi/minifi-logo-ico.ico
rename to packaging/msi/minifi-logo-ico.ico
diff --git a/msi/minifi-logo-png-banner.png 
b/packaging/msi/minifi-logo-png-banner.png
similarity index 100%
rename from msi/minifi-logo-png-banner.png
rename to packaging/msi/minifi-logo-png-banner.png
diff --git a/msi/x64.wsi b/packaging/msi/x64.wsi
similarity index 100%
rename from msi/x64.wsi
rename to packaging/msi/x64.wsi
diff --git a/msi/x86.wsi b/packaging/msi/x86.wsi
similarity index 100%
rename from msi/x86.wsi
rename to packaging/msi/x86.wsi
diff --git a/packaging/check_rpm_contents.sh 
b/packaging/rpm/check_rpm_contents.sh
similarity index 100%
rename from packaging/check_rpm_contents.sh
rename to packaging/rpm/check_rpm_contents.sh
diff --git a/packaging/expected-rpm-contents.txt 
b/packaging/rpm/expected-rpm-contents.txt
similarity index 100%
rename from packaging/expected-rpm-contents.txt
rename to packaging/rpm/expected-rpm-contents.txt
diff --git a/packaging/pre_install.sh b/packaging/rpm/pre_install.sh
similarity index 100%
rename from packaging/pre_install.sh
rename to packaging/rpm/pre_install.sh

Reply via email to