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.
gentoo-overlay/dev-vcs/subversion/files/subversion-1.9.7-kf5.patch

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])