Hello community, here is the log from the commit of package serd for openSUSE:Factory checked in at 2013-01-08 16:43:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/serd (Old) and /work/SRC/openSUSE:Factory/.serd.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "serd", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/serd/serd.changes 2012-08-27 16:56:48.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.serd.new/serd.changes 2013-01-08 16:43:51.000000000 +0100 @@ -1,0 +2,12 @@ +Tue Jan 8 11:38:10 UTC 2013 - [email protected] + +- Update to 0.18.2 + * Fix crash when serd_node_new_decimal is called with infinity or NaN + * Fix crash when resolving against non-standard base URIs + * Fix bug that caused "a" abbreviation in non-predicate position + * Disable timestamps in HTML documentation for reproducible build + * Fix clashing symbol "error" in amalgamation build + * Update to waf 1.7.8 and autowaf r90 (install docs to versioned directory) +- Remove serd-0.18.0-build_compare.patch. Applied upstream. + +------------------------------------------------------------------- Old: ---- serd-0.18.0-build_compare.patch serd-0.18.0.tar.bz2 New: ---- serd-0.18.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ serd.spec ++++++ --- /var/tmp/diff_new_pack.kw8rim/_old 2013-01-08 16:43:52.000000000 +0100 +++ /var/tmp/diff_new_pack.kw8rim/_new 2013-01-08 16:43:52.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package serd # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 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,14 +19,13 @@ %define soname 0 Name: serd -Version: 0.18.0 +Version: 0.18.2 Release: 0 Summary: A lightweight C library for RDF syntax License: ISC Group: System/Libraries Url: http://drobilla.net/software/serd/ Source0: http://download.drobilla.net/serd-%{version}.tar.bz2 -Patch0: serd-0.18.0-build_compare.patch BuildRequires: doxygen BuildRequires: graphviz BuildRequires: pkg-config @@ -59,7 +58,6 @@ %prep %setup -q -%patch0 %build export CFLAGS='%{optflags}' @@ -94,7 +92,7 @@ %{_libdir}/libserd-0.so %{_includedir}/serd-0/ %{_libdir}/pkgconfig/serd-0.pc -%{_defaultdocdir}/serd/ +%{_defaultdocdir}/serd-0/ %{_mandir}/man3/* %changelog ++++++ serd-0.18.0.tar.bz2 -> serd-0.18.2.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/serd-0.18.0/NEWS new/serd-0.18.2/NEWS --- old/serd-0.18.0/NEWS 2012-08-23 06:20:08.000000000 +0200 +++ new/serd-0.18.2/NEWS 2012-12-23 03:32:17.000000000 +0100 @@ -1,3 +1,14 @@ +serd (0.18.2) stable; + + * Fix crash when serd_node_new_decimal is called with infinity or NaN + * Fix crash when resolving against non-standard base URIs + * Fix bug that caused "a" abbreviation in non-predicate position + * Disable timestamps in HTML documentation for reproducible build + * Fix clashing symbol "error" in amalgamation build + * Update to waf 1.7.8 and autowaf r90 (install docs to versioned directory) + + -- David Robillard <[email protected]> Sat, 22 Dec 2012 21:32:15 -0500 + serd (0.18.0) stable; * Support digits at start of local names as per new Turtle grammar diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/serd-0.18.0/doc/reference.doxygen.in new/serd-0.18.2/doc/reference.doxygen.in --- old/serd-0.18.0/doc/reference.doxygen.in 2012-08-23 05:42:59.000000000 +0200 +++ new/serd-0.18.2/doc/reference.doxygen.in 2012-11-22 18:06:15.000000000 +0100 @@ -939,7 +939,7 @@ # 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/serd-0.18.0/src/node.c new/serd-0.18.2/src/node.c --- old/serd-0.18.0/src/node.c 2012-08-23 05:42:59.000000000 +0200 +++ new/serd-0.18.2/src/node.c 2012-12-23 03:30:12.000000000 +0100 @@ -22,6 +22,11 @@ #include <math.h> #include <float.h> +#ifdef _WIN32 +# define isnan(x) _isnan(x) +# define isinf(x) (!_finite(x)) +#endif + SERD_API SerdNode serd_node_from_string(SerdType type, const uint8_t* buf) @@ -211,6 +216,10 @@ SerdNode serd_node_new_decimal(double d, unsigned frac_digits) { + if (isnan(d) || isinf(d)) { + return SERD_NODE_NULL; + } + const double abs_d = fabs(d); const unsigned int_digits = (unsigned)fmax(1.0, ceil(log10(abs_d + 1))); char* buf = (char*)calloc(int_digits + frac_digits + 3, 1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/serd-0.18.0/src/reader.c new/serd-0.18.2/src/reader.c --- old/serd-0.18.0/src/reader.c 2012-08-23 05:42:59.000000000 +0200 +++ new/serd-0.18.2/src/reader.c 2012-12-23 03:31:12.000000000 +0100 @@ -92,7 +92,7 @@ }; static int -error(SerdReader* reader, SerdStatus st, const char* fmt, ...) +r_err(SerdReader* reader, SerdStatus st, const char* fmt, ...) { va_list args; va_start(args, fmt); @@ -152,7 +152,7 @@ { const uint8_t c = peek_byte(reader); if (c != byte) { - return error(reader, SERD_ERR_BAD_SYNTAX, + return r_err(reader, SERD_ERR_BAD_SYNTAX, "expected `%c', not `%c'\n", byte, c); } return eat_byte_safe(reader, byte); @@ -275,7 +275,7 @@ if (in_range(c, 0x30, 0x39) || in_range(c, 0x41, 0x46)) { return eat_byte_safe(reader, c); } else { - return error(reader, SERD_ERR_BAD_SYNTAX, + return r_err(reader, SERD_ERR_BAD_SYNTAX, "invalid hexadecimal digit `%c'\n", c); } } @@ -303,7 +303,7 @@ } else if (c < 0x00110000) { size = 4; } else { - error(reader, SERD_ERR_BAD_SYNTAX, + r_err(reader, SERD_ERR_BAD_SYNTAX, "unicode character 0x%X out of range\n", c); push_replacement(reader, dest); return true; @@ -404,7 +404,7 @@ static inline SerdStatus bad_char(SerdReader* reader, Ref dest, const char* fmt, uint8_t c) { - error(reader, SERD_ERR_BAD_SYNTAX, fmt, c); + r_err(reader, SERD_ERR_BAD_SYNTAX, fmt, c); push_replacement(reader, dest); // Skip bytes until the next start byte @@ -460,7 +460,7 @@ const uint8_t c = peek_byte(reader); assert(c != '\\'); // Only called from methods that handle escapes first if (c == '\0') { - error(reader, SERD_ERR_BAD_SYNTAX, "unexpected end of input\n", c); + r_err(reader, SERD_ERR_BAD_SYNTAX, "unexpected end of input\n", c); return SERD_ERR_BAD_SYNTAX; } else if (c < 0x20) { return bad_char(reader, dest, @@ -499,7 +499,7 @@ if (read_scharacter_escape(reader, dest, flags)) { return SERD_SUCCESS; } else { - error(reader, SERD_ERR_BAD_SYNTAX, + r_err(reader, SERD_ERR_BAD_SYNTAX, "invalid escape `\\%c'\n", peek_byte(reader)); return SERD_ERR_BAD_SYNTAX; } @@ -524,7 +524,7 @@ if (read_scharacter_escape(reader, dest, flags)) { return SERD_SUCCESS; } else { - error(reader, SERD_ERR_BAD_SYNTAX, + r_err(reader, SERD_ERR_BAD_SYNTAX, "invalid escape `\\%c'\n", peek_byte(reader)); return SERD_ERR_BAD_SYNTAX; } @@ -547,7 +547,7 @@ if (read_ucharacter_escape(reader, dest)) { return SERD_SUCCESS; } else { - error(reader, SERD_ERR_BAD_SYNTAX, + r_err(reader, SERD_ERR_BAD_SYNTAX, "invalid escape `\\%c'\n", peek_byte(reader)); return SERD_FAILURE; } @@ -716,7 +716,7 @@ { uint8_t c = peek_byte(reader); if (c == '_') { - error(reader, SERD_ERR_BAD_SYNTAX, "unexpected `_'\n"); + r_err(reader, SERD_ERR_BAD_SYNTAX, "unexpected `_'\n"); return pop_node(reader, dest); } TRY_RET(c = read_nameStartChar(reader)); @@ -750,7 +750,7 @@ { uint8_t c = peek_byte(reader); if (!in_range(c, 'a', 'z')) { - return error(reader, SERD_ERR_BAD_SYNTAX, "unexpected `%c'\n", c); + return r_err(reader, SERD_ERR_BAD_SYNTAX, "unexpected `%c'\n", c); } Ref ref = push_node(reader, SERD_LITERAL, "", 0); push_byte(reader, ref, eat_byte_safe(reader, c)); @@ -804,7 +804,7 @@ uint8_t c; if (at_least_one) { if (!is_digit((c = peek_byte(reader)))) { - return error(reader, SERD_ERR_BAD_SYNTAX, "expected digit\n"); + return r_err(reader, SERD_ERR_BAD_SYNTAX, "expected digit\n"); } push_byte(reader, str, eat_byte_safe(reader, c)); } @@ -966,7 +966,7 @@ reader->bprefix ? (char*)reader->bprefix : "", reader->bprefix_len); if (!read_name(reader, ref)) { - return error(reader, SERD_ERR_BAD_SYNTAX, + return r_err(reader, SERD_ERR_BAD_SYNTAX, "invalid character at start of name\n"); } if (reader->syntax == SERD_TURTLE) { @@ -975,7 +975,7 @@ memcpy((char*)buf, "docid", 5); // Prevent clash reader->seen_genid = true; } else if (reader->seen_genid && !strncmp(buf, "docid", 5)) { - error(reader, SERD_ERR_ID_CLASH, + r_err(reader, SERD_ERR_ID_CLASH, "found both `genid' and `docid' IDs, prefix required\n"); return pop_node(reader, ref); } @@ -1049,7 +1049,7 @@ case '(': return read_collection(reader, ctx, dest); default: - return error(reader, SERD_ERR_BAD_SYNTAX, "invalid blank node\n"); + return r_err(reader, SERD_ERR_BAD_SYNTAX, "invalid blank node\n"); } } @@ -1321,7 +1321,7 @@ switch (peek_byte(reader)) { case 'b': return read_base(reader); case 'p': return read_prefixID(reader); - default: return error(reader, SERD_ERR_BAD_SYNTAX, "invalid directive\n"); + default: return r_err(reader, SERD_ERR_BAD_SYNTAX, "invalid directive\n"); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/serd-0.18.0/src/uri.c new/serd-0.18.2/src/uri.c --- old/serd-0.18.0/src/uri.c 2012-08-23 05:42:59.000000000 +0200 +++ new/serd-0.18.2/src/uri.c 2012-12-23 03:30:12.000000000 +0100 @@ -325,10 +325,7 @@ const uint8_t* begin = remove_dot_segments(path->buf, path->len, &up); const uint8_t* end = path->buf + path->len; - if (base->buf) { - assert(base->len > 0); - assert(base->buf[0] == '/'); - + if (base->buf && base->len > 0) { // Find the up'th last slash const uint8_t* base_last = (base->buf + base->len - 1); ++up; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/serd-0.18.0/src/writer.c new/serd-0.18.2/src/writer.c --- old/serd-0.18.0/src/writer.c 2012-08-23 05:42:59.000000000 +0200 +++ new/serd-0.18.2/src/writer.c 2012-12-23 03:31:12.000000000 +0100 @@ -103,7 +103,7 @@ } TextContext; static void -error(SerdWriter* writer, SerdStatus st, const char* fmt, ...) +w_err(SerdWriter* writer, SerdStatus st, const char* fmt, ...) { va_list args; va_start(args, fmt); @@ -219,7 +219,7 @@ size = 4; c = in & 0x07; } else { - error(writer, SERD_ERR_BAD_ARG, "invalid UTF-8: %X\n", in); + w_err(writer, SERD_ERR_BAD_ARG, "invalid UTF-8: %X\n", in); const uint8_t replacement_char[] = { 0xEF, 0xBF, 0xBD }; len += sink(replacement_char, sizeof(replacement_char), writer); return len; @@ -364,7 +364,7 @@ switch (writer->syntax) { case SERD_NTRIPLES: if (serd_env_expand(writer->env, node, &uri_prefix, &uri_suffix)) { - error(writer, SERD_ERR_BAD_CURIE, + w_err(writer, SERD_ERR_BAD_CURIE, "undefined namespace prefix `%s'\n", node->buf); return false; } @@ -408,7 +408,7 @@ break; case SERD_URI: has_scheme = serd_uri_string_has_scheme(node->buf); - if ((writer->syntax == SERD_TURTLE) + if (field == FIELD_PREDICATE && (writer->syntax == SERD_TURTLE) && !strcmp((const char*)node->buf, NS_RDF "type")) { sink("a", 1, writer); break; @@ -603,7 +603,7 @@ return SERD_SUCCESS; } if (serd_stack_is_empty(&writer->anon_stack)) { - error(writer, SERD_ERR_UNKNOWN, + w_err(writer, SERD_ERR_UNKNOWN, "unexpected end of anonymous node\n"); return SERD_ERR_UNKNOWN; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/serd-0.18.0/tests/serd_test.c new/serd-0.18.2/tests/serd_test.c --- old/serd-0.18.0/tests/serd_test.c 2012-08-23 05:42:58.000000000 +0200 +++ new/serd-0.18.2/tests/serd_test.c 2012-12-23 03:30:12.000000000 +0100 @@ -25,6 +25,11 @@ #define USTR(s) ((const uint8_t*)(s)) +#ifdef _WIN32 +# define INFINITY (DBL_MAX + DBL_MAX) +# define NAN (INFINITY - INFINITY) +#endif + static int failure(const char* fmt, ...) { @@ -114,20 +119,23 @@ // Test serd_node_new_decimal const double dbl_test_nums[] = { - 0.0, 9.0, 10.0, .01, 2.05, -16.00001, 5.000000005, 0.0000000001 + 0.0, 9.0, 10.0, .01, 2.05, -16.00001, 5.000000005, 0.0000000001, NAN, INFINITY }; const char* dbl_test_strs[] = { - "0.0", "9.0", "10.0", "0.01", "2.05", "-16.00001", "5.00000001", "0.0" + "0.0", "9.0", "10.0", "0.01", "2.05", "-16.00001", "5.00000001", "0.0", NULL, NULL }; for (unsigned i = 0; i < sizeof(dbl_test_nums) / sizeof(double); ++i) { - SerdNode node = serd_node_new_decimal(dbl_test_nums[i], 8); - if (strcmp((const char*)node.buf, (const char*)dbl_test_strs[i])) { + SerdNode node = serd_node_new_decimal(dbl_test_nums[i], 8); + const bool pass = (node.buf && dbl_test_strs[i]) + ? !strcmp((const char*)node.buf, (const char*)dbl_test_strs[i]) + : ((const char*)node.buf == dbl_test_strs[i]); + if (!pass) { return failure("Serialised `%s' != %s\n", node.buf, dbl_test_strs[i]); } - const size_t len = strlen((const char*)node.buf); + const size_t len = node.buf ? strlen((const char*)node.buf) : 0; if (node.n_bytes != len || node.n_chars != len) { return failure("Length %zu,%zu != %zu\n", node.n_bytes, node.n_chars, len); Files old/serd-0.18.0/waf and new/serd-0.18.2/waf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/serd-0.18.0/wscript new/serd-0.18.2/wscript --- old/serd-0.18.0/wscript 2012-08-23 06:13:45.000000000 +0200 +++ new/serd-0.18.2/wscript 2012-12-23 03:32:08.000000000 +0100 @@ -3,28 +3,22 @@ import os import shutil 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) -SERD_VERSION = '0.18.0' -SERD_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 -# Serd uses the same version number for both library and package -SERD_LIB_VERSION = SERD_VERSION +SERD_VERSION = '0.18.2' +SERD_MAJOR_VERSION = '0' -# Variables for 'waf dist' -APPNAME = 'serd' -VERSION = SERD_VERSION - -# Mandatory variables -top = '.' -out = 'build' +# Mandatory waf variables +APPNAME = 'serd' # Package name for waf dist +VERSION = SERD_VERSION # Package version for waf dist +top = '.' # Source directory +out = 'build' # Build directory def options(opt): opt.load('compiler_c') @@ -66,48 +60,39 @@ if Options.options.largefile: conf.env.append_unique('DEFINES', ['_FILE_OFFSET_BITS=64']) - # Check for gcov library (for test coverage) if conf.env.BUILD_TESTS: - conf.check_cc(lib='gcov', - define_name='HAVE_GCOV', - mandatory=False) - - # Check for fmax - conf.check(function_name='fmax', - header_name='math.h', - define_name='HAVE_FMAX', - lib=['m'], - mandatory=False) - - # Check for posix_memalign - conf.check(function_name='posix_memalign', - header_name='stdlib.h', - define_name='HAVE_POSIX_MEMALIGN', - defines=['_POSIX_C_SOURCE=201112L'], - mandatory=False) - - # Check for posix_fadvise - conf.check(function_name='posix_fadvise', - header_name='fcntl.h', - define_name='HAVE_POSIX_FADVISE', - defines=['_POSIX_C_SOURCE=201112L'], - mandatory=False) - - # Check for fileno - conf.check(function_name='fileno', - header_name='stdio.h', - define_name='HAVE_FILENO', - defines=['_POSIX_C_SOURCE=201112L'], - mandatory=False) + conf.check(lib = 'gcov', + define_name = 'HAVE_GCOV', + mandatory = False) + + conf.check(function_name = 'fmax', + header_name = 'math.h', + define_name = 'HAVE_FMAX', + lib = ['m'], + mandatory = False) + + conf.check(function_name = 'posix_memalign', + header_name = 'stdlib.h', + define_name = 'HAVE_POSIX_MEMALIGN', + defines = ['_POSIX_C_SOURCE=201112L'], + mandatory = False) + + conf.check(function_name = 'posix_fadvise', + header_name = 'fcntl.h', + define_name = 'HAVE_POSIX_FADVISE', + defines = ['_POSIX_C_SOURCE=201112L'], + mandatory = False) + + conf.check(function_name = 'fileno', + header_name = 'stdio.h', + define_name = 'HAVE_FILENO', + defines = ['_POSIX_C_SOURCE=201112L'], + mandatory = False) autowaf.define(conf, 'SERD_VERSION', SERD_VERSION) + autowaf.set_lib_env(conf, 'serd', SERD_VERSION) conf.write_config_header('serd_config.h', remove=False) - conf.env.INCLUDES_SERD = ['%s/serd-%s' % (conf.env.INCLUDEDIR, - SERD_MAJOR_VERSION)] - conf.env.LIBPATH_SERD = [conf.env.LIBDIR] - conf.env.LIB_SERD = ['serd-%s' % SERD_MAJOR_VERSION]; - autowaf.display_msg(conf, 'Utilities', str(conf.env.BUILD_UTILS)) autowaf.display_msg(conf, 'Unit tests', str(conf.env.BUILD_TESTS)) print('') @@ -147,7 +132,7 @@ lib = libs, name = 'libserd', target = 'serd-%s' % SERD_MAJOR_VERSION, - vnum = SERD_LIB_VERSION, + vnum = SERD_VERSION, install_path = '${LIBDIR}', defines = defines + ['SERD_SHARED', 'SERD_INTERNAL'], cflags = libflags) @@ -161,7 +146,7 @@ lib = libs, name = 'libserd_static', target = 'serd-%s' % SERD_MAJOR_VERSION, - vnum = SERD_LIB_VERSION, + vnum = SERD_VERSION, install_path = '${LIBDIR}', defines = defines + ['SERD_INTERNAL']) -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
