diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4ddfa2649..7ad1c95b3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,9 +27,6 @@ option (USE_SYSTEMD
set(HAVE_SYSTEMD ${USE_SYSTEMD})
-file(STRINGS VERSION VERSION_LINE REGEX "^Version: ")
-string(REPLACE "Version: " "" ICINGA2_VERSION ${VERSION_LINE})
-
include(GNUInstallDirs)
include(InstallConfig)
include(SetFullDir)
@@ -104,10 +101,17 @@ else()
string(SUBSTRING ${SPEC_REVISION} 10 ${SPEC_REVISION_LENGTH} SPEC_REVISION)
set(GIT_VERSION "r${SPEC_VERSION}-${SPEC_REVISION}")
+ set(ICINGA2_VERSION "${SPEC_VERSION}")
+ else()
+ # use GIT version as ICINGA2_VERSION
+ string(REGEX REPLACE "^[rv]" "" ICINGA2_VERSION "${GIT_VERSION}")
endif()
configure_file(icinga-version.h.cmake icinga-version.h)
endif()
+# NuGet on Windows requires a semantic versioning, example: 2.10.4.123 (only 4 element, only numeric)
+string(REGEX REPLACE "-([0-9]+).*$" ".\\1" ICINGA2_VERSION_SAFE "${ICINGA2_VERSION}")
+
if(WIN32)
set(Boost_USE_STATIC_LIBS ON)
# Disabled for linking issues for newer Boost versions, they link against Windows SDKs
@@ -391,7 +395,7 @@ endif()
set(CPACK_PACKAGE_NAME "Icinga 2")
set(CPACK_PACKAGE_VENDOR "Icinga GmbH")
-set(CPACK_PACKAGE_VERSION ${ICINGA2_VERSION})
+set(CPACK_PACKAGE_VERSION ${ICINGA2_VERSION_SAFE})
set(CPACK_PACKAGE_INSTALL_DIRECTORY "ICINGA2")
set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/icinga-app\\\\icinga.ico")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/LICENSE.txt")
diff --git a/choco/CMakeLists.txt b/choco/CMakeLists.txt
index 650c41cf1..d7b90bb47 100644
--- a/choco/CMakeLists.txt
+++ b/choco/CMakeLists.txt
@@ -8,7 +8,7 @@ if(WIN32)
add_custom_target(choco-pkg ALL
COMMAND choco pack
- COMMAND ${CMAKE_COMMAND} -E rename ${CMAKE_CURRENT_BINARY_DIR}/icinga2.${SPEC_VERSION}.nupkg ${CMAKE_CURRENT_BINARY_DIR}/icinga2.nupkg
+ COMMAND ${CMAKE_COMMAND} -E rename ${CMAKE_CURRENT_BINARY_DIR}/icinga2.${ICINGA2_VERSION_SAFE}.nupkg ${CMAKE_CURRENT_BINARY_DIR}/icinga2.nupkg
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/icinga2.nuspec ${CMAKE_CURRENT_BINARY_DIR}/chocolateyInstall.ps1 chocolateyUninstall.ps1
)
endif()
diff --git a/choco/chocolateyInstall.ps1.cmake b/choco/chocolateyInstall.ps1.cmake
index cbf4ca0d9..ab1660324 100755
--- a/choco/chocolateyInstall.ps1.cmake
+++ b/choco/chocolateyInstall.ps1.cmake
@@ -1,7 +1,7 @@
$packageName = 'icinga2'
$installerType = 'msi'
-$url32 = 'https://packages.icinga.com/windows/Icinga2-v${SPEC_VERSION}-x86.msi'
-$url64 = 'https://packages.icinga.com/windows/Icinga2-v${SPEC_VERSION}-x86_64.msi'
+$url32 = 'https://packages.icinga.com/windows/Icinga2-v${ICINGA2_VERSION_SAFE}-x86.msi'
+$url64 = 'https://packages.icinga.com/windows/Icinga2-v${ICINGA2_VERSION_SAFE}-x86_64.msi'
$silentArgs = '/qn /norestart'
$validExitCodes = @(0)
diff --git a/choco/icinga2.nuspec.cmake b/choco/icinga2.nuspec.cmake
index 1b1465df6..46225b556 100755
--- a/choco/icinga2.nuspec.cmake
+++ b/choco/icinga2.nuspec.cmake
@@ -6,7 +6,7 @@