When I start kexi an empty error dialog pops up. There is only an okay button and a red error icon. The dialog headline says: "Error - Kexi" Thats's all. After clicking on OK kexi exit with return code 1.
Hi Rafael, thanks for the report, is this version compiled by you or a port? Also, do you have installed at least one driver (sqlite, mysql, postgresql) for KDb? Description at https://phabricator.kde.org/file/data/kjnkyg7lc6fuue3hs3hf/PHID-FILE-67r7l5rs7szrkqjgjmym/README-PACKAGERS.md
Such dialog can appear if no KEXI is unable to find at least one own plugin (kexi_tableplugin.so, kexi_formplugin.so, etc). This is a hint for you, maybe you have not installed them or have paths not set (I do not know details of the OS you use). Of course the blank dialog is a bug so we're going to fix it ASAP.
Created attachment 110342 [details] Corrected message
Git commit 5e502d3a68a78e4352a26e5ed6fe976ac128ecfc by Jaroslaw Staniek. Committed on 05/02/2018 at 23:36. Pushed by staniek into branch '3.1'. Do not display empty message when starting without plugins, inform users about the status Translators: new string approved during string freeze M +7 -0 src/core/kexipartmanager.cpp https://commits.kde.org/kexi/5e502d3a68a78e4352a26e5ed6fe976ac128ecfc
Hi Jarosław, first of all thank you, Commit 5e502d3a68a78e4352a26e5ed6fe976ac128ecfc fixes the empty error dialog. Your error message now appears but of course it doesn't solve my main problem. I'm the OpenBSD calligra maintainer and I try to port the current kexi version to OpenBSD by user request. I hope it also depends on your interest to support as many OS as possible. kdb found all driver, please see bewlow the cmake configure output: -- Found PkgConfig: /usr/bin/pkg-config (found version "0.27.1") -- Found SQLite version 3.21.0 -- Found support for extensions loading in SQLite. -- Found Sqlite: /usr/local/include (Required is at least version "3.6.16") -- Found ICU header files in /usr/local/include -- Found ICU libraries: /usr/local/lib/libicuuc.so.13.0 -- Found MySQL: /usr/local/lib/mysql/libmysqlclient.so.27.0 -- Found PostgreSQL: /usr/local/lib/libpq.so.6.10 (found version "10.1") -- The following features have been enabled: What can I do to analyse the problem?
You apparently miss runtime configuration for the custom prefix. Custom because it is not /usr. Does the OS use /usr/local prefix for official/globally installed apps and not /usr? Maybe if you built KEXI with cmake's -DCMAKE_INSTALL_PREFIX=/usr option, it would work out of the box. What's the command used to configure KEXI build? It should be the same as you use for any other cmake-based BSys. As said above KEXI is unable to find at least one own plugin. These plugins for 2.1 are files like (your {PREFIX} is /usr/local): {PREFIX}/lib/plugins/kexi/3.1/kexi_*plugin.so Do you have QT_PLUGIN_PATH set for the custom location you use? That is: export QT_PLUGIN_PATH={PREFIX}/lib/plugins:$QT_PLUGIN_PATH Most probably you will also miss XDG_DATA_DIRS and XDG_CONFIG_DIRS settings if your 'share' dir is /usr/local. Sorry for confusion if the OS that I do not know well user /usr/local for officially installed apps that are not 'system' software.
typo: (for 3.1. not 2.1)
yes, in OpenBSD all 3rdparty Software for/from packages is installed to /usr/local/. With your QT_PLUGIN_PATH hint kexi starts and works fine. Thanks! Now, I'm looking for an approach with which we can make it easy for the OpenBSD package user to start kexi without env tweaks. Is there any way I can modify in code to search explicit in /usr/local//lib/plugins or maybe with a camke option? CMAKE_INSTALL_PREFIX does not work.
Great to hear it moves forward! Please look if all plugins work OK with the QT_PLUGIN_PATH setting (try start creating table/query etc.) and also insert widgets onto a form design. Then we will find solution probably in KEXI itself. In addition can I ask you build tests too (usual cmake config but with -DBUILD_TESTING=1) and please run 'ctest' in your execution environment to see if GlobalSearchTest runs. GlobalSearchTest is an noninteractive app in BUILDDIR/bin/.
With QT_PLUGIN_PATH kexi Mysql and postgresql plugins work fine. Of course I build the test but I run into: "The file /usr/ports/pobj/kexi-3.0.2/kexi-3.0.2/src/main/autotests/data/GlobalSearchTest.kexi is not recognized as being supported by Kexi." "Could not find plugin supporting for this file type. Detected MIME type is “application/x-sqlite3” (SQLite3 database)."
How do you interpret/read QT_PLUGIN_PATH in kexi or do you use something from KDE frameworks? Maybe the bug is in our KDE frameworks on OpenBSD. I would like to work out a solution where our OpenBSD users don't have to set QT_PLUGIN_PATH by hand.
Update: Because of this bug we've stopped the Final 3.1 release and will only release RC1 on Feb 23rd. So there's time to find a solution.
Asked on a KDE freebsd mailing list: https://mail.kde.org/pipermail/kde-freebsd/2018-February/027445.html I was unable to find anything specifically for openBSD. In worst case we would have appropriate default plugin path set in main(), so do not worry. There's also page https://www.freebsd.org/doc/en/books/porters-handbook/using-qt.html, no idea if it helps in any way.
Rafael, you may want to look at the above mail.kde.org thread for hints that just have appeared there (-DKDE_INSTALL_USE_QT_SYS_PATHS=ON).
Issue fixed by setting -DKDE_INSTALL_QTPLUGINDIR. Thank you for your support thus the way is clear for kexi in OpenBSD.
Happy to hear! Looking forward to also hear from KEXI/OpenBSD users :)