diff --git a/liblrdf.changes b/liblrdf.changes index 514964f..5c30472 100644 --- a/liblrdf.changes +++ b/liblrdf.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Sep 16 13:56:52 UTC 2011 - tittiatcoke@gmail.com + +- Added Raptor2 compatibility patch (upstream) + ------------------------------------------------------------------- Sun May 1 17:35:27 UTC 2011 - toddrme2178@gmail.com diff --git a/liblrdf.spec b/liblrdf.spec index d440eb0..a2d28eb 100644 --- a/liblrdf.spec +++ b/liblrdf.spec @@ -26,7 +26,8 @@ Release: 134 License: GPL v2 or later Group: System/Libraries Source: %{name}-%{version}.tar.bz2 -Patch: liblrdf-symbol-conflict.diff +Patch1: liblrdf-symbol-conflict.diff +Patch2: raptor2-compat.diff Url: http://liblrdf.sf.net BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -81,10 +82,13 @@ Authors: %prep %setup -q -%patch -p1 +%patch1 -p1 +%patch2 -p0 %build export CFLAGS="$RPM_OPT_FLAGS" +# Required because of patch2 that updates configure.ac +./autogen.sh %configure --disable-static --with-pic make diff --git a/raptor2-compat.diff b/raptor2-compat.diff new file mode 100644 index 0000000..2cb54f7 --- /dev/null +++ b/raptor2-compat.diff @@ -0,0 +1,203 @@ +--- src/Makefile.am ++++ src/Makefile.am +@@ -4,5 +4,5 @@ lib_LTLIBRARIES = liblrdf.la + noinst_HEADERS = lrdf_md5.h md5_loc.h ladspa.h + + liblrdf_la_SOURCES = lrdf.c lrdf_multi.c md5.c +-liblrdf_la_LIBADD = -lraptor ++liblrdf_la_LIBADD = -lraptor2 + liblrdf_la_LDFLAGS = -version-info @LRDF_LIBTOOL_VERSION@ +--- src/lrdf.c ++++ src/lrdf.c +@@ -18,6 +18,7 @@ + static unsigned int lrdf_uid = 0; /* A unique(ish) id to append to genid's to + * avoid clashses */ + ++static raptor_world *world = NULL; + static lrdf_statement *triples = NULL; + static lrdf_statement *free_triples; + static lrdf_string_hash *resources_hash[LRDF_HASH_SIZE]; +@@ -43,8 +44,7 @@ static void lrdf_remove_triple_hash(lrdf_triple_hash ** tbl, + lrdf_hash hash, lrdf_statement * s); + static void lrdf_add_closure_hash(lrdf_closure_hash ** tbl, + lrdf_hash subject, lrdf_hash object); +-static void lrdf_store(void *user_data, +- const raptor_statement * statement); ++static void lrdf_store(void *user_data, raptor_statement * statement); + void lrdf_free_statements(lrdf_statement * s); + void lrdf_copy_statement(lrdf_statement * from, lrdf_statement * to); + void lrdf_rebuild_taxonomic_closure(lrdf_closure_hash ** fwd_tbl, +@@ -71,7 +71,7 @@ void lrdf_init() + unsigned int i; + struct timeval tv; + +- raptor_init(); ++ world = raptor_new_world(); + lrdf_more_triples(256); + + /* A UID to add to genids to make them safer */ +@@ -112,7 +112,8 @@ void lrdf_more_triples(int count) + + void lrdf_cleanup() + { +- raptor_finish(); ++ raptor_free_world(world); ++ world = NULL; + + lrdf_free_string_hash(resources_hash); + lrdf_free_string_hash(literals_hash); +@@ -232,26 +233,29 @@ void lrdf_remove_matches(lrdf_statement *pattern) + } + } + +-static void lrdf_store(void *user_data, const raptor_statement * statement) ++static const char *lrdf_term_as_string(char *tmp, int tmp_len, ++ const raptor_term *term) ++{ ++ switch (term->type) { ++ case RAPTOR_TERM_TYPE_URI: ++ return (const char *) raptor_uri_as_string(term->value.uri); ++ case RAPTOR_TERM_TYPE_LITERAL: ++ return (const char *) term->value.literal.string; ++ case RAPTOR_TERM_TYPE_BLANK: ++ snprintf(tmp, tmp_len, "_:%s.%x", term->value.blank.string, lrdf_uid); ++ return tmp; ++ default: ++ return "(?)"; ++ } ++} ++ ++static void lrdf_store(void *user_data, raptor_statement * statement) + { + lrdf_statement *s = lrdf_alloc_statement(); + char tmps[128], tmpp[128], tmpo[128]; +- char *subj = (char *) statement->subject, +- *pred = (char *) statement->predicate, +- *obj = (char *) statement->object; +- +- if (statement->subject_type == RAPTOR_IDENTIFIER_TYPE_ANONYMOUS) { +- snprintf(tmps, 127, "_:%s.%x", subj, lrdf_uid); +- subj = tmps; +- } +- if (statement->predicate_type == RAPTOR_IDENTIFIER_TYPE_ANONYMOUS) { +- snprintf(tmpp, 127, "_:%s.%x", pred, lrdf_uid); +- pred = tmpp; +- } +- if (statement->object_type == RAPTOR_IDENTIFIER_TYPE_ANONYMOUS) { +- snprintf(tmpo, 127, "_:%s.%x", obj, lrdf_uid); +- obj = tmpo; +- } ++ const char *subj = lrdf_term_as_string(tmps, 128, statement->subject), ++ *pred = lrdf_term_as_string(tmpp, 128, statement->predicate), ++ *obj = lrdf_term_as_string(tmpo, 128, statement->object); + + s->shash = lrdf_gen_hash(subj); + s->phash = lrdf_gen_hash(pred); +@@ -261,7 +265,7 @@ static void lrdf_store(void *user_data, const raptor_statement * statement) + + s->subject = lrdf_check_hash(resources_hash, s->shash, subj); + s->predicate = lrdf_check_hash(resources_hash, s->phash, pred); +- if (statement->object_type == RAPTOR_IDENTIFIER_TYPE_LITERAL) { ++ if (statement->object->type == RAPTOR_TERM_TYPE_LITERAL) { + s->object = lrdf_check_hash(literals_hash, s->ohash, obj); + s->object_type = lrdf_literal; + } else { +@@ -537,28 +541,22 @@ void lrdf_rebuild_taxonomic_closure(lrdf_closure_hash ** fwd_tbl, + free(pathto); + } + +-static void lrdf_error_handler(void *data, raptor_locator * locator, +- const char *message); ++static void lrdf_log_handler(void *data, raptor_log_message *message); + +-static void lrdf_error_handler(void *data, raptor_locator * locator, +- const char *message) ++static void lrdf_log_handler(void *data, raptor_log_message *message) + { +- fprintf(stderr, "liblrdf: error - "); +- raptor_print_locator(stderr, locator); +- fprintf(stderr, " - %s\n", message); +- +- raptor_parse_abort((raptor_parser*)data); +-} ++ const char *severity = "error"; ++ if (message->level == RAPTOR_LOG_LEVEL_WARN) { ++ severity = "warning"; ++ } + +-static void lrdf_warning_handler(void *data, raptor_locator * locator, +- const char *message); ++ fprintf(stderr, "liblrdf: %s - ", severity); ++ raptor_locator_print(message->locator, stderr); ++ fprintf(stderr, " - %s\n", message->text); + +-static void lrdf_warning_handler(void *data, raptor_locator * locator, +- const char *message) +-{ +- fprintf(stderr, "liblrdf: warning - "); +- raptor_print_locator(stderr, locator); +- fprintf(stderr, " - %s\n", message); ++ if (message->level != RAPTOR_LOG_LEVEL_WARN) { ++ raptor_parser_parse_abort((raptor_parser*)data); ++ } + } + + +@@ -593,15 +591,15 @@ int lrdf_read_file_intl(const char *uri) + lrdf_hash source; + + //printf("lrdf: reading %s\n", uri); +- ruri = raptor_new_uri(uri); +- furi = raptor_new_uri(uri); ++ ruri = raptor_new_uri(world, (const unsigned char *) uri); ++ furi = raptor_new_uri(world, (const unsigned char *) uri); + source = lrdf_gen_hash(uri); + lrdf_check_hash(resources_hash, source, uri); + + if (strstr(uri, ".rdf")) { +- parser = raptor_new_parser("rdfxml"); ++ parser = raptor_new_parser(world, "rdfxml"); + } else { +- parser = raptor_new_parser("ntriples"); ++ parser = raptor_new_parser(world, "ntriples"); + } + if (!parser) { + fprintf(stderr, "liblrdf: failed to create parser\n"); +@@ -609,12 +607,11 @@ int lrdf_read_file_intl(const char *uri) + return 1; + } + +- raptor_set_error_handler(parser, parser, lrdf_error_handler); +- raptor_set_warning_handler(parser, NULL, lrdf_warning_handler); +- raptor_set_statement_handler(parser, &source, lrdf_store); +- raptor_set_default_generate_id_parameters(parser, NULL, ++lrdf_uid); ++ raptor_world_set_log_handler(world, parser, lrdf_log_handler); ++ raptor_parser_set_statement_handler(parser, &source, lrdf_store); ++ raptor_world_set_generate_bnodeid_parameters(world, NULL, ++lrdf_uid); + +- if (raptor_parse_file(parser, furi, ruri)) { ++ if (raptor_parser_parse_file(parser, furi, ruri)) { + raptor_free_uri(furi); + raptor_free_uri(ruri); + raptor_free_parser(parser); +--- configure.ac ++++ configure.ac +@@ -18,7 +18,7 @@ + AC_HEADER_STDC + AC_CHECK_HEADERS([errno.h limits.h stdlib.h string.h unistd.h]) + +-PKG_CHECK_MODULES(RAPTOR, raptor >= 0.9.11) ++PKG_CHECK_MODULES(RAPTOR, raptor2 >= 0.9.11) + + # Checks for typedefs, structures, and compiler characteristics. + AC_C_CONST +--- lrdf.h ++++ lrdf.h +@@ -5,7 +5,7 @@ + extern "C" { + #endif + +-#include ++#include + #include + #include