* [gentoo-commits] repo/gentoo:master commit in: sci-libs/stellarsolver/files/, sci-libs/stellarsolver/
@ 2024-04-22 17:52 Andreas Sturmlechner
0 siblings, 0 replies; 2+ messages in thread
From: Andreas Sturmlechner @ 2024-04-22 17:52 UTC (permalink / raw
To: gentoo-commits
commit: 65f38f29b1d319f64a4c37d3c55ce487d654049a
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 22 17:46:04 2024 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Apr 22 17:51:45 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=65f38f29
sci-libs/stellarsolver: Fix QA warnings
Closes: https://bugs.gentoo.org/873595
Closes: https://bugs.gentoo.org/886465
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
.../files/stellarsolver-2.5-compiler-warning.patch | 26 ++
.../files/stellarsolver-2.5-qsort-warning.patch | 291 +++++++++++++++++++++
sci-libs/stellarsolver/stellarsolver-2.5-r1.ebuild | 37 +++
3 files changed, 354 insertions(+)
diff --git a/sci-libs/stellarsolver/files/stellarsolver-2.5-compiler-warning.patch b/sci-libs/stellarsolver/files/stellarsolver-2.5-compiler-warning.patch
new file mode 100644
index 000000000000..eaae908db774
--- /dev/null
+++ b/sci-libs/stellarsolver/files/stellarsolver-2.5-compiler-warning.patch
@@ -0,0 +1,26 @@
+From 475193d28c0b33b14cecf9492a7c3cd06abcc9f5 Mon Sep 17 00:00:00 2001
+From: Tim Surber <me@timsurber.de>
+Date: Wed, 10 Apr 2024 23:36:49 +0200
+Subject: [PATCH] fix another compiler warning
+
+---
+ stellarsolver/astrometry/util/fitstable.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/stellarsolver/astrometry/util/fitstable.c b/stellarsolver/astrometry/util/fitstable.c
+index 10e1bc2..5885040 100644
+--- a/stellarsolver/astrometry/util/fitstable.c
++++ b/stellarsolver/astrometry/util/fitstable.c
+@@ -1227,7 +1227,11 @@ static fitstable_t* open_for_writing(const char* fn, const char* mode, FILE* fid
+ else {
+ tab->fid = fopen(fn, mode);
+ if (!tab->fid) {
+- SYSERROR("Couldn't open output file %s for writing", fn);
++ if (fn != NULL) {
++ SYSERROR("Couldn't open output file %s for writing", fn);
++ } else {
++ SYSERROR("Couldn't open output file because the filename is null");
++ }
+ goto bailout;
+ }
+ }
diff --git a/sci-libs/stellarsolver/files/stellarsolver-2.5-qsort-warning.patch b/sci-libs/stellarsolver/files/stellarsolver-2.5-qsort-warning.patch
new file mode 100644
index 000000000000..72acd2adc9c6
--- /dev/null
+++ b/sci-libs/stellarsolver/files/stellarsolver-2.5-qsort-warning.patch
@@ -0,0 +1,291 @@
+From efd820a1655f808107a1984d55124ea142c66fa6 Mon Sep 17 00:00:00 2001
+From: Tim Surber <me@timsurber.de>
+Date: Wed, 10 Apr 2024 23:31:58 +0200
+Subject: [PATCH] backport qsort warning fix
+
+---
+ .../astrometry/include/astrometry/ioutils.h | 9 +++
+ .../include/astrometry/os-features-config.h | 4 +-
+ .../include/astrometry/permutedsort.h | 2 +-
+ stellarsolver/astrometry/os-features.h | 16 ------
+ stellarsolver/astrometry/util/bl-sort.c | 3 +-
+ stellarsolver/astrometry/util/ioutils.c | 2 +-
+ .../astrometry/util/os-features-test.c | 57 -------------------
+ stellarsolver/astrometry/util/os-features.c | 6 +-
+ stellarsolver/astrometry/util/permutedsort.c | 3 +-
+ .../astrometry/util/qsort_reentrant.c | 37 +++---------
+ 10 files changed, 27 insertions(+), 112 deletions(-)
+
+diff --git a/stellarsolver/astrometry/include/astrometry/ioutils.h b/stellarsolver/astrometry/include/astrometry/ioutils.h
+index 07f7eecf..e5cf63c8 100644
+--- a/stellarsolver/astrometry/include/astrometry/ioutils.h
++++ b/stellarsolver/astrometry/include/astrometry/ioutils.h
+@@ -31,6 +31,15 @@ char* dirname(const char* path);
+
+ extern uint32_t ENDIAN_DETECTOR;
+
++void QSORT_R(void* base, size_t nmembers, size_t member_size,
++ void* token, int (*compar)(void *, const void *, const void *));
++
++/**
++ You should define the "comparison" function like this:
++ static int QSORT_COMPARISON_FUNCTION(my_comparison, void* token, const void* v1, const void* v2) {
++ */
++#define QSORT_COMPARISON_FUNCTION(func, thunk, v1, v2) func(thunk, v1, v2)
++
+ int copy_file(const char* infn, const char* outfn);
+
+ int pad_fid(FILE* fid, size_t len, char pad);
+diff --git a/stellarsolver/astrometry/include/astrometry/os-features-config.h b/stellarsolver/astrometry/include/astrometry/os-features-config.h
+index a246d428..bcc336e9 100644
+--- a/stellarsolver/astrometry/include/astrometry/os-features-config.h
++++ b/stellarsolver/astrometry/include/astrometry/os-features-config.h
+@@ -1,4 +1,4 @@
+-#define NEED_DECLARE_QSORT_R 0
+-#define NEED_QSORT_R 1
++#define NEED_DECLARE_QSORT_R 1
++#define NEED_QSORT_R 0
+ #define NEED_SWAP_QSORT_R 0
+ #define HAVE_NETPBM 0
+\ No newline at end of file
+diff --git a/stellarsolver/astrometry/include/astrometry/permutedsort.h b/stellarsolver/astrometry/include/astrometry/permutedsort.h
+index 23c1a7e9..d3590160 100644
+--- a/stellarsolver/astrometry/include/astrometry/permutedsort.h
++++ b/stellarsolver/astrometry/include/astrometry/permutedsort.h
+@@ -7,7 +7,7 @@
+ #define PERMUTED_SORT_H
+
+ // for QSORT_COMPARISON_FUNCTION
+-#include "os-features.h"
++#include "ioutils.h"
+
+ /*
+ Computes the permutation array that will cause the "realarray" to be
+diff --git a/stellarsolver/astrometry/os-features.h b/stellarsolver/astrometry/os-features.h
+index 2c2a9d19..90dd375f 100644
+--- a/stellarsolver/astrometry/os-features.h
++++ b/stellarsolver/astrometry/os-features.h
+@@ -108,22 +108,6 @@
+ -Ubuntu 8.10
+ */
+
+-#if NEED_DECLARE_QSORT_R
+-//// NOTE: this declaration must match os-features-test.c .
+-void qsort_r(void *base, size_t nmemb, size_t sz,
+- void *userdata,
+- int (*compar)(void *, const void *, const void *));
+-#endif
+-
+-#if NEED_SWAP_QSORT_R
+-#define QSORT_R(a,b,c,d,e) qsort_r(a,b,c,e,d)
+-#define QSORT_COMPARISON_FUNCTION(func, thunk, v1, v2) func(v1, v2, thunk)
+-
+-#else
+-#define QSORT_R qsort_r
+-#define QSORT_COMPARISON_FUNCTION(func, thunk, v1, v2) func(thunk, v1, v2)
+-
+-#endif
+
+ // As suggested in http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcc/Function-Names.html
+ #if __STDC_VERSION__ < 199901L
+diff --git a/stellarsolver/astrometry/util/bl-sort.c b/stellarsolver/astrometry/util/bl-sort.c
+index 70123660..a024d271 100644
+--- a/stellarsolver/astrometry/util/bl-sort.c
++++ b/stellarsolver/astrometry/util/bl-sort.c
+@@ -3,6 +3,8 @@
+ # Licensed under a 3-clause BSD style license - see LICENSE
+ */
+
++#include "ioutils.h" // for QSORT_R
++
+ #include "bl-sort.h"
+ // for qsort_r
+ #include "os-features.h"
+@@ -166,4 +168,3 @@ static int sort_helper_pl(const void* v1, const void* v2, void* userdata) {
+ void pl_sort(pl* list, int (*compare)(const void* v1, const void* v2)) {
+ bl_sort_with_userdata(list, sort_helper_pl, compare);
+ }
+-
+diff --git a/stellarsolver/astrometry/util/ioutils.c b/stellarsolver/astrometry/util/ioutils.c
+index c490fb8c..b4ecba0b 100644
+--- a/stellarsolver/astrometry/util/ioutils.c
++++ b/stellarsolver/astrometry/util/ioutils.c
+@@ -43,7 +43,7 @@
+
+ #include "os-features.h"
+ #include "ioutils.h"
+-//#include "os-features.h"
++#include "qsort_reentrant.c"
+ #include "errors.h"
+ #include "log.h"
+
+diff --git a/stellarsolver/astrometry/util/os-features-test.c b/stellarsolver/astrometry/util/os-features-test.c
+index 445ac1cd..a274c16b 100644
+--- a/stellarsolver/astrometry/util/os-features-test.c
++++ b/stellarsolver/astrometry/util/os-features-test.c
+@@ -14,63 +14,6 @@ int main() {
+ }
+ #endif
+
+-#ifdef TEST_QSORT_R
+-static int cmp(void* u, const void* a, const void* b) {
+- return 0;
+-}
+-int main() {
+- int array;
+- int baton;
+- qsort_r(&array, 1, sizeof(int), &baton, cmp);
+- //printf("#define NEED_QSORT_R 0\n");
+- return 0;
+-}
+-#endif
+-
+-#ifdef TEST_DECLARE_QSORT_R
+-// Test whether just declaring qsort_r as we do causes a compile failure.
+-
+-void qsort_r(void *base, size_t nmemb, size_t sz,
+- void *userdata,
+- int (*compar)(void *, const void *, const void *));
+-
+-int main() {
+- //printf("#define NEED_DECLARE_QSORT_R 1\n");
+- return 0;
+-}
+-#endif
+-
+-#ifdef TEST_SWAP_QSORT_R
+-// Use the result of TEST_DECLARE_QSORT_R and TEST_NEED_QSORT_R, or else
+-// this test will fail with a warning about undefined qsort_r
+-// Include .c rather than .h because we test with:
+-// gcc -o (exec) os-features-test.c
+-// and if NEED_QSORT_R, os-features.c includes qsort_reentrant.c
+-#include "os-features-config.h.tmp"
+-#define DONT_INCLUDE_OS_FEATURES_CONFIG_H 1
+-#include "os-features.c"
+-#undef DONT_INCLUDE_OS_FEATURES_CONFIG_H
+-// Test whether qsort_r works unswapped. (ie, qsort_r matches the definition of
+-// QSORT_R defined in the os-features.h documentation.)
+-static int sortfunc(void* thunk, const void* v1, const void* v2) {
+- const int* i1 = v1;
+- const int* i2 = v2;
+- if (*i1 < *i2)
+- return -1;
+- if (*i1 > *i2)
+- return 1;
+- return 0;
+-}
+-int main() {
+- int array[] = { 4, 17, 88, 34, 12, 12, 17 };
+- int N = sizeof(array)/sizeof(int);
+- int mythunk = 42;
+- qsort_r(array, N, sizeof(int), &mythunk, sortfunc);
+- //printf("#define NEED_SWAP_QSORT_R 0\n");
+- return 0;
+-}
+-#endif
+-
+ #if defined(TEST_NETPBM) || defined(TEST_NETPBM_MAKE)
+ #include <pam.h>
+ int main(int argc, char** args) {
+diff --git a/stellarsolver/astrometry/util/os-features.c b/stellarsolver/astrometry/util/os-features.c
+index 0c7d2b95..e95d463b 100644
+--- a/stellarsolver/astrometry/util/os-features.c
++++ b/stellarsolver/astrometry/util/os-features.c
+@@ -37,8 +37,4 @@
+ //int fdatasync(int fd) {
+ // return fsync(fd);
+ //}
+-//#endif
+-
+-#if NEED_QSORT_R
+-#include "qsort_reentrant.c"
+-#endif
++//#endif
+\ No newline at end of file
+diff --git a/stellarsolver/astrometry/util/permutedsort.c b/stellarsolver/astrometry/util/permutedsort.c
+index 0bc42298..e37b7e19 100644
+--- a/stellarsolver/astrometry/util/permutedsort.c
++++ b/stellarsolver/astrometry/util/permutedsort.c
+@@ -17,7 +17,8 @@
+ #endif
+
+ #include "permutedsort.h"
+-#include "os-features.h" // for qsort_r
++#include "os-features.h"
++#include "ioutils.h"
+
+ int* permutation_init(int* perm, int N) {
+ int i;
+diff --git a/stellarsolver/astrometry/util/qsort_reentrant.c b/stellarsolver/astrometry/util/qsort_reentrant.c
+index 982aa3e1..bce9147a 100644
+--- a/stellarsolver/astrometry/util/qsort_reentrant.c
++++ b/stellarsolver/astrometry/util/qsort_reentrant.c
+@@ -35,14 +35,14 @@
+ #endif
+ //__FBSDID("$FreeBSD: src/sys/libkern/qsort.c,v 1.15 2004/07/15 23:58:23 glebius Exp $");
+
+-// Astrometry: We want reentrant!
+-#define I_AM_QSORT_R
+
+-#ifdef I_AM_QSORT_R
++// Astrometry.net: we lightly modified this file:
++// - renamed qsort_r to QSORT_R to avoid clashes with system version
++// - removed the preprocessor magic that support re-entrant and non-
++// functions in the same source code.
++
+ typedef int cmp_t(void *, const void *, const void *);
+-#else
+-typedef int cmp_t(const void *, const void *);
+-#endif
++
+ static __inline char *med3(char *, char *, char *, cmp_t *, void *);
+ static __inline void swapfunc(char *, char *, int, int);
+
+@@ -84,32 +84,17 @@ swapfunc(char *a, char *b, int n, int swaptype)
+
+ #define vecswap(a, b, n) if ((n) > 0) swapfunc(a, b, n, swaptype)
+
+-#ifdef I_AM_QSORT_R
+ #define CMP(t, x, y) (cmp((t), (x), (y)))
+-#else
+-#define CMP(t, x, y) (cmp((x), (y)))
+-#endif
+
+ static __inline char *
+-med3(char *a, char *b, char *c, cmp_t *cmp, void *thunk
+-#ifndef I_AM_QSORT_R
+-__unused
+-#endif
+-)
++med3(char *a, char *b, char *c, cmp_t *cmp, void *thunk)
+ {
+ return CMP(thunk, a, b) < 0 ?
+ (CMP(thunk, b, c) < 0 ? b : (CMP(thunk, a, c) < 0 ? c : a ))
+ :(CMP(thunk, b, c) > 0 ? b : (CMP(thunk, a, c) < 0 ? a : c ));
+ }
+
+-#ifdef I_AM_QSORT_R
+-void
+-qsort_r(void *a, size_t n, size_t es, void *thunk, cmp_t *cmp)
+-#else
+-#define thunk NULL
+-void
+-qsort(void *a, size_t n, size_t es, cmp_t *cmp)
+-#endif
++void QSORT_R(void *a, size_t n, size_t es, void *thunk, cmp_t *cmp)
+ {
+ char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
+ int d, r, swaptype, swap_cnt;
+@@ -177,11 +162,7 @@ loop: SWAPINIT(a, es);
+ r = min(pd - pc, pn - pd - es);
+ vecswap(pb, pn - r, r);
+ if ((r = pb - pa) > es)
+-#ifdef I_AM_QSORT_R
+- qsort_r(a, r / es, es, thunk, cmp);
+-#else
+- qsort(a, r / es, es, cmp);
+-#endif
++ QSORT_R(a, r / es, es, thunk, cmp);
+ if ((r = pd - pc) > es) {
+ /* Iterate rather than recurse to save stack space */
+ a = pn - r;
diff --git a/sci-libs/stellarsolver/stellarsolver-2.5-r1.ebuild b/sci-libs/stellarsolver/stellarsolver-2.5-r1.ebuild
new file mode 100644
index 000000000000..f60a2a9b7daf
--- /dev/null
+++ b/sci-libs/stellarsolver/stellarsolver-2.5-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic
+
+DESCRIPTION="Cross-platform Sextractor and Astrometry.net-Based internal astrometric solver"
+HOMEPAGE="https://github.com/rlancaste/stellarsolver"
+SRC_URI="https://github.com/rlancaste/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ dev-qt/qtconcurrent:5
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtwidgets:5
+ sci-libs/cfitsio:=
+ sci-libs/gsl:=
+ sci-astronomy/wcslib:=
+"
+DEPEND="${RDEPEND}"
+
+# https://github.com/rlancaste/stellarsolver/issues/108
+PATCHES=( "${FILESDIR}"/${P}-{qsort,compiler}-warning.patch ) # git master
+
+src_configure() {
+ # bug #862930
+ filter-lto
+
+ cmake_src_configure
+}
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sci-libs/stellarsolver/files/, sci-libs/stellarsolver/
@ 2025-09-09 18:01 Andreas Sturmlechner
0 siblings, 0 replies; 2+ messages in thread
From: Andreas Sturmlechner @ 2025-09-09 18:01 UTC (permalink / raw
To: gentoo-commits
commit: dae7a28fc5396b340b9d337600d7be3ed4e95098
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 9 15:57:09 2025 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Sep 9 18:00:27 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dae7a28f
sci-libs/stellarsolver: add 2.7
Closes: https://bugs.gentoo.org/962544
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
sci-libs/stellarsolver/Manifest | 1 +
.../stellarsolver-2.7-file-descriptor-leak.patch | 23 ++++++++++++++
sci-libs/stellarsolver/stellarsolver-2.7.ebuild | 37 ++++++++++++++++++++++
3 files changed, 61 insertions(+)
diff --git a/sci-libs/stellarsolver/Manifest b/sci-libs/stellarsolver/Manifest
index e3e3e3ee8cbb..1b16c0af5c5d 100644
--- a/sci-libs/stellarsolver/Manifest
+++ b/sci-libs/stellarsolver/Manifest
@@ -1 +1,2 @@
DIST stellarsolver-2.6.tar.gz 26565848 BLAKE2B 35cceedca14b6fc062d963a47954b1c06ef908f4f8572776ca4de6a4b618eb72445cf05aefc5c62fa7a0a55e3719e6201f5734a827fc2fe752b919a30bd9c0cc SHA512 28c15e1cbc4e5d9b852001b80e8183ea98557ef0bdf0c9b3a238485d9594058bbd7003abc77cb41caf6717c809c7a3d1babd236adbeac6bb0e383f5a73815e95
+DIST stellarsolver-2.7.tar.gz 26567114 BLAKE2B cacf5fad2055ad3e4e30b623be1f07742076939d59dca17854d0e0a8fec7862464b235690e1681daf72ea17f11fa9446c38c1bbb44004cd55c7ef6d47edd5e61 SHA512 f666023bcc4e5c83d5a88224ebe524a490852d7b2aab89a52f596aa891f965367a6057997592eab50035f55565e330cf0a48074d2bf339fbaa78afdf56fda876
diff --git a/sci-libs/stellarsolver/files/stellarsolver-2.7-file-descriptor-leak.patch b/sci-libs/stellarsolver/files/stellarsolver-2.7-file-descriptor-leak.patch
new file mode 100644
index 000000000000..e0f3e5230688
--- /dev/null
+++ b/sci-libs/stellarsolver/files/stellarsolver-2.7-file-descriptor-leak.patch
@@ -0,0 +1,23 @@
+From 9abe16cd615715ec961f6b2e61870d480861c93d Mon Sep 17 00:00:00 2001
+From: John Evans <john.e.evans.email@googlemail.com>
+Date: Mon, 16 Jun 2025 07:46:38 +0100
+Subject: [PATCH] fix file descriptor leak on index files
+
+---
+ stellarsolver/astrometry/qfits-an/qfits_rw.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/stellarsolver/astrometry/qfits-an/qfits_rw.c b/stellarsolver/astrometry/qfits-an/qfits_rw.c
+index e388a33..20746cf 100644
+--- a/stellarsolver/astrometry/qfits-an/qfits_rw.c
++++ b/stellarsolver/astrometry/qfits-an/qfits_rw.c
+@@ -229,6 +229,9 @@ int qfits_is_fits(const char * filename)
+ magic = qfits_calloc(FITS_MAGIC_SZ+1, sizeof(char));
+ if (fread(magic, 1, FITS_MAGIC_SZ, fp) != FITS_MAGIC_SZ) {
+ qfits_error("failed to read file [%s]: %s", filename, strerror(errno));
++ // Tidy up to avoid leaking file descriptors
++ fclose(fp);
++ qfits_free(magic);
+ return -1;
+ }
+ fclose(fp);
diff --git a/sci-libs/stellarsolver/stellarsolver-2.7.ebuild b/sci-libs/stellarsolver/stellarsolver-2.7.ebuild
new file mode 100644
index 000000000000..4ea069830719
--- /dev/null
+++ b/sci-libs/stellarsolver/stellarsolver-2.7.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic
+
+DESCRIPTION="Cross-platform Sextractor and Astrometry.net-Based internal astrometric solver"
+HOMEPAGE="https://github.com/rlancaste/stellarsolver"
+SRC_URI="https://github.com/rlancaste/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ dev-qt/qtbase:6[concurrent,gui,network,widgets]
+ sci-libs/cfitsio:=
+ sci-libs/gsl:=
+ sci-astronomy/wcslib:=
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}/${P}-file-descriptor-leak.patch" )
+
+src_configure() {
+ # bug #862930
+ filter-lto
+
+ local mycmakeargs=(
+ -DUSE_QT5=OFF
+ -DBUILD_CLI=OFF # nothing is installed (yet?)
+ )
+
+ cmake_src_configure
+}
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-09-09 18:01 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-09 18:01 [gentoo-commits] repo/gentoo:master commit in: sci-libs/stellarsolver/files/, sci-libs/stellarsolver/ Andreas Sturmlechner
-- strict thread matches above, loose matches on Subject: below --
2024-04-22 17:52 Andreas Sturmlechner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox