linux_xanmod: 5.11.14 -> 5.11.15
[NixPkgs.git] / pkgs / development / libraries / soprano / find-virtuoso.patch
blob95a2c7e96565f10352d3021c4ae2c0417cb6716a
1 From: Yury G. Kudryashov <urkud.urkud@gmail.com>
2 Subject: [PATCH] Find virtuoso if virtuoso-t is in PATH
4 ---
5 backends/virtuoso/virtuosobackend.cpp | 31 ++++++++++++++++++++++---------
6 backends/virtuoso/virtuosobackend.h | 2 +-
7 2 files changed, 23 insertions(+), 10 deletions(-)
9 diff --git a/backends/virtuoso/virtuosobackend.cpp b/backends/virtuoso/virtuosobackend.cpp
10 index c245101..249958a 100644
11 --- a/backends/virtuoso/virtuosobackend.cpp
12 +++ b/backends/virtuoso/virtuosobackend.cpp
13 @@ -28,6 +28,7 @@
14 #include "odbcconnectionpool.h"
16 #include "sopranodirs.h"
17 +#include "soprano-config.h"
19 #include <QtCore/QDebug>
20 #include <QtCore/QtPlugin>
21 @@ -210,19 +211,19 @@ Soprano::BackendFeatures Soprano::Virtuoso::BackendPlugin::supportedFeatures() c
23 bool Soprano::Virtuoso::BackendPlugin::isAvailable() const
25 -#ifndef Q_OS_WIN
26 - if ( findVirtuosoDriver().isEmpty() ) {
27 - qDebug() << Q_FUNC_INFO << "could not find Virtuoso ODBC driver";
28 - return false;
29 - }
30 -#endif
32 QString virtuosoBin = locateVirtuosoBinary();
33 if ( virtuosoBin.isEmpty() ) {
34 qDebug() << Q_FUNC_INFO << "could not find virtuoso-t binary";
35 return false;
38 +#ifndef Q_OS_WIN
39 + if ( findVirtuosoDriver( virtuosoBin ).isEmpty() ) {
40 + qDebug() << Q_FUNC_INFO << "could not find Virtuoso ODBC driver";
41 + return false;
42 + }
43 +#endif
45 QString vs = determineVirtuosoVersion( virtuosoBin );
46 if ( vs.isEmpty() ) {
47 qDebug() << Q_FUNC_INFO << "Failed to determine version of the Virtuoso server at" << virtuosoBin;
48 @@ -267,9 +268,21 @@ QString Soprano::Virtuoso::BackendPlugin::locateVirtuosoBinary()
50 #ifndef Q_OS_WIN
51 // static
52 -QString Soprano::Virtuoso::BackendPlugin::findVirtuosoDriver()
53 +QString Soprano::Virtuoso::BackendPlugin::findVirtuosoDriver( const QString &virtuosoBinHint )
55 - return Soprano::findLibraryPath( "virtodbc_r", QStringList(), QStringList() << QLatin1String( "virtuoso/plugins/" ) << QLatin1String( "odbc/" ) );
56 + QString virtuosoBin;
57 + if (virtuosoBinHint.isEmpty())
58 + virtuosoBin = locateVirtuosoBinary();
59 + else
60 + virtuosoBin = virtuosoBinHint;
62 + QDir virtuosoBinDir = QFileInfo(virtuosoBin).absoluteDir();
63 + return Soprano::findLibraryPath( "virtodbc_r",
64 + QStringList()
65 + << virtuosoBinDir.absoluteFilePath("../lib"SOPRANO_LIB_SUFFIX)
66 + << virtuosoBinDir.absoluteFilePath("../lib"),
67 + QStringList() << QLatin1String( "virtuoso/plugins/" ) <<
68 + QLatin1String( "odbc/" ) );
70 #endif
72 diff --git a/backends/virtuoso/virtuosobackend.h b/backends/virtuoso/virtuosobackend.h
73 index 646b9f8..535fbb9 100644
74 --- a/backends/virtuoso/virtuosobackend.h
75 +++ b/backends/virtuoso/virtuosobackend.h
76 @@ -52,7 +52,7 @@ namespace Soprano {
78 #ifndef Q_OS_WIN
79 private:
80 - static QString findVirtuosoDriver();
81 + static QString findVirtuosoDriver(const QString &virtuosoBinHint = QString());
82 #endif
85 --
86 tg: (2321148..) t/find-virtuoso (depends on: master)