The NetBSD Project

CVS log for pkgsrc/textproc/json-c/distinfo

[BACK] Up to [] / pkgsrc / textproc / json-c

Request diff between arbitrary revisions

Default branch: MAIN

Revision 1.14 / (download) - annotate - [select for diffs], Thu Aug 24 09:23:14 2023 UTC (4 weeks ago) by wiz
Branch: MAIN
Changes since 1.13: +4 -4 lines
Diff to previous 1.13 (colored)

json-c: update to 0.17.

Upstream provides no change summaries.

Revision 1.13 / (download) - annotate - [select for diffs], Wed Apr 20 20:32:32 2022 UTC (17 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2023Q2-base, pkgsrc-2023Q2, pkgsrc-2023Q1-base, pkgsrc-2023Q1, pkgsrc-2022Q4-base, pkgsrc-2022Q4, pkgsrc-2022Q3-base, pkgsrc-2022Q3, pkgsrc-2022Q2-base, pkgsrc-2022Q2
Changes since 1.12: +4 -4 lines
Diff to previous 1.12 (colored)

json-c: update to 0.16.

0.16 (up to commit 66dcdf5, 2022-04-13)

Deprecated and removed features:
* JSON_C_OBJECT_KEY_IS_CONSTANT is deprecated in favor of
* Direct access to lh_table and lh_entry structure members is deprecated.
  Use access functions instead, lh_table_head(), lh_entry_next(), etc...

New features
* The 0.16 release introduces no new features

Build changes
* Add a DISABLE_EXTRA_LIBS option to skip using libbsd
* Add a DISABLE_JSON_POINTER option to skip compiling in json_pointer support.

Significant changes and bug fixes
* Cap string length at INT_MAX to avoid various issues with very long strings.
* json_object_deep_copy: fix deep copy of strings containing '\0'
* Fix read past end of buffer in the "json_parse" command
* Avoid out of memory accesses in the locally provided vasprintf() function
  (for those platforms that use it)
* Handle allocation failure in json_tokener_new_ex
* Fix use-after-free in json_tokener_new_ex() in the event of printbuf_new() returning NULL
* printbuf_memset(): set gaps to zero - areas within the print buffer which
  have not been initialized by using printbuf_memset
* printbuf: return -1 on invalid arguments (len < 0 or total buffer > INT_MAX)
* sprintbuf(): propagate printbuf_memappend errors back to the caller

* Speed up parsing by replacing ctype functions with simplified, faster
  non-locale-sensitive ones in json_tokener and json_object_to_json_string.
* Neither vertical tab nor formfeed are considered whitespace per the JSON spec
* json_object: speed up creation of objects, calloc() -> malloc() + set fields
* Avoid needless extra strlen() call in json_c_shallow_copy_default() and
  json_object_equal() when the object is known to be a json_type_string.

Other changes
* Validate size arguments in arraylist functions.
* Use getrandom() if available; with GRND_NONBLOCK to allow use of json-c
  very early during boot, such as part of cryptsetup.
* Use arc4random() if it's available.
* random_seed: on error, continue to next method instead of exiting the process
* Close file when unable to read from /dev/urandom in get_dev_random_seed()

Revision 1.12 / (download) - annotate - [select for diffs], Tue Oct 26 11:22:13 2021 UTC (22 months, 3 weeks ago) by nia
Branch: MAIN
CVS Tags: pkgsrc-2022Q1-base, pkgsrc-2022Q1, pkgsrc-2021Q4-base, pkgsrc-2021Q4
Changes since 1.11: +2 -2 lines
Diff to previous 1.11 (colored)

textproc: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Unfetchable distfiles (fetched conditionally?):

Revision 1.11 / (download) - annotate - [select for diffs], Thu Oct 7 15:01:19 2021 UTC (23 months, 2 weeks ago) by nia
Branch: MAIN
Changes since 1.10: +1 -2 lines
Diff to previous 1.10 (colored)

textproc: Remove SHA1 hashes for distfiles

Revision 1.10 / (download) - annotate - [select for diffs], Thu Oct 1 09:16:12 2020 UTC (2 years, 11 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2021Q3-base, pkgsrc-2021Q3, pkgsrc-2021Q2-base, pkgsrc-2021Q2, pkgsrc-2021Q1-base, pkgsrc-2021Q1, pkgsrc-2020Q4-base, pkgsrc-2020Q4
Changes since 1.9: +5 -5 lines
Diff to previous 1.9 (colored)

json-c: update to 0.15.

Next Release 0.15

Deprecated and removed features:
* Deprecate `array_list_new()` in favor of `array_list_new2()`
* Remove config.h.win32

New features
* Add a `JSON_TOKENER_ALLOW_TRAILING_CHARS` flag to allow multiple objects
  to be parsed even when `JSON_TOKENER_STRICT` is set.
* Add `json_object_new_array_ext(int)` and `array_list_new_2(int)` to allow
   arrays to be allocated with the exact size needed, when known.
* Add `json_object_array_shrink()` (and `array_list_shrink()`) and use it in
   json_tokener to minimize the amount of memory used.
* Add a json_parse binary, for use in testing changes (not installed, but
   available in the apps directory).

Build changes
* #639/#621 - Add symbol versions to all exported symbols
* #508/#634 - Always enable -fPIC to allow use of the json-c static library in
   other libraries
* Build both static and shared libraries at the same time.
* #626 - Restore compatibility with cmake 2.8
* #471 - Always create directories with mode 0755, regardless of umask.
* #606/#604 - Improve support for OSes like AIX and IBM i, as well as for
   MINGW32 and old versions of MSVC
* #451/#617 - Add a DISABLE_THREAD_LOCAL_STORAGE cmake option to disable
   the use of thread-local storage.

Significant changes and bug fixes
* Split the internal json_object structure into several sub-types, one for
   each json_type (json_object_object, json_object_string, etc...).
  This improves memory usage and speed, with the benchmark under
   bench/ report 5.8% faster test time and 6%(max RSS)-12%(peak heap)
   less memory usage.
  Memory used just for json_object structures decreased 27%, so use cases
   with fewer arrays and/or strings would benefit more.
* Minimize memory usage in array handling in json_tokener by shrinking
   arrays to the exact number of elements parsed.  On bench/ benchmark:
   9% faster test time, 39%(max RSS)-50%(peak heap) less memory usage.
   Add json_object_array_shrink() and array_list_shrink() functions.
* #616 - Parsing of surrogate pairs in unicode escapes now properly handles
   incremental parsing.
* Fix incremental parsing of numbers, especially those with exponents, e.g.
   so parsing "[0", "e+", "-]" now properly returns an error.
  Strict mode now rejects missing exponents ("0e").
* Successfully return number objects at the top level even when they are
   followed by a "-", "." or "e".  This makes parsing things like "123-45"
   behave consistently with things like "123xyz".

Other changes
* #589 - Detect broken RDRAND during initialization; also, fix segfault
    in the CPUID check.
* #592 - Fix integer overflows to prevert out of bounds write on large input.
* Protect against division by zero in linkhash, when creaed with zero size.
* #602 - Fix json_parse_uint64() internal error checking, leaving the retval
    untouched in more failure cases.
* #614 - Prevent truncation when custom double formatters insert extra \0's

Revision 1.9 / (download) - annotate - [select for diffs], Tue May 19 12:08:31 2020 UTC (3 years, 4 months ago) by nia
Branch: MAIN
CVS Tags: pkgsrc-2020Q3-base, pkgsrc-2020Q3, pkgsrc-2020Q2-base, pkgsrc-2020Q2
Changes since 1.8: +5 -5 lines
Diff to previous 1.8 (colored)

json-c: Update to 0.14

0.14 (up to commit 9ed00a6, 2020/04/14)

Deprecated and removed features:
* bits.h has been removed
* lh_abort() has been removed
* lh_table_lookup() has been removed, use lh_table_lookup_ex() instead.
* Remove TRUE and FALSE defines, use 1 and 0 instead.

Build changes:
## Deprecated and removed features:
* bits.h has been removed
* lh_abort() has been removed
* lh_table_lookup() has been removed, use lh_table_lookup_ex() instead.
* Remove TRUE and FALSE defines, use 1 and 0 instead.
* autoconf support, including, has been removed.  See details about cmake, below.
* With the addition of json_tokener_get_parse_end(), access to internal fields of json_tokener, as well as use of many other symbols and types in json_tokener.h, is deprecated now.
* The use of to build for Android no longer works, and it is unknown how (or if) the new cmake-based build machinery can be used.
    * Reports of success, or pull requests to correct issues are welcome.

## Notable improvements and new features

### Builds and documentation
* Build machinery has been switched to CMake.  See for details about how to build.
    * TL;DR: `mkdir build ; cd build ; cmake -DCMAKE_INSTALL_PREFIX=/some/path ../json-c ; make all test install`
    * To ease the transition, there is a `cmake-configure` wrapper that emulates the old autoconf-based configure script.
    * This has enabled improvements to the build on Windows system; also all public functions have been fixed to be properly exported.  For best results, use Visual Studio 2015 or newer.
* The json-c style guide has been updated to specify the use of clang-format, and all code has been reformatted.
    * Since many lines of code have trivial changes now, when using git blame, be sure to specify -w
* Numerous improvements have been made to the documentation including function effects on refcounts, when passing a NULL is safe, and so on.

### json_tokener changes
* Added a json_tokener_get_parse_end() function to replace direct access of tok->char_offset.
    * The char_offset field, and the rest of the json_tokener structure remain exposed for now, but expect a future release to hide it like is done with json_object_private.h
* json_tokener_parse_ex() now accepts a new JSON_TOKENER_VALIDATE_UTF8 flag to validate that input is UTF8.
    * If validation fails, json_tokener_get_error(tok) will return json_tokener_error_parse_utf8_string (see enum json_tokener_error).

### Other changes and additions
* Add support for unsigned 64-bit integers, uint64_t, to gain one extra bit of magnitude for positive ints.
    * json_tokener will now parse values up to UINT64_MAX (18446744073709551615)
    * Existing methods returning int32_t or int64_t will cap out-of-range values at INT32_MAX or INT64_MAX, preserving existing behavior.
    * The implementation includes the possibility of easily extending this to larger sizes in the future.
* A total of 7 new functions were added:
    * json_object_get_uint64 ( struct json_object const* jso )
    * json_object_new_uint64 ( uint64_t i )
    * json_object_set_uint64 ( struct json_object* jso, uint64_t new_value )
    * json_parse_uint64 ( char const* buf, uint64_t* retval )
        * See description of uint64 support, above.
    * json_tokener_get_parse_end ( struct json_tokener* tok )
        * See details under "json_tokener changes", above.
    * json_object_from_fd_ex ( int fd, int in_depth )
        * Allows the max nesting depth to be specified.
    * json_object_new_null ( )
        * Simply returns NULL.  Its use is not recommended.
* The size of struct json_object has decreased from 96 bytes to 88 bytes.

### Testing
* Many updates were made to test cases, increasing code coverage.
* There is now a quick way (JSONC_TEST_TRACE=1) to turn on shell tracing in tests.
* To run tests, use `make test`; the old "check" target no longer exists.

## Significant bug fixes
For the full list of issues and pull requests since the previous release, please see

* [Issue #389]( Add an assert to explicitly crash when _ref_count is corrupted, instead of a later "double free" error.
* [Issue #407]( fix incorrect casts in calls to ctype functions (isdigit and isspace) so we don't crash when asserts are enabled on certain platforms and characters > 128 are parsed.
* [Issue #418]( Fix docs for json_util_from_fd and json_util_from_file to say that they return NULL on failures.
* [Issue #422]( json_object.c:set errno in json_object_get_double() when called on a json_type_string object with bad content.
* [Issue #453]( Fixed misalignment in JSON serialization when JSON_C_TO_STRING_SPACED and JSON_C_TO_STRING_PRETTY are used together.
* [Issue #463]( fix newlocale() call to use LC_NUMERIC_MASK instead of LC_NUMERIC, and remove incorrect comment.
* [Issue #486]( append a missing ".0" to negative double values to ensure they are serialized as floating point numbers.
* [Issue #488]( use JSON_EXPORT on functions so they are properly exported on Windows.
* [Issue #539]( use an internal-only serializer function in json_object_new_double_s() to avoid potential conflicts with user code that uses the json_object_userdata_to_json_string serializer.

Revision 1.8 / (download) - annotate - [select for diffs], Sat Aug 4 09:53:05 2018 UTC (5 years, 1 month ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2020Q1-base, pkgsrc-2020Q1, pkgsrc-2019Q4-base, pkgsrc-2019Q4, pkgsrc-2019Q3-base, pkgsrc-2019Q3, pkgsrc-2019Q2-base, pkgsrc-2019Q2, pkgsrc-2019Q1-base, pkgsrc-2019Q1, pkgsrc-2018Q4-base, pkgsrc-2018Q4, pkgsrc-2018Q3-base, pkgsrc-2018Q3
Changes since 1.7: +5 -6 lines
Diff to previous 1.7 (colored)

json-c: updated to 0.13.1

* Bump the major version of the .so library generated up to 4.0 to avoid
  conflicts because some downstream packagers of json-c had already done
  their own bump to ".so.3" for a much older 0.12 release.
* Add const size_t json_c_object_sizeof()
* Avoid invalid free (and thus a segfault) when ref_count gets < 0
* fix handling of custom double formats that include a ".0"
* Avoid uninitialized variable warnings in json_object_object_foreach
* Issue 396: fix build for certain uClibc based systems.
* Add a top level fuzz directory for fuzzers run by OSS-Fuzz

This release, being three and a half years after the 0.12 branch (f84d9c),
   has quite a number of changes included.  The following is a sampling of
   the most significant ones.

Since the 0.12 release, 250 issues and pull requests have been closed.
See for a complete list.

Deprecated and removed features:
* All internal use of bits.h has been eliminated.  The file will be removed.
        Do not use: hexdigit(), error_ptr(), error_descrition() and it_error()
* lh_abort() is deprecated.  It will be removed.

Behavior changes:
* Tighten the number parsing algorithm to raise errors instead of truncating
     the results.  For example 12.3.4 or 2015-01-15, which now return null.
         See commit 99d8fc

* Use size_t for array length and size.  Platforms where sizeof(size_t) != sizeof(int) may not be backwards compatible
        See commits 45c56b, 92e9a5 and others.

* Check for failue when allocating memory, returning NULL and errno=ENOMEM.
         See commit 2149a04.

* Change json_object_object_add() return type from void to int, and will return -1 on failures, instead of exiting. (Note: this is not an ABI change)

New features:
* We're aiming to follow RFC 7159 now.

* Add a couple of additional option to json_object_to_json_string_ext:

* Add a json_object_object_add_ex() function to allow for performance
        improvements when certain constraints are known to be true.

* Make serialization format of doubles configurable, in two different ways:
        Call json_object_set_serializer with json_object_double_to_json_string and a custom
         format on each double object, or
        Call json_c_set_serialization_double_format() to set a global or thread-wide format.

* Add utility function for comparing json_objects - json_object_equal()

* Add a way to copy entire object trees: json_object_deep_copy()
* Add json_object_set_<type> function to modify the value of existing json_object's
 without the need to recreate them.  Also add a json_object_int_inc function to
 adjust an int's value.
* Add support for JSON pointer, RFC 6901.  See json_pointer.h
* Add a json_util_get_last_err() function to retrieve the string describing the
 cause of errors, instead of printing to stderr.
* Add perllike hash function for strings, and json_global_set_string_hash() 8f8d03d
* Add a json_c_visit() function to provide a way to iterate over a tree of json-c objects.

Notable bug fixes and other improvements:
* Make reference increment and decrement atomic to allow passing json objects between threads.
* Fix json_object_object_foreach to avoid uninitialized variable warnings.
* Improve performance by removing unneeded data items from hashtable code and reducing duplicate hash computation.
* Improve performance by storing small strings inside json_object
* Improve performance of json_object_to_json_string by removing variadic printf. commit 9ff0f49
* Issue 371: fix parsing of "-Infinity", and avoid needlessly copying the input when doing so.
* Fix stack buffer overflow in json_object_double_to_json_string_format() - commit 2c2deb87
* Fix various potential null ptr deref and int32 overflows
* Issue 332: fix a long-standing bug in array_list_put_idx() where it would attempt to free previously free'd entries due to not checking the current array length.
* Issue 195: use uselocale() instead of setlocale() in json_tokener to behave better in threaded environments.
* Issue 275: fix out of bounds read when handling unicode surrogate pairs.
* Ensure doubles that happen to be a whole number are emitted with ".0" - commit ca7a19
* for Visual Studio, use a snprintf/vsnprintf wrapper that ensures the string is terminated.
* Fix double to int cast overflow in json_object_get_int64.
* Clamp double to int32 when narrowing in json_object_get_int.
* Use strtoll() to parse ints - instead of sscanf
* Miscellaneous smaller changes, including removing unused variables, fixing warning
 about uninitialized variables adding const qualifiers, reformatting code, etc...

Revision 1.7 / (download) - annotate - [select for diffs], Sun Jun 12 14:37:37 2016 UTC (7 years, 3 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2018Q2-base, pkgsrc-2018Q2, pkgsrc-2018Q1-base, pkgsrc-2018Q1, pkgsrc-2017Q4-base, pkgsrc-2017Q4, pkgsrc-2017Q3-base, pkgsrc-2017Q3, pkgsrc-2017Q2-base, pkgsrc-2017Q2, pkgsrc-2017Q1-base, pkgsrc-2017Q1, pkgsrc-2016Q4-base, pkgsrc-2016Q4, pkgsrc-2016Q3-base, pkgsrc-2016Q3, pkgsrc-2016Q2-base, pkgsrc-2016Q2
Changes since 1.6: +5 -6 lines
Diff to previous 1.6 (colored)

Updated json-c to 0.12.1.


  * Minimal changes to address compile issues.

Revision 1.6 / (download) - annotate - [select for diffs], Wed Nov 4 01:59:37 2015 UTC (7 years, 10 months ago) by agc
Branch: MAIN
CVS Tags: pkgsrc-2016Q1-base, pkgsrc-2016Q1, pkgsrc-2015Q4-base, pkgsrc-2015Q4
Changes since 1.5: +2 -1 lines
Diff to previous 1.5 (colored)

Add SHA512 digests for distfiles for textproc category

Problems found locating distfiles:
	Package cabocha: missing distfile cabocha-0.68.tar.bz2
	Package convertlit: missing distfile
	Package php-enchant: missing distfile php-enchant/enchant-1.1.0.tgz

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.

Revision 1.5 / (download) - annotate - [select for diffs], Sat May 10 04:09:41 2014 UTC (9 years, 4 months ago) by pho
Branch: MAIN
CVS Tags: pkgsrc-2015Q3-base, pkgsrc-2015Q3, pkgsrc-2015Q2-base, pkgsrc-2015Q2, pkgsrc-2015Q1-base, pkgsrc-2015Q1, pkgsrc-2014Q4-base, pkgsrc-2014Q4, pkgsrc-2014Q3-base, pkgsrc-2014Q3, pkgsrc-2014Q2-base, pkgsrc-2014Q2
Changes since 1.4: +2 -1 lines
Diff to previous 1.4 (colored)

Fix build errors on GCC < 4.2

Revision 1.4 / (download) - annotate - [select for diffs], Sun Apr 20 00:26:15 2014 UTC (9 years, 5 months ago) by ryoon
Branch: MAIN
Changes since 1.3: +2 -1 lines
Diff to previous 1.3 (colored)


* Fix -Werror build failure
* Update ABI version, warned by pkglint

Revision 1.3 / (download) - annotate - [select for diffs], Sun Apr 20 00:09:04 2014 UTC (9 years, 5 months ago) by ryoon
Branch: MAIN
Changes since 1.2: +4 -4 lines
Diff to previous 1.2 (colored)

Update to 0.12

* Security update for CVE-2013-6370 and CVE-2013-6371
* Update API version


  * Address security issues:
    * CVE-2013-6371: hash collision denial of service
    * CVE-2013-6370: buffer overflow if size_t is larger than int

  * Avoid potential overflow in json_object_get_double

  * Eliminate the mc_abort() function and MC_ABORT macro.

  * Make the json_tokener_errors array local.  It has been deprecated for
     a while, and json_tokener_error_desc() should be used instead.

  * change the floating point output format to %.17g so values with
     more than 6 digits show up in the output.

  * Remove the old name compatibility support.  The library is
      only created as now and headers are only installed
      into the ${prefix}/json-c directory.

  * When supported by the linker, add the -Bsymbolic-functions flag.

  * Various changes to fix the build on MSVC.

  * Make strict mode more strict:
    * number must not start with 0
    * no single-quote strings
    * no comments
    * trailing char not allowed
    * only allow lowercase literals

  * Added a json_object_new_double_s() convenience function to allow
    an exact string representation of a double to be specified when
    creating the object and use it in json_tokener_parse_ex() so
    a re-serialized object more exactly matches the input.

  * Add support NaN and Infinity

Revision 1.2 / (download) - annotate - [select for diffs], Mon Nov 25 11:59:08 2013 UTC (9 years, 9 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2014Q1-base, pkgsrc-2014Q1, pkgsrc-2013Q4-base, pkgsrc-2013Q4
Changes since 1.1: +4 -5 lines
Diff to previous 1.1 (colored)

Update to 0.11:


  * IMPORTANT: the name of the library has changed to and
     the header files are now in include/json-c.
     The pkgconfig name has also changed from json to json-c.
     You should change your build to use appropriate -I and -l options.
     A compatibility shim is in place so builds using the old name will
     continue to work, but that will be removed in the next release.
  * Maximum recursion depth is now a runtime option.
     json_tokener_new() is provided for compatibility.
  * Include json_object_iterator.h in the installed headers.
  * Add support for building on Android.
  * Rewrite json_object_object_add to replace just the value if the key already exists so keys remain valid.
  * Make it safe to delete keys while iterating with the json_object_object_foreach macro.
  * Add a json_set_serializer() function to allow the string output of a json_object to be customized.
  * Make float parsing locale independent.
  * Add a json_tokener_set_flags() function and a JSON_TOKENER_STRICT flag.
  * Enable -Werror when building.
  * speed improvements to parsing 64-bit integers on systems with working sscanf
  * Add a json_object_object_length function.
  * Fix a bug (buffer overrun) when expanding arrays to more than 64 entries.

Revision 1.1 / (download) - annotate - [select for diffs], Thu Oct 11 15:40:40 2012 UTC (10 years, 11 months ago) by ryoon
Branch: MAIN
CVS Tags: pkgsrc-2013Q3-base, pkgsrc-2013Q3, pkgsrc-2013Q2-base, pkgsrc-2013Q2, pkgsrc-2013Q1-base, pkgsrc-2013Q1, pkgsrc-2012Q4-base, pkgsrc-2012Q4

Import json-c-0.10 as textproc/json-c.

JSON-C implements a reference counting object model that allows
you to easily construct JSON objects in C, output them as JSON
formatted strings and parse JSON formatted strings back into the
C representation of JSON objects.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

CVSweb <>