summaryrefslogtreecommitdiffstats
path: root/Modules/Internal
diff options
context:
space:
mode:
authormakise-homura <akemi_homura@kurisa.ch>2021-10-07 18:43:41 (GMT)
committermakise-homura <akemi_homura@kurisa.ch>2021-10-15 02:05:18 (GMT)
commit2b9ef77944cab3a330fa547dbe7e87aefd80b795 (patch)
tree09cee564599bbff2f193b6ec826809d5d2d75584 /Modules/Internal
parent0995c75301d2acd0ca47fadb5868f1c87da69eb7 (diff)
downloadCMake-2b9ef77944cab3a330fa547dbe7e87aefd80b795.zip
CMake-2b9ef77944cab3a330fa547dbe7e87aefd80b795.tar.gz
CMake-2b9ef77944cab3a330fa547dbe7e87aefd80b795.tar.bz2
CPack/DEB: deal with broken dpkg-shlibdeps on E2K architecture
"OS Elbrus" (OSL for short), a reference Linux distro for E2K (Elbrus) platform may have broken dpkg-shlibdeps, that doesn't specify dependencies correctly. In this case, the only reliable way is to explicitly set dependencies of libc6 and lcc-libs, and then warn user to let him know this list may be incomplete. This commit does that. This fix has no effect on correctly working dpkg-shlibdeps, so when this bug will be fixed in new versions of OSL, CPack will work as expected with these distros.
Diffstat (limited to 'Modules/Internal')
-rw-r--r--Modules/Internal/CPack/CPackDeb.cmake8
1 files changed, 8 insertions, 0 deletions
diff --git a/Modules/Internal/CPack/CPackDeb.cmake b/Modules/Internal/CPack/CPackDeb.cmake
index c115f00..958a6db 100644
--- a/Modules/Internal/CPack/CPackDeb.cmake
+++ b/Modules/Internal/CPack/CPackDeb.cmake
@@ -332,6 +332,14 @@ function(cpack_deb_prepare_package_vars)
RESULT_VARIABLE SHLIBDEPS_RESULT
ERROR_VARIABLE SHLIBDEPS_ERROR
OUTPUT_STRIP_TRAILING_WHITESPACE )
+
+ # E2K OSL 6.0.1 and prior has broken dpkg-shlibdeps. CPack will deal with that (mocking SHLIBDEPS_OUTPUT), but inform user of this.
+ if("${SHLIBDEPS_ERROR}" MATCHES "unknown gcc system type e2k.*, falling back to default")
+ message(WARNING "CPackDeb: broken dpkg-shlibdeps on E2K detected, will fall back to minimal dependencies.\n"
+ "You should expect that dependencies list in the package will be incomplete.")
+ set(SHLIBDEPS_OUTPUT "shlibs:Depends=libc6, lcc-libs")
+ endif()
+
if(CPACK_DEBIAN_PACKAGE_DEBUG)
# dpkg-shlibdeps will throw some warnings if some input files are not binary
message( "CPackDeb Debug: dpkg-shlibdeps warnings \n${SHLIBDEPS_ERROR}")