Author: urkud
Date: Wed Sep  7 22:53:11 2011
New Revision: 29103
URL: https://svn.nixos.org/websvn/nix/?rev=29103&sc=1

Log:
soprano: find virtuoso without LD_LIBRARY_PATH hack

Now it finds virtuoso driver provided that virtuoso-t binary is in PATH.

Added:
   nixpkgs/trunk/pkgs/desktops/kde-4.7/support/soprano/find-virtuoso.patch
Modified:
   nixpkgs/trunk/pkgs/desktops/kde-4.7/support/soprano/default.nix

Modified: nixpkgs/trunk/pkgs/desktops/kde-4.7/support/soprano/default.nix
==============================================================================
--- nixpkgs/trunk/pkgs/desktops/kde-4.7/support/soprano/default.nix     Wed Sep 
 7 22:52:52 2011        (r29102)
+++ nixpkgs/trunk/pkgs/desktops/kde-4.7/support/soprano/default.nix     Wed Sep 
 7 22:53:11 2011        (r29103)
@@ -14,6 +14,7 @@
         name = "soprano-virtuoso-restart.patch";
         sha256 = "0jk038fp7ii6847mbxdajhhc7f6ap6lriaklxcqqxf6ddj37gf3y";
       })
+      ./find-virtuoso.patch 
     ];
 
   # We disable the Java backend, since we do not need them and they make the 
closure size much bigger

Added: nixpkgs/trunk/pkgs/desktops/kde-4.7/support/soprano/find-virtuoso.patch
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ nixpkgs/trunk/pkgs/desktops/kde-4.7/support/soprano/find-virtuoso.patch     
Wed Sep  7 22:53:11 2011        (r29103)
@@ -0,0 +1,77 @@
+From: Yury G. Kudryashov <urkud.ur...@gmail.com>
+Subject: [PATCH] Find virtuoso if virtuoso-t is in PATH
+
+---
+ backends/virtuoso/virtuosobackend.cpp |   29 ++++++++++++++++++++---------
+ backends/virtuoso/virtuosobackend.h   |    2 +-
+ 2 files changed, 21 insertions(+), 10 deletions(-)
+
+diff --git a/backends/virtuoso/virtuosobackend.cpp 
b/backends/virtuoso/virtuosobackend.cpp
+index c83605d..c24854e 100644
+--- a/backends/virtuoso/virtuosobackend.cpp
++++ b/backends/virtuoso/virtuosobackend.cpp
+@@ -188,19 +188,19 @@ namespace {
+ 
+ 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 = VirtuosoController::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;
+@@ -217,9 +217,20 @@ bool Soprano::Virtuoso::BackendPlugin::isAvailable() const
+ 
+ 
+ #ifndef Q_OS_WIN
+-QString Soprano::Virtuoso::BackendPlugin::findVirtuosoDriver() const
++QString Soprano::Virtuoso::BackendPlugin::findVirtuosoDriver( const QString 
&virtuosoBinHint ) const
+ {
+-    return Soprano::findLibraryPath( "virtodbc_r", QStringList(), 
QStringList() << QLatin1String( "virtuoso/plugins/" ) << QLatin1String( "odbc/" 
) );
++    QString virtuosoBin;
++    if (virtuosoBinHint.isEmpty())
++        virtuosoBin = VirtuosoController::locateVirtuosoBinary();
++    else
++        virtuosoBin = virtuosoBinHint;
++
++    QDir virtuosoBinDir = QFileInfo(virtuosoBin).absoluteDir();
++    return Soprano::findLibraryPath( "virtodbc_r",
++            QStringList() << virtuosoBinDir.absolutePath()
++            << virtuosoBinDir.absoluteFilePath("../lib"),
++            QStringList() << QLatin1String( "virtuoso/plugins/" ) <<
++            QLatin1String( "odbc/" ) );
+ }
+ #endif
+ 
+diff --git a/backends/virtuoso/virtuosobackend.h 
b/backends/virtuoso/virtuosobackend.h
+index 3971b83..0807e5d 100644
+--- a/backends/virtuoso/virtuosobackend.h
++++ b/backends/virtuoso/virtuosobackend.h
+@@ -50,7 +50,7 @@ namespace Soprano {
+ 
+ #ifndef Q_OS_WIN
+         private:
+-            QString findVirtuosoDriver() const;
++            QString findVirtuosoDriver(const QString &virtuosoBinHint = 
QString()) const;
+ #endif
+         };
+     }
+-- 
+tg: (432b73f..) t/find-virtuoso (depends on: master)
_______________________________________________
nix-commits mailing list
nix-comm...@cs.uu.nl
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to