From e9bc13a918b9c42e537bd502c96c6d386794abc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20R=C3=B6hling?= Date: Thu, 7 Oct 2021 20:46:03 +0200 Subject: [PATCH] Fix misinterpretation of Debian Policy on LIBEXECDIR --- ...ation-of-Debian-Policy-on-LIBEXECDIR.patch | 70 +++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 71 insertions(+) create mode 100644 debian/patches/0004-Fix-misinterpretation-of-Debian-Policy-on-LIBEXECDIR.patch diff --git a/debian/patches/0004-Fix-misinterpretation-of-Debian-Policy-on-LIBEXECDIR.patch b/debian/patches/0004-Fix-misinterpretation-of-Debian-Policy-on-LIBEXECDIR.patch new file mode 100644 index 000000000..18a90f58b --- /dev/null +++ b/debian/patches/0004-Fix-misinterpretation-of-Debian-Policy-on-LIBEXECDIR.patch @@ -0,0 +1,70 @@ +From: =?utf-8?q?Timo_R=C3=B6hling?= +Date: Thu, 7 Oct 2021 20:45:32 +0200 +Subject: Fix misinterpretation of Debian Policy on LIBEXECDIR + +Forwarded: https://gitlab.kitware.com/cmake/cmake/-/merge_requests/6607 + +The Debian Policy builds upon FHS 3.0 and permits installing to +/usr/libexec. While Policy does grant an additional exception for +applications to use a single subdirectory of /usr/lib/, this is +not meant to replace /usr/libexec as valid target. +--- + Modules/GNUInstallDirs.cmake | 15 ++------------- + Tests/RunCMake/GNUInstallDirs/Usr-Debian-stderr.txt | 4 ++-- + 2 files changed, 4 insertions(+), 15 deletions(-) + +diff --git a/Modules/GNUInstallDirs.cmake b/Modules/GNUInstallDirs.cmake +index ead55ca..4aaad79 100644 +--- a/Modules/GNUInstallDirs.cmake ++++ b/Modules/GNUInstallDirs.cmake +@@ -180,6 +180,8 @@ _GNUInstallDirs_cache_path(CMAKE_INSTALL_BINDIR "bin" + "User executables (bin)") + _GNUInstallDirs_cache_path(CMAKE_INSTALL_SBINDIR "sbin" + "System admin executables (sbin)") ++_GNUInstallDirs_cache_path(CMAKE_INSTALL_LIBEXECDIR "libexec" ++ "Program executables (libexec)") + _GNUInstallDirs_cache_path(CMAKE_INSTALL_SYSCONFDIR "etc" + "Read-only single-machine data (etc)") + _GNUInstallDirs_cache_path(CMAKE_INSTALL_SHAREDSTATEDIR "com" +@@ -274,19 +276,6 @@ set(_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE IN + unset(_libdir_set) + unset(__LAST_LIBDIR_DEFAULT) + +-if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$" +- AND NOT CMAKE_CROSSCOMPILING +- AND NOT EXISTS "/etc/arch-release" +- AND EXISTS "/etc/debian_version" # is this a debian system ? +- AND "${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$") +- # see https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html#usrlibexec +- # and https://www.debian.org/doc/debian-policy/ch-opersys#file-system-structure (section 9.1.1 bullet point 4) +- _GNUInstallDirs_cache_path(CMAKE_INSTALL_LIBEXECDIR "${CMAKE_INSTALL_LIBDIR}" +- "Program executables (${CMAKE_INSTALL_LIBDIR})") +-else() +- _GNUInstallDirs_cache_path(CMAKE_INSTALL_LIBEXECDIR "libexec" +- "Program executables (libexec)") +-endif() + _GNUInstallDirs_cache_path(CMAKE_INSTALL_INCLUDEDIR "include" + "C header files (include)") + _GNUInstallDirs_cache_path(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" +diff --git a/Tests/RunCMake/GNUInstallDirs/Usr-Debian-stderr.txt b/Tests/RunCMake/GNUInstallDirs/Usr-Debian-stderr.txt +index 89578ee..c38006c 100644 +--- a/Tests/RunCMake/GNUInstallDirs/Usr-Debian-stderr.txt ++++ b/Tests/RunCMake/GNUInstallDirs/Usr-Debian-stderr.txt +@@ -5,7 +5,7 @@ CMAKE_INSTALL_DOCDIR='share/doc/Usr' + CMAKE_INSTALL_INCLUDEDIR='include' + CMAKE_INSTALL_INFODIR='share/info' + CMAKE_INSTALL_LIBDIR='lib/arch' +-CMAKE_INSTALL_LIBEXECDIR='lib/arch' ++CMAKE_INSTALL_LIBEXECDIR='libexec' + CMAKE_INSTALL_LOCALEDIR='share/locale' + CMAKE_INSTALL_LOCALSTATEDIR='var' + CMAKE_INSTALL_RUNSTATEDIR='var/run' +@@ -20,7 +20,7 @@ CMAKE_INSTALL_FULL_DOCDIR='/usr/share/doc/Usr' + CMAKE_INSTALL_FULL_INCLUDEDIR='/usr/include' + CMAKE_INSTALL_FULL_INFODIR='/usr/share/info' + CMAKE_INSTALL_FULL_LIBDIR='/usr/lib/arch' +-CMAKE_INSTALL_FULL_LIBEXECDIR='/usr/lib/arch' ++CMAKE_INSTALL_FULL_LIBEXECDIR='/usr/libexec' + CMAKE_INSTALL_FULL_LOCALEDIR='/usr/share/locale' + CMAKE_INSTALL_FULL_LOCALSTATEDIR='/var' + CMAKE_INSTALL_FULL_RUNSTATEDIR='/var/run' diff --git a/debian/patches/series b/debian/patches/series index efa49fdec..c9e4823ee 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ 0001-Fix-cross-compilation-with-MPI.patch 0002-Prefer-Debian-default-version-of-Python.patch 0003-Fix-RunCMake.CPack_DEB.EXTRA-on-Debian-non-Linux-OSe.patch +0004-Fix-misinterpretation-of-Debian-Policy-on-LIBEXECDIR.patch