File koffice-trinity-libpqxx6.patch of Package koffice

From c17464869b6c5f7fbbf5a072ea470fbfff2ae26b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= <slavek.banko@axis.cz>
Date: Thu, 26 Jul 2018 18:12:33 +0200
Subject: Fix FTBFS with libpqxx >= 6.x
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
---
 kexi/kexidb/drivers/configure.in.in     | 69 +++++++++++++++++++++++++++++++++
 kexi/kexidb/drivers/pqxx/Makefile.am    |  2 +
 kexi/kexidb/drivers/pqxx/pqxxcursor.cpp |  4 +-
 kexi/kexidb/drivers/pqxx/pqxxcursor.h   |  4 +-
 kexi/migration/pqxx/Makefile.am         |  2 +
 lib/kotext/Makefile.am                  |  2 +-
 lib/kross/api/Makefile.am               |  2 +
 lib/kross/main/Makefile.am              |  2 +
 lib/kross/python/Makefile.am            |  2 +
 lib/kross/python/cxx/Makefile.am        |  2 +
 lib/kross/ruby/Makefile.am              |  2 +
 11 files changed, 89 insertions(+), 4 deletions(-)

diff --git a/kexi/kexidb/drivers/configure.in.in b/kexi/kexidb/drivers/configure.in.in
index 1f3e70f..c33c6fb 100644
--- a/kexi/kexidb/drivers/configure.in.in
+++ b/kexi/kexidb/drivers/configure.in.in
@@ -241,4 +241,73 @@ if test "$compile_pgsql_plugin" = "yes"; then
   fi
 fi
 
+dnl ========================================
+dnl   libpqxx build flags
+dnl ========================================
+if test "$compile_pgsql_plugin" = "yes"; then
+  AC_LANG_SAVE
+  AC_LANG_CPLUSPLUS
+  SAVED_CXXFLAGS="$CXXFLAGS"
+  for CXX_STD_TEST in "" 11 14 17; do
+    CXXFLAGS="$SAVED_CXXFLAGS"
+    if test "x$CXX_STD_TEST" = "x"; then
+      AC_MSG_CHECKING([PostgreSQL build with default C++ standard])
+    else
+      AC_MSG_CHECKING([PostgreSQL build with C++$CXX_STD_TEST])
+      CXXFLAGS=-std=c++$CXX_STD_TEST
+    fi
+    AC_TRY_COMPILE([
+        #include <$PQXX_INCDIR/pqxx/pqxx>
+      ],[ ],
+      pqxx_cxx_std=yes,
+      pqxx_cxx_std=no
+    )
+    if test "x$pqxx_cxx_std" = "xyes"; then
+      PQXX_CXXFLAGS=$CXXFLAGS
+      compile_pgsql_plugin="yes"
+      AC_SUBST(PQXX_CXXFLAGS)
+      AC_MSG_RESULT(yes)
+      break
+    else
+      compile_pgsql_plugin="no"
+      AC_MSG_RESULT(no)
+    fi
+  done
+  CXXFLAGS="$SAVED_CXXFLAGS"
+  AC_LANG_RESTORE
+fi
+
+dnl ========================================
+dnl   libpqxx field class name
+dnl ========================================
+if test "$compile_pgsql_plugin" = "yes"; then
+  AC_LANG_SAVE
+  AC_LANG_CPLUSPLUS
+  SAVED_CXXFLAGS="$CXXFLAGS"
+
+  CXXFLAGS=$PQXX_CXXFLAGS
+  for PQXX_FIELD_CLASS in "pqxx::field" "pqxx::result::field"; do
+    AC_MSG_CHECKING([for PostgreSQL field class name - $PQXX_FIELD_CLASS])
+    AC_TRY_COMPILE([
+        #include <$PQXX_INCDIR/pqxx/pqxx>
+      ],[
+        sizeof($PQXX_FIELD_CLASS);
+      ],
+      pqxx_field_class=yes,
+      pqxx_field_class=no
+    )
+    if test "x$pqxx_field_class" = "xyes"; then
+      compile_pgsql_plugin="yes"
+      AC_DEFINE_UNQUOTED(PQXX_FIELD_CLASS, $PQXX_FIELD_CLASS, [ PQXX field class name ])
+      AC_MSG_RESULT(yes)
+      break
+    else
+      compile_pgsql_plugin="no"
+      AC_MSG_RESULT(no)
+    fi
+  done
+  CXXFLAGS="$SAVED_CXXFLAGS"
+  AC_LANG_RESTORE
+fi
+
 AM_CONDITIONAL(compile_pgsql_plugin, test "$compile_pgsql_plugin" = "yes")
