diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/soprano/find-virtuoso.patch')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/soprano/find-virtuoso.patch | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/soprano/find-virtuoso.patch b/nixpkgs/pkgs/development/libraries/soprano/find-virtuoso.patch new file mode 100644 index 000000000000..95a2c7e96565 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/soprano/find-virtuoso.patch @@ -0,0 +1,86 @@ +From: Yury G. Kudryashov <urkud.urkud@gmail.com> +Subject: [PATCH] Find virtuoso if virtuoso-t is in PATH + +--- + backends/virtuoso/virtuosobackend.cpp | 31 ++++++++++++++++++++++--------- + backends/virtuoso/virtuosobackend.h | 2 +- + 2 files changed, 23 insertions(+), 10 deletions(-) + +diff --git a/backends/virtuoso/virtuosobackend.cpp b/backends/virtuoso/virtuosobackend.cpp +index c245101..249958a 100644 +--- a/backends/virtuoso/virtuosobackend.cpp ++++ b/backends/virtuoso/virtuosobackend.cpp +@@ -28,6 +28,7 @@ + #include "odbcconnectionpool.h" + + #include "sopranodirs.h" ++#include "soprano-config.h" + + #include <QtCore/QDebug> + #include <QtCore/QtPlugin> +@@ -210,19 +211,19 @@ Soprano::BackendFeatures Soprano::Virtuoso::BackendPlugin::supportedFeatures() c + + bool Soprano::Virtuoso::BackendPlugin::isAvailable() const + { +-#ifndef Q_OS_WIN +- if ( findVirtuosoDriver().isEmpty() ) { +- qDebug() << Q_FUNC_INFO << "could not find Virtuoso ODBC driver"; +- return false; +- } +-#endif +- + QString virtuosoBin = locateVirtuosoBinary(); + if ( virtuosoBin.isEmpty() ) { + qDebug() << Q_FUNC_INFO << "could not find virtuoso-t binary"; + return false; + } + ++#ifndef Q_OS_WIN ++ if ( findVirtuosoDriver( virtuosoBin ).isEmpty() ) { ++ qDebug() << Q_FUNC_INFO << "could not find Virtuoso ODBC driver"; ++ return false; ++ } ++#endif ++ + QString vs = determineVirtuosoVersion( virtuosoBin ); + if ( vs.isEmpty() ) { + qDebug() << Q_FUNC_INFO << "Failed to determine version of the Virtuoso server at" << virtuosoBin; +@@ -267,9 +268,21 @@ QString Soprano::Virtuoso::BackendPlugin::locateVirtuosoBinary() + + #ifndef Q_OS_WIN + // static +-QString Soprano::Virtuoso::BackendPlugin::findVirtuosoDriver() ++QString Soprano::Virtuoso::BackendPlugin::findVirtuosoDriver( const QString &virtuosoBinHint ) + { +- return Soprano::findLibraryPath( "virtodbc_r", QStringList(), QStringList() << QLatin1String( "virtuoso/plugins/" ) << QLatin1String( "odbc/" ) ); ++ QString virtuosoBin; ++ if (virtuosoBinHint.isEmpty()) ++ virtuosoBin = locateVirtuosoBinary(); ++ else ++ virtuosoBin = virtuosoBinHint; ++ ++ QDir virtuosoBinDir = QFileInfo(virtuosoBin).absoluteDir(); ++ return Soprano::findLibraryPath( "virtodbc_r", ++ QStringList() ++ << virtuosoBinDir.absoluteFilePath("../lib"SOPRANO_LIB_SUFFIX) ++ << virtuosoBinDir.absoluteFilePath("../lib"), ++ QStringList() << QLatin1String( "virtuoso/plugins/" ) << ++ QLatin1String( "odbc/" ) ); + } + #endif + +diff --git a/backends/virtuoso/virtuosobackend.h b/backends/virtuoso/virtuosobackend.h +index 646b9f8..535fbb9 100644 +--- a/backends/virtuoso/virtuosobackend.h ++++ b/backends/virtuoso/virtuosobackend.h +@@ -52,7 +52,7 @@ namespace Soprano { + + #ifndef Q_OS_WIN + private: +- static QString findVirtuosoDriver(); ++ static QString findVirtuosoDriver(const QString &virtuosoBinHint = QString()); + #endif + }; + } +-- +tg: (2321148..) t/find-virtuoso (depends on: master) |