Hello community,
here is the log from the commit of package soprano for openSUSE:Factory
checked in at Thu May 19 11:55:10 CEST 2011.
--------
--- soprano/soprano-backend-sesame.changes 2010-12-14 14:32:10.000000000 +0100
+++ /mounts/work_src_done/STABLE/soprano/soprano-backend-sesame.changes 2011-05-16 20:08:54.000000000 +0200
@@ -1,0 +2,26 @@
+Mon May 16 17:33:37 UTC 2011 - asterios.dramis@gmail.com
+
+- Update to 2.6.0:
+ * Fixed handling of xsd:boolean in SPARQL queries in the Virtuoso backend
+ (this is a hack that might not work in all situations)
+ * Added new parameter for the Virtuoso backend: QueryTimeout allows to set a
+ maximum query exeution time.
+ * Added new parameter for the Virtuoso backend: RestartOnCrash will restart
+ the Virtuoso server if it crashes.
+ * QueryResultIterator::next() now always returns false for boolean results.
+ This breaks behaviour compared to previous versions. However, always
+ returning true as before results in endless loops if the client does not
+ check the type of the query result. Thus, in the interest of stability this
+ change has been made anyway.
+ * Lock the storage dir of a running virtuoso instance to avoid reusing it.
+- Spec file updates:
+ * Changes based on spec-cleaner run.
+ * Changed License: to LGPLv2+.
+ * Updates in Summary, %description and Group entries.
+ * Added librasqal-devel in BuildRequires:.
+ * Removed fdupes from BuildRequires: for sesame and virtuoso backends (not
+ needed).
+ * Minor other updates.
+- Fixed rpmlint warning "untranslated-desktop-file".
+
+-------------------------------------------------------------------
soprano-backend-virtuoso.changes: same change
soprano.changes: same change
calling whatdependson for head-i586
Old:
----
soprano-2.5.63.tar.bz2
New:
----
soprano-2.6.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ soprano-backend-sesame.spec ++++++
--- /var/tmp/diff_new_pack.ur2Zmp/_old 2011-05-19 11:51:55.000000000 +0200
+++ /var/tmp/diff_new_pack.ur2Zmp/_new 2011-05-19 11:51:55.000000000 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package soprano-backend-sesame (Version 2.5.63)
+# spec file for package soprano-backend-sesame
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,25 +19,37 @@
Name: soprano-backend-sesame
Url: http://soprano.sourceforge.net/
-BuildRequires: fdupes java-devel libsoprano-devel
-License: GPLv2+ ; LGPLv2.1+
-Group: Development/Libraries/C and C++
-Summary: C++/Qt based interface library for RDF - Sesame backend
+License: LGPLv2+
+Group: System/Libraries
+Summary: Sesame backend for Soprano
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Requires: java-devel
# COMMON1-BEGIN
# COMMON1-BEGIN
-BuildRequires: cmake kde4-filesystem libqt4-devel libraptor-devel libredland-devel
-BuildRequires: boost-devel clucene-core-devel doxygen raptor
-Version: 2.5.63
-Release: 2
-Source: soprano-%{version}.tar.bz2
-Source2: baselibs.conf
+Version: 2.6.0
+Release: 1
+Source0: http://sourceforge.net/projects/soprano/files/Soprano/%{version}/soprano-%{version}.tar.bz2
+Source100: baselibs.conf
+BuildRequires: boost-devel
+BuildRequires: clucene-core-devel
+BuildRequires: cmake
+BuildRequires: doxygen
+BuildRequires: kde4-filesystem
+BuildRequires: libqt4-devel
+BuildRequires: libraptor-devel
+BuildRequires: librasqal-devel
+BuildRequires: libredland-devel
+BuildRequires: raptor
+%if 0%{?suse_version}
+BuildRequires: update-desktop-files
+%endif
# COMMON1-END
# COMMON1-END
+BuildRequires: java-devel
+BuildRequires: libsoprano-devel
+Requires: libsoprano4 = %{version}
+Requires: java-devel
Provides: soprano_backend = %{version}
Provides: backend-sesame2 = %{version}
-Requires: libsoprano4 = %{version}
%description
This package provides a Sesame based backend for Soprano.
@@ -51,22 +63,26 @@
%build
export JAVA_HOME=%{_jvmdir}/java
- %cmake_kde4 -d build -- -DCMAKE_SKIP_RPATH=OFF -DBUILD_SESAME_BACKEND=ON
- %make_jobs
+%cmake_kde4 -d build -- -DCMAKE_SKIP_RPATH=OFF -DBUILD_SESAME_BACKEND=ON
+%make_jobs
%install
- cd build
- # this uses the cmake (mis)feature of 'make' building also the dependencies outside
- # the directory and its subdirectories, 'make install' not installing them
- cd backends/sesame2
- %makeinstall
-%if %suse_version > 1020
- %fdupes -s %{buildroot}%{_includedir}
+cd build
+# this uses the cmake (mis)feature of 'make' building also the dependencies outside
+# the directory and its subdirectories, 'make install' not installing them
+cd backends/sesame2
+%make_install
+cd ..
+
+%if 0%{?suse_version}
+%suse_update_desktop_file %{buildroot}%{_datadir}/soprano/plugins/sesame2backend.desktop
%endif
- cd ..
+
+%clean
+rm -rf %{buildroot}
%files
-%defattr(-,root,root)
+%defattr(-,root,root,-)
%{_datadir}/soprano/sesame2
%{_libdir}/soprano/libsoprano_sesame2backend.so
%{_datadir}/soprano/plugins/sesame2backend.desktop
++++++ soprano-backend-virtuoso.spec ++++++
--- /var/tmp/diff_new_pack.ur2Zmp/_old 2011-05-19 11:51:55.000000000 +0200
+++ /var/tmp/diff_new_pack.ur2Zmp/_new 2011-05-19 11:51:55.000000000 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package soprano-backend-virtuoso (Version 2.5.63)
+# spec file for package soprano-backend-virtuoso
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,29 +19,40 @@
Name: soprano-backend-virtuoso
Url: http://soprano.sourceforge.net/
-BuildRequires: fdupes libsoprano-devel
-License: GPLv2+ ; LGPLv2.1+
-Group: Development/Libraries/C and C++
-Summary: C++/Qt based interface library for RDF
+License: LGPLv2+
+Group: System/Libraries
+Summary: Virtuoso backend for Soprano
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: libiodbc-devel
# COMMON1-BEGIN
# COMMON1-BEGIN
-BuildRequires: cmake kde4-filesystem libqt4-devel libraptor-devel libredland-devel
-BuildRequires: boost-devel clucene-core-devel doxygen raptor
-Version: 2.5.63
-Release: 2
-Source: soprano-%{version}.tar.bz2
-Source2: baselibs.conf
+Version: 2.6.0
+Release: 1
+Source0: http://sourceforge.net/projects/soprano/files/Soprano/%{version}/soprano-%{version}.tar.bz2
+Source100: baselibs.conf
+BuildRequires: boost-devel
+BuildRequires: clucene-core-devel
+BuildRequires: cmake
+BuildRequires: doxygen
+BuildRequires: kde4-filesystem
+BuildRequires: libqt4-devel
+BuildRequires: libraptor-devel
+BuildRequires: librasqal-devel
+BuildRequires: libredland-devel
+BuildRequires: raptor
+%if 0%{?suse_version}
+BuildRequires: update-desktop-files
+%endif
# COMMON1-END
# COMMON1-END
-Provides: soprano_backend = %{version}
-Provides: backend-virtuso = %{version}
+BuildRequires: libiodbc-devel
+BuildRequires: libsoprano-devel
Requires: libsoprano4 = %{version}
Requires: virtuoso-server
+Provides: soprano_backend = %{version}
+Provides: backend-virtuso = %{version}
%description
-Soprano Backend for the RDF QT/C++ interface library using Virtuoso for storage.
+This package provides a Virtuoso based backend for Soprano.
%prep
# COMMON2-BEGIN
@@ -51,22 +62,26 @@
# COMMON2-END
%build
- %cmake_kde4 -d build -- -DCMAKE_SKIP_RPATH=OFF -DBUILD_VIRTUOSO_BACKEND=ON
- %make_jobs
+%cmake_kde4 -d build -- -DCMAKE_SKIP_RPATH=OFF -DBUILD_VIRTUOSO_BACKEND=ON
+%make_jobs
%install
- cd build
- # this uses the cmake (mis)feature of 'make' building also the dependencies outside
- # the directory and its subdirectories, 'make install' not installing them
- cd backends/virtuoso
- %makeinstall
-%if %suse_version > 1020
- %fdupes -s %{buildroot}%{_includedir}
+cd build
+# this uses the cmake (mis)feature of 'make' building also the dependencies outside
+# the directory and its subdirectories, 'make install' not installing them
+cd backends/virtuoso
+%make_install
+cd ..
+
+%if 0%{?suse_version}
+%suse_update_desktop_file %{buildroot}%{_datadir}/soprano/plugins/virtuosobackend.desktop
%endif
- cd ..
+
+%clean
+rm -rf %{buildroot}
%files
-%defattr(-,root,root)
+%defattr(-,root,root,-)
%{_libdir}/soprano/libsoprano_virtuosobackend.so
%{_datadir}/soprano/plugins/virtuosobackend.desktop
++++++ soprano.spec ++++++
--- /var/tmp/diff_new_pack.ur2Zmp/_old 2011-05-19 11:51:55.000000000 +0200
+++ /var/tmp/diff_new_pack.ur2Zmp/_new 2011-05-19 11:51:55.000000000 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package soprano (Version 2.5.63)
+# spec file for package soprano
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,22 +19,33 @@
Name: soprano
Url: http://soprano.sourceforge.net/
-BuildRequires: fdupes
-License: LGPLv2.1+
-Group: Development/Libraries/C and C++
+License: LGPLv2+
+Group: System/Libraries
Summary: C++/Qt based interface library for RDF
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
# COMMON1-BEGIN
-BuildRequires: cmake kde4-filesystem libqt4-devel libraptor-devel libredland-devel
-BuildRequires: boost-devel clucene-core-devel doxygen raptor
-Version: 2.5.63
-Release: 2
-Source: soprano-%{version}.tar.bz2
-Source2: baselibs.conf
+Version: 2.6.0
+Release: 1
+Source0: http://sourceforge.net/projects/soprano/files/Soprano/%{version}/soprano-%{version}.tar.bz2
+Source100: baselibs.conf
+BuildRequires: boost-devel
+BuildRequires: clucene-core-devel
+BuildRequires: cmake
+BuildRequires: doxygen
+BuildRequires: kde4-filesystem
+BuildRequires: libqt4-devel
+BuildRequires: libraptor-devel
+BuildRequires: librasqal-devel
+BuildRequires: libredland-devel
+BuildRequires: raptor
+%if 0%{?suse_version}
+BuildRequires: update-desktop-files
+%endif
# COMMON1-END
+BuildRequires: fdupes
Requires: libsoprano4 = %{version}
Recommends: soprano_backend = %{version}
Recommends: soprano-backend-virtuoso
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Soprano is an open and pluggable RDF resource framework which is build
@@ -43,43 +54,30 @@
Soprano are desktop applications as it is being developed as a
subproject of Nepomuk, the semantic desktop initiative.
-
-
-Authors:
---------
- Daniele Galdi
- Sebastian Trueg
-
%prep
# COMMON2-BEGIN
%setup -q -n soprano-%{version}
# COMMON2-END
%package -n libsoprano-devel
-License: LGPLv2.1+
+License: LGPLv2+
+Summary: Developer files for Soprano
Group: Development/Libraries/C and C++
-Summary: C++/Qt based interface library for RDF
-Requires: libsoprano4 = %version
-Requires: %name = %version
-Requires: libqt4-devel >= %( echo `rpm -q --queryformat '%{VERSION}' libqt4-devel`)
-Requires: clucene-core-devel >= %( echo `rpm -q --queryformat '%{VERSION}' clucene-core-devel`)
-Requires: libraptor-devel libredland-devel
+Requires: %{name} = %{version}
+%requires_ge clucene-core-devel
+%requires_ge libqt4-devel
+Requires: libraptor-devel
+Requires: libredland-devel
+Requires: libsoprano4 = %{version}
Requires: soprano-backend-redland
%description -n libsoprano-devel
-Soprano is a RDF QT/C++ interface library using redland as a backend
-
-
-
-Authors:
---------
- Daniele Galdi
- Sebastian Trueg
+This package contains developer files for Soprano.
%package -n libsoprano4
-License: LGPLv2.1+
-Group: Development/Libraries/C and C++
+License: LGPLv2+
Summary: C++/Qt based interface library for RDF
+Group: System/Libraries
%requires_ge libqt4
%description -n libsoprano4
@@ -89,46 +87,45 @@
Soprano are desktop applications as it is being developed as a
subroject of Nepomuk, the semantic desktop initiative.
-
-
-Authors:
---------
- Daniele Galdi
- Sebastian Trueg
-
%package backend-redland
-License: LGPLv2.1+
-Group: Development/Libraries/C and C++
-Summary: C++/Qt based interface library for RDF
-Provides: soprano_backend = %version
-Requires: libsoprano4 = %version
+License: LGPLv2+
+Summary: Redland backend for Soprano
+Group: System/Libraries
+Requires: libsoprano4 = %{version}
+Provides: soprano_backend = %{version}
%description backend-redland
-Soprano is a RDF QT/C++ interface library using redland as a backend
-
-
-
-Authors:
---------
- Daniele Galdi
- Sebastian Trueg
+This package provides a Redland based backend for Soprano.
%build
- %cmake_kde4 -d build -- -DCMAKE_SKIP_RPATH=OFF
- %make_jobs
+%cmake_kde4 -d build -- -DCMAKE_SKIP_RPATH=OFF
+%make_jobs
%install
- cd build
- %makeinstall
- %fdupes -s %{buildroot}%{_includedir}
+cd build
+%make_install
+cd ..
+
+%if 0%{?suse_version}
+%suse_update_desktop_file %{buildroot}%{_datadir}/soprano/plugins/nquadparser.desktop
+%suse_update_desktop_file %{buildroot}%{_datadir}/soprano/plugins/nquadserializer.desktop
+%suse_update_desktop_file %{buildroot}%{_datadir}/soprano/plugins/raptorparser.desktop
+%suse_update_desktop_file %{buildroot}%{_datadir}/soprano/plugins/raptorserializer.desktop
+%suse_update_desktop_file %{buildroot}%{_datadir}/soprano/plugins/redlandbackend.desktop
+%endif
+
+%fdupes -s %{buildroot}%{_includedir}
%post -n libsoprano4 -p /sbin/ldconfig
%postun -n libsoprano4 -p /sbin/ldconfig
+%clean
+rm -rf %{buildroot}
+
%files
-%defattr(-,root,root)
-%doc AUTHORS TODO
+%defattr(-,root,root,-)
+%doc AUTHORS COPYING COPYING.LIB ChangeLog README TODO
%{_bindir}/onto2vocabularyclass
%{_bindir}/sopranocmd
%{_bindir}/sopranod
@@ -152,7 +149,7 @@
%{_libdir}/soprano/libsoprano_raptorserializer.so
%files -n libsoprano4
-%defattr(-,root,root)
+%defattr(-,root,root,-)
%{_libdir}/libsopranoclient.so.1
%{_libdir}/libsopranoclient.so.1.2.0
%{_libdir}/libsopranoserver.so.1
@@ -163,7 +160,7 @@
%{_libdir}/libsopranoindex.so.1.1.0
%files -n libsoprano-devel
-%defattr(-,root,root)
+%defattr(-,root,root,-)
%{_includedir}/soprano
%{_includedir}/Soprano
%{_libdir}/libsoprano.so
@@ -178,7 +175,7 @@
%{_datadir}/soprano/cmake/SopranoAddOntology.cmake
%files backend-redland
-%defattr(-,root,root)
+%defattr(-,root,root,-)
%{_libdir}/soprano/libsoprano_redlandbackend.so
%{_datadir}/soprano/plugins/redlandbackend.desktop
++++++ soprano-2.5.63.tar.bz2 -> soprano-2.6.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/CMakeLists.txt new/soprano-2.6.0/CMakeLists.txt
--- old/soprano-2.5.63/CMakeLists.txt 2010-09-14 14:54:33.000000000 +0200
+++ new/soprano-2.6.0/CMakeLists.txt 2011-02-01 15:51:41.000000000 +0100
@@ -6,8 +6,8 @@
################## Soprano version ################################
set(CMAKE_SOPRANO_VERSION_MAJOR 2)
-set(CMAKE_SOPRANO_VERSION_MINOR 5)
-set(CMAKE_SOPRANO_VERSION_RELEASE 63)
+set(CMAKE_SOPRANO_VERSION_MINOR 6)
+set(CMAKE_SOPRANO_VERSION_RELEASE 0)
set(CMAKE_SOPRANO_VERSION_STRING "${CMAKE_SOPRANO_VERSION_MAJOR}.${CMAKE_SOPRANO_VERSION_MINOR}.${CMAKE_SOPRANO_VERSION_RELEASE}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/CTestConfig.cmake new/soprano-2.6.0/CTestConfig.cmake
--- old/soprano-2.5.63/CTestConfig.cmake 1970-01-01 01:00:00.000000000 +0100
+++ new/soprano-2.6.0/CTestConfig.cmake 2011-02-01 15:51:41.000000000 +0100
@@ -0,0 +1,13 @@
+## This file should be placed in the root directory of your project.
+## Then modify the CMakeLists.txt file in the root directory of your
+## project to incorporate the testing dashboard.
+## # The following are required to uses Dart and the Cdash dashboard
+## ENABLE_TESTING()
+## INCLUDE(CTest)
+set(CTEST_PROJECT_NAME "soprano")
+set(CTEST_NIGHTLY_START_TIME "00:00:00 UTC")
+
+set(CTEST_DROP_METHOD "http")
+set(CTEST_DROP_SITE "my.cdash.org")
+set(CTEST_DROP_LOCATION "/submit.php?project=soprano")
+set(CTEST_DROP_SITE_CDASH TRUE)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/CTestCustom.cmake new/soprano-2.6.0/CTestCustom.cmake
--- old/soprano-2.5.63/CTestCustom.cmake 1970-01-01 01:00:00.000000000 +0100
+++ new/soprano-2.6.0/CTestCustom.cmake 2011-02-01 15:51:41.000000000 +0100
@@ -0,0 +1,22 @@
+# This file contains all the specific settings that will be used
+# when running 'make Experimental'
+
+# Change the maximum warnings that will be displayed
+# on the report page (default 50)
+set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS 1000)
+
+# Errors that will be ignored
+set(CTEST_CUSTOM_ERROR_EXCEPTION
+ ${CTEST_CUSTOM_ERROR_EXCEPTION}
+ "ICECC"
+ "Segmentation fault"
+ "GConf Error"
+ "Client failed to connect to the D-BUS daemon"
+ "Failed to connect to socket"
+ "qlist.h.*increases required alignment of target type"
+ "qmap.h.*increases required alignment of target type"
+ "qhash.h.*increases required alignment of target type"
+ )
+
+# No coverage for these files
+set(CTEST_CUSTOM_COVERAGE_EXCLUDE ".moc$" "moc_" "ui_")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/ChangeLog new/soprano-2.6.0/ChangeLog
--- old/soprano-2.5.63/ChangeLog 2010-08-27 18:30:39.000000000 +0200
+++ new/soprano-2.6.0/ChangeLog 2011-02-01 15:51:41.000000000 +0100
@@ -1,6 +1,13 @@
2.6.0
* Fixed handling of xsd:boolean in SPARQL queries in the Virtuoso backend
+ (this is a hack that might not work in all situations)
* Added new parameter for the Virtuoso backend: QueryTimeout allows to set a maximum query exeution time.
+ * Added new parameter for the Virtuoso backend: RestartOnCrash will restart the Virtuoso server if it crashes.
+ * QueryResultIterator::next() now always returns false for boolean results. This breaks behaviour
+ compared to previous versions. However, always returning true as before results in endless loops if
+ the client does not check the type of the query result. Thus, in the interest of stability this change
+ has been made anyway.
+ * Lock the storage dir of a running virtuoso instance to avoid reusing it.
2.5.0
* New public qHash method for Statement
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/README new/soprano-2.6.0/README
--- old/soprano-2.5.63/README 2009-03-06 14:10:27.000000000 +0100
+++ new/soprano-2.6.0/README 2011-02-01 15:51:41.000000000 +0100
@@ -1,4 +1,4 @@
-Soprano 2.3
+Soprano 2.6
===========
Soprano (formally known as QRDF) is a library which provides a nice Qt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/backends/redland/redlandqueryresult.cpp new/soprano-2.6.0/backends/redland/redlandqueryresult.cpp
--- old/soprano-2.5.63/backends/redland/redlandqueryresult.cpp 2009-02-11 14:32:20.000000000 +0100
+++ new/soprano-2.6.0/backends/redland/redlandqueryresult.cpp 2011-02-01 15:51:41.000000000 +0100
@@ -2,7 +2,7 @@
* This file is part of Soprano Project.
*
* Copyright (C) 2006 Daniele Galdi
- * Copyright (C) 2007 Sebastian Trueg
+ * Copyright (C) 2007-2010 Sebastian Trueg
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -115,7 +115,7 @@
return false;
}
else if ( isBool() ) {
- return true;
+ return false;
}
else if ( isBinding() ) {
bool hasNext = librdf_query_results_finished( d->result ) == 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/backends/sesame2/sesame2queryresultiteratorbackend.cpp new/soprano-2.6.0/backends/sesame2/sesame2queryresultiteratorbackend.cpp
--- old/soprano-2.5.63/backends/sesame2/sesame2queryresultiteratorbackend.cpp 2008-05-05 17:34:04.000000000 +0200
+++ new/soprano-2.6.0/backends/sesame2/sesame2queryresultiteratorbackend.cpp 2011-02-01 15:51:41.000000000 +0100
@@ -1,7 +1,7 @@
/*
* This file is part of Soprano Project.
*
- * Copyright (C) 2007 Sebastian Trueg
+ * Copyright (C) 2007-2010 Sebastian Trueg
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -102,7 +102,7 @@
bool Soprano::Sesame2::QueryResultIteratorBackend::next()
{
if ( d->isBooleanResult ) {
- return d->model != 0;
+ return false;
}
if ( d->result->hasNext() ) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/backends/virtuoso/virtuosocontroller.cpp new/soprano-2.6.0/backends/virtuoso/virtuosocontroller.cpp
--- old/soprano-2.5.63/backends/virtuoso/virtuosocontroller.cpp 2010-09-14 14:56:53.000000000 +0200
+++ new/soprano-2.6.0/backends/virtuoso/virtuosocontroller.cpp 2011-02-01 15:51:41.000000000 +0100
@@ -1,7 +1,7 @@
/*
* This file is part of Soprano Project
*
- * Copyright (C) 2009 Sebastian Trueg
+ * Copyright (C) 2009-2011 Sebastian Trueg
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -112,8 +112,17 @@
const QString storageDir = valueInSettings( settings, BackendOptionStorageDir ).toString();
+ // aquire a lock for ourselves
+ m_virtuosoLock.setFileName( storageDir + QLatin1String("/soprano-virtuoso.lock") );
+ int pid = 0;
+ if( !m_virtuosoLock.aquireLock( &pid ) ) {
+ setError( QString::fromLatin1("Another instance of Soprano (%1) is already running on the data in '%2'.")
+ .arg(pid).arg(storageDir));
+ return false;
+ }
+
// check if another instance of Virtuoso is running
- int pid = pidOfRunningVirtuosoInstance( storageDir );
+ pid = pidOfRunningVirtuosoInstance( storageDir );
if ( pid > 0 && valueInSettings( settings, "forcedstart", false ).toBool() ) {
#ifndef Q_OS_WIN
qDebug( "Shutting down Virtuoso instance (%d) which is in our way.", pid );
@@ -213,10 +222,12 @@
m_status = Killing;
m_virtuosoProcess.kill();
m_virtuosoProcess.waitForFinished();
+ m_virtuosoLock.releaseLock();
return false;
}
else {
clearError();
+ m_virtuosoLock.releaseLock();
return true;
}
#else
@@ -224,11 +235,13 @@
m_virtuosoProcess.kill();
m_virtuosoProcess.waitForFinished();
clearError();
+ m_virtuosoLock.releaseLock();
return true;
#endif
}
else {
setError( "Virtuoso not running. Cannot shutdown." );
+ m_virtuosoLock.releaseLock();
return false;
}
}
@@ -248,6 +261,9 @@
QFile::remove( m_configFilePath );
}
+ // release our lock
+ m_virtuosoLock.releaseLock();
+
m_lastExitStatus = NormalExit;
if ( exitStatus == QProcess::CrashExit )
m_lastExitStatus = CrashExit;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/backends/virtuoso/virtuosocontroller.h new/soprano-2.6.0/backends/virtuoso/virtuosocontroller.h
--- old/soprano-2.5.63/backends/virtuoso/virtuosocontroller.h 2010-02-11 12:02:36.000000000 +0100
+++ new/soprano-2.6.0/backends/virtuoso/virtuosocontroller.h 2011-02-01 15:51:41.000000000 +0100
@@ -1,7 +1,7 @@
/*
* This file is part of Soprano Project
*
- * Copyright (C) 2009 Sebastian Trueg
+ * Copyright (C) 2009-2011 Sebastian Trueg
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -27,6 +27,7 @@
#include "error.h"
#include "backend.h"
+#include "lockfile.h"
class QEventLoop;
@@ -93,6 +94,8 @@
ExitStatus m_lastExitStatus;
QEventLoop* m_initializationLoop;
+
+ LockFile m_virtuosoLock;
};
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/backends/virtuoso/virtuosomodel.cpp new/soprano-2.6.0/backends/virtuoso/virtuosomodel.cpp
--- old/soprano-2.5.63/backends/virtuoso/virtuosomodel.cpp 2010-08-31 15:55:01.000000000 +0200
+++ new/soprano-2.6.0/backends/virtuoso/virtuosomodel.cpp 2011-02-01 15:51:41.000000000 +0100
@@ -345,7 +345,10 @@
if ( conn->executeCommand( "sparql " + query ) == Error::ErrorNone ) {
// FIXME: can this be done with SQL/RDF views?
emit statementsRemoved();
- emit statementRemoved( statement );
+ Statement signalStatement( statement );
+ if( signalStatement.context() == Virtuoso::defaultGraph() )
+ signalStatement.setContext( Node() );
+ emit statementRemoved( signalStatement );
}
setError( conn->lastError() );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/backends/virtuoso/virtuosoqueryresultiteratorbackend.cpp new/soprano-2.6.0/backends/virtuoso/virtuosoqueryresultiteratorbackend.cpp
--- old/soprano-2.5.63/backends/virtuoso/virtuosoqueryresultiteratorbackend.cpp 2010-07-22 10:51:32.000000000 +0200
+++ new/soprano-2.6.0/backends/virtuoso/virtuosoqueryresultiteratorbackend.cpp 2011-02-01 15:51:41.000000000 +0100
@@ -129,7 +129,7 @@
{
switch( d->m_resultType ) {
case QueryResultIteratorBackendPrivate::AskResult:
- return d->m_queryResult != 0;
+ return false;
case QueryResultIteratorBackendPrivate::GraphResult:
return d->graphIterator.next();
@@ -189,7 +189,10 @@
Soprano::Node Soprano::Virtuoso::QueryResultIteratorBackend::binding( int offset ) const
{
- if ( d->m_queryResult && offset < bindingCount() && offset >= 0 ) {
+ if ( isBinding() &&
+ d->m_queryResult &&
+ offset < bindingCount() &&
+ offset >= 0 ) {
if ( !d->bindingCachedFlags[offset] ) {
Node node = d->m_queryResult->getData( offset+1 );
setError( d->m_queryResult->lastError() );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/client/localsocketclient.cpp new/soprano-2.6.0/client/localsocketclient.cpp
--- old/soprano-2.5.63/client/localsocketclient.cpp 2010-09-09 17:47:55.000000000 +0200
+++ new/soprano-2.6.0/client/localsocketclient.cpp 2011-02-01 15:51:41.000000000 +0100
@@ -162,8 +162,10 @@
void Soprano::Client::LocalSocketClient::disconnect()
{
- d->connection->deleteLater();
- d->connection = 0;
+ if (d->connection) {
+ d->connection->deleteLater();
+ d->connection = 0;
+ }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/client/sparql/sparqlqueryresult.cpp new/soprano-2.6.0/client/sparql/sparqlqueryresult.cpp
--- old/soprano-2.5.63/client/sparql/sparqlqueryresult.cpp 2009-05-06 13:14:09.000000000 +0200
+++ new/soprano-2.6.0/client/sparql/sparqlqueryresult.cpp 2011-02-01 15:51:41.000000000 +0100
@@ -2,7 +2,7 @@
* This file is part of Soprano Project.
*
* Copyright (C) 2007 Rajeev J Sebastian
- * Copyright (C) 2008 Sebastian Trueg
+ * Copyright (C) 2008-2010 Sebastian Trueg
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -76,8 +76,8 @@
return( m_currentResultIndex < m_result.results().resultList().count() );
}
else {
- // boolean result always needs to return true
- return true;
+ // boolean result always needs to return false
+ return false;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/cmake/modules/SopranoAddOntology.cmake new/soprano-2.6.0/cmake/modules/SopranoAddOntology.cmake
--- old/soprano-2.5.63/cmake/modules/SopranoAddOntology.cmake 2009-11-12 19:11:35.000000000 +0100
+++ new/soprano-2.6.0/cmake/modules/SopranoAddOntology.cmake 2011-02-01 15:51:41.000000000 +0100
@@ -16,7 +16,7 @@
# Example:
# soprano_add_ontology(pimo_LIB_SRCS ${PIMO_TRIG_SOURCE} "PIMO" "Nepomuk::Vocabulary" "trig" VISIBILITY "nepomuk")
#
-# Copyright (C) 2009 Sebastian Trueg
+# Copyright (C) 2009-2010 Sebastian Trueg
#
MACRO(SOPRANO_ADD_ONTOLOGY _sources _ontoFile _ontoName _namespace _encoding)
@@ -48,4 +48,11 @@
)
list(APPEND ${_sources} ${_ontoSourceFile})
+
+ # reset the variables we used
+ unset(_visibility)
+ unset(_ontoName)
+ unset(_ontoFilePrefix)
+ unset(_ontoHeaderFile)
+ unset(_ontoSourceFile)
ENDMACRO(SOPRANO_ADD_ONTOLOGY)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/index/wstring.cpp new/soprano-2.6.0/index/wstring.cpp
--- old/soprano-2.5.63/index/wstring.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/soprano-2.6.0/index/wstring.cpp 2011-02-01 15:51:41.000000000 +0100
@@ -0,0 +1,197 @@
+/*
+ * This file is part of Soprano Project.
+ *
+ * Copyright (C) 2007 Sebastian Trueg
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "wstring.h"
+
+#include
+
+#include <QDebug>
+
+
+
+// looks as if QT has a bug in toWCharArray, so we use the method from strigi
+void utf8toucs2( const char* p, const char* e, wchar_t* buf )
+{
+ int i = 0;
+ char nb = 0;
+ while (p < e) {
+ wchar_t w = 0;
+ char c = *p;
+ if (nb--) {
+ w = (w<<6) + (c & 0x3f);
+ } else if ((0xE0 & c) == 0xC0) {
+ w = c & 0x1F;
+ nb = 0;
+ } else if ((0xF0 & c) == 0xE0) {
+ w = c & 0x0F;
+ nb = 1;
+ } else if ((0xF8 & c) == 0xF0) {
+ w = c & 0x07;
+ nb = 2;
+ } else {
+ w = (w<<6) + (c&0x7F);
+ buf[i++] = w;
+ w = 0;
+ nb = 0;
+ }
+ p++;
+ }
+ buf[i] = L'\0';
+}
+
+
+class WString::Private : public QSharedData
+{
+public:
+ Private()
+ : data( 0 ),
+ wrap( false ) {
+ }
+
+ ~Private() {
+ if ( !wrap ) {
+ delete [] data;
+ }
+ }
+
+ wchar_t* data;
+ bool wrap;
+};
+
+
+WString::WString()
+ : d( new Private() )
+{
+}
+
+
+WString::WString( const WString& s )
+{
+ d = s.d;
+}
+
+
+WString::WString( const wchar_t* s, bool wrap )
+ : d( new Private() )
+{
+ d->wrap = wrap;
+ if ( wrap ) {
+ d->data = const_cast( s );
+ }
+ else {
+ d->data = new wchar_t[ wcslen(s) + 1];
+ wcscpy( d->data, s );
+ }
+}
+
+
+WString::WString( const QString& s )
+ : d( new Private() )
+{
+ d->data = new wchar_t[s.length()+1];
+
+ // looks as if QT has a bug in toWCharArray, so we use the method from strigi
+ QByteArray utf8 = s.toUtf8();
+ utf8toucs2( utf8.data(), utf8.data()+utf8.length(), d->data );
+// s.toWCharArray( d->data );
+}
+
+
+WString::~WString()
+{
+}
+
+
+WString& WString::operator=( const WString& s )
+{
+ d = s.d;
+ return *this;
+}
+
+
+WString& WString::operator=( const wchar_t* s )
+{
+ d->data = new wchar_t[ wcslen(s) + 1 ];
+ wcscpy( d->data, s );
+ return *this;
+}
+
+
+WString& WString::operator=( const QString& s )
+{
+ d->data = new wchar_t[s.length()+1];
+ s.toWCharArray( d->data );
+ return *this;
+}
+
+
+bool WString::isEmpty() const
+{
+ return d->data == 0;
+}
+
+
+int WString::length() const
+{
+ return wcslen( d->data );
+}
+
+
+const wchar_t* WString::data() const
+{
+ return d->data;
+}
+
+
+WString::operator QString() const
+{
+ return toQString();
+}
+
+
+QString WString::toQString() const
+{
+ return QString::fromWCharArray( d->data );
+}
+
+
+bool WString::operator==( const WString& other ) const
+{
+ return wcscmp( d->data, other.d->data ) == 0;
+}
+
+
+bool WString::operator==( const QString& other ) const
+{
+ return toQString() == other;
+}
+
+
+bool WString::operator!=( const WString& other ) const
+{
+ return !operator==( other );
+}
+
+
+bool WString::operator!=( const QString& other ) const
+{
+ return toQString() != other;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/index/wstring.h new/soprano-2.6.0/index/wstring.h
--- old/soprano-2.5.63/index/wstring.h 1970-01-01 01:00:00.000000000 +0100
+++ new/soprano-2.6.0/index/wstring.h 2011-02-01 15:51:41.000000000 +0100
@@ -0,0 +1,92 @@
+/*
+ * This file is part of Soprano Project.
+ *
+ * Copyright (C) 2007 Sebastian Trueg
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef _W_STRING_H_
+#define _W_STRING_H_
+
+#include
+#include
+
+
+/**
+ * WString is a simple string class which works on wchar_t
+ * data. Its main purpose it to provide conversion from and to
+ * QString.
+ */
+class WString
+{
+public:
+ /**
+ * Create an empty WString
+ */
+ WString();
+
+ /**
+ * Create a copy of another WString
+ */
+ WString( const WString& );
+
+ /**
+ * Create a new WString instance.
+ * \param data The string data to be used.
+ * \param wrap If false the data will be copied for the new
+ * string instance. If true the new WString will act as a wrapper
+ * around data.
+ */
+ WString( const wchar_t* data, bool wrap = false );
+
+ /**
+ * Create a new WString instance as a copy of a QString
+ */
+ WString( const QString& );
+
+ ~WString();
+
+ WString& operator=( const WString& );
+ WString& operator=( const wchar_t* );
+ WString& operator=( const QString& );
+
+ bool isEmpty() const;
+ int length() const;
+
+ bool operator==( const WString& ) const;
+ bool operator==( const QString& ) const;
+ bool operator!=( const WString& ) const;
+ bool operator!=( const QString& ) const;
+
+ /**
+ * The raw string data. It remains valid until the
+ * string is modified or deleted.
+ *
+ * \return the raw string data or 0 if the string is empty.
+ */
+ const wchar_t* data() const;
+
+ operator QString() const;
+
+ QString toQString() const;
+
+private:
+ class Private;
+ QSharedDataPointer<Private> d;
+};
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/server/dbus/dbusserveradaptor.cpp new/soprano-2.6.0/server/dbus/dbusserveradaptor.cpp
--- old/soprano-2.5.63/server/dbus/dbusserveradaptor.cpp 2010-04-12 14:14:57.000000000 +0200
+++ new/soprano-2.6.0/server/dbus/dbusserveradaptor.cpp 2011-02-01 15:51:41.000000000 +0100
@@ -93,7 +93,7 @@
// which is issued while an iterator is open. By using the AsyncModel in SingleThreadMode
// we make sure that the DBus adaptor never deadlocks.
Util::AsyncModel* asyncModel = new Util::AsyncModel( model );
- asyncModel->setParent( model ); // memory management
+ connect(model, SIGNAL(destroyed()), asyncModel, SLOT(deleteLater()) ); // memory management even across thread boundaries
model = asyncModel;
QString objectPath = d->dbusObjectPath + "/models/" + normalizeModelName( name );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/soprano/literalvalue.cpp new/soprano-2.6.0/soprano/literalvalue.cpp
--- old/soprano-2.5.63/soprano/literalvalue.cpp 2009-05-06 13:15:56.000000000 +0200
+++ new/soprano-2.6.0/soprano/literalvalue.cpp 2011-02-01 15:51:41.000000000 +0100
@@ -1,7 +1,7 @@
/*
* This file is part of Soprano Project.
*
- * Copyright (C) 2007-2009 Sebastian Trueg
+ * Copyright (C) 2007-2010 Sebastian Trueg
* Copyright (C) 2009 Greg Beauchesne
*
* This library is free software; you can redistribute it and/or
@@ -31,6 +31,85 @@
#include
#include
#include
+#include
+#include
+
+
+namespace {
+/**
+ * Helper class for thread-safe conversion between QUrl and QVariant::Type.
+ */
+class XsdTypePool
+{
+public:
+ XsdTypePool();
+
+ QVariant::Type typeFromDataTypeUri( const QUrl& dataTypeUri ) const;
+ QUrl dataTypeUriFromType( QVariant::Type type ) const;
+
+private:
+ mutable QMutex m_xsdMutex;
+ mutable QMutex m_variantMutex;
+ QHash m_xsdHash;
+ QHash m_variantHash;
+};
+
+XsdTypePool::XsdTypePool()
+{
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::xsdInt(), QVariant::Int );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::integer(), QVariant::Int );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::negativeInteger(), QVariant::Int );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::nonNegativeInteger(), QVariant::UInt );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::decimal(), QVariant::Int );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::xsdShort(), QVariant::Int );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::xsdLong(), QVariant::LongLong );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::unsignedInt(), QVariant::UInt );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::unsignedShort(), QVariant::UInt );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::unsignedLong(), QVariant::ULongLong );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::boolean(), QVariant::Bool );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::xsdDouble(), QVariant::Double );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::xsdFloat(), QVariant::Double );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::string(), QVariant::String );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::date(), QVariant::Date );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::time(), QVariant::Time );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::dateTime(), QVariant::DateTime );
+ m_xsdHash.insert( Soprano::Vocabulary::XMLSchema::base64Binary(), QVariant::ByteArray );
+ m_xsdHash.insert( Soprano::Vocabulary::RDF::XMLLiteral(), QVariant::String );
+
+ m_variantHash.insert( QVariant::Int, Soprano::Vocabulary::XMLSchema::xsdInt() );
+ m_variantHash.insert( QVariant::LongLong, Soprano::Vocabulary::XMLSchema::xsdLong() );
+ m_variantHash.insert( QVariant::UInt, Soprano::Vocabulary::XMLSchema::unsignedInt() );
+ m_variantHash.insert( QVariant::ULongLong, Soprano::Vocabulary::XMLSchema::unsignedLong() );
+ m_variantHash.insert( QVariant::Bool, Soprano::Vocabulary::XMLSchema::boolean() );
+ m_variantHash.insert( QVariant::Double, Soprano::Vocabulary::XMLSchema::xsdDouble() );
+ m_variantHash.insert( QVariant::String, Soprano::Vocabulary::XMLSchema::string() );
+ m_variantHash.insert( QVariant::Date, Soprano::Vocabulary::XMLSchema::date() );
+ m_variantHash.insert( QVariant::Time, Soprano::Vocabulary::XMLSchema::time() );
+ m_variantHash.insert( QVariant::DateTime, Soprano::Vocabulary::XMLSchema::dateTime() );
+ m_variantHash.insert( QVariant::ByteArray, Soprano::Vocabulary::XMLSchema::base64Binary() );
+}
+
+QVariant::Type XsdTypePool::typeFromDataTypeUri( const QUrl& dataTypeUri ) const
+{
+ QMutexLocker lock( &m_xsdMutex );
+ QHash::const_iterator it = m_xsdHash.constFind( dataTypeUri );
+ if ( it != m_xsdHash.constEnd() ) {
+ return it.value();
+ }
+ else {
+// qDebug() << "(Soprano::LiteralValue) unknown literal type uri:" << dataTypeUri;
+ return QVariant::Invalid;
+ }
+}
+
+QUrl XsdTypePool::dataTypeUriFromType( QVariant::Type type ) const
+{
+ QMutexLocker lock( &m_variantMutex );
+ return m_variantHash[type];
+}
+
+Q_GLOBAL_STATIC( XsdTypePool, s_xsdTypePool )
+}
class Soprano::LiteralValue::LiteralValueData : public QSharedData
@@ -610,58 +689,13 @@
QVariant::Type Soprano::LiteralValue::typeFromDataTypeUri( const QUrl& dataTypeUri )
{
- static QHash s_xsdTypes;
- if( s_xsdTypes.isEmpty() ) {
- s_xsdTypes.insert( Vocabulary::XMLSchema::xsdInt(), QVariant::Int );
- s_xsdTypes.insert( Vocabulary::XMLSchema::integer(), QVariant::Int );
- s_xsdTypes.insert( Vocabulary::XMLSchema::negativeInteger(), QVariant::Int );
- s_xsdTypes.insert( Vocabulary::XMLSchema::nonNegativeInteger(), QVariant::UInt );
- s_xsdTypes.insert( Vocabulary::XMLSchema::decimal(), QVariant::Int );
- s_xsdTypes.insert( Vocabulary::XMLSchema::xsdShort(), QVariant::Int );
- s_xsdTypes.insert( Vocabulary::XMLSchema::xsdLong(), QVariant::LongLong );
- s_xsdTypes.insert( Vocabulary::XMLSchema::unsignedInt(), QVariant::UInt );
- s_xsdTypes.insert( Vocabulary::XMLSchema::unsignedShort(), QVariant::UInt );
- s_xsdTypes.insert( Vocabulary::XMLSchema::unsignedLong(), QVariant::ULongLong );
- s_xsdTypes.insert( Vocabulary::XMLSchema::boolean(), QVariant::Bool );
- s_xsdTypes.insert( Vocabulary::XMLSchema::xsdDouble(), QVariant::Double );
- s_xsdTypes.insert( Vocabulary::XMLSchema::xsdFloat(), QVariant::Double );
- s_xsdTypes.insert( Vocabulary::XMLSchema::string(), QVariant::String );
- s_xsdTypes.insert( Vocabulary::XMLSchema::date(), QVariant::Date );
- s_xsdTypes.insert( Vocabulary::XMLSchema::time(), QVariant::Time );
- s_xsdTypes.insert( Vocabulary::XMLSchema::dateTime(), QVariant::DateTime );
- s_xsdTypes.insert( Vocabulary::XMLSchema::base64Binary(), QVariant::ByteArray );
- s_xsdTypes.insert( Vocabulary::RDF::XMLLiteral(), QVariant::String );
- }
-
- QHash::const_iterator it = s_xsdTypes.constFind( dataTypeUri );
- if ( it != s_xsdTypes.constEnd() ) {
- return it.value();
- }
- else {
-// qDebug() << "(Soprano::LiteralValue) unknown literal type uri:" << dataTypeUri;
- return QVariant::Invalid;
- }
+ return s_xsdTypePool()->typeFromDataTypeUri(dataTypeUri);
}
QUrl Soprano::LiteralValue::dataTypeUriFromType( QVariant::Type type )
{
- static QHash s_variantSchemaTypeHash;
- if( s_variantSchemaTypeHash.isEmpty() ) {
- s_variantSchemaTypeHash.insert( QVariant::Int, Vocabulary::XMLSchema::xsdInt() );
- s_variantSchemaTypeHash.insert( QVariant::LongLong, Vocabulary::XMLSchema::xsdLong() );
- s_variantSchemaTypeHash.insert( QVariant::UInt, Vocabulary::XMLSchema::unsignedInt() );
- s_variantSchemaTypeHash.insert( QVariant::ULongLong, Vocabulary::XMLSchema::unsignedLong() );
- s_variantSchemaTypeHash.insert( QVariant::Bool, Vocabulary::XMLSchema::boolean() );
- s_variantSchemaTypeHash.insert( QVariant::Double, Vocabulary::XMLSchema::xsdDouble() );
- s_variantSchemaTypeHash.insert( QVariant::String, Vocabulary::XMLSchema::string() );
- s_variantSchemaTypeHash.insert( QVariant::Date, Vocabulary::XMLSchema::date() );
- s_variantSchemaTypeHash.insert( QVariant::Time, Vocabulary::XMLSchema::time() );
- s_variantSchemaTypeHash.insert( QVariant::DateTime, Vocabulary::XMLSchema::dateTime() );
- s_variantSchemaTypeHash.insert( QVariant::ByteArray, Vocabulary::XMLSchema::base64Binary() );
- }
-
- return s_variantSchemaTypeHash[type];
+ return s_xsdTypePool()->dataTypeUriFromType(type);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/soprano/queryresultiterator.h new/soprano-2.6.0/soprano/queryresultiterator.h
--- old/soprano-2.5.63/soprano/queryresultiterator.h 2009-01-06 14:47:23.000000000 +0100
+++ new/soprano-2.6.0/soprano/queryresultiterator.h 2011-02-01 15:51:41.000000000 +0100
@@ -249,8 +249,7 @@
/**
* Check if this is a boolean result.
*
- * There is no need to call next() for boolean results. However, for internal reasons
- * backends need to always return \p true for boolean queries.
+ * There is no need to call next() for boolean results.
*
* \return \p true if this result refers to a boolean query (SPARQL ASK), i.e.
* boolValue() returns a valid value.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/soprano/queryresultiteratorbackend.h new/soprano-2.6.0/soprano/queryresultiteratorbackend.h
--- old/soprano-2.5.63/soprano/queryresultiteratorbackend.h 2008-10-27 14:45:52.000000000 +0100
+++ new/soprano-2.6.0/soprano/queryresultiteratorbackend.h 2011-02-01 15:51:41.000000000 +0100
@@ -2,7 +2,7 @@
* This file is part of Soprano Project.
*
* Copyright (C) 2006 Daniele Galdi
- * Copyright (C) 2007-2008 Sebastian Trueg
+ * Copyright (C) 2007-2010 Sebastian Trueg
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -49,8 +49,8 @@
virtual ~QueryResultIteratorBackend();
/**
- * For internal reasons each backend implementation needs to always
- * return \p true for boolean results.
+ * For boolean results implementations needs to always return \p false to avoid
+ * endless loops in client applications that omit to check the result type.
*
* \sa QueryResultIterator::next
*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/soprano/soprano.h new/soprano-2.6.0/soprano/soprano.h
--- old/soprano-2.5.63/soprano/soprano.h 2009-04-29 11:33:51.000000000 +0200
+++ new/soprano-2.6.0/soprano/soprano.h 2011-02-01 15:51:41.000000000 +0100
@@ -2,7 +2,7 @@
* This file is part of Soprano Project
*
* Copyright (C) 2006 Daniele Galdi
- * Copyright (C) 2007 Sebastian Trueg
+ * Copyright (C) 2007-2011 Sebastian Trueg
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -46,3 +46,4 @@
#include "dummymodel.h"
#include "mutexmodel.h"
#include "asyncmodel.h"
+#include "graph.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soprano-2.5.63/test/SopranoModelTest.cpp new/soprano-2.6.0/test/SopranoModelTest.cpp
--- old/soprano-2.5.63/test/SopranoModelTest.cpp 2010-04-15 17:39:21.000000000 +0200
+++ new/soprano-2.6.0/test/SopranoModelTest.cpp 2011-02-01 15:51:41.000000000 +0100
@@ -546,8 +546,7 @@
QString query( "ASK where {?a ?b ?c}" );
QueryResultIterator res = m_model->executeQuery( query, Query::QueryLanguageSparql );
- QVERIFY( res.next() );
- QVERIFY( res.next() );
+ QVERIFY( !res.next() );
QVERIFY( !res.isGraph() );
QVERIFY( !res.isBinding() );
@@ -555,8 +554,6 @@
QVERIFY( res.boolValue() );
- QVERIFY( res.next() );
-
res.close();
QVERIFY( !res.next() );
++++++ soprano-backend-sesame.spec.in ++++++
--- /var/tmp/diff_new_pack.ur2Zmp/_old 2011-05-19 11:51:56.000000000 +0200
+++ /var/tmp/diff_new_pack.ur2Zmp/_new 2011-05-19 11:51:56.000000000 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package soprano-backend-sesame (Version 2.4.2)
+# spec file for package soprano-backend-sesame
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,20 +19,21 @@
Name: soprano-backend-sesame
Url: http://soprano.sourceforge.net/
-BuildRequires: java-devel fdupes libsoprano-devel
-License: GPLv2+ ; LGPLv2.1+
-Group: Development/Libraries/C and C++
-Summary: C++/Qt based interface library for RDF - Sesame backend
+License: LGPLv2+
+Group: System/Libraries
+Summary: Sesame backend for Soprano
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Requires: java-devel
# COMMON1-BEGIN
# COMMON1-END
+BuildRequires: java-devel
+BuildRequires: libsoprano-devel
+Requires: libsoprano4 = %{version}
+Requires: java-devel
Provides: soprano_backend = %{version}
Provides: backend-sesame2 = %{version}
-Requires: libsoprano4 = %{version}
%description
-This package provides a Sesame based backend for Soprano.
+This package provides a Sesame based backend for Soprano.
%prep
# COMMON2-BEGIN
@@ -40,23 +41,26 @@
%build
export JAVA_HOME=%{_jvmdir}/java
- %cmake_kde4 -d build -- -DCMAKE_SKIP_RPATH=OFF -DBUILD_SESAME_BACKEND=ON
- %make_jobs
+%cmake_kde4 -d build -- -DCMAKE_SKIP_RPATH=OFF -DBUILD_SESAME_BACKEND=ON
+%make_jobs
%install
- cd build
- # this uses the cmake (mis)feature of 'make' building also the dependencies outside
- # the directory and its subdirectories, 'make install' not installing them
- cd backends/sesame2
- %makeinstall
-%if %suse_version > 1020
- %fdupes -s %{buildroot}%{_includedir}
+cd build
+# this uses the cmake (mis)feature of 'make' building also the dependencies outside
+# the directory and its subdirectories, 'make install' not installing them
+cd backends/sesame2
+%make_install
+cd ..
+
+%if 0%{?suse_version}
+%suse_update_desktop_file %{buildroot}%{_datadir}/soprano/plugins/sesame2backend.desktop
%endif
- cd ..
+%clean
+rm -rf %{buildroot}
%files
-%defattr(-,root,root)
+%defattr(-,root,root,-)
%{_datadir}/soprano/sesame2
%{_libdir}/soprano/libsoprano_sesame2backend.so
%{_datadir}/soprano/plugins/sesame2backend.desktop
++++++ soprano-backend-virtuoso.spec.in ++++++
--- /var/tmp/diff_new_pack.ur2Zmp/_old 2011-05-19 11:51:56.000000000 +0200
+++ /var/tmp/diff_new_pack.ur2Zmp/_new 2011-05-19 11:51:56.000000000 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package soprano-backend-virtuoso (Version 2.4.2)
+# spec file for package soprano-backend-virtuoso
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,44 +19,47 @@
Name: soprano-backend-virtuoso
Url: http://soprano.sourceforge.net/
-BuildRequires: fdupes libsoprano-devel
-License: GPLv2+ ; LGPLv2.1+
-Group: Development/Libraries/C and C++
-Summary: C++/Qt based interface library for RDF
+License: LGPLv2+
+Group: System/Libraries
+Summary: Virtuoso backend for Soprano
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: libiodbc-devel
# COMMON1-BEGIN
# COMMON1-END
-Provides: soprano_backend = %{version}
-Provides: backend-virtuso = %{version}
+BuildRequires: libiodbc-devel
+BuildRequires: libsoprano-devel
Requires: libsoprano4 = %{version}
Requires: virtuoso-server
+Provides: soprano_backend = %{version}
+Provides: backend-virtuso = %{version}
%description
-Soprano Backend for the RDF QT/C++ interface library using Virtuoso for storage.
+This package provides a Virtuoso based backend for Soprano.
%prep
# COMMON2-BEGIN
# COMMON2-END
%build
- %cmake_kde4 -d build -- -DCMAKE_SKIP_RPATH=OFF -DBUILD_VIRTUOSO_BACKEND=ON
- %make_jobs
+%cmake_kde4 -d build -- -DCMAKE_SKIP_RPATH=OFF -DBUILD_VIRTUOSO_BACKEND=ON
+%make_jobs
%install
- cd build
- # this uses the cmake (mis)feature of 'make' building also the dependencies outside
- # the directory and its subdirectories, 'make install' not installing them
- cd backends/virtuoso
- %makeinstall
-%if %suse_version > 1020
- %fdupes -s %{buildroot}%{_includedir}
+cd build
+# this uses the cmake (mis)feature of 'make' building also the dependencies outside
+# the directory and its subdirectories, 'make install' not installing them
+cd backends/virtuoso
+%make_install
+cd ..
+
+%if 0%{?suse_version}
+%suse_update_desktop_file %{buildroot}%{_datadir}/soprano/plugins/virtuosobackend.desktop
%endif
- cd ..
+%clean
+rm -rf %{buildroot}
%files
-%defattr(-,root,root)
+%defattr(-,root,root,-)
%{_libdir}/soprano/libsoprano_virtuosobackend.so
%{_datadir}/soprano/plugins/virtuosobackend.desktop
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org