diff --git a/kexi/kexidb/drivers/pqxx/Makefile.am b/kexi/kexidb/drivers/pqxx/Makefile.am
index 6f5d73e..fe0c563 100644
--- a/kexi/kexidb/drivers/pqxx/Makefile.am
+++ b/kexi/kexidb/drivers/pqxx/Makefile.am
@@ -4,6 +4,8 @@ kde_module_LTLIBRARIES = kexidb_pqxxsqldriver.la
 
 INCLUDES = -I$(srcdir)/../../.. $(all_includes) -I$(PG_INCDIR) -I$(PQXX_INCDIR)
 
+CXXFLAGS += $(PQXX_CXXFLAGS)
+
 kexidb_pqxxsqldriver_la_METASOURCES = AUTO
 
 kexidb_pqxxsqldriver_la_SOURCES = pqxxdriver.cpp pqxxcursor.cpp pqxxconnection.cpp \
diff --git a/kexi/kexidb/drivers/pqxx/pqxxcursor.cpp b/kexi/kexidb/drivers/pqxx/pqxxcursor.cpp
index 746a383..048d668 100644
--- a/kexi/kexidb/drivers/pqxx/pqxxcursor.cpp
+++ b/kexi/kexidb/drivers/pqxx/pqxxcursor.cpp
@@ -34,7 +34,7 @@ using namespace KexiDB;
 
 unsigned int pqxxSqlCursor_trans_num=0; //!< debug helper
 
-static QByteArray pgsqlByteaToByteArray(const pqxx::result::field& r)
+static QByteArray pgsqlByteaToByteArray(const PQXX_FIELD_CLASS& r)
 {
 	return KexiDB::pgsqlByteaToByteArray(r.c_str(), r.size());
 }
@@ -243,7 +243,7 @@ TQVariant pqxxSqlCursor::pValue(uint pos)const
 		}
 		else if (f->typeGroup() == Field::BLOBGroup)
 		{
-//			pqxx::result::field r = (*m_res)[at()][pos];
+//			PQXX_FIELD_CLASS r = (*m_res)[at()][pos];
 //			kdDebug() << r.name() << ", " << r.c_str() << ", " << r.type() << ", " << r.size() << endl;
 			return ::pgsqlByteaToByteArray((*m_res)[at()][pos]);
 		}
diff --git a/kexi/kexidb/drivers/pqxx/pqxxcursor.h b/kexi/kexidb/drivers/pqxx/pqxxcursor.h
index 0a0fb2d..8304ea2 100644
--- a/kexi/kexidb/drivers/pqxx/pqxxcursor.h
+++ b/kexi/kexidb/drivers/pqxx/pqxxcursor.h
@@ -20,6 +20,8 @@
 #ifndef KEXIDB_CURSOR_PQXX_H
 #define KEXIDB_CURSOR_PQXX_H
 
+#include "config.h"
+
 #include <kexidb/cursor.h>
 #include <kexidb/connection.h>
 #include <kexidb/utils.h>
@@ -74,7 +76,7 @@ private:
 	friend class pqxxSqlConnection;
 };
 
