Author: arekm Date: Tue Jul 26 19:08:40 2011 GMT Module: packages Tag: HEAD ---- Log message: - up to 2.6.51; libraptor2 detection from git
---- Files affected: packages/soprano: soprano.spec (1.62 -> 1.63) , soprano-git.patch (NONE -> 1.1) (NEW) ---- Diffs: ================================================================ Index: packages/soprano/soprano.spec diff -u packages/soprano/soprano.spec:1.62 packages/soprano/soprano.spec:1.63 --- packages/soprano/soprano.spec:1.62 Thu Feb 3 20:57:26 2011 +++ packages/soprano/soprano.spec Tue Jul 26 21:08:34 2011 @@ -9,19 +9,20 @@ %bcond_without sesame2 # with sesame2backend %bcond_without virtuoso # with virtuosobackend -%define qtbrver 4.7.1 +%define qtbrver 4.7.3 %define snap svn1042011 Summary: Soprano - Qt wrapper API to librdf Summary(pl.UTF-8): Soprano - wrapper Qt do librdf Name: soprano -Version: 2.6.0 +Version: 2.6.51 Release: 1 License: GPL v2 Group: X11/Applications Source0: http://downloads.sourceforge.net/soprano/%{name}-%{version}.tar.bz2 -# Source0-md5: 03ae49e87c6ec99e57d0433c2650846f +# Source0-md5: 574e006a15e61bc2d4d07d2b4a36e2b6 #Source0: %{name}-%{version}-%{snap}.tar.gz +Patch0: %{name}-git.patch URL: http://sourceforge.net/projects/soprano BuildRequires: QtCore-devel >= %{qtbrver} BuildRequires: QtDBus-devel >= %{qtbrver} @@ -35,7 +36,7 @@ BuildRequires: qt4-build >= %{qtbrver} BuildRequires: qt4-qmake >= %{qtbrver} BuildRequires: rasqal-devel -BuildRequires: redland-devel >= 1.0.6 +BuildRequires: redland-devel >= 1.0.14 BuildRequires: rpmbuild(macros) >= 1.600 BuildRequires: xorg-lib-libX11-devel BuildRequires: xorg-lib-libXext-devel @@ -71,6 +72,7 @@ %prep %setup -q +%patch0 -p1 # Sesame2 backend doesn't really use the new JNI-1.6 feature -> GetObjectRefType. #sed -i 's:JNI_VERSION_1_6:JNI_VERSION_1_4:g' CMakeLists.txt # cleanup. @@ -87,7 +89,7 @@ %if "%{pld_release}" == "ti" -DJAVA_JVM_LIBRARY=%{_libdir}/gcj-%{cc_version}-11/libjvm.so \ %else - -DJAVA_JVM_LIBRARY=%{_libdir}/gcj-%{cc_version}-11/libjvm.so \ + -DJAVA_JVM_LIBRARY=$(ls -1 %{_libdir}/gcj-%{cc_version}-*/libjvm.so | head -n 1) \ %endif ../ @@ -153,6 +155,9 @@ All persons listed below can be reached at <cvs_login>@pld-linux.org $Log$ +Revision 1.63 2011/07/26 19:08:34 arekm +- up to 2.6.51; libraptor2 detection from git + Revision 1.62 2011/02/03 19:57:26 arekm - up to 2.6.0 ================================================================ Index: packages/soprano/soprano-git.patch diff -u /dev/null packages/soprano/soprano-git.patch:1.1 --- /dev/null Tue Jul 26 21:08:40 2011 +++ packages/soprano/soprano-git.patch Tue Jul 26 21:08:34 2011 @@ -0,0 +1,1254 @@ +From: Artem Serebriyskiy <[email protected]> +Date: Fri, 24 Jun 2011 12:46:03 +0000 +Subject: Porting serializer and parser to Raptor2 +X-Git-Url: http://quickgit.kde.org/?p=soprano.git&a=commitdiff&h=3a7a527fd07c0d58146eb9e6770ecbcfb6717bc6 +--- +Porting serializer and parser to Raptor2 + +1) Changes in FindRaptor.cmake - use pkg-config instead of removed +raptor-config +2) Changes in serializer - port to raptor2 +3) Changes in parser - port to raptor2, includes patches by Smit Shah. +Due to incorrect behaviour of raptor2 ( mess with qnames ) +onto2vocabulary not working +4) Write a test for serializers +--- + + +--- a/cmake/modules/FindRaptor.cmake ++++ b/cmake/modules/FindRaptor.cmake +@@ -5,99 +5,62 @@ + # RAPTOR_LIBRARIES - Link these to use Raptor + # RAPTOR_INCLUDE_DIR - Include directory for using Raptor + # RAPTOR_DEFINITIONS - Compiler switches required for using Raptor +-# RAPTOR_VERSION - The Raptor version string + +-# (c) 2007-2009 Sebastian Trueg <[email protected]> ++# (c) 2007-2011 Sebastian Trueg <[email protected]> ++# (c) 2011 Artem Serebriyskiy <[email protected]> + # + # Based on FindFontconfig Copyright (c) 2006,2007 Laurent Montel, <[email protected]> + # + # Redistribution and use is allowed according to the terms of the BSD license. + # For details see the accompanying COPYING-CMAKE-SCRIPTS file. + ++include(FindLibraryWithDebug) ++include(MacroEnsureVersion) + +-INCLUDE(MacroEnsureVersion) ++if (RAPTOR_INCLUDE_DIR AND RAPTOR_LIBRARIES) ++ ++ # in cache already ++ set(RAPTOR_FOUND TRUE) + ++else (RAPTOR_INCLUDE_DIR AND RAPTOR_LIBRARIES) + +-if(WINCE) +-FIND_PROGRAM( +- RAPTOR_CONFIG +- NAMES raptor-config +- PATHS ${HOST_BINDIR} NO_DEFAULT_PATH +- ) +-else(WINCE) +-FIND_PROGRAM( +- RAPTOR_CONFIG +- NAMES raptor-config +- ) +-endif(WINCE) +- +-if(RAPTOR_CONFIG) +- EXECUTE_PROCESS( +- COMMAND ${RAPTOR_CONFIG} --version +- OUTPUT_VARIABLE RAPTOR_VERSION +- ) +- if(RAPTOR_VERSION) +- STRING(REPLACE "\n" "" RAPTOR_VERSION ${RAPTOR_VERSION}) +- ++ ++ if (NOT WIN32) ++ find_package(PkgConfig) ++ pkg_check_modules(PC_RAPTOR QUIET raptor2) ++ set(RAPTOR_DEFINITIONS ${PC_RAPTOR_CFLAGS_OTHER}) ++ set(RAPTOR_VERSION ${PC_RAPTOR_VERSION}) ++ endif (NOT WIN32) ++ ++ ++ find_library_with_debug(RAPTOR_LIBRARIES ++ WIN32_DEBUG_POSTFIX d ++ NAMES raptor2 ++ HINTS ${PC_RAPTOR_LIBDIR} ${PC_RAPTOR_LIBRARY_DIRS} ++ ) ++ ++ find_path(RAPTOR_INCLUDE_DIR raptor.h ++ HINTS ${PC_RAPTOR_INCLUDEDIR} ${PC_RAPTOR_INCLUDE_DIRS} ++ PATH_SUFFIXES raptor2 ) ++ ++ if (RAPTOR_VERSION) + MACRO_ENSURE_VERSION("1.4.16" ${RAPTOR_VERSION} RAPTOR_HAVE_TRIG) +- +- # extract include paths from raptor-config +- EXECUTE_PROCESS( +- COMMAND ${RAPTOR_CONFIG} --cflags +- OUTPUT_VARIABLE raptor_CFLAGS_ARGS) +- STRING( REPLACE " " ";" raptor_CFLAGS_ARGS ${raptor_CFLAGS_ARGS} ) +- FOREACH( _ARG ${raptor_CFLAGS_ARGS} ) +- IF(${_ARG} MATCHES "^-I") +- STRING(REGEX REPLACE "^-I" "" _ARG ${_ARG}) +- STRING( REPLACE "\n" "" _ARG ${_ARG} ) +- LIST(APPEND raptor_INCLUDE_DIRS ${_ARG}) +- ENDIF(${_ARG} MATCHES "^-I") +- ENDFOREACH(_ARG) +- +- # extract lib paths from raptor-config +- EXECUTE_PROCESS( +- COMMAND ${RAPTOR_CONFIG} --libs +- OUTPUT_VARIABLE raptor_CFLAGS_ARGS) +- STRING( REPLACE " " ";" raptor_CFLAGS_ARGS ${raptor_CFLAGS_ARGS} ) +- FOREACH( _ARG ${raptor_CFLAGS_ARGS} ) +- IF(${_ARG} MATCHES "^-L") +- STRING(REGEX REPLACE "^-L" "" _ARG ${_ARG}) +- LIST(APPEND raptor_LIBRARY_DIRS ${_ARG}) +- ENDIF(${_ARG} MATCHES "^-L") +- ENDFOREACH(_ARG) +- endif(RAPTOR_VERSION) +-else(RAPTOR_CONFIG) +- SET(RAPTOR_VERSION "1.0.0") +-endif(RAPTOR_CONFIG) +- +-find_path(RAPTOR_INCLUDE_DIR raptor.h +- PATHS +- ${redland_INCLUDE_DIRS} +- ${raptor_INCLUDE_DIRS} +- /usr/X11/include +- PATH_SUFFIXES redland +- ) +- +-find_library(RAPTOR_LIBRARIES NAMES raptor libraptor +- PATHS +- ${raptor_LIBRARY_DIRS} +- ) ++ endif (RAPTOR_VERSION) ++ ++ if (RAPTOR_FOUND) ++ if (NOT Raptor_FIND_QUIETLY) ++ message(STATUS "Found Raptor ${RAPTOR_VERSION}: libs - ${RAPTOR_LIBRARIES}; includes - ${RAPTOR_INCLUDE_DIR}") ++ endif (NOT Raptor_FIND_QUIETLY) ++ else (RAPTOR_FOUND) ++ if (Raptor_FIND_REQUIRED) ++ message(FATAL_ERROR "Could NOT find Raptor") ++ endif (Raptor_FIND_REQUIRED) ++ endif (RAPTOR_FOUND) ++ ++ include(FindPackageHandleStandardArgs) ++ find_package_handle_standard_args(RAPTOR DEFAULT_MSG RAPTOR_LIBRARIES RAPTOR_INCLUDE_DIR) ++ ++ mark_as_advanced(RAPTOR_INCLUDE_DIR RAPTOR_LIBRARIES) + +-if (RAPTOR_INCLUDE_DIR AND RAPTOR_LIBRARIES) +- set(RAPTOR_FOUND TRUE) + endif (RAPTOR_INCLUDE_DIR AND RAPTOR_LIBRARIES) + +-if (RAPTOR_FOUND) +- set(RAPTOR_DEFINITIONS ${raptor_CFLAGS}) +- if (NOT Raptor_FIND_QUIETLY) +- message(STATUS "Found Raptor ${RAPTOR_VERSION}: libs - ${RAPTOR_LIBRARIES}; includes - ${RAPTOR_INCLUDE_DIR}") +- endif (NOT Raptor_FIND_QUIETLY) +-else (RAPTOR_FOUND) +- if (Raptor_FIND_REQUIRED) +- message(FATAL_ERROR "Could NOT find Raptor") +- endif (Raptor_FIND_REQUIRED) +-endif (RAPTOR_FOUND) +- +-mark_as_advanced(RAPTOR_INCLUDE_DIR_TMP +- RAPTOR_INCLUDE_DIR +- RAPTOR_LIBRARIES) + +--- a/parsers/raptor/CMakeLists.txt ++++ b/parsers/raptor/CMakeLists.txt +@@ -13,13 +13,11 @@ set(raptor_parser_SRC + raptorparser.cpp + ) + +-configure_file(raptor-config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/raptor-config.h) +- + qt4_automoc(${raptor_parser_SRC}) + +-add_library(soprano_raptorparser MODULE ${raptor_parser_SRC}) ++add_library(soprano_raptorparser MODULE ${raptor_parser_SRC}) + +-TARGET_LINK_LIBRARIES(soprano_raptorparser soprano ${RAPTOR_LIBRARIES}) ++TARGET_LINK_LIBRARIES(soprano_raptorparser soprano raptor2 ${RAPTOR_LIBRARIES}) + + set_target_properties(soprano_raptorparser PROPERTIES + DEFINE_SYMBOL MAKE_RAPTORPARSER_LIB + +--- a/parsers/raptor/raptor-config.h.cmake ++++ /dev/null +@@ -1 +0,0 @@ +-#cmakedefine RAPTOR_HAVE_TRIG + +--- a/parsers/raptor/raptorparser.cpp ++++ b/parsers/raptor/raptorparser.cpp +@@ -22,14 +22,13 @@ + */ + + #include "raptorparser.h" +-#include "raptor-config.h" + + #include "util/simplestatementiterator.h" + #include "statement.h" + #include "locator.h" + #include "error.h" + +-#include <raptor.h> ++#include <raptor2/raptor.h> + + #include <QtCore/QUrl> + #include <QtCore/QFile> +@@ -41,18 +40,24 @@ + + + namespace { ++ /* + class RaptorInitHelper + { + public: ++ raptor_world* world; ++ + RaptorInitHelper() { +- raptor_init(); ++ world = raptor_new_world(); ++ raptor_world_open(world); + } + ~RaptorInitHelper() { +- raptor_finish(); ++ raptor_free_world(world); + } + }; ++ */ + } + ++ + Q_EXPORT_PLUGIN2(soprano_raptorparser, Soprano::Raptor::Parser) + + namespace { +@@ -60,68 +65,111 @@ namespace { + // and application/x-turtle when serializing, but not the other way around + QString mimeTypeString( Soprano::RdfSerialization s, const QString& userSerialization ) + { +-#ifndef RAPTOR_HAVE_TRIG + if ( s == Soprano::SerializationTurtle ) { + return "application/turtle"; // x-turtle does not work.... + } +- else +-#endif +- { ++ else { + return serializationMimeType( s, userSerialization ); + } + } + + +- void raptorMessageHandler( void* userData, raptor_locator* locator, const char* message ) ++ void raptorLogHandler(void *userData,raptor_log_message *message) + { + Soprano::Raptor::Parser* p = static_cast<Soprano::Raptor::Parser*>( userData ); +- if ( locator ) { +- p->setError( Soprano::Error::ParserError( Soprano::Error::Locator( locator->line, locator->column, locator->byte ), +- QString::fromUtf8( message ), ++ if ( message->locator ) { ++ p->setError( Soprano::Error::ParserError( Soprano::Error::Locator( message->locator->line, message->locator->column, message->locator->byte ), ++ QString::fromUtf8( message->text ), + Soprano::Error::ErrorParsingFailed ) ); + } + else { +- p->setError( Soprano::Error::Error( QString::fromUtf8( message ), Soprano::Error::ErrorUnknown ) ); ++ p->setError( Soprano::Error::Error( QString::fromUtf8( message->text ), Soprano::Error::ErrorUnknown ) ); + } ++ qDebug() << "Error: " << message->text; ++ } ++ ++ void raptorLogNamespaceHandler(void * userData, raptor_namespace *nspace) ++ { ++ if ( nspace ) ++ qDebug() << "Discover namespace: " << (const char*)raptor_namespace_get_prefix(nspace); + } + ++ void raptorLogGraphHandler( void * userData, raptor_uri* graph,int flags ) ++ { ++ if ( graph ) { ++ const char * str = (const char*)raptor_uri_as_string(graph); ++ if ( str ) ++ if ( flags & RAPTOR_GRAPH_MARK_START ) ++ qDebug() << "Start graph: " << str; ++ else ++ qDebug() << "End graph: " << str ; ++ } ++ } + +- Soprano::Node convertNode( const void* data, raptor_identifier_type type, +- raptor_uri* objectLiteralDatatype = 0, const unsigned char* objectLiteralLanguage = 0 ) ++ Soprano::Node convertNode( raptor_term * term) + { ++ //qDebug() << "Convert node"; ++ Q_ASSERT(term); ++ raptor_term_type type = term->type; ++ raptor_term_value data = term->value; ++ ++ Soprano::Node answer; ++ + switch( type ) { +- case RAPTOR_IDENTIFIER_TYPE_RESOURCE: +- case RAPTOR_IDENTIFIER_TYPE_PREDICATE: +- case RAPTOR_IDENTIFIER_TYPE_ORDINAL: +- return Soprano::Node::createResourceNode( QString::fromUtf8( ( char* )raptor_uri_as_string( ( raptor_uri* )data ) ) ); +- +- case RAPTOR_IDENTIFIER_TYPE_ANONYMOUS: +- return Soprano::Node::createBlankNode( QString::fromUtf8( ( const char* )data ) ); +- +- case RAPTOR_IDENTIFIER_TYPE_LITERAL: +- case RAPTOR_IDENTIFIER_TYPE_XML_LITERAL: +- if ( objectLiteralDatatype ) { +- return Soprano::Node::createLiteralNode( Soprano::LiteralValue::fromString( QString::fromUtf8( ( const char* )data ), +- QString::fromUtf8( ( char* )raptor_uri_as_string( objectLiteralDatatype ) ) ) ); ++ ++ case RAPTOR_TERM_TYPE_URI: { ++ answer = Soprano::Node::createResourceNode( ++ QString::fromUtf8( ( char* )raptor_uri_as_string( data.uri ) ) ); ++ break; ++ } ++ ++ case RAPTOR_TERM_TYPE_BLANK: { ++ raptor_term_blank_value bv = data.blank; ++ answer = Soprano::Node::createBlankNode( ++ QString::fromUtf8( ( const char* )(bv.string) ) ); ++ break; ++ } ++ ++ case RAPTOR_TERM_TYPE_LITERAL: { ++ raptor_term_literal_value lv = data.literal; ++ ++ if ( lv.datatype ) { ++ answer = Soprano::Node::createLiteralNode( ++ Soprano::LiteralValue::fromString( ++ QString::fromUtf8( ( const char* )lv.string ), ++ QString::fromUtf8( ++ ( char* )raptor_uri_as_string(lv.datatype ) ++ ) ++ ) ++ ); + } + else { +- return Soprano::Node::createLiteralNode( Soprano::LiteralValue::createPlainLiteral( QString::fromUtf8( ( const char* )data ), +- QString::fromUtf8( ( const char* )objectLiteralLanguage ) ) ); ++ answer = Soprano::Node::createLiteralNode( ++ Soprano::LiteralValue::createPlainLiteral( ++ QString::fromUtf8( ( const char* )lv.string ), ++ QString::fromUtf8( ( const char* )lv.language ) ) ); + } ++ break; ++ } + + default: +- return Soprano::Node(); ++ answer = Soprano::Node(); ++ break; + } +- } + ++ //qDebug() << "Node: " << answer; ++ return answer; ++ } + + Soprano::Statement convertTriple( const raptor_statement* triple ) + { +- return Soprano::Statement( convertNode( triple->subject, triple->subject_type ), +- convertNode( triple->predicate, triple->predicate_type ), +- convertNode( triple->object, triple->object_type, +- triple->object_literal_datatype, +- triple->object_literal_language ) ); ++ Soprano::Statement answer = Soprano::Statement( convertNode( triple->subject), ++ convertNode( triple->predicate), ++ convertNode( triple->object), ++ (triple->graph)?convertNode(triple->graph):(Soprano::Node()) ++ ); ++ //qDebug() << "Statement: " << answer; ++ return answer; + } + + +@@ -132,35 +180,49 @@ namespace { + }; + + +- void raptorTriplesHandler( void* userData, const raptor_statement* triple ) ++ void raptorTriplesHandler( void* userData, raptor_statement* triple ) + { ++ Q_ASSERT(userData); + ParserData* pd = static_cast<ParserData*>( userData ); + Soprano::Statement s = convertTriple( triple ); +-// qDebug() << "got triple: " << s; +- s.setContext( pd->currentContext ); ++ ++ //s.setContext( pd->currentContext ); + pd->statements.append( s ); + } + + +- void raptorGraphHandler( void* userData, raptor_uri* graph ) +- { ++ void raptorGraphMarkHandler( void* userData, raptor_uri* graph,int flags ) ++ { flags=1; + Soprano::Node context = Soprano::Node::createResourceNode( QString::fromUtf8( ( char* )raptor_uri_as_string( graph ) ) ); + ParserData* pd = static_cast<ParserData*>( userData ); + pd->currentContext = context; +-// qDebug() << "got graph: " << context; + } + } + + ++class Soprano::Raptor::Parser::Private ++{ ++ public: ++ raptor_world * world; ++ mutable QMutex mutex; ++}; ++ ++ + Soprano::Raptor::Parser::Parser() + : QObject(), +- Soprano::Parser( "raptor" ) ++ Soprano::Parser( "raptor" ) + { ++ this->d = new Private(); ++ this->d->world = raptor_new_world(); ++ raptor_world_open(d->world); ++ Q_ASSERT(d->world); + } + + + Soprano::Raptor::Parser::~Parser() + { ++ raptor_free_world(d->world); ++ delete this->d; + } + + +@@ -169,10 +231,8 @@ Soprano::RdfSerializations Soprano::Rapt + return( SerializationRdfXml + |SerializationNTriples + |SerializationTurtle +-#ifdef RAPTOR_HAVE_TRIG + |SerializationTrig +-#endif +- ); ++ ); + } + + +@@ -183,10 +243,11 @@ raptor_parser* Soprano::Raptor::Parser:: + QString mimeType = mimeTypeString( serialization, userSerialization ); + raptor_parser* parser = 0; + if ( serialization == Soprano::SerializationNTriples ) { +- parser = raptor_new_parser( "ntriples" ); // mimetype for ntriple is text/plain which is useless for the method below ++ parser = raptor_new_parser(d->world,"ntriples"); // mimetype for ntriple is text/plain which is useless for the method below + } + else { +- parser = raptor_new_parser_for_content( 0, ++ parser = raptor_new_parser_for_content( d->world, ++ 0, + mimeType.toLatin1().data(), + 0, + 0, +@@ -201,9 +262,7 @@ raptor_parser* Soprano::Raptor::Parser:: + + // set the erro handling method + Parser* that = const_cast<Parser*>( this ); +- raptor_set_fatal_error_handler( parser, that, raptorMessageHandler ); +- raptor_set_error_handler( parser, that, raptorMessageHandler ); +- raptor_set_warning_handler( parser, that, raptorMessageHandler ); ++ raptor_world_set_log_handler(d->world,that, raptorLogHandler); + + return parser; + } +@@ -223,48 +282,6 @@ Soprano::StatementIterator Soprano::Rapt + setError( QString( "Could not open file %1 for reading." ).arg( filename ) ); + return StatementIterator(); + } +- +-// clearError(); +- +-// raptor_parser* parser = createParser( serialization, userSerialization ); +-// if ( !parser ) { +-// return StatementIterator(); +-// } +- +-// // prepare the container for the parsed data +-// QList<Statement> statements; +-// raptor_set_statement_handler( parser, &statements, raptorTriplesHandler ); +- +-// // start the atual parsing +-// QUrl uri( QUrl::fromLocalFile( filename ) ); +-// if ( uri.scheme().isEmpty() ) { +-// // we need to help the stupid librdf file url handling +-// uri.setScheme("file"); +-// } +-// raptor_uri* raptorBaseUri = 0; +-// if ( !baseUri.toString().isEmpty() ) { +-// raptorBaseUri = raptor_new_uri( (unsigned char *) baseUri.toString().toUtf8().data() ); +-// } +-// raptor_uri* raptorUri = raptor_new_uri( (unsigned char *) uri.toString().toUtf8().data() ); +-// if ( !raptorUri ) { +-// setError( QLatin1String( "Internal: Failed to create raptor_uri instance for '%1'" ).arg( uri ) ); +-// return StatementIterator(); +-// } +- +-// int r = raptor_parse_uri( parser, raptorUri, raptorBaseUri ); +- +-// raptor_free_parser( parser ); +-// raptor_free_uri( raptorUri ); +-// if ( raptorBaseUri ) { +-// raptor_free_uri( raptorBaseUri ); +-// } +- +-// if ( r == 0 ) { +-// return SimpleStatementIterator( statements ); +-// } +-// else { +-// return StatementIterator(); +-// } + } + + +@@ -280,13 +297,13 @@ Soprano::StatementIterator Soprano::Rapt + + + Soprano::StatementIterator <<Diff was trimmed, longer than 597 lines>> ---- CVS-web: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/soprano/soprano.spec?r1=1.62&r2=1.63&f=u _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
