[[[
Support KDE 6, it's released in Feb 2024, which is 19 months ago.

* build/ac-macros/compiler.m4
  Switch to C++17, since Qt6 requires C++17
* build/ac-macros/kwallet.m4
  Check for KDE 6's libraries
* subversion/libsvn_auth_kwallet/kwallet.cpp
  Update preprocessor for KDE 6

]]]

Index: build/ac-macros/compiler.m4
===================================================================
diff --git a/subversion/trunk/build/ac-macros/compiler.m4 
b/subversion/trunk/build/ac-macros/compiler.m4
--- a/subversion/trunk/build/ac-macros/compiler.m4      (revision 1928804)
+++ b/subversion/trunk/build/ac-macros/compiler.m4      (working copy)
@@ -108,9 +108,7 @@
     if test "$cxx_language_level" = "any"; then
       SVN_CXXFLAGS_ADD_IFELSE([-std=c++23],[],[
         SVN_CXXFLAGS_ADD_IFELSE([-std=c++20],[],[
-          SVN_CXXFLAGS_ADD_IFELSE([-std=c++17],[],[
-            SVN_CXXFLAGS_ADD_IFELSE([-std=c++11])
-          ])
+          SVN_CXXFLAGS_ADD_IFELSE([-std=c++17])
         ])
       ])
     else
@@ -117,18 +115,18 @@
       SVN_CXXFLAGS_ADD_IFELSE([-std=$cxx_language_level],[],[
         AC_MSG_ERROR([$CXX does not accept -std=$cxx_language_level (see 
option --enable-c++)])
       ])
-      dnl We require at least C++11
-      AC_MSG_CHECKING([if '$CXX $CXXFLAGS' supports at least a C++11])
+      dnl We require at least C++17
+      AC_MSG_CHECKING([if '$CXX $CXXFLAGS' supports at least a C++17])
       AC_LANG_PUSH([C++])
       AC_COMPILE_IFELSE([
         AC_LANG_SOURCE([
-          #if !defined(__cplusplus) || __cplusplus < 201103
-          #error "Not C++11"
+          #if !defined(__cplusplus) || __cplusplus < 201703
+          #error "Not C++17"
           #endif
         ])
       ],[AC_MSG_RESULT([yes])],[
         AC_MSG_RESULT([no])
-        AC_MSG_ERROR([JavHL and C++ bindings require at least C++11])
+        AC_MSG_ERROR([KWallet 6 requires at least C++17])
       ])
       AC_LANG_POP([C++])
     fi
Index: build/ac-macros/kwallet.m4
===================================================================
diff --git a/subversion/trunk/build/ac-macros/kwallet.m4 
b/subversion/trunk/build/ac-macros/kwallet.m4
--- a/subversion/trunk/build/ac-macros/kwallet.m4       (revision 1928804)
+++ b/subversion/trunk/build/ac-macros/kwallet.m4       (working copy)
@@ -45,8 +45,16 @@
           if test -n "$PKG_CONFIG"; then
             if test "$HAVE_DBUS" = "yes"; then
               AC_MSG_CHECKING([for Qt])
-              if $PKG_CONFIG --exists Qt5Core Qt5DBus Qt5Gui; then
+              kde_version=
+              if $PKG_CONFIG --exists Qt6Core Qt6DBus Qt6Gui; then
+                AC_MSG_RESULT([yes, Qt6])
+                kde_version=6
+                qt_pkg_config_names="Qt6Core Qt6DBus Qt6Gui"
+                kde_inc_names="KF6/KWallet KF6/KCoreAddons KF6/KI18n"
+                kde_lib_names="-lKF6Wallet -lKF6I18n -lKF6CoreAddons 
`$PKG_CONFIG --libs Qt6Gui Qt6DBus Qt6Core`"
+              elif $PKG_CONFIG --exists Qt5Core Qt5DBus Qt5Gui; then
                 AC_MSG_RESULT([yes, Qt5])
+                kde_version=5
                 qt_pkg_config_names="Qt5Core Qt5DBus Qt5Gui"
                 kde_config_name="kf5-config"
                 kde_inc_names="KF5/KWallet KF5/KCoreAddons KF5/KI18n"
@@ -53,6 +61,7 @@
                 kde_lib_names="-lKF5Wallet -lKF5I18n -lKF5CoreAddons -lQt5Gui 
-lQt5DBus -lQt5Core"
               elif $PKG_CONFIG --exists QtCore QtDBus QtGui; then
                 AC_MSG_RESULT([yes, Qt4])
+                kde_version=4
                 qt_pkg_config_names="QtCore QtDBus QtGui"
                 kde_config_name="kde4-config"
                 kde_inc_names="/"
@@ -59,7 +68,20 @@
                 kde_lib_names="-lkdeui -lkdecore -lQtGui -lQtDBus -lQtCore"
               fi
               if test -n "$qt_pkg_config_names"; then
-                if test "$svn_lib_kwallet" != "yes"; then
+                if test "$kde_version" = 6; then
+                  KDE_CONFIG="unneeded"
+                  AC_DEFINE([SVN_HAVE_KF6], [1], [Defined if KF6 available])
+                  case "$svn_lib_kwallet" in
+                  *:*)
+                      kde_incdir="${svn_lib_kwallet%%:*}"
+                      kde_libdir="${svn_lib_kwallet##*:}"
+                      ;;
+                  *)
+                      kde_incdir="$svn_lib_kwallet/include"
+                      kde_libdir="$svn_lib_kwallet/lib"
+                      ;;
+                  esac
+                elif test "$svn_lib_kwallet" != "yes"; then
                   AC_MSG_CHECKING([for $kde_config_name])
                   KDE_CONFIG="$svn_lib_kwallet/bin/$kde_config_name"
                   if test -f "$KDE_CONFIG" && test -x "$KDE_CONFIG"; then
Index: subversion/libsvn_auth_kwallet/kwallet.cpp
===================================================================
diff --git a/subversion/trunk/subversion/libsvn_auth_kwallet/kwallet.cpp 
b/subversion/trunk/subversion/libsvn_auth_kwallet/kwallet.cpp
--- a/subversion/trunk/subversion/libsvn_auth_kwallet/kwallet.cpp       
(revision 1928804)
+++ b/subversion/trunk/subversion/libsvn_auth_kwallet/kwallet.cpp       
(working copy)
@@ -55,7 +55,7 @@
 
 #include "svn_private_config.h"
 
-#ifndef SVN_HAVE_KF5
+#if !defined(SVN_HAVE_KF6) && !defined(SVN_HAVE_KF5)
 #include <kcmdlineargs.h>
 #include <kcomponentdata.h>
 #endif
@@ -223,7 +223,7 @@
       app = new QCoreApplication(argc, q_argv);
     }
 
-#if SVN_HAVE_KF5
+#if defined(SVN_HAVE_KF6) || defined(SVN_HAVE_KF5)
   KLocalizedString::setApplicationDomain("subversion"); /* translation domain 
*/
 
   /* componentName appears in KDE GUI prompts */
@@ -305,7 +305,7 @@
       app = new QCoreApplication(argc, q_argv);
     }
 
-#if SVN_HAVE_KF5
+#if defined(SVN_HAVE_KF6) || defined(SVN_HAVE_KF5)
   KLocalizedString::setApplicationDomain("subversion"); /* translation domain 
*/
 
   /* componentName appears in KDE GUI prompts */

Reply via email to