-inline QVariant pgsqlCStrToVariant(const pqxx::result::field& r)
+inline QVariant pgsqlCStrToVariant(const PQXX_FIELD_CLASS& r)
 {
 	switch(r.type())
 	{
diff --git a/kexi/migration/pqxx/Makefile.am b/kexi/migration/pqxx/Makefile.am
index a3d78de..87f6c24 100644
--- a/kexi/migration/pqxx/Makefile.am
+++ b/kexi/migration/pqxx/Makefile.am
@@ -1,5 +1,7 @@
 include $(top_srcdir)/kexi/Makefile.global
 
+CXXFLAGS += $(PQXX_CXXFLAGS)
+
 kde_module_LTLIBRARIES = keximigrate_pqxx.la
 
 INCLUDES = -I$(srcdir)/../../.. -I$(top_srcdir)/kexi $(all_includes) -I$(PG_INCDIR) -I$(PQXX_INCDIR)
diff --git a/lib/kotext/Makefile.am b/lib/kotext/Makefile.am
index fc2a273..ab22145 100644
--- a/lib/kotext/Makefile.am
+++ b/lib/kotext/Makefile.am
@@ -1,7 +1,7 @@
 SUBDIRS = kohyphen . tests
 INCLUDES= $(KOFFICECORE_INCLUDES) $(KOFFICEUI_INCLUDES) $(KSTORE_INCLUDES) $(all_includes)
 ## Needed for kohyphen...
-KDE_CXXFLAGS = $(USE_EXCEPTIONS)
+CXXFLAGS += $(USE_EXCEPTIONS)
 
 lib_LTLIBRARIES = libkotext.la
 libkotext_la_SOURCES = KoComplexText.cpp KoRichText.cpp \
diff --git a/lib/kross/api/Makefile.am b/lib/kross/api/Makefile.am
index 7cc93ba..7f13134 100644
--- a/lib/kross/api/Makefile.am
+++ b/lib/kross/api/Makefile.am
@@ -1,6 +1,8 @@
 include $(top_srcdir)/lib/kross/Makefile.global
 apiincludedir=$(includedir)/kross/api
 
+CXXFLAGS += $(USE_EXCEPTIONS)
+
 apiinclude_HEADERS = \
     callable.h \
     class.h \
diff --git a/lib/kross/main/Makefile.am b/lib/kross/main/Makefile.am
index 2acab10..7d779b8 100644
--- a/lib/kross/main/Makefile.am
+++ b/lib/kross/main/Makefile.am
@@ -1,5 +1,7 @@
 include $(top_srcdir)/lib/kross/Makefile.global
 
+CXXFLAGS += $(USE_EXCEPTIONS)
+
 lib_LTLIBRARIES = libkrossmain.la
 
 libkrossmain_la_SOURCES = krossconfig.cpp mainmodule.cpp scriptcontainer.cpp manager.cpp \
diff --git a/lib/kross/python/Makefile.am b/lib/kross/python/Makefile.am
index 743b3e0..0fc9355 100644
--- a/lib/kross/python/Makefile.am
+++ b/lib/kross/python/Makefile.am
@@ -1,5 +1,7 @@
 include $(top_srcdir)/lib/kross/Makefile.global
 
+CXXFLAGS += $(USE_EXCEPTIONS)
+
 kde_module_LTLIBRARIES = krosspython.la
 
 krosspython_la_LDFLAGS = $(KDE_PLUGIN) $(all_libraries) $(LIBPYTHON) $(PYTHONLIB) -module $(VER_INFO)
diff --git a/lib/kross/python/cxx/Makefile.am b/lib/kross/python/cxx/Makefile.am
index d1c72c8..4e1377c 100644
--- a/lib/kross/python/cxx/Makefile.am
+++ b/lib/kross/python/cxx/Makefile.am
@@ -1,5 +1,7 @@
 include $(top_srcdir)/lib/kross/Makefile.global
 
+CXXFLAGS += $(USE_EXCEPTIONS)
+
 noinst_LTLIBRARIES = libkrosspythoncxx.la
 
 libkrosspythoncxx_la_SOURCES = \
diff --git a/lib/kross/ruby/Makefile.am b/lib/kross/ruby/Makefile.am
index 256c662..fadee61 100644
--- a/lib/kross/ruby/Makefile.am
+++ b/lib/kross/ruby/Makefile.am
@@ -1,5 +1,7 @@
 include $(top_srcdir)/lib/kross/Makefile.global
 
+CXXFLAGS += $(USE_EXCEPTIONS)
+
 INCLUDES = -I$(top_srcdir)/lib/kross -I$(RUBY_INCLUDEDIR) $(all_includes)
 METASOURCES = AUTO
 kde_module_LTLIBRARIES = krossruby.la
-- 
cgit v1.1

openSUSE Build Service is sponsored by