ssl: Require SSL support in Qt
authorManuel Nickschas <sputnick@quassel-irc.org>
Sun, 15 Mar 2020 17:55:01 +0000 (18:55 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Thu, 11 Jun 2020 11:57:32 +0000 (13:57 +0200)
There is no sane reason for not using SSL in the year 2020, plus
every distro should be shipping the Qt libraries with SSL support
enabled. Thus, make it mandatory for Quassel, too.

Going forward, this allows us to remove lots of fallback code paths
that make the code much more complex in many places, and that have
not been tested (or even been built) in a long time.

CMakeLists.txt
src/core/CMakeLists.txt
src/qtui/CMakeLists.txt

index cd9f79d..61428e2 100644 (file)
@@ -179,6 +179,25 @@ set_package_properties(Qt5 PROPERTIES TYPE REQUIRED
 )
 message(STATUS "Found Qt ${Qt5Core_VERSION}")
 
+# Check for SSL support in Qt
+cmake_push_check_state(RESET)
+set(CMAKE_REQUIRED_LIBRARIES Qt5::Core)
+check_cxx_source_compiles("
+    #include \"qglobal.h\"
+    #if defined QT_NO_SSL
+    #  error \"No SSL support\"
+    #endif
+    int main() {}"
+    HAVE_SSL)
+cmake_pop_check_state()
+
+if (NOT HAVE_SSL)
+    message(FATAL_ERROR "Quassel requires SSL support, but Qt is built with QT_NO_SSL")
+endif()
+
+# Compat until fallback code paths have been disabled
+add_definitions(-DHAVE_SSL)
+
 # Optional Qt components
 
 find_package(Qt5LinguistTools QUIET)
@@ -399,25 +418,6 @@ if (BUILD_TESTING)
     process_cmake_cxx_flags()
 endif()
 
-# Check for SSL support in Qt
-#####################################################################
-
-cmake_push_check_state(RESET)
-set(CMAKE_REQUIRED_LIBRARIES Qt5::Core)
-check_cxx_source_compiles("
-    #include \"qglobal.h\"
-    #if defined QT_NO_SSL
-    #  error \"No SSL support\"
-    #endif
-    int main() {}"
-    HAVE_SSL)
-cmake_pop_check_state()
-
-if (HAVE_SSL)
-    add_definitions(-DHAVE_SSL)
-endif()
-add_feature_info("SSL support in Qt" HAVE_SSL "Use secure network connections")
-
 # Setup support for KDE Frameworks
 #####################################################################
 
index 017bccf..dd1ddc7 100644 (file)
@@ -39,6 +39,7 @@ target_sources(${TARGET} PRIVATE
     sessionthread.cpp
     sqlauthenticator.cpp
     sqlitestorage.cpp
+    sslserver.cpp
     storage.cpp
 
     # needed for automoc
@@ -57,10 +58,6 @@ if (HAVE_UMASK)
     set_property(SOURCE oidentdconfiggenerator.cpp APPEND PROPERTY COMPILE_DEFINITIONS HAVE_UMASK)
 endif()
 
-if (HAVE_SSL)
-    target_sources(${TARGET} PRIVATE sslserver.cpp)
-endif()
-
 if (Ldap_FOUND)
     target_sources(${TARGET} PRIVATE ldapauthenticator.cpp)
     target_link_libraries(${TARGET} PRIVATE Ldap::Ldap)
index 034d6c6..0d6d2b9 100644 (file)
@@ -45,6 +45,7 @@ target_sources(${TARGET} PRIVATE
     settingsdlg.cpp
     settingspagedlg.cpp
     simplenetworkeditor.cpp
+    sslinfodlg.cpp
     systemtray.cpp
     systrayanimationnotificationbackend.cpp
     systraynotificationbackend.cpp
@@ -80,6 +81,7 @@ target_sources(${TARGET} PRIVATE
     settingsdlg.ui
     settingspagedlg.ui
     simplenetworkeditor.ui
+    sslinfodlg.ui
     systrayanimationconfigwidget.ui
     topicwidget.ui
 )
@@ -172,13 +174,6 @@ if (HAVE_WEBENGINE)
         Qt5::WebEngineWidgets)
 endif()
 
-if (HAVE_SSL)
-    target_sources(${TARGET} PRIVATE
-        sslinfodlg.cpp
-        sslinfodlg.ui
-    )
-endif()
-
 if (LibsnoreQt5_FOUND)
     target_compile_definitions(${TARGET} PRIVATE -DHAVE_LIBSNORE)
     target_sources(${TARGET} PRIVATE