From b271e96a3c7ee59f18664d634edf4cd1d2a2ea71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20R=C3=B6hling?= Date: Sat, 8 Jun 2024 23:24:04 +0200 Subject: [PATCH] New upstream version 3.29.5 --- Help/cpack_gen/wix.rst | 13 ++++++++++++- Help/release/3.29.rst | 26 +++++++++++++++++++------- Modules/Internal/CPack/CPackWIX.cmake | 2 +- Source/CMakeVersion.cmake | 4 ++-- Source/CTest/cmUVJobServerClient.cxx | 4 ++++ 5 files changed, 38 insertions(+), 11 deletions(-) diff --git a/Help/cpack_gen/wix.rst b/Help/cpack_gen/wix.rst index cb56c9d31..43e3ff7dc 100644 --- a/Help/cpack_gen/wix.rst +++ b/Help/cpack_gen/wix.rst @@ -346,7 +346,7 @@ Windows using WiX. This variable can be optionally set to specify the ``InstallScope`` of the installer: - ``perMachine`` (default) + ``perMachine`` Create an installer that installs for all users and requires administrative privileges. Start menu entries created by the installer are visible to all users. @@ -357,6 +357,8 @@ Windows using WiX. ``NONE`` Create an installer without any ``InstallScope`` attribute. + This is the default to preserve compatibility with CPack 3.28 and older. + .. deprecated:: 3.29 This value is only for compatibility with the inconsistent behavior used @@ -365,4 +367,13 @@ Windows using WiX. but the start menu entry and uninstaller registration are created only for the current user. + .. warning:: + + An installation performed by an installer created without any + ``InstallScope`` cannot be cleanly updated or replaced by an + installer with an ``InstallScope``. In order to transition + a project's installers from ``NONE`` to ``perMachine``, the + latter installer should be distributed with instructions to + first manually uninstall any older version. + See https://wixtoolset.org/docs/v3/xsd/wix/package/ diff --git a/Help/release/3.29.rst b/Help/release/3.29.rst index 3903c91b1..10912b24d 100644 --- a/Help/release/3.29.rst +++ b/Help/release/3.29.rst @@ -193,13 +193,6 @@ Other Changes * The :variable:`CPACK_PRODUCTBUILD_DOMAINS` variable now defaults to true. See policy :policy:`CMP0161`. -* The :cpack_gen:`CPack WIX Generator` now produces WiX MSI installers - that create start menu and uninstall entries for all users by default, - as documented by the :variable:`CPACK_WIX_INSTALL_SCOPE` variable - ``perMachine`` value. Previously, without a custom WiX template, - it produced installers that would only create start menu and uninstall - entries for the current user, even though they install for all users. - Updates ======= @@ -218,3 +211,22 @@ Changes made since CMake 3.29.0 include the following. * These versions made no changes to documented features or interfaces. Some implementation updates were made to support ecosystem changes and/or fix regressions. + +3.29.5 +------ + +* The :cpack_gen:`CPack WIX Generator`'s :variable:`CPACK_WIX_INSTALL_SCOPE` + variable, new in 3.29, now defaults to ``NONE``. This restores + compatibility with behavior of 3.28 and below: without a custom WiX + template, it produces installers that only create start menu and + uninstall entries for the current user, even though they install + for all users. + + In 3.29.0 through 3.29.4, ``CPACK_WIX_INSTALL_SCOPE`` defaulted to + ``perMachine``. This created MSI installers that create start menu + and uninstall entries for all users by default. While this behavior + is better on its own, these installers do not cleanly replace existing + installations created with MSI installers produced by 3.28 and below. + 3.29.5 reverts the default for compatibility. Projects may transition + to ``perMachine`` on their own schedule by setting + ``CPACK_WIX_INSTALL_SCOPE``. diff --git a/Modules/Internal/CPack/CPackWIX.cmake b/Modules/Internal/CPack/CPackWIX.cmake index 5fe772ecf..c40ddd5b1 100644 --- a/Modules/Internal/CPack/CPackWIX.cmake +++ b/Modules/Internal/CPack/CPackWIX.cmake @@ -20,5 +20,5 @@ if(NOT CPACK_WIX_LIGHT_EXECUTABLE) endif() if(NOT DEFINED CPACK_WIX_INSTALL_SCOPE) - set(CPACK_WIX_INSTALL_SCOPE "perMachine") + set(CPACK_WIX_INSTALL_SCOPE "NONE") endif() diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 06ffde96f..90e2e0dcb 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,7 +1,7 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 29) -set(CMake_VERSION_PATCH 4) +set(CMake_VERSION_PATCH 5) #set(CMake_VERSION_RC 0) set(CMake_VERSION_IS_DIRTY 0) @@ -21,7 +21,7 @@ endif() if(NOT CMake_VERSION_NO_GIT) # If this source was exported by 'git archive', use its commit info. - set(git_info [==[efaa9efece CMake 3.29.4]==]) + set(git_info [==[facfba088f CMake 3.29.5]==]) # Otherwise, try to identify the current development source version. if(NOT git_info MATCHES "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]?[0-9a-f]?)[0-9a-f]* " diff --git a/Source/CTest/cmUVJobServerClient.cxx b/Source/CTest/cmUVJobServerClient.cxx index d7d76c916..055b29bea 100644 --- a/Source/CTest/cmUVJobServerClient.cxx +++ b/Source/CTest/cmUVJobServerClient.cxx @@ -306,6 +306,10 @@ void ImplPosix::ConnectFIFO(const char* path) if (fd < 0) { return; } + if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) { + close(fd); + return; + } cm::uv_pipe_ptr connFIFO; connFIFO.init(this->Loop, 0, this);