summaryrefslogtreecommitdiff
path: root/sci-libs
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-04-22 23:59:31 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-04-22 23:59:31 +0100
commit1f00990debeffd0052c194989d0a02baac23eb96 (patch)
treeecc3dfafe935354404f7a0689a6ad809ebaba580 /sci-libs
parent02eb6576978c38afed5787f6f2dbab8353379d66 (diff)
gentoo auto-resync : 22:04:2024 - 23:59:31
Diffstat (limited to 'sci-libs')
-rw-r--r--sci-libs/Manifest.gzbin44813 -> 44816 bytes
-rw-r--r--sci-libs/cartopy/Manifest7
-rw-r--r--sci-libs/cartopy/cartopy-0.21.1-r1.ebuild88
-rw-r--r--sci-libs/cartopy/cartopy-0.22.0.ebuild85
-rw-r--r--sci-libs/cartopy/files/cartopy-0.21.1-fix-test.patch28
-rw-r--r--sci-libs/cartopy/files/cartopy-0.21.1-fix-test_proj92.patch126
-rw-r--r--sci-libs/cartopy/files/cartopy-0.21.1-fix-test_proj92_1.patch46
-rw-r--r--sci-libs/indilib/Manifest3
-rw-r--r--sci-libs/indilib/files/indilib-2.0.7-fix-system-httplib.patch32
-rw-r--r--sci-libs/indilib/indilib-2.0.7.ebuild87
-rw-r--r--sci-libs/pyshp/Manifest1
-rw-r--r--sci-libs/pyshp/pyshp-2.3.1-r1.ebuild30
-rw-r--r--sci-libs/stellarsolver/Manifest3
-rw-r--r--sci-libs/stellarsolver/files/stellarsolver-2.5-compiler-warning.patch26
-rw-r--r--sci-libs/stellarsolver/files/stellarsolver-2.5-qsort-warning.patch291
-rw-r--r--sci-libs/stellarsolver/stellarsolver-2.5-r1.ebuild37
16 files changed, 479 insertions, 411 deletions
diff --git a/sci-libs/Manifest.gz b/sci-libs/Manifest.gz
index 94f95e16e650..9f65a31da84e 100644
--- a/sci-libs/Manifest.gz
+++ b/sci-libs/Manifest.gz
Binary files differ
diff --git a/sci-libs/cartopy/Manifest b/sci-libs/cartopy/Manifest
index 6cb82b979239..67f176886705 100644
--- a/sci-libs/cartopy/Manifest
+++ b/sci-libs/cartopy/Manifest
@@ -1,11 +1,4 @@
-AUX cartopy-0.21.1-fix-test.patch 1108 BLAKE2B c88a6a68bf0c0737d31049ac2c5a24791779ccc2b29f767056796c138928b04ffea47d8989dec02ed19725527d512920f07c991eb80f1534b83bf842df48b30e SHA512 010f1c844d21c60dca18dbc5530fcbebb5da99bd4a126e6c844bcb32c55533114c53694fbfc381e9a3aecabab8d11d9fb33a826597b9b66eae30c07f304f44e6
-AUX cartopy-0.21.1-fix-test_proj92.patch 5677 BLAKE2B 6ec667d840e4c7909a5c17ed858cd9dd2ea7c8022ece40cdbad00be2b36167e485864c2698969fc033c7c43882fab4b14bd8e3febeaec7c9727c3f34ad84c22f SHA512 e13235d0ee16dbb0748495fc0d697df450f9f4ea7f66845331c5dc3208f70502ebf9c7288730cdd060b20b489b0b2e729bbcb99616a2b6ddf12e42fc45427b06
-AUX cartopy-0.21.1-fix-test_proj92_1.patch 2002 BLAKE2B 891615c88200d3a4ed84ecdbdc1150c82524734dc06c8240534788c0395d5e5244d9a6faeafedf174e1172fb929c36a27b9e2a2aa205293063471dc925e1218b SHA512 156704f18ca398c8327ed3a111cfd87696a0d5f7907d4e8c34ce3e0c8a99eea4930c241f88f6a9c8fe8bfab34148cbbe995a6f471332c97ad88aa0d4d9c567e0
AUX cartopy-0.23.0-backport-test-fixes.patch 520 BLAKE2B 57edd4f30665f243a7e710f3341fae647c897aab5066adf2749fd3c084adc67a730203d29dc3c5d19b8b963ecde2c41cbfd8a5da2c82e8775161d2ee4621a1ef SHA512 701b61807388962d2be57da2b7d32a0cd0b84584119cd0772d8b2a1da15e9cf233a048c2bd3ac08bd353732f7c2ae36bf500983569c1c42fec093752a9c570bd
-DIST cartopy-0.21.1.gh.tar.gz 10815884 BLAKE2B 4137f593b6ce35270f9df5016529250a07c57ec5a95843db8740eb494f55109b5129cf72153b0216e4f786771bf5cedde3caaecd40175fe9ad5c6fb65ad84788 SHA512 de1d09ee3bf6af13bcc7cc4bb1f7c13335ba67e05d2ad64efa0fb00bdb74c7e13c6fc44822d5ac1d70ee7d39b2322280c1395dc66119b9ecd94ca26014e413a1
-DIST cartopy-0.22.0.gh.tar.gz 10907762 BLAKE2B 0524efb2359f72da4e73cc74c41b03f4e335163dea4b86f5b8907b2a20521ce81a42fceebbdd7e582315b33aed0dfdf159469dfa13516c9c46a8f887f847fa21 SHA512 195cc69170c826240e03918de39925459c94c36b76f1a87b8ec3bca7c00ed577eb8c727ccda1511c0f691ac5aea043d3d02d7bfb603624548e63c9a7dc644ad5
DIST cartopy-0.23.0.gh.tar.gz 10645484 BLAKE2B aa9306e9f5bd85ae28be4802aac1a36d67df5812e9d188ad20d27103eaff1856b7d48e256459519b4e647bdf17fc207e8473ec6ead7413db113311fe821faba6 SHA512 8f357faad592db03c564d2c87f6d1600d2a04a68b71b250925c222cea418b8588f2eb48f64d3ec7210650a34372777ef8416c8f129af7911661615759d2c60b5
-EBUILD cartopy-0.21.1-r1.ebuild 2301 BLAKE2B 0cad49a11e61991c6f2eb42575769941d7944f5b1a802d894d45525ffa045b43f9491123a02f20ee7cf8faf4fa5a792c21096ce1552628542839d8a1765abe15 SHA512 ed4e5e0f66f270fb298276f222f1fc3b68a99288f7714610df7cc772586e1214fc26497e14f542496d56cf21d07922a97bfb89f256a465b76bf85d5af7836e29
-EBUILD cartopy-0.22.0.ebuild 2153 BLAKE2B 47c7563e70117d433b2d1450efa2fd21666f85d88de9ffcda0378435cb5f087549d3e688ac43706ec6c9f28cd3394de96545c8d4846b84162a2dcc063873226d SHA512 3e3cb0519d3fc86ba19ba2205d9f836b8641da8e02a7635cc8c6706fdad778dce0fc670fb652074461c16d9d069db0101c813fa14194aed8fcce7a50289c18d3
EBUILD cartopy-0.23.0.ebuild 2193 BLAKE2B 82d5147690bbe2081793db394666cbd1ad41c68a8f18a55f7f6e555d7551273f617db996b4298a062f7436635b0b00f085b9cf3773267705082af22562e63fe7 SHA512 4afffbef0971f207444de7013d948993fac1bac211310fd5f10fa2c2f92e338638bb19023a99b49819b88329563510bfc28e11ba67c477e19855dc7dfa1f15ca
MISC metadata.xml 729 BLAKE2B 38605f8140ccae8c9edf2b5eb7bf394e9c99fd089fa998c98422967cc12d3b808d3b7901d3746da25558c9211e47deec01a3d5856176cda8a868c0151a03fed8 SHA512 f3fb714f50475c2e0f4150d20423195fffb39243aefd313e9a9d0fa834364a928a712006d6e1e1def77b902f8c349a4045d3081fe38697054e744441e622a591
diff --git a/sci-libs/cartopy/cartopy-0.21.1-r1.ebuild b/sci-libs/cartopy/cartopy-0.21.1-r1.ebuild
deleted file mode 100644
index e7186c4571c4..000000000000
--- a/sci-libs/cartopy/cartopy-0.21.1-r1.ebuild
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_SINGLE_IMPL=1
-DISTUTILS_EXT=1
-PYTHON_COMPAT=( python3_{9..11} )
-
-DISTUTILS_USE_PEP517=setuptools
-inherit distutils-r1 multibuild multiprocessing virtualx
-
-MY_PV=${PV/_beta/b}
-MY_P=${PN}-${MY_PV}
-
-DESCRIPTION="Python package for geospatial data processing and analysis"
-HOMEPAGE="https://scitools.org.uk/cartopy"
-SRC_URI="https://github.com/SciTools/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.gh.tar.gz"
-S="${WORKDIR}"/${MY_P}
-
-LICENSE="LGPL-3"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="
- ${PYTHON_DEPS}
- sci-libs/gdal[python,${PYTHON_SINGLE_USEDEP}]
- sci-libs/geos
- $(python_gen_cond_dep '
- >=dev-python/numpy-1.19[${PYTHON_USEDEP}]
- dev-python/shapely[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
- dev-python/matplotlib[${PYTHON_USEDEP}]
- dev-python/scipy[${PYTHON_USEDEP}]
- dev-python/pillow[jpeg,${PYTHON_USEDEP}]
- dev-python/pyproj[${PYTHON_USEDEP}]
- sci-libs/pyshp[${PYTHON_USEDEP}]
- ')
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- $(python_gen_cond_dep '
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
- dev-python/cython[${PYTHON_USEDEP}]
- ')
- test? (
- $(python_gen_cond_dep '
- dev-python/filelock[${PYTHON_USEDEP}]
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/flufl-lock[${PYTHON_USEDEP}]
- dev-python/pytest-mpl[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
- ')
- )
-"
-
-PATCHES=( "${FILESDIR}"/${P}-fix-test.patch
- # backports to fix tests with >=PROJ9.2
- "${FILESDIR}"/${PN}-0.21.1-fix-test_proj92.patch
- "${FILESDIR}"/${PN}-0.21.1-fix-test_proj92_1.patch )
-
-EPYTEST_IGNORE=(
- # Require network access, not covered by markers
- lib/cartopy/tests/mpl/test_crs.py
- lib/cartopy/tests/mpl/test_gridliner.py
-)
-
-distutils_enable_tests pytest
-
-python_prepare_all() {
- export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
-
- # Prepare matplotlib backend for test suite
- export MPLCONFIGDIR="${T}"
- echo "backend : Agg" > "${MPLCONFIGDIR}"/matplotlibrc || die
-
- distutils-r1_python_prepare_all
-}
-
-python_test() {
- cd "${BUILD_DIR}" || die
-
- # Drop all tests needing network access
- virtx epytest -n "$(makeopts_jobs)" -m "not network and not natural_earth" || die "test failed"
-}
diff --git a/sci-libs/cartopy/cartopy-0.22.0.ebuild b/sci-libs/cartopy/cartopy-0.22.0.ebuild
deleted file mode 100644
index cfc80da1d172..000000000000
--- a/sci-libs/cartopy/cartopy-0.22.0.ebuild
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_SINGLE_IMPL=1
-DISTUTILS_EXT=1
-PYTHON_COMPAT=( python3_{9..11} )
-
-DISTUTILS_USE_PEP517=setuptools
-inherit distutils-r1 multiprocessing virtualx
-
-MY_PV=${PV/_beta/b}
-MY_P=${PN}-${MY_PV}
-
-DESCRIPTION="Python package for geospatial data processing and analysis"
-HOMEPAGE="https://scitools.org.uk/cartopy"
-SRC_URI="https://github.com/SciTools/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.gh.tar.gz"
-S="${WORKDIR}"/${MY_P}
-
-LICENSE="LGPL-3"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="
- ${PYTHON_DEPS}
- sci-libs/gdal[python,${PYTHON_SINGLE_USEDEP}]
- sci-libs/geos
- $(python_gen_cond_dep '
- >=dev-python/numpy-1.19[${PYTHON_USEDEP}]
- dev-python/shapely[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
- dev-python/matplotlib[${PYTHON_USEDEP}]
- dev-python/scipy[${PYTHON_USEDEP}]
- dev-python/pillow[jpeg,${PYTHON_USEDEP}]
- dev-python/pyproj[${PYTHON_USEDEP}]
- sci-libs/pyshp[${PYTHON_USEDEP}]
- ')
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- $(python_gen_cond_dep '
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
- dev-python/cython[${PYTHON_USEDEP}]
- ')
- test? (
- $(python_gen_cond_dep '
- dev-python/filelock[${PYTHON_USEDEP}]
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/flufl-lock[${PYTHON_USEDEP}]
- dev-python/pytest-mpl[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
- ')
- )
-"
-
-EPYTEST_IGNORE=(
- # Require network access, not covered by markers
- lib/cartopy/tests/mpl/test_crs.py
- lib/cartopy/tests/mpl/test_gridliner.py
-)
-
-distutils_enable_tests pytest
-
-python_prepare_all() {
- export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
-
- # Prepare matplotlib backend for test suite
- export MPLCONFIGDIR="${T}"
- echo "backend : Agg" > "${MPLCONFIGDIR}"/matplotlibrc || die
-
- sed -i -e "s/exclude =/#exclude =/" pyproject.toml || die
-
- distutils-r1_python_prepare_all
-}
-
-python_test() {
- cd "${BUILD_DIR}" || die
-
- # Drop all tests needing network access
- virtx epytest -n "$(makeopts_jobs)" -m "not network and not natural_earth" || die "test failed"
-}
diff --git a/sci-libs/cartopy/files/cartopy-0.21.1-fix-test.patch b/sci-libs/cartopy/files/cartopy-0.21.1-fix-test.patch
deleted file mode 100644
index fd308b326c68..000000000000
--- a/sci-libs/cartopy/files/cartopy-0.21.1-fix-test.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Matplotlib-3.7 has merged SubplotBase into AxesBase now, which makes the
-class string representation here GeoAxes now, even though we are
-still an _instance_ of GeoAxesSubplot
-
-Backported from https://github.com/SciTools/cartopy/commit/6b4572ba1a8a877f28e25dfe9559c14b7a565958?diff=unified
-diff --git a/lib/cartopy/tests/mpl/test_axes.py b/lib/cartopy/tests/mpl/test_axes.py
-index eaf5904..d4e37a1 100644
---- a/lib/cartopy/tests/mpl/test_axes.py
-+++ b/lib/cartopy/tests/mpl/test_axes.py
-@@ -13,7 +13,8 @@ import pytest
-
- import cartopy.crs as ccrs
- import cartopy.feature as cfeature
--from cartopy.mpl.geoaxes import InterProjectionTransform, GeoAxes
-+from cartopy.mpl.geoaxes import (
-+ InterProjectionTransform, GeoAxes, GeoAxesSubplot)
-
-
- class TestNoSpherical:
-@@ -119,7 +120,7 @@ class Test_Axes_add_geometries:
-
- def test_geoaxes_subplot():
- ax = plt.subplot(1, 1, 1, projection=ccrs.PlateCarree())
-- assert str(ax.__class__) == "<class 'cartopy.mpl.geoaxes.GeoAxesSubplot'>"
-+ assert isinstance(ax, GeoAxesSubplot)
-
-
- @pytest.mark.mpl_image_compare(filename='geoaxes_subslice.png')
diff --git a/sci-libs/cartopy/files/cartopy-0.21.1-fix-test_proj92.patch b/sci-libs/cartopy/files/cartopy-0.21.1-fix-test_proj92.patch
deleted file mode 100644
index e9f1d03eeeb2..000000000000
--- a/sci-libs/cartopy/files/cartopy-0.21.1-fix-test_proj92.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-diff --git a/lib/cartopy/tests/crs/test_equidistant_conic.py b/lib/cartopy/tests/crs/test_equidistant_conic.py
-index 045c87e5d..9f50b4f04 100644
---- a/lib/cartopy/tests/crs/test_equidistant_conic.py
-+++ b/lib/cartopy/tests/crs/test_equidistant_conic.py
-@@ -10,6 +10,7 @@
-
- import numpy as np
- from numpy.testing import assert_almost_equal, assert_array_almost_equal
-+import pyproj
- import pytest
-
- import cartopy.crs as ccrs
-@@ -23,11 +24,16 @@ def test_default(self):
- 'y_0=0.0', 'lat_1=20.0', 'lat_2=50.0'}
- check_proj_params('eqdc', eqdc, other_args)
-
-+ expected_x = (-22784919.35600352, 22784919.35600352)
-+ expected_y = (-10001965.729313632, 17558791.85156368)
-+ if pyproj.__proj_version__ >= '9.2.0':
-+ expected_x = (-22784919.3559981, 22784919.3559981)
-+ expected_y = (-10001965.72931272, 17558791.85157471)
- assert_almost_equal(np.array(eqdc.x_limits),
-- (-22784919.35600352, 22784919.35600352),
-+ expected_x,
- decimal=7)
- assert_almost_equal(np.array(eqdc.y_limits),
-- (-10001965.729313632, 17558791.85156368),
-+ expected_y,
- decimal=7)
-
- def test_eccentric_globe(self):
-@@ -37,12 +43,16 @@ def test_eccentric_globe(self):
- other_args = {'a=1000', 'b=500', 'lon_0=0.0', 'lat_0=0.0', 'x_0=0.0',
- 'y_0=0.0', 'lat_1=20.0', 'lat_2=50.0'}
- check_proj_params('eqdc', eqdc, other_args)
--
-+ expected_x = (-3016.869847713461, 3016.869847713461)
-+ expected_y = (-1216.6029342241113, 2511.0574375797723)
-+ if pyproj.__proj_version__ >= '9.2.0':
-+ expected_x = (-2960.1009481, 2960.1009481)
-+ expected_y = (-1211.05573766, 2606.04249537)
- assert_almost_equal(np.array(eqdc.x_limits),
-- (-3016.869847713461, 3016.869847713461),
-+ expected_x,
- decimal=7)
- assert_almost_equal(np.array(eqdc.y_limits),
-- (-1216.6029342241113, 2511.0574375797723),
-+ expected_y,
- decimal=7)
-
- def test_eastings(self):
-@@ -127,12 +137,16 @@ def test_ellipsoid_transform(self):
- 'lat_0=23.0', 'x_0=0.0', 'y_0=0.0', 'lat_1=29.5',
- 'lat_2=45.5'}
- check_proj_params('eqdc', eqdc, other_args)
--
-+ expected_x = (-22421870.719894886, 22421870.719894886)
-+ expected_y = (-12546277.778958388, 17260638.403203618)
-+ if pyproj.__proj_version__ >= '9.2.0':
-+ expected_x = (-22421870.71988974, 22421870.71988976)
-+ expected_y = (-12546277.77895742, 17260638.403216)
- assert_almost_equal(np.array(eqdc.x_limits),
-- (-22421870.719894886, 22421870.719894886),
-+ expected_x,
- decimal=7)
- assert_almost_equal(np.array(eqdc.y_limits),
-- (-12546277.778958388, 17260638.403203618),
-+ expected_y,
- decimal=7)
-
- result = eqdc.transform_point(-75.0, 35.0, geodetic)
-diff --git a/lib/cartopy/tests/crs/test_sinusoidal.py b/lib/cartopy/tests/crs/test_sinusoidal.py
-index 2f2a1821a..9347260a1 100644
---- a/lib/cartopy/tests/crs/test_sinusoidal.py
-+++ b/lib/cartopy/tests/crs/test_sinusoidal.py
-@@ -6,6 +6,7 @@
-
- import numpy as np
- from numpy.testing import assert_almost_equal
-+import pyproj
- import pytest
-
- import cartopy.crs as ccrs
-@@ -32,10 +33,15 @@ def test_eccentric_globe(self):
- other_args = {'a=1000', 'b=500', 'lon_0=0.0', 'x_0=0.0', 'y_0=0.0'}
- check_proj_params('sinu', crs, other_args)
-
-+ expected_x = [-3141.59, 3141.59]
-+ expected_y = [-1216.60, 1216.60]
-+ if pyproj.__proj_version__ >= '9.2.0':
-+ expected_x = [-3141.60, 3141.60]
-+ expected_y = [-1211.05, 1211.05]
- assert_almost_equal(np.array(crs.x_limits),
-- [-3141.59, 3141.59], decimal=2)
-+ expected_x, decimal=2)
- assert_almost_equal(np.array(crs.y_limits),
-- [-1216.60, 1216.60], decimal=2)
-+ expected_y, decimal=2)
-
- def test_offset(self):
- crs = ccrs.Sinusoidal()
-diff --git a/lib/cartopy/tests/test_crs.py b/lib/cartopy/tests/test_crs.py
-index c1a5d11da..b6c38ced3 100644
---- a/lib/cartopy/tests/test_crs.py
-+++ b/lib/cartopy/tests/test_crs.py
-@@ -90,9 +90,17 @@ def test_osgb(self, approx):
- def test_epsg(self):
- uk = ccrs.epsg(27700)
- assert uk.epsg_code == 27700
-- assert_almost_equal(uk.x_limits, (-104009.357, 688806.007), decimal=3)
-- assert_almost_equal(uk.y_limits, (-8908.37, 1256558.45), decimal=2)
-- assert_almost_equal(uk.threshold, 7928.15, decimal=2)
-+ expected_x = (-104009.357, 688806.007)
-+ expected_y = (-8908.37, 1256558.45)
-+ expected_threshold = 7928.15
-+ if pyproj.__proj_version__ >= '9.2.0':
-+ expected_x = (-104728.764, 688806.007)
-+ expected_y = (-8908.36, 1256616.32)
-+ expected_threshold = 7935.34
-+ assert_almost_equal(uk.x_limits,
-+ expected_x, decimal=3)
-+ assert_almost_equal(uk.y_limits, expected_y, decimal=2)
-+ assert_almost_equal(uk.threshold, expected_threshold, decimal=2)
- self._check_osgb(uk)
-
- def test_epsg_compound_crs(self):
diff --git a/sci-libs/cartopy/files/cartopy-0.21.1-fix-test_proj92_1.patch b/sci-libs/cartopy/files/cartopy-0.21.1-fix-test_proj92_1.patch
deleted file mode 100644
index 7ce52bb23364..000000000000
--- a/sci-libs/cartopy/files/cartopy-0.21.1-fix-test_proj92_1.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/lib/cartopy/tests/crs/test_lambert_conformal.py b/lib/cartopy/tests/crs/test_lambert_conformal.py
-index 6032d2e5c..c64022ff9 100644
---- a/lib/cartopy/tests/crs/test_lambert_conformal.py
-+++ b/lib/cartopy/tests/crs/test_lambert_conformal.py
-@@ -5,6 +5,7 @@
- # licensing details.
-
- from numpy.testing import assert_array_almost_equal
-+import pyproj
- import pytest
-
- import cartopy.crs as ccrs
-@@ -68,18 +69,29 @@ def test_too_many_parallel(self):
-
- def test_single_spole(self):
- s_pole_crs = ccrs.LambertConformal(standard_parallels=[-1.])
-+ expected_x = (-19939660, 19939660)
-+ expected_y = (-735590302, -8183795)
-+ if pyproj.__proj_version__ >= '9.2.0':
-+ expected_x = (-19840440, 19840440)
-+ expected_y = (-370239953, -8191953)
-+ print(s_pole_crs.x_limits)
- assert_array_almost_equal(s_pole_crs.x_limits,
-- (-19939660, 19939660),
-+ expected_x,
- decimal=0)
- assert_array_almost_equal(s_pole_crs.y_limits,
-- (-735590302, -8183795),
-+ expected_y,
- decimal=0)
-
- def test_single_npole(self):
- n_pole_crs = ccrs.LambertConformal(standard_parallels=[1.])
-+ expected_x = (-20130569, 20130569)
-+ expected_y = (-8170229, 726200683)
-+ if pyproj.__proj_version__ >= '9.2.0':
-+ expected_x = (-20222156, 20222156)
-+ expected_y = (-8164817, 360848719)
- assert_array_almost_equal(n_pole_crs.x_limits,
-- (-20130569, 20130569),
-+ expected_x,
- decimal=0)
- assert_array_almost_equal(n_pole_crs.y_limits,
-- (-8170229, 726200683),
-+ expected_y,
- decimal=0)
diff --git a/sci-libs/indilib/Manifest b/sci-libs/indilib/Manifest
index b49ac4f3f349..b29c58da2afc 100644
--- a/sci-libs/indilib/Manifest
+++ b/sci-libs/indilib/Manifest
@@ -1,3 +1,6 @@
+AUX indilib-2.0.7-fix-system-httplib.patch 1359 BLAKE2B d2a8000039bedef796d7e751000320bb3aaa69563fc5ef878d0b4c8b2a274087d30230388cc5b05a9fcb25f4b5369ce501d9b13d7f88dbf213096b9f893b3c62 SHA512 81ed02c6a92a4e2143551f4e2abdaacf44d747bb4c4cb06b18807fc005c4c97b87a4d0830dea6d6f8a473162d5863eee6d0aceab6396c2a3a35b9e951c2b7dc3
DIST indilib-2.0.6.tar.gz 2793169 BLAKE2B ebbbc40074df8ea77b781d09d802506003e3f71ee9450730b145ff9d190d9a0d41bcb7db4449fb05f138d536b811d7fcbfd095516b2f73a163bd110335d3d14d SHA512 e00ca31f4bc2298529586e5c1cc35389e9dcc72f9b93a1c5a4594c4c3d11f72a63e02d228a582f4ee08b7986a8eed6ebe53cb19b25fa05ebe53243708d2a8ff5
+DIST indilib-2.0.7.tar.gz 2843758 BLAKE2B dee94a40d4b3c5c4d994d945a3608a41765af14c4937d475bdf80dca5d5847b814e0d9a1060f39b15b109916dee45f1876ce8edd29588e209276e3b1bf6f3dd7 SHA512 292c0a5b8f07b24c42ea9424be19012c97317206b837d8601ec4d771fa35c314bf00712509f8199ee3da193ea12f0c3e90036a49deece304dc256cdeba60810d
EBUILD indilib-2.0.6.ebuild 1897 BLAKE2B 8a544c9f323b97ebe1d615c585ab38fb832299b0dccbe2b1c1e72b9486328840add58ba72c7efe098e2c62c82441e9c376e47ccce3d33adbb8a73d3b91dfaaef SHA512 7a2ad54c7624ec6dd798d3b54e092b289365b5719d77577362f92801f9a059de00f1360c49b215853321b4c846947a23da879142c596f5f68a2aabb5da28dc21
+EBUILD indilib-2.0.7.ebuild 1955 BLAKE2B 9c1fdedcc8f75050d359e3dc7880f21a78337145f0afa3135a37398f74c1eba5bc724d80d049279ce7e341fee753d494265e6a2ebe2d0aa0708ab879e1a8903b SHA512 2571c32094f53daea768426f982609167f6e05279d16fbef9109ada9597691fd3d4092cea8d31a374b3492ac04804de1531dcbb5471ea6254f3eac2f38932c7e
MISC metadata.xml 562 BLAKE2B 675fbd88b6ea5004a89e4d86f397e924317f56ad98743d1d8cd9758f92b516cf70386f4eb59c8869451acd6b312c50a05b37a9ca3cedac87599bd90cd46d6ddd SHA512 ebef1f64112d45534b6ea13ce54b2ee57349d11486b881be277d669e984891fe9d8ca3839aadbbece908f55bd027060739460929bd7e0400cd04e639c7d2186f
diff --git a/sci-libs/indilib/files/indilib-2.0.7-fix-system-httplib.patch b/sci-libs/indilib/files/indilib-2.0.7-fix-system-httplib.patch
new file mode 100644
index 000000000000..81876a468fa2
--- /dev/null
+++ b/sci-libs/indilib/files/indilib-2.0.7-fix-system-httplib.patch
@@ -0,0 +1,32 @@
+From 1d9e7a4645aa9d1c8534a0e69c3fb212382ac1ed Mon Sep 17 00:00:00 2001
+From: Mario Haustein <mario.haustein@hrz.tu-chemnitz.de>
+Date: Fri, 12 Apr 2024 11:31:01 +0200
+Subject: [PATCH] Link against httplib if using system libraries (#2039)
+
+---
+ drivers/auxiliary/CMakeLists.txt | 2 +-
+ drivers/dome/CMakeLists.txt | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/auxiliary/CMakeLists.txt b/drivers/auxiliary/CMakeLists.txt
+index 66f7e3a615..41279d0a9d 100644
+--- a/drivers/auxiliary/CMakeLists.txt
++++ b/drivers/auxiliary/CMakeLists.txt
+@@ -313,5 +313,5 @@ SET(dragonlight_SRC
+ dragonlight.cpp)
+
+ add_executable(indi_dragon_light ${dragonlight_SRC})
+-target_link_libraries(indi_dragon_light indidriver)
++target_link_libraries(indi_dragon_light indidriver ${HTTPLIB_LIBRARY})
+ install(TARGETS indi_dragon_light RUNTIME DESTINATION bin)
+diff --git a/drivers/dome/CMakeLists.txt b/drivers/dome/CMakeLists.txt
+index 9dfdc812b8..377af11d2f 100644
+--- a/drivers/dome/CMakeLists.txt
++++ b/drivers/dome/CMakeLists.txt
+@@ -80,5 +80,5 @@ SET(dragonlair_SRC
+ dragonlair.cpp)
+
+ add_executable(indi_dragonlair_dome ${dragonlair_SRC})
+-target_link_libraries(indi_dragonlair_dome indidriver)
++target_link_libraries(indi_dragonlair_dome indidriver ${HTTPLIB_LIBRARY})
+ install(TARGETS indi_dragonlair_dome RUNTIME DESTINATION bin)
diff --git a/sci-libs/indilib/indilib-2.0.7.ebuild b/sci-libs/indilib/indilib-2.0.7.ebuild
new file mode 100644
index 000000000000..78c307accfed
--- /dev/null
+++ b/sci-libs/indilib/indilib-2.0.7.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic udev
+
+DESCRIPTION="INDI Astronomical Control Protocol library"
+HOMEPAGE="https://www.indilib.org/"
+SRC_URI="https://github.com/${PN}/${PN/lib/}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${P/lib/}"
+
+LICENSE="BSD GPL-2+ LGPL-2+ LGPL-2.1+"
+SLOT="0/1"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="ogg rtlsdr test websocket"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-cpp/cpp-httplib:=
+ dev-cpp/nlohmann_json
+ dev-libs/libev
+ media-libs/libjpeg-turbo:=
+ net-misc/curl
+ sci-libs/cfitsio:=
+ sci-libs/fftw:3.0=
+ sci-libs/gsl:=
+ sci-libs/libnova:=
+ sys-libs/zlib
+ virtual/libusb:1
+ ogg? (
+ media-libs/libogg
+ media-libs/libtheora
+ )
+ rtlsdr? ( net-wireless/rtl-sdr )
+ websocket? ( dev-libs/boost:= )
+"
+DEPEND="${RDEPEND}
+ kernel_linux? ( sys-kernel/linux-headers )
+ test? ( >=dev-cpp/gtest-1.8.0 )
+ websocket? ( dev-cpp/websocketpp )
+"
+
+PATCHES=( "${FILESDIR}/${P}-fix-system-httplib.patch" )
+
+src_configure() {
+ # -Werror=odr
+ # https://bugs.gentoo.org/878525
+ # https://github.com/indilib/indi/issues/2023
+ filter-lto
+
+ local mycmakeargs=(
+ -DINDI_SYSTEM_HTTPLIB=ON
+ -DINDI_SYSTEM_JSONLIB=ON
+ -DINDI_BUILD_QT5_CLIENT=OFF
+ -DINDI_BUILD_SHARED=ON
+ -DINDI_BUILD_STATIC=OFF
+ -DINDI_BUILD_XISF=OFF # not packaged
+ -DUDEVRULES_INSTALL_DIR="${EPREFIX}$(get_udevdir)"/rules.d
+ $(cmake_use_find_package ogg OggTheora)
+ $(cmake_use_find_package rtlsdr RTLSDR)
+ -DINDI_BUILD_UNITTESTS=$(usex test)
+ -DINDI_BUILD_INTEGTESTS=$(usex test)
+ -DINDI_BUILD_WEBSOCKET=$(usex websocket)
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ # Unit tests
+ BUILD_DIR="${BUILD_DIR}"/test cmake_src_test
+
+ # Integration tests
+ # They fail in parallel because they try to bind to the same port more
+ # than once.
+ BUILD_DIR="${BUILD_DIR}"/integs cmake_src_test -j1
+}
+
+pkg_postinst() {
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/sci-libs/pyshp/Manifest b/sci-libs/pyshp/Manifest
index 339bc9656a49..cd8a593a9c8d 100644
--- a/sci-libs/pyshp/Manifest
+++ b/sci-libs/pyshp/Manifest
@@ -1,4 +1,3 @@
DIST pyshp-2.3.1..gh.tar.gz 2213685 BLAKE2B ca5b87dec442508bc4a0612982984ba0fb91aa8acffddb6a448c43ccf42285305600a5e28e1fb781a3d94e8ce0624d027642fddcc5f2176dca3df095e59df170 SHA512 08844492b8d1d824c639844f7f314909d946bd4d3703a4f8d4cb64d400729671b42ff5b0f80aa68d9469f3939a3c7619ba13c9efdcba3b244ec01d7be3a371c5
-EBUILD pyshp-2.3.1-r1.ebuild 777 BLAKE2B 59870ff54c0a4a3b8ace5ca05ff0225fdbfb6d9cb1cacee8d3b7759a92099fb4dfd1fdc2a62bd7d53e47bfb481ba4f9df996ed99298ecbcecca0fd3292f91e6f SHA512 5f47eb6e8138c64c6b4ccac8288d01216c7180fdefd486a8c4be2e30327b21af8f56806f01baec58bc23668a3c13056c7d5549d8a9f3473224133a4f28b470cd
EBUILD pyshp-2.3.1-r2.ebuild 766 BLAKE2B c14fa6ee82cb0649abb28ffacc950263e10e16e42a0ee32096938eb3169fd1ebe55383fc6a3b8304d26a14d4d3602d6b1b494a7c6cd3648b2f1b1dea822f723f SHA512 1eae298a56f3c3c1f01e30e3dfc6860b1b461a73a33af8c2b5e2696576a4cbcbfed271e406cab0608777bb834af0814fd0af6ac1bbe63ab61536d53f09df1db5
MISC metadata.xml 392 BLAKE2B d0502636f7a083b4eca21dd9c9cb2604d96ec91616c88566f42687e53be965090683984d3289ae332c94309e89b25f39a12b601467abec718365d53f423fe21d SHA512 b3914985e7b8857a7f0841d4e987746f64a571a83ed3a237621c048e073c1f5a77512c40011ee1808c3ffadff08c03adc53ffe767e8a5f35c628882df779b771
diff --git a/sci-libs/pyshp/pyshp-2.3.1-r1.ebuild b/sci-libs/pyshp/pyshp-2.3.1-r1.ebuild
deleted file mode 100644
index 813c53e427ef..000000000000
--- a/sci-libs/pyshp/pyshp-2.3.1-r1.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="8"
-
-PYTHON_COMPAT=( python3_{9..11} )
-
-DISTUTILS_USE_PEP517=setuptools
-inherit distutils-r1
-
-DESCRIPTION="Pure Python read/write support for ESRI Shapefile format"
-HOMEPAGE="https://pypi.org/project/pyshp/"
-# pypi tarballs are missing test data
-#SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-SRC_URI="https://github.com/GeospatialPython/${PN}/archive/${PV}.tar.gz -> ${P}..gh.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND=""
-DEPEND="${RDEPEND}
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? ( dev-python/pytest[${PYTHON_USEDEP}] )"
-
-python_test() {
- epytest test_shapefile.py -m "not network" || die
-}
diff --git a/sci-libs/stellarsolver/Manifest b/sci-libs/stellarsolver/Manifest
index 82cb5d6114f3..bc74485a1c19 100644
--- a/sci-libs/stellarsolver/Manifest
+++ b/sci-libs/stellarsolver/Manifest
@@ -1,3 +1,6 @@
+AUX stellarsolver-2.5-compiler-warning.patch 1046 BLAKE2B a9820195206c698bd3107846e52a48e648555ce6da2d8700f6a44bf4bcba80c968e5ff60bfcb556c0c7b1b405acd3702a37bb2dcba30f999edff92c566237090 SHA512 4136dff3be775e1ec426eff9be5caf5368cec8faa969752ecce55b0680da0c5b725541632116507dfbe381025986fc188be4534ac98ffe9bfb4860fdb099365c
+AUX stellarsolver-2.5-qsort-warning.patch 10025 BLAKE2B d16f29912b6190e4dc0af6ba307064e1312737eafff211fab1466f2f13af40e9afb6100e728d71d60cae83e8bc88175bf79dedce82f938fd372be22266a21c47 SHA512 a099ef0d47fabec1b9f776a4f901e39daa0231db559837a2f40bf5fa23847513f188bd9292758f5c4f055a5ea62fe03e7c45b8dd129453d41d10b20a510c1d3a
DIST stellarsolver-2.5.tar.gz 23402988 BLAKE2B ec1ab428413104a329128e3e90883884eedf2c031fb4f3f5a8ab7579243a7b7a496579f3127ad0324176cf825d02a417e1538272b931a87090f1373adf0d1239 SHA512 003522ac0b4130e0ca16ccb617743e3716aa2a182ad63abfb901ea0b47c28a745e8ca1e5b7874d17636ff948b1ebc055277557f89a159e425af7d2a64f513fe8
+EBUILD stellarsolver-2.5-r1.ebuild 821 BLAKE2B db23bead364172e310ecc9491ca8e892bff04beaa5c712e269f2de9576b27bf6cfb9f8c6c21bfd409cdb0f5362b2e881129c14831a771ab8cf28aed08f203337 SHA512 eae66785f2d4150fdf43dc27ec4d247db68ee5d5554406ceaf49e094eade8e7cb9856d4930a6d0d757bcf3c9e1eded44b68dbbbac235c1349f6cb8ac13d819ee
EBUILD stellarsolver-2.5.ebuild 688 BLAKE2B 6a736278e73f986b5b40387de2abc1caada0ae553b98573c06937898f8f152ff7de997d811d4626da58d21464dacecbd8202cb8f341ff397b850412412c3e926 SHA512 3bd5aa128bb70b642e5d7df572ac3b0cae6a0629e85cbc49a9451bbfdd3abecc42bda8b44dc1a1b52d748e0d7a6db0611bac00501e79b115641d0c2f7eb1cdee
MISC metadata.xml 464 BLAKE2B 4d73483b37f92bd6a6a112d27c17ce7c8c0165cb3400f10c3a5ed5a65bcaa6e2e0d892d305834fc813655258173552cdef75431d9798491d0b124de1dbb6f035 SHA512 3cc978f381b4435b05712e69733336ec7e89963d4b236059c21b4bf7f08b899e617243ef5df0e27c2ef21e59197b97fcf414c1964b86b215d0c355c4f88cac77
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
+}