public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/jansson/, dev-libs/jansson/files/
@ 2020-12-13 10:44 Joonas Niilola
  0 siblings, 0 replies; 3+ messages in thread
From: Joonas Niilola @ 2020-12-13 10:44 UTC (permalink / raw
  To: gentoo-commits

commit:     0b4171655437ff84b5b03a5763a42a764578cd4b
Author:     David Zero <zero-one <AT> zer0-one <DOT> net>
AuthorDate: Sun Dec  6 09:25:50 2020 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Sun Dec 13 10:44:21 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0b417165

dev-libs/jansson: remove dependency on sphinx < 3.0

This revision removes the dependency on sphinx < 3.0 .

Closes: https://bugs.gentoo.org/731668
Package-Manager: Portage-3.0.9, Repoman-3.0.2
Signed-off-by: David Zero <zero-one <AT> zer0-one.net>
Closes: https://github.com/gentoo/gentoo/pull/18528
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 .../jansson/files/jansson-2.13.1-sphinx3.patch     | 269 +++++++++++++++++++++
 dev-libs/jansson/jansson-2.13.1-r1.ebuild          |  41 ++++
 2 files changed, 310 insertions(+)

diff --git a/dev-libs/jansson/files/jansson-2.13.1-sphinx3.patch b/dev-libs/jansson/files/jansson-2.13.1-sphinx3.patch
new file mode 100644
index 00000000000..e611896e9c4
--- /dev/null
+++ b/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('</em>')
+ 
+ 
+-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/dev-libs/jansson/jansson-2.13.1-r1.ebuild b/dev-libs/jansson/jansson-2.13.1-r1.ebuild
new file mode 100644
index 00000000000..1f926f3cbf1
--- /dev/null
+++ b/dev-libs/jansson/jansson-2.13.1-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit multilib-minimal
+
+DESCRIPTION="C library for encoding, decoding and manipulating JSON data"
+HOMEPAGE="https://www.digip.org/jansson/"
+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 ~riscv s390 sparc x86 ~x64-macos"
+IUSE="doc static-libs"
+
+BDEPEND="doc? ( dev-python/sphinx )"
+
+PATCHES=(
+	# dev-libs/jansson-2.13.1[doc]: fails to build with >=sphinx-3.0, #731668
+	"${FILESDIR}/${P}-sphinx3.patch"
+)
+
+multilib_src_configure() {
+	ECONF_SOURCE="${S}" econf $(use_enable static-libs static)
+}
+
+multilib_src_compile() {
+	default
+
+	if multilib_is_native_abi && use doc ; then
+		emake html
+		HTML_DOCS=( "${BUILD_DIR}"/doc/_build/html/. )
+	fi
+}
+
+multilib_src_install() {
+	default
+
+	find "${D}" -name '*.la' -delete || die
+}


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-libs/jansson/, dev-libs/jansson/files/
@ 2021-11-12 22:24 Sam James
  0 siblings, 0 replies; 3+ messages in thread
From: Sam James @ 2021-11-12 22:24 UTC (permalink / raw
  To: gentoo-commits

commit:     2df0372e65704f40fa9529f36d468cec59dd8ca0
Author:     Rolf Eike Beer <eike <AT> sf-mail <DOT> de>
AuthorDate: Fri Nov 12 21:59:32 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Nov 12 22:22:56 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2df0372e

dev-libs/jansson: properly handle symbol names in tests

Closes: https://bugs.gentoo.org/814944
Signed-off-by: Rolf Eike Beer <eike <AT> sf-mail.de>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../jansson/files/jansson-2.14-test-symbols.patch  | 22 ++++++++++++++++++++++
 dev-libs/jansson/jansson-2.14.ebuild               |  2 ++
 2 files changed, 24 insertions(+)

diff --git a/dev-libs/jansson/files/jansson-2.14-test-symbols.patch b/dev-libs/jansson/files/jansson-2.14-test-symbols.patch
new file mode 100644
index 00000000000..013b2713231
--- /dev/null
+++ b/dev-libs/jansson/files/jansson-2.14-test-symbols.patch
@@ -0,0 +1,22 @@
+From 0677666f65b988b2dd44d02966a08fea490d5883 Mon Sep 17 00:00:00 2001
+From: Petri Lehtinen <petri@digip.org>
+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/dev-libs/jansson/jansson-2.14.ebuild b/dev-libs/jansson/jansson-2.14.ebuild
index 1a7ac716c9c..42760f31153 100644
--- a/dev-libs/jansson/jansson-2.14.ebuild
+++ b/dev-libs/jansson/jansson-2.14.ebuild
@@ -16,6 +16,8 @@ IUSE="doc static-libs"
 
 BDEPEND="doc? ( dev-python/sphinx )"
 
+PATCHES=( "${FILESDIR}/${P}-test-symbols.patch" )
+
 multilib_src_configure() {
 	tc-ld-force-bfd
 


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-libs/jansson/, dev-libs/jansson/files/
@ 2023-10-12  7:03 Joonas Niilola
  0 siblings, 0 replies; 3+ messages in thread
From: Joonas Niilola @ 2023-10-12  7:03 UTC (permalink / raw
  To: gentoo-commits

commit:     a0e09af2d796c8e12a29c3386237e5ebe44c51d4
Author:     Violet Purcell <vimproved <AT> inventati <DOT> org>
AuthorDate: Thu Aug 10 00:08:03 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Thu Oct 12 07:03:52 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a0e09af2

dev-libs/jansson: Fix build with non-bfd linkers

Signed-off-by: Violet Purcell <vimproved <AT> inventati.org>
Closes: https://github.com/gentoo/gentoo/pull/32236
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 .../files/jansson-2.14-default-symver-test.patch   | 55 ++++++++++++++++++++++
 dev-libs/jansson/jansson-2.14-r2.ebuild            | 49 +++++++++++++++++++
 2 files changed, 104 insertions(+)

diff --git a/dev-libs/jansson/files/jansson-2.14-default-symver-test.patch b/dev-libs/jansson/files/jansson-2.14-default-symver-test.patch
new file mode 100644
index 000000000000..0da70dc5afcb
--- /dev/null
+++ b/dev-libs/jansson/files/jansson-2.14-default-symver-test.patch
@@ -0,0 +1,55 @@
+From https://github.com/akheron/jansson/pull/666/commits/1e2ac681e5f39fc7a7e8b8deb2162a93976d4622 Mon Sep 17 00:00:00 2001
+From: Violet Purcell <vimproved@inventati.org>
+Date: Wed, 11 Oct 2023 20:51:57 -0400
+Subject: [PATCH] Port check for --default-symver to autoconf
+
+This commit ports the configure check for -Wl,--default-symver that is
+present in CMake to autoconf. This fixes building Jansson via autoconf
+with non-bfd linkers on glibc systems.
+
+Signed-off-by: Violet Purcell <vimproved@inventati.org>
+--- a/configure.ac
++++ b/configure.ac
+@@ -25,6 +25,9 @@ AC_TYPE_UINT16_T
+ AC_TYPE_UINT8_T
+ AC_TYPE_LONG_LONG_INT
+ 
++jansson_soversion="4"
++AC_SUBST([jansson_soversion])
++
+ AC_C_INLINE
+ case $ac_cv_c_inline in
+     yes) json_inline=inline;;
+@@ -138,8 +141,12 @@ AS_IF([test "x$with_Bsymbolic" = "xyes"], [JSON_BSYMBOLIC_LDFLAGS=-Wl[,]-Bsymbol
+ AC_SUBST(JSON_BSYMBOLIC_LDFLAGS)
+ 
+ # Enable symbol versioning on GNU libc
++m4_pattern_forbid([^AX_CHECK_LINK_FLAG$])
+ JSON_SYMVER_LDFLAGS=
+-AC_CHECK_DECL([__GLIBC__], [JSON_SYMVER_LDFLAGS=-Wl,--default-symver])
++AC_CHECK_DECL([__GLIBC__],
++  [AX_CHECK_LINK_FLAG([-Wl,--default-symver],
++    [JSON_SYMVER_LDFLAGS=-Wl,--default-symver],
++    [JSON_SYMVER_LDFLAGS=-Wl,--version-script,$ac_abs_confdir/jansson.sym])])
+ AC_SUBST([JSON_SYMVER_LDFLAGS])
+ 
+ AC_ARG_ENABLE([ossfuzzers],
+@@ -168,6 +175,7 @@ AC_SUBST([AM_CFLAGS])
+ 
+ AC_CONFIG_FILES([
+         jansson.pc
++	jansson.sym
+         Makefile
+         doc/Makefile
+         src/Makefile
+--- /dev/null
++++ b/jansson.sym.in
+@@ -0,0 +1,5 @@
++JANSSON_@jansson_soversion@ {
++	global:
++	*;
++};
++
+-- 
+2.42.0
+

diff --git a/dev-libs/jansson/jansson-2.14-r2.ebuild b/dev-libs/jansson/jansson-2.14-r2.ebuild
new file mode 100644
index 000000000000..8f8601ce9046
--- /dev/null
+++ b/dev-libs/jansson/jansson-2.14-r2.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="C library for encoding, decoding and manipulating JSON data"
+HOMEPAGE="https://www.digip.org/jansson/"
+SRC_URI="https://github.com/akheron/jansson/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/4"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="doc static-libs"
+
+BDEPEND="
+	sys-devel/autoconf-archive
+	doc? ( dev-python/sphinx )
+"
+
+PATCHES=(
+	"${FILESDIR}/${P}-default-symver-test.patch"
+	"${FILESDIR}/${P}-test-symbols.patch"
+)
+
+src_prepare() {
+	default
+	eautoreconf
+}
+
+src_configure() {
+	econf $(use_enable static-libs static)
+}
+
+src_compile() {
+	default
+
+	if use doc ; then
+		emake html
+		HTML_DOCS=( doc/_build/html/. )
+	fi
+}
+
+src_install() {
+	default
+
+	find "${ED}" -name '*.la' -delete || die
+}


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-10-12  7:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-13 10:44 [gentoo-commits] repo/gentoo:master commit in: dev-libs/jansson/, dev-libs/jansson/files/ Joonas Niilola
  -- strict thread matches above, loose matches on Subject: below --
2021-11-12 22:24 Sam James
2023-10-12  7:03 Joonas Niilola

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox