You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
212 lines
9.7 KiB
212 lines
9.7 KiB
diff -u b/subversion/libsvn_auth_kwallet/kwallet.cpp b/subversion/libsvn_auth_kwallet/kwallet.cpp
|
|
--- b/subversion/libsvn_auth_kwallet/kwallet.cpp (revision 1798731)
|
|
+++ b/subversion/libsvn_auth_kwallet/kwallet.cpp 2018-01-18 16:48:52.026801597 +0100
|
|
@@ -39,8 +39,6 @@
|
|
#include <QtCore/QString>
|
|
|
|
#include <kaboutdata.h>
|
|
-#include <kcmdlineargs.h>
|
|
-#include <kcomponentdata.h>
|
|
#include <klocalizedstring.h>
|
|
#include <kwallet.h>
|
|
|
|
@@ -221,14 +219,15 @@
|
|
app = new QCoreApplication(argc, q_argv);
|
|
}
|
|
|
|
- KCmdLineArgs::init(q_argc, q_argv,
|
|
- get_application_name(parameters, pool),
|
|
- "subversion",
|
|
- ki18n(get_application_name(parameters, pool)),
|
|
- SVN_VER_NUMBER,
|
|
- ki18n("Version control system"),
|
|
- KCmdLineArgs::CmdLineArgKDE);
|
|
- KComponentData component_data(KCmdLineArgs::aboutData());
|
|
+ KLocalizedString::setApplicationDomain("subversion"); /* translation domain */
|
|
+
|
|
+ /* componentName appears in KDE GUI prompts */
|
|
+ KAboutData aboutData(QStringLiteral("subversion"), /* componentName */
|
|
+ i18n(get_application_name(parameters,
|
|
+ pool)), /* displayName */
|
|
+ QStringLiteral(SVN_VER_NUMBER));
|
|
+ KAboutData::setApplicationData(aboutData);
|
|
+
|
|
QString folder = QString::fromUtf8("Subversion");
|
|
QString key =
|
|
QString::fromUtf8(username) + "@" + QString::fromUtf8(realmstring);
|
|
@@ -291,14 +290,15 @@
|
|
app = new QCoreApplication(argc, q_argv);
|
|
}
|
|
|
|
- KCmdLineArgs::init(q_argc, q_argv,
|
|
- get_application_name(parameters, pool),
|
|
- "subversion",
|
|
- ki18n(get_application_name(parameters, pool)),
|
|
- SVN_VER_NUMBER,
|
|
- ki18n("Version control system"),
|
|
- KCmdLineArgs::CmdLineArgKDE);
|
|
- KComponentData component_data(KCmdLineArgs::aboutData());
|
|
+ KLocalizedString::setApplicationDomain("subversion"); /* translation domain */
|
|
+
|
|
+ /* componentName appears in KDE GUI prompts */
|
|
+ KAboutData aboutData(QStringLiteral("subversion"), /* componentName */
|
|
+ i18n(get_application_name(parameters,
|
|
+ pool)), /* displayName */
|
|
+ QStringLiteral(SVN_VER_NUMBER));
|
|
+ KAboutData::setApplicationData(aboutData);
|
|
+
|
|
QString q_password = QString::fromUtf8(password);
|
|
QString folder = QString::fromUtf8("Subversion");
|
|
KWallet::Wallet *wallet = get_wallet(wallet_name, parameters);
|
|
unchanged:
|
|
--- a/build/ac-macros/compiler.m4 (revision 1798730)
|
|
+++ b/build/ac-macros/compiler.m4 (revision 1798731)
|
|
@@ -126,3 +126,18 @@
|
|
SVN_CXXFLAGS_ADD_IFELSE([-Werror=unknown-warning-option])
|
|
fi
|
|
])
|
|
+
|
|
+dnl The KWallet provider needs to use C++11 mode when using KDE 5
|
|
+AC_DEFUN([SVN_CXX_MODE_SETUP11],
|
|
+[
|
|
+ CXXFLAGS_KEEP="$CXXFLAGS"
|
|
+ CXXFLAGS=""
|
|
+
|
|
+ if test "$GXX" = "yes"; then
|
|
+ SVN_CXXFLAGS_ADD_IFELSE([-std=c++11])
|
|
+ fi
|
|
+
|
|
+ CXXMODEFLAGS="$CXXFLAGS"
|
|
+ CXXFLAGS="$CXXFLAGS_KEEP"
|
|
+ AC_SUBST(CXXMODEFLAGS)
|
|
+])
|
|
unchanged:
|
|
--- a/build/ac-macros/kwallet.m4 (revision 1798730)
|
|
+++ b/build/ac-macros/kwallet.m4 (revision 1802646)
|
|
@@ -25,8 +25,10 @@
|
|
AC_DEFUN(SVN_LIB_KWALLET,
|
|
[
|
|
AC_ARG_WITH(kwallet,
|
|
- [AS_HELP_STRING([[--with-kwallet[=PATH]]],
|
|
- [Enable use of KWallet (KDE 4) for auth credentials])],
|
|
+ [AS_HELP_STRING([[--with-kwallet[=PATH|INCDIR:LIBDIR]]],
|
|
+ [Enable use of KWallet (KDE 5 or 4) for auth credentials.
|
|
+ PATH is the KDE install path, alternatively INCDIR:LIBDIR
|
|
+ are the header and library install paths. ])],
|
|
[svn_lib_kwallet="$withval"],
|
|
[svn_lib_kwallet=no])
|
|
|
|
@@ -42,40 +44,70 @@
|
|
if test "$APR_HAS_DSO" = "yes"; then
|
|
if test -n "$PKG_CONFIG"; then
|
|
if test "$HAVE_DBUS" = "yes"; then
|
|
- AC_MSG_CHECKING([for QtCore, QtDBus, QtGui])
|
|
- if $PKG_CONFIG --exists QtCore QtDBus QtGui; then
|
|
- AC_MSG_RESULT([yes])
|
|
+ AC_MSG_CHECKING([for Qt])
|
|
+ if $PKG_CONFIG --exists Qt5Core Qt5DBus Qt5Gui; then
|
|
+ AC_MSG_RESULT([yes, Qt5])
|
|
+ qt_pkg_config_names="Qt5Core Qt5DBus Qt5Gui"
|
|
+ kde_config_name="kf5-config"
|
|
+ kde_inc_names="KF5/KWallet KF5/KCoreAddons KF5/KI18n"
|
|
+ kde_lib_names="-lKF5Wallet -lKF5I18n -lKF5CoreAddons -lQt5Gui -lQt5DBus -lQt5Core"
|
|
+ elif $PKG_CONFIG --exists QtCore QtDBus QtGui; then
|
|
+ AC_MSG_RESULT([yes, Qt4])
|
|
+ qt_pkg_config_names="QtCore QtDBus QtGui"
|
|
+ kde_config_name="kde4-config"
|
|
+ kde_inc_names="/"
|
|
+ kde_lib_names="-lkdeui -lkdecore -lQtGui -lQtDBus -lQtCore"
|
|
+ fi
|
|
+ if test -n "$qt_pkg_config_names"; then
|
|
if test "$svn_lib_kwallet" != "yes"; then
|
|
- AC_MSG_CHECKING([for kde4-config])
|
|
- KDE4_CONFIG="$svn_lib_kwallet/bin/kde4-config"
|
|
- if test -f "$KDE4_CONFIG" && test -x "$KDE4_CONFIG"; 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
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
- KDE4_CONFIG=""
|
|
- AC_MSG_RESULT([no])
|
|
+ if echo "$svn_lib_kwallet" | $EGREP ":" > /dev/null; then
|
|
+ AC_MSG_RESULT([unneeded])
|
|
+ KDE_CONFIG="unneeded"
|
|
+ kde_incdir=["`echo "$svn_lib_kwallet" | $SED -e "s/:.*//"`"]
|
|
+ kde_libdir=["`echo "$svn_lib_kwallet" | $SED -e "s/.*://"`"]
|
|
+ else
|
|
+ AC_MSG_RESULT([no])
|
|
+ KDE_CONFIG=""
|
|
+ fi
|
|
fi
|
|
else
|
|
- AC_PATH_PROG(KDE4_CONFIG, kde4-config)
|
|
+ AC_PATH_PROG(KDE_CONFIG, $kde_config_name)
|
|
+ if test -n "$KDE_CONFIG"; then
|
|
+ kde_incdir="`$KDE_CONFIG --install include`"
|
|
+ kde_libdir="`$KDE_CONFIG --install lib`"
|
|
+ fi
|
|
fi
|
|
- if test -n "$KDE4_CONFIG"; then
|
|
- AC_MSG_CHECKING([for KWallet])
|
|
+ if test -n "$KDE_CONFIG"; then
|
|
+ if test $kde_config_name = "kf5-config"; then
|
|
+ dnl KF5 does not compile with -std=c++98
|
|
+ SVN_CXX_MODE_SETUP11
|
|
+ fi
|
|
old_CXXFLAGS="$CXXFLAGS"
|
|
old_LDFLAGS="$LDFLAGS"
|
|
old_LIBS="$LIBS"
|
|
- for d in [`$PKG_CONFIG --cflags QtCore QtDBus QtGui`]; do
|
|
+ dnl --std=c++11 may be required
|
|
+ CXXFLAGS="$CXXFLAGS $CXXMODEFLAGS"
|
|
+ AC_MSG_CHECKING([for KWallet])
|
|
+ for d in [`$PKG_CONFIG --cflags $qt_pkg_config_names`]; do
|
|
if test -n ["`echo "$d" | $EGREP -- '^-D[^[:space:]]*'`"]; then
|
|
CPPFLAGS="$CPPFLAGS $d"
|
|
fi
|
|
done
|
|
- qt_include_dirs="`$PKG_CONFIG --cflags-only-I QtCore QtDBus QtGui`"
|
|
- kde_incdir="`$KDE4_CONFIG --install include`"
|
|
- SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs -I$kde_incdir"
|
|
- qt_libs_other_options="`$PKG_CONFIG --libs-only-other QtCore QtDBus QtGui`"
|
|
- SVN_KWALLET_LIBS="$DBUS_LIBS -lQtCore -lQtDBus -lQtGui -lkdecore -lkdeui $qt_libs_other_options"
|
|
- CXXFLAGS="$CXXFLAGS $SVN_KWALLET_INCLUDES"
|
|
+ qt_include_dirs="`$PKG_CONFIG --cflags-only-I $qt_pkg_config_names`"
|
|
+ for kde_inc_name in $kde_inc_names; do
|
|
+ kde_kwallet_includes="$kde_kwallet_includes -I$kde_incdir/$kde_inc_name"
|
|
+ done
|
|
+ SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs $kde_kwallet_includes"
|
|
+ qt_libs_other_options="`$PKG_CONFIG --libs-only-other $qt_pkg_config_names`"
|
|
+ SVN_KWALLET_LIBS="$DBUS_LIBS $kde_lib_names $qt_libs_other_options"
|
|
+ CXXFLAGS="$CXXFLAGS $SVN_KWALLET_INCLUDES -fPIC"
|
|
LIBS="$LIBS $SVN_KWALLET_LIBS"
|
|
- qt_lib_dirs="`$PKG_CONFIG --libs-only-L QtCore QtDBus QtGui`"
|
|
- kde_libdir="`$KDE4_CONFIG --install lib`"
|
|
+ qt_lib_dirs="`$PKG_CONFIG --libs-only-L $qt_pkg_config_names`"
|
|
LDFLAGS="$old_LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS($qt_lib_dirs -L$kde_libdir)`"
|
|
AC_LANG(C++)
|
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
|
@@ -87,16 +119,19 @@
|
|
AC_MSG_RESULT([yes])
|
|
CXXFLAGS="$old_CXXFLAGS"
|
|
LIBS="$old_LIBS"
|
|
+ if test "$kde_config_name" = "kf5-config"; then
|
|
+ AC_DEFINE([SVN_HAVE_KF5], [1], [Defined if KF5 available])
|
|
+ fi
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
AC_MSG_ERROR([cannot find KWallet])
|
|
fi
|
|
else
|
|
- AC_MSG_ERROR([cannot find kde4-config])
|
|
+ AC_MSG_ERROR([cannot find $kde_config_name])
|
|
fi
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
- AC_MSG_ERROR([cannot find QtCore, QtDBus, QtGui])
|
|
+ AC_MSG_ERROR([cannot find Qt])
|
|
fi
|
|
else
|
|
AC_MSG_ERROR([cannot find D-Bus])
|