diff --git a/c++/carla-includes/sord b/c++/carla-includes/sord index ba14c42..d360ba7 120000 --- a/c++/carla-includes/sord +++ b/c++/carla-includes/sord @@ -1 +1 @@ -../carla-lilv/sord-0.10.0/sord \ No newline at end of file +../carla-lilv/sord-0.10.4/sord \ No newline at end of file diff --git a/c++/carla-lilv/Makefile b/c++/carla-lilv/Makefile index 366133b..2c09d27 100644 --- a/c++/carla-lilv/Makefile +++ b/c++/carla-lilv/Makefile @@ -8,7 +8,7 @@ CC ?= gcc AR ?= ar SERD_VERSION = 0.18.0 -SORD_VERSION = 0.10.0 +SORD_VERSION = 0.10.4 SRATOM_VERSION = 0.4.0 LILV_VERSION = 0.14.4 diff --git a/c++/carla-lilv/sord-0.10.0/doc/sord_validate.1 b/c++/carla-lilv/sord-0.10.0/doc/sord_validate.1 deleted file mode 100644 index 602707f..0000000 --- a/c++/carla-lilv/sord-0.10.0/doc/sord_validate.1 +++ /dev/null @@ -1,34 +0,0 @@ -.TH SORD_VALIDATE 1 "21 Mar 2012" - -.SH NAME -.B sord_validate \- Validate RDF data - -.SH SYNOPSIS -sord_validate [OPTION]... INPUT... - -This is a simple validator which checks that all used properties are actually -defined, and that the domain and range of properties is explicitly correct. -Note that an "error" from this program does not necessarily mean data is -invalid, since it is not required to explicitly list types in RDF, however it -is a good idea to do so. If data type definitions are available with an -xsd:pattern property, literals with that datatype will be checked against the -xsd:pattern (a regular expresssion) to ensure they are valid. - -This program does not retrieve any data from the web or magical places on the -file system. It only processes files passed directly on the command line. -This means you must pass all used vocabularies to get a useful result. - -.SH AUTHOR -sord_validate was written by David Robillard - -.SH COPYRIGHT -Copyright \(co 2012 David Robillard. -.br -License: -.br -This is free software; you are free to change and redistribute it. -.br -There is NO WARRANTY, to the extent permitted by law. - -.SH "SEE ALSO" - diff --git a/c++/carla-lilv/sord-0.10.0/sord-0.10.0.tar.bz2.sig b/c++/carla-lilv/sord-0.10.0/sord-0.10.0.tar.bz2.sig deleted file mode 100644 index 4869c52..0000000 Binary files a/c++/carla-lilv/sord-0.10.0/sord-0.10.0.tar.bz2.sig and /dev/null differ diff --git a/c++/carla-lilv/sord-0.10.0/waf b/c++/carla-lilv/sord-0.10.0/waf deleted file mode 100755 index 3088b02..0000000 Binary files a/c++/carla-lilv/sord-0.10.0/waf and /dev/null differ diff --git a/c++/carla-lilv/sord-0.10.0/AUTHORS b/c++/carla-lilv/sord-0.10.4/AUTHORS similarity index 100% rename from c++/carla-lilv/sord-0.10.0/AUTHORS rename to c++/carla-lilv/sord-0.10.4/AUTHORS diff --git a/c++/carla-lilv/sord-0.10.0/COPYING b/c++/carla-lilv/sord-0.10.4/COPYING similarity index 100% rename from c++/carla-lilv/sord-0.10.0/COPYING rename to c++/carla-lilv/sord-0.10.4/COPYING diff --git a/c++/carla-lilv/sord-0.10.0/INSTALL b/c++/carla-lilv/sord-0.10.4/INSTALL similarity index 100% rename from c++/carla-lilv/sord-0.10.0/INSTALL rename to c++/carla-lilv/sord-0.10.4/INSTALL diff --git a/c++/carla-lilv/sord-0.10.0/NEWS b/c++/carla-lilv/sord-0.10.4/NEWS similarity index 86% rename from c++/carla-lilv/sord-0.10.0/NEWS rename to c++/carla-lilv/sord-0.10.4/NEWS index 4c7f6a8..f3635ab 100644 --- a/c++/carla-lilv/sord-0.10.0/NEWS +++ b/c++/carla-lilv/sord-0.10.4/NEWS @@ -1,3 +1,13 @@ +sord (0.10.4) stable; + + * Implement better data type validation in sord_validate conformant with + the XSD and OWL specifications + * Fix memory leaks in sord_validate + * Install sord_validate man page + * Disable timestamps in HTML documentation for reproducible build + + -- David Robillard Sun, 14 Oct 2012 18:23:55 -0400 + sord (0.10.0) stable; * Add error callback to world for custom error reporting diff --git a/c++/carla-lilv/sord-0.10.0/PACKAGING b/c++/carla-lilv/sord-0.10.4/PACKAGING similarity index 100% rename from c++/carla-lilv/sord-0.10.0/PACKAGING rename to c++/carla-lilv/sord-0.10.4/PACKAGING diff --git a/c++/carla-lilv/sord-0.10.0/README b/c++/carla-lilv/sord-0.10.4/README similarity index 100% rename from c++/carla-lilv/sord-0.10.0/README rename to c++/carla-lilv/sord-0.10.4/README diff --git a/c++/carla-lilv/sord-0.10.4/doc/layout.xml b/c++/carla-lilv/sord-0.10.4/doc/layout.xml new file mode 100644 index 0000000..74a109f --- /dev/null +++ b/c++/carla-lilv/sord-0.10.4/doc/layout.xml @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/c++/carla-lilv/sord-0.10.0/doc/reference.doxygen.in b/c++/carla-lilv/sord-0.10.4/doc/reference.doxygen.in similarity index 99% rename from c++/carla-lilv/sord-0.10.0/doc/reference.doxygen.in rename to c++/carla-lilv/sord-0.10.4/doc/reference.doxygen.in index 64577d0..b679c1c 100644 --- a/c++/carla-lilv/sord-0.10.0/doc/reference.doxygen.in +++ b/c++/carla-lilv/sord-0.10.4/doc/reference.doxygen.in @@ -939,7 +939,7 @@ HTML_COLORSTYLE_GAMMA = 80 # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. -HTML_TIMESTAMP = YES +HTML_TIMESTAMP = NO # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the diff --git a/c++/carla-lilv/sord-0.10.4/doc/sord_validate.1 b/c++/carla-lilv/sord-0.10.4/doc/sord_validate.1 new file mode 100644 index 0000000..9b8668a --- /dev/null +++ b/c++/carla-lilv/sord-0.10.4/doc/sord_validate.1 @@ -0,0 +1,57 @@ +.TH SORD_VALIDATE 1 "21 Mar 2012" + +.SH NAME +.B sord_validate \- Validate RDF data + +.SH SYNOPSIS +sord_validate [OPTION]... INPUT... + +.SH OPTIONS +.TP +\fB\-h\fR +Print the command line options. + +.TP +\fB\-l\fR +Print errors on a single line. + +.TP +\fB\-v\fR +Display version information and exit. + +.SH DESCRIPTION +This is a simple validator which checks that all used properties are actually +defined, and that the domain and range of properties is explicitly correct. +Note that an "error" from this program does not necessarily mean data is +invalid, since it is not required to explicitly list types in RDF, however it +is a good idea to do so. + +This program never retrieves data from the web or magical places on the file +system, it only processes files passed directly on the command line. This +means you must pass all used vocabularies to get a useful result. + +If an appropriate schema is available, literals are checked against datatype +definitions (both the explicit datatype of the literal itself as well as any +types implied by the corresponding property). Three XML Schema Datatypes (XSD) +constraints are currently supported: regular expressions (xsd:pattern), and +inclusive range (xsd:minimumInclusive and xsd:maximumInclusive). Given an +appropriate schema, this is enough to validate against most of the standard XSD +datatypes. + +.SH EXAMPLES +sord_validate `find ~/schemas/ -name '*.ttl'` data.ttl + +.SH AUTHOR +sord_validate was written by David Robillard + +.SH COPYRIGHT +Copyright \(co 2012 David Robillard. +.br +License: +.br +This is free software; you are free to change and redistribute it. +.br +There is NO WARRANTY, to the extent permitted by law. + +.SH "SEE ALSO" + diff --git a/c++/carla-lilv/sord-0.10.0/doc/sordi.1 b/c++/carla-lilv/sord-0.10.4/doc/sordi.1 similarity index 96% rename from c++/carla-lilv/sord-0.10.0/doc/sordi.1 rename to c++/carla-lilv/sord-0.10.4/doc/sordi.1 index 8168999..6c53755 100644 --- a/c++/carla-lilv/sord-0.10.0/doc/sordi.1 +++ b/c++/carla-lilv/sord-0.10.4/doc/sordi.1 @@ -8,7 +8,7 @@ sordi [OPTION]... INPUT BASE_URI .SH OPTIONS .TP -\fB\-h\fR, \fB\-\-help\fR +\fB\-h\fR Print the command line options. .TP diff --git a/c++/carla-lilv/sord-0.10.0/doc/style.css b/c++/carla-lilv/sord-0.10.4/doc/style.css similarity index 100% rename from c++/carla-lilv/sord-0.10.0/doc/style.css rename to c++/carla-lilv/sord-0.10.4/doc/style.css diff --git a/c++/carla-lilv/sord-0.10.4/sord-0.10.4.tar.bz2.sig b/c++/carla-lilv/sord-0.10.4/sord-0.10.4.tar.bz2.sig new file mode 100644 index 0000000..e233748 Binary files /dev/null and b/c++/carla-lilv/sord-0.10.4/sord-0.10.4.tar.bz2.sig differ diff --git a/c++/carla-lilv/sord-0.10.0/sord.pc.in b/c++/carla-lilv/sord-0.10.4/sord.pc.in similarity index 79% rename from c++/carla-lilv/sord-0.10.0/sord.pc.in rename to c++/carla-lilv/sord-0.10.4/sord.pc.in index 1fe414c..da8a601 100644 --- a/c++/carla-lilv/sord-0.10.0/sord.pc.in +++ b/c++/carla-lilv/sord-0.10.4/sord.pc.in @@ -6,6 +6,6 @@ includedir=@INCLUDEDIR@ Name: Sord Version: @SORD_VERSION@ Description: A lightweight C library for storing RDF statements in memory. -Requires: serd-0 -Libs: -L${libdir} -lsord-@SORD_MAJOR_VERSION@ +Requires: @PKG_serd_0@ +Libs: -L${libdir} -l@LIB_SORD@ Cflags: -I${includedir}/sord-@SORD_MAJOR_VERSION@ diff --git a/c++/carla-lilv/sord-0.10.0/sord/sord.h b/c++/carla-lilv/sord-0.10.4/sord/sord.h similarity index 100% rename from c++/carla-lilv/sord-0.10.0/sord/sord.h rename to c++/carla-lilv/sord-0.10.4/sord/sord.h diff --git a/c++/carla-lilv/sord-0.10.0/sord/sordmm.hpp b/c++/carla-lilv/sord-0.10.4/sord/sordmm.hpp similarity index 100% rename from c++/carla-lilv/sord-0.10.0/sord/sordmm.hpp rename to c++/carla-lilv/sord-0.10.4/sord/sordmm.hpp diff --git a/c++/carla-lilv/sord-0.10.0/src/sord.c b/c++/carla-lilv/sord-0.10.4/src/sord.c similarity index 100% rename from c++/carla-lilv/sord-0.10.0/src/sord.c rename to c++/carla-lilv/sord-0.10.4/src/sord.c diff --git a/c++/carla-lilv/sord-0.10.0/src/sord_internal.h b/c++/carla-lilv/sord-0.10.4/src/sord_internal.h similarity index 100% rename from c++/carla-lilv/sord-0.10.0/src/sord_internal.h rename to c++/carla-lilv/sord-0.10.4/src/sord_internal.h diff --git a/c++/carla-lilv/sord-0.10.0/src/sord_test.c b/c++/carla-lilv/sord-0.10.4/src/sord_test.c similarity index 100% rename from c++/carla-lilv/sord-0.10.0/src/sord_test.c rename to c++/carla-lilv/sord-0.10.4/src/sord_test.c diff --git a/c++/carla-lilv/sord-0.10.0/src/sord_validate.c b/c++/carla-lilv/sord-0.10.4/src/sord_validate.c similarity index 61% rename from c++/carla-lilv/sord-0.10.0/src/sord_validate.c rename to c++/carla-lilv/sord-0.10.4/src/sord_validate.c index 9f8c176..2418b87 100644 --- a/c++/carla-lilv/sord-0.10.0/src/sord_validate.c +++ b/c++/carla-lilv/sord-0.10.4/src/sord_validate.c @@ -51,7 +51,11 @@ typedef struct { SordNode* owl_OntologyProperty; SordNode* owl_Thing; SordNode* owl_equivalentClass; + SordNode* owl_onDatatype; + SordNode* owl_withRestrictions; SordNode* rdf_Property; + SordNode* rdf_first; + SordNode* rdf_rest; SordNode* rdf_type; SordNode* rdfs_Class; SordNode* rdfs_Literal; @@ -59,11 +63,15 @@ typedef struct { SordNode* rdfs_domain; SordNode* rdfs_range; SordNode* rdfs_subClassOf; + SordNode* xsd_decimal; + SordNode* xsd_maxInclusive; + SordNode* xsd_minInclusive; SordNode* xsd_pattern; SordNode* xsd_string; } URIs; int n_errors = 0; +int n_restrictions = 0; bool one_line_errors = false; static int @@ -84,7 +92,9 @@ print_usage(const char* name, bool error) FILE* const os = error ? stderr : stdout; fprintf(os, "Usage: %s [OPTION]... INPUT...\n", name); fprintf(os, "Validate RDF data\n\n"); + fprintf(os, " -h Display this help and exit\n"); fprintf(os, " -l Print errors on a single line.\n"); + fprintf(os, " -v Display version information and exit\n"); fprintf(os, "Validate RDF data. This is a simple validator which checks\n" "that all used properties are actually defined. It does not do\n" @@ -119,25 +129,26 @@ error(const char* msg, const SordQuad quad) } static bool -is_subclass_of(SordModel* model, - const URIs* uris, - const SordNode* klass, - const SordNode* super) +is_descendant_of(SordModel* model, + const URIs* uris, + const SordNode* child, + const SordNode* parent, + const SordNode* pred) { - if (!klass) { + if (!child) { return false; - } else if (sord_node_equals(klass, super) || - sord_ask(model, klass, uris->owl_equivalentClass, super, NULL)) { + } else if (sord_node_equals(child, parent) || + sord_ask(model, child, uris->owl_equivalentClass, parent, NULL)) { return true; } - SordIter* i = sord_search(model, klass, uris->rdfs_subClassOf, NULL, NULL); + SordIter* i = sord_search(model, child, pred, NULL, NULL); for (; !sord_iter_end(i); sord_iter_next(i)) { const SordNode* o = sord_iter_get_node(i, SORD_OBJECT); - if (sord_node_equals(klass, o)) { - continue; // Class is explicitly subClassOf itself + if (sord_node_equals(child, o)) { + continue; // Weird class is explicitly a descendent of itself } - if (is_subclass_of(model, uris, o, super)) { + if (is_descendant_of(model, uris, o, parent, pred)) { sord_iter_free(i); return true; } @@ -148,27 +159,122 @@ is_subclass_of(SordModel* model, } static bool -regexp_match(const char* pat, const char* str) +regexp_match(const uint8_t* pat, const char* str) { #ifdef HAVE_PCRE + // Append a $ to the pattern so we only match if the entire string matches + const size_t len = strlen((const char*)pat); + char* const regx = malloc(len + 2); + memcpy(regx, pat, len); + regx[len] = '$'; + regx[len + 1] = '\0'; + const char* err; int erroffset; - pcre* re = pcre_compile(pat, PCRE_ANCHORED, &err, &erroffset, NULL); + pcre* re = pcre_compile(regx, PCRE_ANCHORED, &err, &erroffset, NULL); + free(regx); if (!re) { - fprintf(stderr, "Error in regexp \"%s\" at offset %d (%s)\n", + fprintf(stderr, "Error in pattern `%s' at offset %d (%s)\n", pat, erroffset, err); return false; } - int st = pcre_exec(re, NULL, str, strlen(str), 0, 0, NULL, 0); - if (st < 0) { - fprintf(stderr, "Error %d executing regexp \"%s\"\n", st, pat); - return false; - } + const bool ret = pcre_exec(re, NULL, str, strlen(str), 0, 0, NULL, 0) >= 0; + pcre_free(re); + return ret; #endif // HAVE_PCRE return true; } +static bool +check_restriction(SordModel* model, + const URIs* uris, + const SordNode* literal, + const SordNode* type, + const SordNode* restriction) +{ + size_t len = 0; + const char* str = (const char*)sord_node_get_string_counted(literal, &len); + ++n_restrictions; + + // Check xsd:pattern + SordIter* p = sord_search(model, restriction, uris->xsd_pattern, 0, 0); + if (p) { + const SordNode* pat = sord_iter_get_node(p, SORD_OBJECT); + const bool good = regexp_match(sord_node_get_string(pat), str); + if (!good) { + fprintf(stderr, "`%s' does not match <%s> pattern `%s'\n", + sord_node_get_string(literal), + sord_node_get_string(type), + sord_node_get_string(pat)); + } + + sord_iter_free(p); + return good; + } + + /* We'll do some comparison tricks for xsd:decimal types, where + lexicographical comparison would be incorrect. Note that if the + literal's type is a descendant of xsd:decimal, we'll end up checking it + against the xsd:decimal pattern so there's no need to validate digits + here. At worst we'll get a false positive but it will fail later. */ + const bool is_decimal = is_descendant_of( + model, uris, type, uris->xsd_decimal, uris->owl_onDatatype); + + // Check xsd:minInclusive + SordIter* l = sord_search(model, restriction, uris->xsd_minInclusive, 0, 0); + if (l) { + const SordNode* lower = sord_iter_get_node(l, SORD_OBJECT); + size_t lower_len = 0; + const char* lower_str = (const char*)sord_node_get_string_counted(lower, &lower_len); + bool good = false; + if (!is_decimal || len == lower_len) { + // Not decimal, or equal lengths, strcmp + good = (strcmp(str, lower_str) >= 0); + } else { + // Decimal with different length, only good if longer than the min + good = (len > lower_len); + } + if (!good) { + fprintf(stderr, "`%s' is not >= <%s> minimum `%s'\n", + sord_node_get_string(literal), + sord_node_get_string(type), + sord_node_get_string(lower)); + } + + sord_iter_free(l); + return good; + } + + // Check xsd:maxInclusive + SordIter* u = sord_search(model, restriction, uris->xsd_maxInclusive, 0, 0); + if (u) { + const SordNode* upper = sord_iter_get_node(u, SORD_OBJECT); + size_t upper_len = 0; + const char* upper_str = (const char*)sord_node_get_string_counted(upper, &upper_len); + bool good = false; + if (!is_decimal || len == upper_len) { + // Not decimal, or equal lengths, strcmp + good = (strcmp(str, upper_str) <= 0); + } else { + // Decimal with different length, only good if shorter than the max + good = (len < upper_len); + } + if (!good) { + fprintf(stderr, "`%s' is not <= <%s> maximum `%s'\n", + sord_node_get_string(literal), + sord_node_get_string(type), + sord_node_get_string(upper)); + } + + sord_iter_free(u); + return good; + } + + --n_restrictions; + return true; // Unknown restriction, be quietly tolerant +} + static bool literal_is_valid(SordModel* model, const URIs* uris, @@ -179,22 +285,47 @@ literal_is_valid(SordModel* model, return true; } - SordIter* p = sord_search(model, type, uris->xsd_pattern, 0, 0); - const SordNode* pattern = sord_iter_get_node(p, SORD_OBJECT); - if (!pattern) { - fprintf(stderr, "warning: No pattern for datatype <%s>\n", - sord_node_get_string(type)); - return true; + // Find restrictions list + SordIter* rs = sord_search(model, type, uris->owl_withRestrictions, 0, 0); + if (sord_iter_end(rs)) { + return true; // No restrictions } - if (regexp_match((const char*)sord_node_get_string(pattern), - (const char*)sord_node_get_string(literal))) { - return true; + + // Walk list, checking each restriction + const SordNode* head = sord_iter_get_node(rs, SORD_OBJECT); + while (head) { + SordIter* f = sord_search(model, head, uris->rdf_first, 0, 0); + if (!f) { + break; // Reached end of restrictions list without failure + } + + // Check this restriction + const bool good = check_restriction( + model, uris, literal, type, sord_iter_get_node(f, SORD_OBJECT)); + sord_iter_free(f); + + if (!good) { + sord_iter_free(rs); + return false; // Failed, literal is invalid + } + + // Seek to next list node + SordIter* n = sord_search(model, head, uris->rdf_rest, 0, 0); + head = n ? sord_iter_get_node(n, SORD_OBJECT) : NULL; + sord_iter_free(n); } - fprintf(stderr, "Literal \"%s\" does not match <%s> pattern \"%s\"\n", - sord_node_get_string(literal), - sord_node_get_string(type), - sord_node_get_string(pattern)); - return false; + + sord_iter_free(rs); + + SordIter* s = sord_search(model, type, uris->owl_onDatatype, 0, 0); + if (s) { + const SordNode* super = sord_iter_get_node(s, SORD_OBJECT); + const bool good = literal_is_valid(model, uris, literal, super); + sord_iter_free(s); + return good; // Match iff literal also matches supertype + } + + return true; // Matches top level type } static bool @@ -213,9 +344,7 @@ check_type(SordModel* model, sord_node_equals(type, uris->xsd_string)) { return true; } else { - const SordNode* datatype = sord_node_get_datatype(node); - return is_subclass_of(model, uris, datatype, type) || - literal_is_valid(model, uris, node, type); + return literal_is_valid(model, uris, node, type); } } else if (sord_node_get_type(node) == SORD_URI) { if (sord_node_equals(type, uris->foaf_Document)) { @@ -223,9 +352,10 @@ check_type(SordModel* model, } else { SordIter* t = sord_search(model, node, uris->rdf_type, NULL, NULL); for (; !sord_iter_end(t); sord_iter_next(t)) { - if (is_subclass_of(model, uris, - sord_iter_get_node(t, SORD_OBJECT), - type)) { + if (is_descendant_of(model, uris, + sord_iter_get_node(t, SORD_OBJECT), + type, + uris->rdfs_subClassOf)) { sord_iter_free(t); return true; } @@ -285,7 +415,10 @@ main(int argc, char** argv) } serd_node_free(&base_uri_node); + free(in_path); } + serd_reader_free(reader); + serd_env_free(env); #define URI(prefix, suffix) \ uris.prefix##_##suffix = sord_new_uri(world, NS_##prefix #suffix) @@ -301,7 +434,11 @@ main(int argc, char** argv) URI(owl, OntologyProperty); URI(owl, Thing); URI(owl, equivalentClass); + URI(owl, onDatatype); + URI(owl, withRestrictions); URI(rdf, Property); + URI(rdf, first); + URI(rdf, rest); URI(rdf, type); URI(rdfs, Class); URI(rdfs, Literal); @@ -309,6 +446,9 @@ main(int argc, char** argv) URI(rdfs, domain); URI(rdfs, range); URI(rdfs, subClassOf); + URI(xsd, decimal); + URI(xsd, maxInclusive); + URI(xsd, minInclusive); URI(xsd, pattern); URI(xsd, string); @@ -385,6 +525,7 @@ main(int argc, char** argv) fprintf(stderr, "note: Range is <%s>\n", sord_node_get_string(range)); } + sord_iter_free(r); } SordIter* d = sord_search(model, pred, uris.rdfs_domain, NULL, NULL); @@ -395,10 +536,15 @@ main(int argc, char** argv) fprintf(stderr, "note: Domain is <%s>\n", sord_node_get_string(domain)); } + sord_iter_free(d); } } sord_iter_free(i); - printf("Found %d errors among %d files\n", n_errors, argc - 1); + printf("Found %d errors among %d files (checked %d restrictions)\n", + n_errors, argc - 1, n_restrictions); + + sord_free(model); + sord_world_free(world); return 0; } diff --git a/c++/carla-lilv/sord-0.10.0/src/sordi.c b/c++/carla-lilv/sord-0.10.4/src/sordi.c similarity index 100% rename from c++/carla-lilv/sord-0.10.0/src/sordi.c rename to c++/carla-lilv/sord-0.10.4/src/sordi.c diff --git a/c++/carla-lilv/sord-0.10.0/src/sordmm_test.cpp b/c++/carla-lilv/sord-0.10.4/src/sordmm_test.cpp similarity index 100% rename from c++/carla-lilv/sord-0.10.0/src/sordmm_test.cpp rename to c++/carla-lilv/sord-0.10.4/src/sordmm_test.cpp diff --git a/c++/carla-lilv/sord-0.10.0/src/syntax.c b/c++/carla-lilv/sord-0.10.4/src/syntax.c similarity index 100% rename from c++/carla-lilv/sord-0.10.0/src/syntax.c rename to c++/carla-lilv/sord-0.10.4/src/syntax.c diff --git a/c++/carla-lilv/sord-0.10.0/src/zix/common.h b/c++/carla-lilv/sord-0.10.4/src/zix/common.h similarity index 100% rename from c++/carla-lilv/sord-0.10.0/src/zix/common.h rename to c++/carla-lilv/sord-0.10.4/src/zix/common.h diff --git a/c++/carla-lilv/sord-0.10.0/src/zix/digest.c b/c++/carla-lilv/sord-0.10.4/src/zix/digest.c similarity index 100% rename from c++/carla-lilv/sord-0.10.0/src/zix/digest.c rename to c++/carla-lilv/sord-0.10.4/src/zix/digest.c diff --git a/c++/carla-lilv/sord-0.10.0/src/zix/digest.h b/c++/carla-lilv/sord-0.10.4/src/zix/digest.h similarity index 100% rename from c++/carla-lilv/sord-0.10.0/src/zix/digest.h rename to c++/carla-lilv/sord-0.10.4/src/zix/digest.h diff --git a/c++/carla-lilv/sord-0.10.0/src/zix/hash.c b/c++/carla-lilv/sord-0.10.4/src/zix/hash.c similarity index 100% rename from c++/carla-lilv/sord-0.10.0/src/zix/hash.c rename to c++/carla-lilv/sord-0.10.4/src/zix/hash.c diff --git a/c++/carla-lilv/sord-0.10.0/src/zix/hash.h b/c++/carla-lilv/sord-0.10.4/src/zix/hash.h similarity index 100% rename from c++/carla-lilv/sord-0.10.0/src/zix/hash.h rename to c++/carla-lilv/sord-0.10.4/src/zix/hash.h diff --git a/c++/carla-lilv/sord-0.10.0/src/zix/tree.c b/c++/carla-lilv/sord-0.10.4/src/zix/tree.c similarity index 100% rename from c++/carla-lilv/sord-0.10.0/src/zix/tree.c rename to c++/carla-lilv/sord-0.10.4/src/zix/tree.c diff --git a/c++/carla-lilv/sord-0.10.0/src/zix/tree.h b/c++/carla-lilv/sord-0.10.4/src/zix/tree.h similarity index 100% rename from c++/carla-lilv/sord-0.10.0/src/zix/tree.h rename to c++/carla-lilv/sord-0.10.4/src/zix/tree.h diff --git a/c++/carla-lilv/sord-0.10.0/tests/README.txt b/c++/carla-lilv/sord-0.10.4/tests/README.txt similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/README.txt rename to c++/carla-lilv/sord-0.10.4/tests/README.txt diff --git a/c++/carla-lilv/sord-0.10.0/tests/UTF-8.ttl b/c++/carla-lilv/sord-0.10.4/tests/UTF-8.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/UTF-8.ttl rename to c++/carla-lilv/sord-0.10.4/tests/UTF-8.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/manifest.ttl b/c++/carla-lilv/sord-0.10.4/tests/manifest.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/manifest.ttl rename to c++/carla-lilv/sord-0.10.4/tests/manifest.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/rdf-schema.out b/c++/carla-lilv/sord-0.10.4/tests/rdf-schema.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/rdf-schema.out rename to c++/carla-lilv/sord-0.10.4/tests/rdf-schema.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/rdf-schema.ttl b/c++/carla-lilv/sord-0.10.4/tests/rdf-schema.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/rdf-schema.ttl rename to c++/carla-lilv/sord-0.10.4/tests/rdf-schema.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/rdfq-results.out b/c++/carla-lilv/sord-0.10.4/tests/rdfq-results.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/rdfq-results.out rename to c++/carla-lilv/sord-0.10.4/tests/rdfq-results.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/rdfq-results.ttl b/c++/carla-lilv/sord-0.10.4/tests/rdfq-results.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/rdfq-results.ttl rename to c++/carla-lilv/sord-0.10.4/tests/rdfq-results.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/rdfs-namespace.out b/c++/carla-lilv/sord-0.10.4/tests/rdfs-namespace.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/rdfs-namespace.out rename to c++/carla-lilv/sord-0.10.4/tests/rdfs-namespace.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/rdfs-namespace.ttl b/c++/carla-lilv/sord-0.10.4/tests/rdfs-namespace.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/rdfs-namespace.ttl rename to c++/carla-lilv/sord-0.10.4/tests/rdfs-namespace.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-00.out b/c++/carla-lilv/sord-0.10.4/tests/test-00.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-00.out rename to c++/carla-lilv/sord-0.10.4/tests/test-00.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-00.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-00.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-00.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-00.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-01.out b/c++/carla-lilv/sord-0.10.4/tests/test-01.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-01.out rename to c++/carla-lilv/sord-0.10.4/tests/test-01.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-01.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-01.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-01.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-01.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-02.out b/c++/carla-lilv/sord-0.10.4/tests/test-02.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-02.out rename to c++/carla-lilv/sord-0.10.4/tests/test-02.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-02.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-02.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-02.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-02.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-03.out b/c++/carla-lilv/sord-0.10.4/tests/test-03.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-03.out rename to c++/carla-lilv/sord-0.10.4/tests/test-03.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-03.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-03.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-03.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-03.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-04.out b/c++/carla-lilv/sord-0.10.4/tests/test-04.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-04.out rename to c++/carla-lilv/sord-0.10.4/tests/test-04.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-04.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-04.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-04.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-04.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-05.out b/c++/carla-lilv/sord-0.10.4/tests/test-05.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-05.out rename to c++/carla-lilv/sord-0.10.4/tests/test-05.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-05.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-05.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-05.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-05.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-06.out b/c++/carla-lilv/sord-0.10.4/tests/test-06.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-06.out rename to c++/carla-lilv/sord-0.10.4/tests/test-06.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-06.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-06.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-06.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-06.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-07.out b/c++/carla-lilv/sord-0.10.4/tests/test-07.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-07.out rename to c++/carla-lilv/sord-0.10.4/tests/test-07.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-07.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-07.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-07.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-07.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-08.out b/c++/carla-lilv/sord-0.10.4/tests/test-08.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-08.out rename to c++/carla-lilv/sord-0.10.4/tests/test-08.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-08.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-08.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-08.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-08.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-09.out b/c++/carla-lilv/sord-0.10.4/tests/test-09.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-09.out rename to c++/carla-lilv/sord-0.10.4/tests/test-09.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-09.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-09.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-09.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-09.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-10.out b/c++/carla-lilv/sord-0.10.4/tests/test-10.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-10.out rename to c++/carla-lilv/sord-0.10.4/tests/test-10.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-10.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-10.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-10.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-10.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-11.out b/c++/carla-lilv/sord-0.10.4/tests/test-11.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-11.out rename to c++/carla-lilv/sord-0.10.4/tests/test-11.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-11.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-11.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-11.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-11.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-12.out b/c++/carla-lilv/sord-0.10.4/tests/test-12.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-12.out rename to c++/carla-lilv/sord-0.10.4/tests/test-12.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-12.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-12.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-12.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-12.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-13.out b/c++/carla-lilv/sord-0.10.4/tests/test-13.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-13.out rename to c++/carla-lilv/sord-0.10.4/tests/test-13.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-13.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-13.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-13.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-13.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-14.out b/c++/carla-lilv/sord-0.10.4/tests/test-14.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-14.out rename to c++/carla-lilv/sord-0.10.4/tests/test-14.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-14.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-14.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-14.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-14.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-15.out b/c++/carla-lilv/sord-0.10.4/tests/test-15.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-15.out rename to c++/carla-lilv/sord-0.10.4/tests/test-15.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-15.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-15.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-15.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-15.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-16.out b/c++/carla-lilv/sord-0.10.4/tests/test-16.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-16.out rename to c++/carla-lilv/sord-0.10.4/tests/test-16.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-16.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-16.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-16.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-16.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-17.out b/c++/carla-lilv/sord-0.10.4/tests/test-17.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-17.out rename to c++/carla-lilv/sord-0.10.4/tests/test-17.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-17.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-17.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-17.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-17.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-18.out b/c++/carla-lilv/sord-0.10.4/tests/test-18.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-18.out rename to c++/carla-lilv/sord-0.10.4/tests/test-18.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-18.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-18.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-18.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-18.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-19.out b/c++/carla-lilv/sord-0.10.4/tests/test-19.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-19.out rename to c++/carla-lilv/sord-0.10.4/tests/test-19.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-19.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-19.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-19.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-19.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-20.out b/c++/carla-lilv/sord-0.10.4/tests/test-20.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-20.out rename to c++/carla-lilv/sord-0.10.4/tests/test-20.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-20.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-20.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-20.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-20.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-21.out b/c++/carla-lilv/sord-0.10.4/tests/test-21.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-21.out rename to c++/carla-lilv/sord-0.10.4/tests/test-21.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-21.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-21.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-21.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-21.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-22.out b/c++/carla-lilv/sord-0.10.4/tests/test-22.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-22.out rename to c++/carla-lilv/sord-0.10.4/tests/test-22.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-22.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-22.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-22.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-22.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-23.out b/c++/carla-lilv/sord-0.10.4/tests/test-23.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-23.out rename to c++/carla-lilv/sord-0.10.4/tests/test-23.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-23.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-23.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-23.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-23.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-24.out b/c++/carla-lilv/sord-0.10.4/tests/test-24.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-24.out rename to c++/carla-lilv/sord-0.10.4/tests/test-24.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-24.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-24.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-24.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-24.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-25.out b/c++/carla-lilv/sord-0.10.4/tests/test-25.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-25.out rename to c++/carla-lilv/sord-0.10.4/tests/test-25.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-25.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-25.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-25.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-25.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-26.out b/c++/carla-lilv/sord-0.10.4/tests/test-26.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-26.out rename to c++/carla-lilv/sord-0.10.4/tests/test-26.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-26.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-26.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-26.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-26.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-27.out b/c++/carla-lilv/sord-0.10.4/tests/test-27.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-27.out rename to c++/carla-lilv/sord-0.10.4/tests/test-27.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-27.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-27.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-27.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-27.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-29.out b/c++/carla-lilv/sord-0.10.4/tests/test-29.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-29.out rename to c++/carla-lilv/sord-0.10.4/tests/test-29.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-29.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-29.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-29.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-29.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-30.out b/c++/carla-lilv/sord-0.10.4/tests/test-30.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-30.out rename to c++/carla-lilv/sord-0.10.4/tests/test-30.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-30.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-30.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-30.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-30.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-id.out b/c++/carla-lilv/sord-0.10.4/tests/test-id.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-id.out rename to c++/carla-lilv/sord-0.10.4/tests/test-id.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-id.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-id.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-id.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-id.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-lang.out b/c++/carla-lilv/sord-0.10.4/tests/test-lang.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-lang.out rename to c++/carla-lilv/sord-0.10.4/tests/test-lang.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-lang.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-lang.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-lang.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-lang.ttl diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-num.out b/c++/carla-lilv/sord-0.10.4/tests/test-num.out similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-num.out rename to c++/carla-lilv/sord-0.10.4/tests/test-num.out diff --git a/c++/carla-lilv/sord-0.10.0/tests/test-num.ttl b/c++/carla-lilv/sord-0.10.4/tests/test-num.ttl similarity index 100% rename from c++/carla-lilv/sord-0.10.0/tests/test-num.ttl rename to c++/carla-lilv/sord-0.10.4/tests/test-num.ttl diff --git a/c++/carla-lilv/sord-0.10.4/waf b/c++/carla-lilv/sord-0.10.4/waf new file mode 100755 index 0000000..b4446e8 Binary files /dev/null and b/c++/carla-lilv/sord-0.10.4/waf differ diff --git a/c++/carla-lilv/sord-0.10.0/wscript b/c++/carla-lilv/sord-0.10.4/wscript similarity index 88% rename from c++/carla-lilv/sord-0.10.0/wscript rename to c++/carla-lilv/sord-0.10.4/wscript index 3287e93..e263bbd 100644 --- a/c++/carla-lilv/sord-0.10.0/wscript +++ b/c++/carla-lilv/sord-0.10.4/wscript @@ -2,28 +2,22 @@ import glob import os import subprocess +import waflib.Logs as Logs +import waflib.Options as Options +import waflib.extras.autowaf as autowaf -from waflib.extras import autowaf as autowaf -import waflib.Logs as Logs, waflib.Options as Options - -# Version of this package (even if built as a child) -SORD_VERSION = '0.10.0' -SORD_MAJOR_VERSION = '0' - -# Library version (UNIX style major, minor, micro) +# Library and package version (UNIX style major, minor, micro) # major increment <=> incompatible changes # minor increment <=> compatible changes (additions) # micro increment <=> no interface changes -# Sord uses the same version number for both library and package -SORD_LIB_VERSION = SORD_VERSION - -# Variables for 'waf dist' -APPNAME = 'sord' -VERSION = SORD_VERSION +SORD_VERSION = '0.10.4' +SORD_MAJOR_VERSION = '0' -# Mandatory variables -top = '.' -out = 'build' +# Mandatory waf variables +APPNAME = 'sord' # Package name for waf dist +VERSION = SORD_VERSION # Package version for waf dist +top = '.' # Source directory +out = 'build' # Build directory def options(opt): opt.load('compiler_c') @@ -55,10 +49,6 @@ def configure(conf): autowaf.set_c99_mode(conf) autowaf.display_header('Sord configuration') - autowaf.check_pkg(conf, 'serd-0', uselib_store='SERD', - atleast_version='0.18.0', mandatory=True) - autowaf.check_pkg(conf, 'libpcre', uselib_store='PCRE', mandatory=False) - conf.env.BUILD_TESTS = Options.options.build_tests conf.env.BUILD_UTILS = not Options.options.no_utils conf.env.BUILD_SHARED = not Options.options.no_shared @@ -66,12 +56,16 @@ def configure(conf): conf.env.BUILD_STATIC = (Options.options.static or Options.options.static_progs) - # Check for gcov library (for test coverage) if conf.env.BUILD_TESTS: - conf.check_cc(lib='gcov', - define_name='HAVE_GCOV', - mandatory=False) + conf.check(lib = 'gcov', + define_name = 'HAVE_GCOV', + mandatory = False) + autowaf.check_pkg(conf, 'serd-0', uselib_store='SERD', + atleast_version='0.18.0', mandatory=True) + autowaf.check_pkg(conf, 'libpcre', uselib_store='PCRE', mandatory=False) + + # Parse dump options and define things accordingly dump = Options.options.dump.split(',') all = 'all' in dump if all or 'iter' in dump: @@ -82,24 +76,9 @@ def configure(conf): autowaf.define(conf, 'SORD_DEBUG_WRITE', 1) autowaf.define(conf, 'SORD_VERSION', SORD_VERSION) + autowaf.set_lib_env(conf, 'sord', SORD_VERSION) conf.write_config_header('sord_config.h', remove=False) - def fallback(var, val): - conf.env[var] = val - Logs.warn('Warning: %s unset, using %s\n' % (var, val)) - - conf.env.INCLUDES_SORD = ['${includedir}/sord-%s' % SORD_MAJOR_VERSION] - if not conf.env.INCLUDES_SERD: - fallback('INCLUDES_SERD', ['${includedir}/serd-0']) - - conf.env.LIBPATH_SORD = [conf.env.LIBDIR] - if not conf.env.LIBPATH_SERD: - fallback('LIBPATH_SERD', conf.env.LIBPATH_SORD) - - conf.env.LIB_SORD = ['sord-%s' % SORD_MAJOR_VERSION]; - if not conf.env.LIB_SERD: - fallback('LIB_SERD', 'serd-0') - autowaf.display_msg(conf, 'Utilities', bool(conf.env.BUILD_UTILS)) autowaf.display_msg(conf, 'Unit tests', bool(conf.env.BUILD_TESTS)) autowaf.display_msg(conf, 'Debug dumping', dump) @@ -133,7 +112,7 @@ def build(bld): export_includes = ['.'], name = 'libsord', target = 'sord-%s' % SORD_MAJOR_VERSION, - vnum = SORD_LIB_VERSION, + vnum = SORD_VERSION, install_path = '${LIBDIR}', libs = libs, defines = defines + ['SORD_SHARED', 'SORD_INTERNAL'], @@ -148,7 +127,7 @@ def build(bld): export_includes = ['.'], name = 'libsord_static', target = 'sord-%s' % SORD_MAJOR_VERSION, - vnum = SORD_LIB_VERSION, + vnum = SORD_VERSION, install_path = '${LIBDIR}', libs = libs, defines = ['SORD_INTERNAL']) @@ -230,8 +209,8 @@ def build(bld): # Documentation autowaf.build_dox(bld, 'SORD', SORD_VERSION, top, out) - # Man page - bld.install_files('${MANDIR}/man1', 'doc/sordi.1') + # Man pages + bld.install_files('${MANDIR}/man1', bld.path.ant_glob('doc/*.1')) bld.add_post_fun(autowaf.run_ldconfig) if bld.env.DOCS: