diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/Manifest index b4d6143a91..8d590df3b2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/Manifest @@ -1,2 +1,2 @@ -DIST jansson-2.12.tar.gz 489154 BLAKE2B cf6bc6d03daba921ec5e033bf57ff0055741cc935adb14d5d4a5f04056fa93c292bf88367db071ef7bb32fbc5d2d6f5f2ce658815a17939bd38ed5c0676ad091 SHA512 e40bdafdfa1fa663f71e00c06d7bfc98cff4ed3581a147894e5272e50fa5f9b9a7af6aaca41ff423a2ddd2554a192b36efcc32f6a3c98c727e9f819b955357cb DIST jansson-2.13.1.tar.gz 531924 BLAKE2B e627bd2ba69bf01b053ff13dee903056db86999f774d6863517e67cef7dc9ddcaa747f2edca9de86bd83f37940a394ac9907f7d58069607ee529af08d8514d57 SHA512 e32be6665e41cf1763608c2f1ac4ce0824d4d7ffa5f4a5824cefde279250fdd399d49ba93d8894e16a473731f629b846554654347f027ca9a0a96ed047f10192 +DIST jansson-2.14.tar.gz 535618 BLAKE2B eb514ff222444d4c0d1ef6b99150e3e43bd4d7a1bec3d66e5ece8bc59ac19a0898d9eb061cacad52afda7fe172ec6df46b5a90952707422f56daae53f82c9427 SHA512 5a592776c7ba8c0b1f5efaf813f77948bbc4bda168a72d221d176af0cf61038e26c1f30795433be10e2fc5069d5763d11852a8574774906a9f8ad261ac30109c diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/files/jansson-2.13.1-sphinx3.patch b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/files/jansson-2.13.1-sphinx3.patch new file mode 100644 index 0000000000..e611896e9c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/files/jansson-2.13.1-sphinx3.patch @@ -0,0 +1,269 @@ +Rebase pull request #543 onto v2.13.1 + +Allows jansson documentation to compile with Sphinx-3.0 + +Squashed commit messages below: + + +pick 798d40c doc: convert refcounting directive to a class + +Directive functions are no longer supported in Sphinx-3.0 +but directive classes have been supported since early 1.x + + +pick 9431889 doc: do not use references for standard C types or file names + +Use double-backtick quoting instead. It has the same effect +(because these links had nowhere to link to) but it does not +result in loud warnings about broken references by default with Sphinx-3.x. + + +pick c329fd7 doc: add return types for function-like macros + +The Sphinx-3.0 c:function:: directive requires the return type. + +Sphinx-3.0 also adds function-like macro support to the c:macro:: +directive, which Sphinx-1.x and Sphinx-2.x do not support, but it +is probably a good idea to keep compatibility with slightly older +Sphinx for now. + +diff --git a/CHANGES b/CHANGES +index a374a86..256fde1 100644 +--- a/CHANGES ++++ b/CHANGES +@@ -8,7 +8,7 @@ Released 2020-05-07 + - Include `jansson_version_str()` and `jansson_version_cmp()` in + shared library. (#534) + +- - Include `scripts/` in tarball. (#535) ++ - Include ``scripts/`` in tarball. (#535) + + + Version 2.13 +@@ -127,7 +127,7 @@ Released 2018-02-09 + + - Work around gcc's -Wimplicit-fallthrough. + +- - Fix CMake detection of `sys/types.h` header (#375). ++ - Fix CMake detection of ``sys/types.h`` header (#375). + + - Fix `jansson.pc` generated by CMake to be more consistent with the one + generated using GNU Autotools (#368). +diff --git a/doc/apiref.rst b/doc/apiref.rst +index c3a814f..94c5726 100644 +--- a/doc/apiref.rst ++++ b/doc/apiref.rst +@@ -145,33 +145,33 @@ Type + .. function:: int json_typeof(const json_t *json) + + Return the type of the JSON value (a :type:`json_type` cast to +- :type:`int`). *json* MUST NOT be *NULL*. This function is actually ++ ``int``). *json* MUST NOT be *NULL*. This function is actually + implemented as a macro for speed. + +-.. function:: json_is_object(const json_t *json) +- json_is_array(const json_t *json) +- json_is_string(const json_t *json) +- json_is_integer(const json_t *json) +- json_is_real(const json_t *json) +- json_is_true(const json_t *json) +- json_is_false(const json_t *json) +- json_is_null(const json_t *json) ++.. function:: int json_is_object(const json_t *json) ++ int json_is_array(const json_t *json) ++ int json_is_string(const json_t *json) ++ int json_is_integer(const json_t *json) ++ int json_is_real(const json_t *json) ++ int json_is_true(const json_t *json) ++ int json_is_false(const json_t *json) ++ int json_is_null(const json_t *json) + + These functions (actually macros) return true (non-zero) for values + of the given type, and false (zero) for values of other types and + for *NULL*. + +-.. function:: json_is_number(const json_t *json) ++.. function:: int json_is_number(const json_t *json) + + Returns true for values of types ``JSON_INTEGER`` and + ``JSON_REAL``, and false for other types and for *NULL*. + +-.. function:: json_is_boolean(const json_t *json) ++.. function:: int json_is_boolean(const json_t *json) + + Returns true for types ``JSON_TRUE`` and ``JSON_FALSE``, and false + for values of other types and for *NULL*. + +-.. function:: json_boolean_value(const json_t *json) ++.. function:: int json_boolean_value(const json_t *json) + + Alias of :func:`json_is_true()`, i.e. returns 1 for ``JSON_TRUE`` + and 0 otherwise. +@@ -594,7 +594,7 @@ A JSON array is an ordered collection of other JSON values. + Appends all elements in *other_array* to the end of *array*. + Returns 0 on success and -1 on error. + +-.. function:: json_array_foreach(array, index, value) ++.. function:: void json_array_foreach(array, index, value) + + Iterate over every element of ``array``, running the block + of code that follows each time with the proper values set to +@@ -732,11 +732,11 @@ allowed in object keys. + recursively merged with the corresponding values in *object* if they are also + objects, instead of overwriting them. Returns 0 on success or -1 on error. + +-.. function:: json_object_foreach(object, key, value) ++.. function:: void json_object_foreach(object, key, value) + + Iterate over every key-value pair of ``object``, running the block + of code that follows each time with the proper values set to +- variables ``key`` and ``value``, of types :type:`const char *` and ++ variables ``key`` and ``value``, of types ``const char *`` and + :type:`json_t *` respectively. Example:: + + /* obj is a JSON object */ +@@ -764,7 +764,7 @@ allowed in object keys. + .. versionadded:: 2.3 + + +-.. function:: json_object_foreach_safe(object, tmp, key, value) ++.. function:: void json_object_foreach_safe(object, tmp, key, value) + + Like :func:`json_object_foreach()`, but it's safe to call + ``json_object_del(object, key)`` during iteration. You need to pass +@@ -1488,17 +1488,17 @@ arguments. + Output a JSON null value. No argument is consumed. + + ``b`` (boolean) [int] +- Convert a C :type:`int` to JSON boolean value. Zero is converted ++ Convert a C ``int`` to JSON boolean value. Zero is converted + to ``false`` and non-zero to ``true``. + + ``i`` (integer) [int] +- Convert a C :type:`int` to JSON integer. ++ Convert a C ``int`` to JSON integer. + + ``I`` (integer) [json_int_t] + Convert a C :type:`json_int_t` to JSON integer. + + ``f`` (real) [double] +- Convert a C :type:`double` to JSON real. ++ Convert a C ``double`` to JSON real. + + ``o`` (any value) [json_t \*] + Output any given JSON value as-is. If the value is added to an +@@ -1625,20 +1625,20 @@ type whose address should be passed. + Expect a JSON null value. Nothing is extracted. + + ``b`` (boolean) [int] +- Convert a JSON boolean value to a C :type:`int`, so that ``true`` ++ Convert a JSON boolean value to a C ``int``, so that ``true`` + is converted to 1 and ``false`` to 0. + + ``i`` (integer) [int] +- Convert a JSON integer to C :type:`int`. ++ Convert a JSON integer to C ``int``. + + ``I`` (integer) [json_int_t] + Convert a JSON integer to C :type:`json_int_t`. + + ``f`` (real) [double] +- Convert a JSON real to C :type:`double`. ++ Convert a JSON real to C ``double``. + + ``F`` (integer or real) [double] +- Convert a JSON number (integer or real) to C :type:`double`. ++ Convert a JSON number (integer or real) to C ``double``. + + ``o`` (any value) [json_t \*] + Store a JSON value with no conversion to a :type:`json_t` pointer. +diff --git a/doc/ext/refcounting.py b/doc/ext/refcounting.py +index bba2684..e72c481 100644 +--- a/doc/ext/refcounting.py ++++ b/doc/ext/refcounting.py +@@ -24,8 +24,8 @@ + """ + + from docutils import nodes ++from docutils.parsers.rst import Directive + +-class refcounting(nodes.emphasis): pass + + def visit(self, node): + self.visit_emphasis(node) +@@ -40,16 +40,25 @@ def html_depart(self, node): + self.body.append('') + + +-def refcounting_directive(name, arguments, options, content, lineno, +- content_offset, block_text, state, state_machine): +- if arguments[0] == 'borrow': +- text = 'Return value: Borrowed reference.' +- elif arguments[0] == 'new': +- text = 'Return value: New reference.' +- else: +- raise Error('Valid arguments: new, borrow') ++class refcounting(nodes.emphasis): ++ pass ++ ++class refcounting_directive(Directive): ++ has_content = False ++ required_arguments = 1 ++ optional_arguments = 0 ++ final_argument_whitespace = False ++ ++ def run(self): ++ if self.arguments[0] == 'borrow': ++ text = 'Return value: Borrowed reference.' ++ elif self.arguments[0] == 'new': ++ text = 'Return value: New reference.' ++ else: ++ raise Error('Valid arguments: new, borrow') ++ ++ return [refcounting(text, text)] + +- return [refcounting(text, text)] + + def setup(app): + app.add_node(refcounting, +@@ -57,4 +66,4 @@ def setup(app): + latex=(visit, depart), + text=(visit, depart), + man=(visit, depart)) +- app.add_directive('refcounting', refcounting_directive, 0, (1, 0, 0)) ++ app.add_directive('refcounting', refcounting_directive) +diff --git a/doc/upgrading.rst b/doc/upgrading.rst +index 9b49046..94ff7de 100644 +--- a/doc/upgrading.rst ++++ b/doc/upgrading.rst +@@ -47,13 +47,13 @@ List of Incompatible Changes + + **Underlying type of JSON integers** + The underlying C type of JSON integers has been changed from +- :type:`int` to the widest available signed integer type, i.e. +- :type:`long long` or :type:`long`, depending on whether +- :type:`long long` is supported on your system or not. This makes ++ ``int`` to the widest available signed integer type, i.e. ++ ``long long`` or ``long``, depending on whether ++ ``long long`` is supported on your system or not. This makes + the whole 64-bit integer range available on most modern systems. + + ``jansson.h`` has a typedef :type:`json_int_t` to the underlying +- integer type. :type:`int` should still be used in most cases when ++ integer type. ``int`` should still be used in most cases when + dealing with smallish JSON integers, as the compiler handles + implicit type coercion. Only when the full 64-bit range is needed, + :type:`json_int_t` should be explicitly used. +@@ -69,8 +69,8 @@ List of Incompatible Changes + + **Unsigned integers in API functions** + Version 2.0 unifies unsigned integer usage in the API. All uses of +- :type:`unsigned int` and :type:`unsigned long` have been replaced +- with :type:`size_t`. This includes flags, container sizes, etc. ++ ``unsigned int`` and ``unsigned long`` have been replaced ++ with ``size_t``. This includes flags, container sizes, etc. + This should not require source code changes, as both +- :type:`unsigned int` and :type:`unsigned long` are usually +- compatible with :type:`size_t`. ++ ``unsigned int`` and ``unsigned long`` are usually ++ compatible with ``size_t``. diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/files/jansson-2.14-test-symbols.patch b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/files/jansson-2.14-test-symbols.patch new file mode 100644 index 0000000000..a5bf533472 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/files/jansson-2.14-test-symbols.patch @@ -0,0 +1,25 @@ +https://bugs.gentoo.org/814944 +https://github.com/akheron/jansson/commit/0677666f65b988b2dd44d02966a08fea490d5883 + +From 0677666f65b988b2dd44d02966a08fea490d5883 Mon Sep 17 00:00:00 2001 +From: Petri Lehtinen +Date: Thu, 9 Sep 2021 21:53:11 +0300 +Subject: [PATCH] Fix the check-exports tests for versioned symbols + +--- + test/suites/api/check-exports | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/suites/api/check-exports b/test/suites/api/check-exports +index 2b6b3c79..5c82064c 100755 +--- a/test/suites/api/check-exports ++++ b/test/suites/api/check-exports +@@ -15,7 +15,7 @@ grep 'json_\|jansson_' $top_srcdir/src/jansson.def \ + nm -D $SOFILE >/dev/null >$test_log/symbols 2>/dev/null \ + || exit 77 # Skip if "nm -D" doesn't seem to work + +-grep ' [DT] ' $test_log/symbols | cut -d' ' -f3 | grep -v '^_' | sort >$test_log/output ++grep ' [DT] ' $test_log/symbols | cut -d' ' -f3 | grep -v '^_' | sed 's/@@libjansson.*//' | sort >$test_log/output + + if ! cmp -s $test_log/exports $test_log/output; then + diff -u $test_log/exports $test_log/output >&2 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.13.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.13.1-r1.ebuild similarity index 68% rename from sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.13.1.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.13.1-r1.ebuild index 8b9c7d1b6c..0ea1a8080f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.13.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.13.1-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -11,11 +11,15 @@ SRC_URI="https://www.digip.org/jansson/releases/${P}.tar.gz" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos" IUSE="doc static-libs" -# dev-libs/jansson-2.13.1[doc]: fails to build with >=sphinx-3.0, #731668 -BDEPEND="doc? ( =sphinx-3.0, #731668 + "${FILESDIR}/${P}-sphinx3.patch" +) multilib_src_configure() { ECONF_SOURCE="${S}" econf $(use_enable static-libs static) diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.12.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.14.ebuild similarity index 60% rename from sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.12.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.14.ebuild index 68ae0abd38..42760f3115 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.12.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.14.ebuild @@ -1,23 +1,26 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit multilib-minimal +inherit multilib-minimal toolchain-funcs DESCRIPTION="C library for encoding, decoding and manipulating JSON data" -HOMEPAGE="http://www.digip.org/jansson/" -SRC_URI="http://www.digip.org/jansson/releases/${P}.tar.gz" +HOMEPAGE="https://www.digip.org/jansson/" +SRC_URI="https://github.com/akheron/jansson/releases/download/v${PV}/${P}.tar.gz" LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86" +SLOT="0/4" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos" IUSE="doc static-libs" -BDEPEND="doc? ( - + - + zero-one@zer0-one.net David Zero - + proxy-maint@gentoo.org Proxy Maintainers