Bug 300871

Summary: postgres driver is not built with libpqxx-4.0
Product: [Applications] KEXI Reporter: Mike Callahan <j5muzxeujm>
Component: GeneralAssignee: Jarosław Staniek <staniek>
Status: CLOSED FIXED    
Severity: normal CC: dilfridge
Priority: NOR    
Version: 2.4.x   
Target Milestone: 2.5   
Platform: Gentoo Packages   
OS: Linux   
URL: http://bugs.gentoo.org/show_bug.cgi?id=418159
Latest Commit: Version Fixed In: 2.5.1
Sentry Crash Report:
Attachments: build log (gz)

Description Mike Callahan 2012-05-30 14:50:06 UTC
From the gentoo devs:
The problematic test in kexi/kexidb/drivers/CMakeLists.txt:

IF (POSTGRESQL_FOUND AND PQXX_FOUND AND PQXX_VERSION VERSION_GREATER PQXX_MIN_VERSION AND PQXX_VERSION VERSION_LESS PQXX_MAX_VERSION)

It does not evaluate to true with libpqxx-4.0. There is no warning, no error.
I can't say, if kexi really needs version in ]3.0.0, 4.0.0[. Could you ask upstream? (bugs.kde.org)

Reproducible: Always
Comment 1 Jarosław Staniek 2012-05-30 15:23:37 UTC
Thank you for the report. We did not test libpqxx > 3.x (contributions welcome but I don't know if there is compatibility between 3.x and 4.x). And we are preparing for dropping libpqxx use, instead more powerful (for our needs) libpq (and API-stable) client lib will be used. This will happen no later than in Kexi 3.0.
Comment 2 Andreas K. Huettel 2012-06-02 22:27:23 UTC
Created attachment 71525 [details]
build log (gz)

Trivial contribution, it does not build if you just disable the MAX_VERSION check.
Here's the fun part:

In file included from /var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxconnection.h:26:0,
                 from /var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxdriver.cpp:25:
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:80:42: error: 'field' in 'class pqxx::result' does not name a type
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:80:63: error: ISO C++ forbids declaration of 'r' with no type [-fpermissive]
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h: In function 'QVariant KexiDB::pgsqlCStrToVariant(const int&)':
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:82:15: error: request for member 'type' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:84:38: error: request for member 'c_str' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:84:49: error: request for member 'size' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:88:18: error: request for member 'as' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:92:18: error: request for member 'as' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:94:36: error: request for member 'c_str' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:94:47: error: request for member 'size' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:96:36: error: request for member 'c_str' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:96:47: error: request for member 'size' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:98:36: error: request for member 'c_str' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:98:47: error: request for member 'size' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:100:48: error: request for member 'c_str' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:100:59: error: request for member 'size' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:104:36: error: request for member 'c_str' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:104:47: error: request for member 'size' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:106:36: error: request for member 'c_str' in 'r', which is of non-class type 'const int'
/var/tmp/portage/app-office/calligra-2.4.2-r1/work/calligra-2.4.2/kexi/kexidb/drivers/pqxx/pqxxcursor.h:106:47: error: request for member 'size' in 'r', which is of non-class type 'const int'
Comment 3 Jarosław Staniek 2012-08-05 09:52:44 UTC
Please try this patch: https://git.reviewboard.kde.org/r/105874/diff/raw/ - Added cmake warning if libpqxx is not in version 3.x.

More info at: https://git.reviewboard.kde.org/r/105874/
Comment 4 Jarosław Staniek 2012-08-10 20:39:57 UTC
Git commit b9b95066553ebb22ef4cbd823641d0a8d35c1cb2 by Jaroslaw Staniek.
Committed on 05/08/2012 at 11:37.
Pushed by staniek into branch 'calligra/2.5'.

Display cmake warning if libpqxx is not in version 3.x

+move checks for pgsql, mysql, tds, xbase dependencies to global area
REVIEW:105874
FIXED-IN:2.5.1

M  +28   -0    kexi/CMakeLists.txt
M  +1    -13   kexi/kexidb/drivers/CMakeLists.txt
M  +3    -19   kexi/migration/CMakeLists.txt

http://commits.kde.org/calligra/b9b95066553ebb22ef4cbd823641d0a8d35c1cb2
Comment 5 Jarosław Staniek 2012-08-10 20:51:34 UTC
Git commit 4709a607818f16e3f54f3494bc5722496b0158f7 by Jaroslaw Staniek.
Committed on 05/08/2012 at 11:37.
Pushed by staniek into branch 'master'.

Display cmake warning if libpqxx is not in version 3.x

+move checks for pgsql, mysql, tds, xbase dependencies to global area
REVIEW:105874

M  +28   -0    kexi/CMakeLists.txt
M  +1    -13   kexi/kexidb/drivers/CMakeLists.txt
M  +3    -19   kexi/migration/CMakeLists.txt

http://commits.kde.org/calligra/4709a607818f16e3f54f3494bc5722496b0158f7