./textproc/json-c, JSON library in C

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 0.14, Package name: json-c-0.14, Maintainer: ryoon

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.

Required to build:

Master sites:

SHA1: 5a8ddc6d03f2b8be504f5f618eb75800cf887d51
RMD160: 2f6dfc51a03205274c7b2da4351899b0a192f935
Filesize: 314.138 KB

Version history: (Expand)

CVS history: (Expand)

   2020-05-21 12:38:14 by Nia Alarie | Files touched by this commit (1)
Log message:
json-c: api/abi bump
   2020-05-19 14:24:33 by Nia Alarie | Files touched by this commit (1)
Log message:
json-c: Explicitly disable doxygen and werror
   2020-05-19 14:08:31 by Nia Alarie | Files touched by this commit (3) | Package updated
Log message:
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 autogen.sh, 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 Android.configure.mk 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 README.md 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 \ 
    * 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_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 issues_closed_for_0.14.md

* [Issue #389](https://github.com/json-c/json-c/issues/389): Add an assert to \ 
explicitly crash when _ref_count is corrupted, instead of a later "double \ 
free" error.
* [Issue #407](https://github.com/json-c/json-c/issues/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](https://github.com/json-c/json-c/issues/418): Fix docs for \ 
json_util_from_fd and json_util_from_file to say that they return NULL on \ 
* [Issue #422](https://github.com/json-c/json-c/issues/422): json_object.c:set \ 
errno in json_object_get_double() when called on a json_type_string object with \ 
bad content.
* [Issue #453](https://github.com/json-c/json-c/issues/453): Fixed misalignment \ 
are used together.
* [Issue #463](https://github.com/json-c/json-c/issues/463): fix newlocale() \ 
call to use LC_NUMERIC_MASK instead of LC_NUMERIC, and remove incorrect comment.
* [Issue #486](https://github.com/json-c/json-c/issues/486): append a missing \ 
".0" to negative double values to ensure they are serialized as \ 
floating point numbers.
* [Issue #488](https://github.com/json-c/json-c/issues/488): use JSON_EXPORT on \ 
functions so they are properly exported on Windows.
* [Issue #539](https://github.com/json-c/json-c/issues/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.
   2019-09-24 18:08:30 by Kamil Rytarowski | Files touched by this commit (1)
Log message:
json-c: Fix build with clang10svn

Drop -Werror due to -Werror,-Wimplicit-int-float-conversion.

Issie fixed upstream in:

https://github.com/json-c/json-c/commit … ae8b.patch

Keep another rm:-Werror for gcc3/4, in order to not change the bahavior
once this package will be upgraded.
   2018-08-04 11:53:05 by Adam Ciarcinski | Files touched by this commit (4) | Package updated
Log message:
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 issues_closed_for_0.13.md 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 \ 
 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 \ 
* 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 \ 
* 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...
   2018-05-14 12:08:00 by Jonathan Perkin | Files touched by this commit (1)
Log message:
json-c: Disable implicit fallthrough warnings.

This package uses them pretty heavily.
   2016-06-12 16:37:37 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
Updated json-c to 0.12.1.


  * Minimal changes to address compile issues.
   2015-11-04 03:00:17 by Alistair G. Crooks | Files touched by this commit (797)
Log message:
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 clit18src.zip
	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.