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]

Reply via email to