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