summaryrefslogtreecommitdiff
path: root/sci-libs
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-09-16 03:04:44 -0500
committerroot <root@alpha.trunkmasters.com>2026-09-16 03:04:44 -0500
commit687a263b5212436c1ced6387f36d785b0a34599f (patch)
tree0196c232ff96b66c09be11acb466add8ce44899e /sci-libs
parentafe8b68a6636c2d8e95d0710f831470d59ab2790 (diff)
downloadbaldeagleos-repo-687a263b5212436c1ced6387f36d785b0a34599f.tar.gz
baldeagleos-repo-687a263b5212436c1ced6387f36d785b0a34599f.tar.xz
baldeagleos-repo-687a263b5212436c1ced6387f36d785b0a34599f.zip
Adding metadata
Diffstat (limited to 'sci-libs')
-rw-r--r--sci-libs/cantera/Manifest3
-rw-r--r--sci-libs/cantera/cantera-3.0.1-r1.ebuild147
-rw-r--r--sci-libs/cantera/cantera-3.0.1-r2.ebuild149
-rw-r--r--sci-libs/cantera/cantera-3.1.0-r1.ebuild156
-rw-r--r--sci-libs/cantera/cantera-3.2.0-r1.ebuild (renamed from sci-libs/cantera/cantera-3.1.0.ebuild)18
-rw-r--r--sci-libs/cantera/cantera-3.2.0-r2.ebuild (renamed from sci-libs/cantera/cantera-3.2.0.ebuild)16
-rw-r--r--sci-libs/cantera/files/cantera-3.0.0_env.patch37
-rw-r--r--sci-libs/cantera/files/cantera-3.0.1_add_fmt11_support.patch46
-rw-r--r--sci-libs/cantera/files/cantera-3.0.1_fix_fmt_with_c++20.patch323
-rw-r--r--sci-libs/cantera/files/cantera-3.1.0_enable_py3.14_packaging.patch12
-rw-r--r--sci-libs/cantera/files/cantera-3.2.0_env.patch (renamed from sci-libs/cantera/files/cantera-3.1.0_env.patch)0
-rw-r--r--sci-libs/cantera/files/cantera-3.2.0_fix_species_slicing_error_numpy-2.4.patch48
-rw-r--r--sci-libs/gdal/Manifest3
-rw-r--r--sci-libs/gdal/gdal-3.13.3.ebuild529
14 files changed, 593 insertions, 894 deletions
diff --git a/sci-libs/cantera/Manifest b/sci-libs/cantera/Manifest
index b822b61eeaf8..323ce4337481 100644
--- a/sci-libs/cantera/Manifest
+++ b/sci-libs/cantera/Manifest
@@ -1,5 +1,2 @@
-DIST cantera-3.0.1.tar.gz 2451841 BLAKE2B b05771021a81d5266dfed382e2a6357e5b70653c6d9cfb5f03a6755095f4f8f4e7c0f78b79e0bf131c01fefce46bbc647c790ee412b6457c515cda39d4fc3054 SHA512 fa993b33867c6c0a0ca539f52116c4cdea739dfcd30deb5d2f66042f290f7f2f60112d7a37c38fbd8a38a119e5af00a7a85fd80b6e36388202b666be0ddd7715
-DIST cantera-3.1.0.tar.gz 2605640 BLAKE2B 6912b4e6b96ff71f02484a8fa051f8d34d0fc24c933e08e129531c6fe10e80fea74fcf6a6f7b00736de7b6ed5d4ab483f37a51b532d9bf154646546a8856e2a2 SHA512 0400a01ed0e244e6a34c9c04ffd5174ce6632c713c9bf003ab96e22b6f5a62713ee6a7eb07d7ae614e9f4e303e17df7fd234d66a48e43e46ede0246bb2bac52b
-DIST cantera-3.1.0_example_data.tar.gz 244545 BLAKE2B c341a7d530ad2486660b1dfe870f6ddd49280101bc7e98d3a88dea3aaaab0ae6c25383746f688164a04385a462a513f706d0ee248a675806de22df467d4f074f SHA512 a6171a106460f8b7a84bf825db38826444c30f921ba27896a50e1b52177550deaa5f66e11f6f91a2b91c4023e3dfb55b46233d2b6176afa771154dd81f8b34ab
DIST cantera-3.2.0.tar.gz 2817937 BLAKE2B 5e6058fb57c05315661f6298f6f4384d266510221e1bc5c8b2b7041b11a6fab0d588c87d05c61543a87ac98fea01763f68614c25948783e8fa17a2a3a7ca2846 SHA512 d587029567ebc4685d03c811fbcc56f676e2f29270b8cb69d22e2518911db2bdfe40c7683d822c09c0a723925479b247beae44a3edc07c86a48e67d2bad628b8
DIST cantera-3.2.0_example_data.tar.gz 260526 BLAKE2B 2c1ff2430bc42867e6dc41cb0677382139fed152e022cae0b94597f8962181d1c46013818344429114584826c7e6dbe58fd9854a5f3d46fd966fe9fb248cb207 SHA512 940a16f69975b7171d56a1d8c89bc0d8e2e306e8be041974bdd33f4061dca4c172555d1886785f294f3b009856b4112e95870c4b891a9153529c94747fca936f
diff --git a/sci-libs/cantera/cantera-3.0.1-r1.ebuild b/sci-libs/cantera/cantera-3.0.1-r1.ebuild
deleted file mode 100644
index 995ad38e3f58..000000000000
--- a/sci-libs/cantera/cantera-3.0.1-r1.ebuild
+++ /dev/null
@@ -1,147 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{13..14} )
-
-FORTRAN_NEEDED=fortran
-FORTRAN_STANDARD="77 90"
-
-inherit flag-o-matic fortran-2 python-single-r1 scons-utils toolchain-funcs
-
-DESCRIPTION="Object-oriented tool suite for chemical kinetics, thermodynamics, and transport"
-HOMEPAGE="https://www.cantera.org"
-SRC_URI="https://github.com/Cantera/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~x86"
-IUSE="fortran hdf5 lapack +python test"
-RESTRICT="!test? ( test )"
-
-REQUIRED_USE="
- ${PYTHON_REQUIRED_USE}
-"
-
-RDEPEND="
- ${PYTHON_DEPS}
- dev-cpp/eigen:=
- dev-cpp/yaml-cpp
- hdf5? ( sci-libs/highfive )
- !lapack? ( sci-libs/sundials:0= )
- lapack? (
- >=sci-libs/sundials-6.5.0:0=[lapack?]
- virtual/lapack
- )
- python? (
- $(python_gen_cond_dep '
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/ruamel-yaml[${PYTHON_USEDEP}]
- ')
- )
-"
-
-DEPEND="
- ${RDEPEND}
- dev-libs/boost:=
- <dev-libs/libfmt-11
- python? (
- $(python_gen_cond_dep '
- dev-python/cython[${PYTHON_USEDEP}]
- dev-python/pip[${PYTHON_USEDEP}]
- ')
- )
- test? (
- >=dev-cpp/gtest-1.11.0
- python? (
- $(python_gen_cond_dep '
- dev-python/h5py[${PYTHON_USEDEP}]
- dev-python/pandas[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
- dev-python/scipy[${PYTHON_USEDEP}]
- ')
- )
- )
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-3.0.0_env.patch"
-)
-
-pkg_setup() {
- fortran-2_pkg_setup
- python-single-r1_pkg_setup
-}
-
-## Full list of configuration options of Cantera is presented here:
-## http://cantera.org/docs/sphinx/html/compiling/config-options.html
-src_configure() {
- # -Werror=odr, -Werror=lto-type-mismatch
- # https://github.com/Cantera/cantera/issues/1783
- filter-lto
-
- scons_vars=(
- AR="$(tc-getAR)"
- CC="$(tc-getCC)"
- CXX="$(tc-getCXX)"
- cc_flags="${CXXFLAGS}"
- cxx_flags="-std=c++17"
- debug="no"
- FORTRAN="$(tc-getFC)"
- FORTRANFLAGS="${FCFLAGS}"
- optimize_flags="-Wno-inline"
- renamed_shared_libraries="no"
- use_pch="no"
- ## In some cases other order can break the detection of right location of Boost: ##
- system_fmt="y"
- system_sundials="y"
- system_eigen="y"
- system_yamlcpp="y"
- hdf_support=$(usex hdf5 y n)
- system_blas_lapack=$(usex lapack y n)
- env_vars="all"
- extra_inc_dirs="/usr/include/eigen3"
- use_rpath_linkage="yes"
- extra_lib_dirs="/usr/$(get_libdir)/${PN}"
- )
- use hdf5 && scons_vars+=( system_highfive="y" )
- use lapack && scons_vars+=( blas_lapack_libs="lapack,blas" )
- use test || scons_vars+=( googletest="none" )
-
- scons_targets=(
- f90_interface=$(usex fortran y n)
- )
-
- if use python ; then
- scons_targets+=( python_package="full" python_cmd="${EPYTHON}" )
- else
- scons_targets+=( python_package="none" )
- fi
-}
-
-src_compile() {
- escons build "${scons_vars[@]}" "${scons_targets[@]}" prefix="/usr"
-}
-
-src_test() {
- escons test
-}
-
-src_install() {
- escons install stage_dir="${D}" libdirname="$(get_libdir)"
- if ! use python ; then
- rm -r "${D}/usr/share/man" || die "Can't remove man files."
- else
- # Run the byte-compile of modules
- python_optimize "${D}$(python_get_sitedir)/${PN}"
- fi
-
- # User could remove this line if require static libs for development purpose
- find "${ED}" -name '*.a' -delete || die
-}
-
-pkg_postinst() {
- local post_msg=$(usex fortran "and Fortran " "")
- elog "C++ ${post_msg}samples are installed to '/usr/share/${PN}/samples/' directory."
-}
diff --git a/sci-libs/cantera/cantera-3.0.1-r2.ebuild b/sci-libs/cantera/cantera-3.0.1-r2.ebuild
deleted file mode 100644
index 186dd6aa4323..000000000000
--- a/sci-libs/cantera/cantera-3.0.1-r2.ebuild
+++ /dev/null
@@ -1,149 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{13..14} )
-
-FORTRAN_NEEDED=fortran
-FORTRAN_STANDARD="77 90"
-
-inherit flag-o-matic fortran-2 python-single-r1 scons-utils toolchain-funcs
-
-DESCRIPTION="Object-oriented tool suite for chemical kinetics, thermodynamics, and transport"
-HOMEPAGE="https://www.cantera.org"
-SRC_URI="https://github.com/Cantera/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="fortran hdf5 lapack +python test"
-RESTRICT="!test? ( test )"
-
-REQUIRED_USE="
- ${PYTHON_REQUIRED_USE}
-"
-
-RDEPEND="
- ${PYTHON_DEPS}
- dev-cpp/eigen:=
- dev-cpp/yaml-cpp
- hdf5? ( sci-libs/highfive )
- !lapack? ( sci-libs/sundials:0= )
- lapack? (
- >=sci-libs/sundials-6.5.0:0=[lapack?]
- virtual/lapack
- )
- python? (
- $(python_gen_cond_dep '
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/ruamel-yaml[${PYTHON_USEDEP}]
- ')
- )
-"
-
-DEPEND="
- ${RDEPEND}
- dev-libs/boost:=
- dev-libs/libfmt
- python? (
- $(python_gen_cond_dep '
- dev-python/cython[${PYTHON_USEDEP}]
- dev-python/pip[${PYTHON_USEDEP}]
- ')
- )
- test? (
- >=dev-cpp/gtest-1.11.0
- python? (
- $(python_gen_cond_dep '
- dev-python/h5py[${PYTHON_USEDEP}]
- dev-python/pandas[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
- dev-python/scipy[${PYTHON_USEDEP}]
- ')
- )
- )
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-3.0.0_env.patch"
- "${FILESDIR}/${P}_fix_fmt_with_c++20.patch"
- "${FILESDIR}/${P}_add_fmt11_support.patch"
-)
-
-pkg_setup() {
- fortran-2_pkg_setup
- python-single-r1_pkg_setup
-}
-
-## Full list of configuration options of Cantera is presented here:
-## http://cantera.org/docs/sphinx/html/compiling/config-options.html
-src_configure() {
- # -Werror=odr, -Werror=lto-type-mismatch
- # https://github.com/Cantera/cantera/issues/1783
- filter-lto
-
- scons_vars=(
- AR="$(tc-getAR)"
- CC="$(tc-getCC)"
- CXX="$(tc-getCXX)"
- cc_flags="${CXXFLAGS}"
- cxx_flags="-std=c++20"
- debug="no"
- FORTRAN="$(tc-getFC)"
- FORTRANFLAGS="${FCFLAGS}"
- optimize_flags="-Wno-inline"
- renamed_shared_libraries="no"
- use_pch="no"
- ## In some cases other order can break the detection of right location of Boost: ##
- system_fmt="y"
- system_sundials="y"
- system_eigen="y"
- system_yamlcpp="y"
- hdf_support=$(usex hdf5 y n)
- system_blas_lapack=$(usex lapack y n)
- env_vars="all"
- extra_inc_dirs="/usr/include/eigen3"
- use_rpath_linkage="yes"
- extra_lib_dirs="/usr/$(get_libdir)/${PN}"
- )
- use hdf5 && scons_vars+=( system_highfive="y" )
- use lapack && scons_vars+=( blas_lapack_libs="lapack,blas" )
- use test || scons_vars+=( googletest="none" )
-
- scons_targets=(
- f90_interface=$(usex fortran y n)
- )
-
- if use python ; then
- scons_targets+=( python_package="full" python_cmd="${EPYTHON}" )
- else
- scons_targets+=( python_package="none" )
- fi
-}
-
-src_compile() {
- escons build "${scons_vars[@]}" "${scons_targets[@]}" prefix="/usr"
-}
-
-src_test() {
- escons test
-}
-
-src_install() {
- escons install stage_dir="${D}" libdirname="$(get_libdir)"
- if ! use python ; then
- rm -r "${D}/usr/share/man" || die "Can't remove man files."
- else
- # Run the byte-compile of modules
- python_optimize "${D}$(python_get_sitedir)/${PN}"
- fi
-
- # User could remove this line if require static libs for development purpose
- find "${ED}" -name '*.a' -delete || die
-}
-
-pkg_postinst() {
- local post_msg=$(usex fortran "and Fortran " "")
- elog "C++ ${post_msg}samples are installed to '/usr/share/${PN}/samples/' directory."
-}
diff --git a/sci-libs/cantera/cantera-3.1.0-r1.ebuild b/sci-libs/cantera/cantera-3.1.0-r1.ebuild
deleted file mode 100644
index 0fc970724500..000000000000
--- a/sci-libs/cantera/cantera-3.1.0-r1.ebuild
+++ /dev/null
@@ -1,156 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{13..14} )
-
-FORTRAN_NEEDED=fortran
-FORTRAN_STANDARD="77 90"
-
-inherit flag-o-matic fortran-2 python-single-r1 scons-utils toolchain-funcs
-
-DESCRIPTION="Object-oriented tool suite for chemical kinetics, thermodynamics, and transport"
-HOMEPAGE="https://www.cantera.org"
-SRC_URI="
- https://github.com/Cantera/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
- https://github.com/Cantera/cantera-example-data/archive/refs/tags/v${PV}.tar.gz -> ${P}_example_data.tar.gz
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="fortran hdf5 lapack +python test"
-RESTRICT="!test? ( test )"
-
-REQUIRED_USE="
- ${PYTHON_REQUIRED_USE}
-"
-
-RDEPEND="
- ${PYTHON_DEPS}
- dev-cpp/eigen:=
- dev-cpp/yaml-cpp
- hdf5? ( sci-libs/highfive )
- !lapack? ( sci-libs/sundials:0= )
- lapack? (
- >=sci-libs/sundials-6.5.0:0=[lapack?]
- virtual/lapack
- )
- python? (
- $(python_gen_cond_dep '
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/ruamel-yaml[${PYTHON_USEDEP}]
- ')
- )
-"
-
-DEPEND="
- ${RDEPEND}
- dev-libs/boost:=
- dev-libs/libfmt
- python? (
- $(python_gen_cond_dep '
- dev-python/cython[${PYTHON_USEDEP}]
- dev-python/pip[${PYTHON_USEDEP}]
- ')
- )
- test? (
- >=dev-cpp/gtest-1.11.0
- python? (
- $(python_gen_cond_dep '
- dev-python/h5py[${PYTHON_USEDEP}]
- dev-python/pandas[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
- dev-python/scipy[${PYTHON_USEDEP}]
- ')
- )
- )
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-3.1.0_env.patch"
- "${FILESDIR}/${PN}-3.1.0_enable_py3.14_packaging.patch"
-)
-
-src_unpack() {
- default
- mv -T "${WORKDIR}/${PN}-example-data-${PV}" "${S}"/data/example_data || die
-}
-
-pkg_setup() {
- fortran-2_pkg_setup
- python-single-r1_pkg_setup
-}
-
-## Full list of configuration options of Cantera is presented here:
-## https://cantera.org/3.1/develop/compiling/config-options.html
-src_configure() {
- # -Werror=odr, -Werror=lto-type-mismatch
- # https://github.com/Cantera/cantera/issues/1783
- filter-lto
-
- scons_vars=(
- AR="$(tc-getAR)"
- CC="$(tc-getCC)"
- CXX="$(tc-getCXX)"
- cc_flags="${CXXFLAGS}"
- cxx_flags="-std=c++20"
- debug="no"
- FORTRAN="$(tc-getFC)"
- FORTRANFLAGS="${FCFLAGS}"
- optimize_flags="-Wno-inline"
- renamed_shared_libraries="no"
- use_pch="no"
- ## In some cases other order can break the detection of right location of Boost: ##
- system_fmt="y"
- system_sundials="y"
- system_eigen="y"
- system_yamlcpp="y"
- hdf_support=$(usex hdf5 y n)
- system_blas_lapack=$(usex lapack y n)
- env_vars="all"
- extra_inc_dirs="/usr/include/eigen3"
- use_rpath_linkage="yes"
- extra_lib_dirs="/usr/$(get_libdir)/${PN}"
- )
- use hdf5 && scons_vars+=( system_highfive="y" )
- use lapack && scons_vars+=( blas_lapack_libs="lapack,blas" )
- use test || scons_vars+=( googletest="none" )
-
- scons_targets=(
- f90_interface=$(usex fortran y n)
- )
-
- if use python ; then
- scons_targets+=( python_package="y" python_cmd="${EPYTHON}" )
- else
- scons_targets+=( python_package="n" )
- fi
-}
-
-src_compile() {
- escons build "${scons_vars[@]}" "${scons_targets[@]}" prefix="/usr"
-}
-
-src_test() {
- escons test
-}
-
-src_install() {
- escons install stage_dir="${D}" libdirname="$(get_libdir)"
- if ! use python ; then
- rm -r "${D}/usr/share/man" || die "Can't remove man files."
- else
- # Run the byte-compile of modules
- python_optimize "${D}$(python_get_sitedir)/${PN}"
- fi
-
- # User could remove this line if require static libs for development purpose
- find "${ED}" -name '*.a' -delete || die
-}
-
-pkg_postinst() {
- local post_msg=$(usex fortran "and Fortran " "")
- elog "C++ ${post_msg}samples are installed to '/usr/share/${PN}/samples/' directory."
-}
diff --git a/sci-libs/cantera/cantera-3.1.0.ebuild b/sci-libs/cantera/cantera-3.2.0-r1.ebuild
index 02c67e8444ca..698174ef9d09 100644
--- a/sci-libs/cantera/cantera-3.1.0.ebuild
+++ b/sci-libs/cantera/cantera-3.2.0-r1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 ~x86"
-IUSE="fortran hdf5 lapack +python test"
+IUSE="fortran hdf5 +python test"
RESTRICT="!test? ( test )"
REQUIRED_USE="
@@ -31,15 +31,11 @@ RDEPEND="
${PYTHON_DEPS}
dev-cpp/eigen:=
dev-cpp/yaml-cpp
+ sci-libs/sundials:0=
hdf5? ( sci-libs/highfive )
- !lapack? ( sci-libs/sundials:0= )
- lapack? (
- >=sci-libs/sundials-6.5.0:0=[lapack?]
- virtual/lapack
- )
python? (
$(python_gen_cond_dep '
- dev-python/numpy[${PYTHON_USEDEP}]
+ <dev-python/numpy-2.4.0[${PYTHON_USEDEP}]
dev-python/ruamel-yaml[${PYTHON_USEDEP}]
')
)
@@ -47,6 +43,7 @@ RDEPEND="
DEPEND="
${RDEPEND}
+ >=app-text/doxygen-1.13.0[dot]
dev-libs/boost:=
dev-libs/libfmt
python? (
@@ -69,7 +66,7 @@ DEPEND="
"
PATCHES=(
- "${FILESDIR}/${PN}-3.1.0_env.patch"
+ "${FILESDIR}/${P}_env.patch"
)
src_unpack() {
@@ -83,7 +80,7 @@ pkg_setup() {
}
## Full list of configuration options of Cantera is presented here:
-## https://cantera.org/3.1/develop/compiling/config-options.html
+## https://cantera.org/3.2/develop/compiling/config-options.html
src_configure() {
# -Werror=odr, -Werror=lto-type-mismatch
# https://github.com/Cantera/cantera/issues/1783
@@ -102,19 +99,18 @@ src_configure() {
renamed_shared_libraries="no"
use_pch="no"
## In some cases other order can break the detection of right location of Boost: ##
+ system_blas_lapack="n"
system_fmt="y"
system_sundials="y"
system_eigen="y"
system_yamlcpp="y"
hdf_support=$(usex hdf5 y n)
- system_blas_lapack=$(usex lapack y n)
env_vars="all"
extra_inc_dirs="/usr/include/eigen3"
use_rpath_linkage="yes"
extra_lib_dirs="/usr/$(get_libdir)/${PN}"
)
use hdf5 && scons_vars+=( system_highfive="y" )
- use lapack && scons_vars+=( blas_lapack_libs="lapack,blas" )
use test || scons_vars+=( googletest="none" )
scons_targets=(
diff --git a/sci-libs/cantera/cantera-3.2.0.ebuild b/sci-libs/cantera/cantera-3.2.0-r2.ebuild
index a039c7321082..59367dd6d172 100644
--- a/sci-libs/cantera/cantera-3.2.0.ebuild
+++ b/sci-libs/cantera/cantera-3.2.0-r2.ebuild
@@ -19,8 +19,8 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~x86"
-IUSE="fortran hdf5 lapack +python test"
+KEYWORDS="~amd64 ~x86"
+IUSE="fortran hdf5 +python test"
RESTRICT="!test? ( test )"
REQUIRED_USE="
@@ -31,12 +31,8 @@ RDEPEND="
${PYTHON_DEPS}
dev-cpp/eigen:=
dev-cpp/yaml-cpp
+ sci-libs/sundials:0=
hdf5? ( sci-libs/highfive )
- !lapack? ( sci-libs/sundials:0= )
- lapack? (
- >=sci-libs/sundials-6.5.0:0=[lapack?]
- virtual/lapack
- )
python? (
$(python_gen_cond_dep '
dev-python/numpy[${PYTHON_USEDEP}]
@@ -70,7 +66,8 @@ DEPEND="
"
PATCHES=(
- "${FILESDIR}/${PN}-3.1.0_env.patch"
+ "${FILESDIR}/${P}_env.patch"
+ "${FILESDIR}/${P}_fix_species_slicing_error_numpy-2.4.patch"
)
src_unpack() {
@@ -103,19 +100,18 @@ src_configure() {
renamed_shared_libraries="no"
use_pch="no"
## In some cases other order can break the detection of right location of Boost: ##
+ system_blas_lapack="n"
system_fmt="y"
system_sundials="y"
system_eigen="y"
system_yamlcpp="y"
hdf_support=$(usex hdf5 y n)
- system_blas_lapack=$(usex lapack y n)
env_vars="all"
extra_inc_dirs="/usr/include/eigen3"
use_rpath_linkage="yes"
extra_lib_dirs="/usr/$(get_libdir)/${PN}"
)
use hdf5 && scons_vars+=( system_highfive="y" )
- use lapack && scons_vars+=( blas_lapack_libs="lapack,blas" )
use test || scons_vars+=( googletest="none" )
scons_targets=(
diff --git a/sci-libs/cantera/files/cantera-3.0.0_env.patch b/sci-libs/cantera/files/cantera-3.0.0_env.patch
deleted file mode 100644
index cfc2874250e4..000000000000
--- a/sci-libs/cantera/files/cantera-3.0.0_env.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff -Naur a/SConstruct b/SConstruct
---- a/SConstruct
-+++ b/SConstruct
-@@ -819,7 +819,7 @@
- toolchain = ["default"]
-
- env = Environment(tools=toolchain+["textfile", "subst", "recursiveInstall", "UnitsInterfaceBuilder", "wix", "gch"],
-- ENV={"PATH": os.environ["PATH"]},
-+ ENV={'PATH': os.environ['PATH'], 'CCACHE_DIR': os.environ.get('CCACHE_DIR','')},
- toolchain=toolchain,
- **extraEnvArgs)
-
-@@ -970,11 +974,7 @@
- env["CPU"] = get_processor_name()
- logger.info(f"Compiling on {env['CPU']!r}")
-
--try:
-- env["git_commit"] = get_command_output("git", "rev-parse", "--short", "HEAD")
-- logger.info(f"Building Cantera from git commit {env['git_commit']!r}")
--except (subprocess.CalledProcessError, FileNotFoundError):
-- env["git_commit"] = "unknown"
-+env["git_commit"] = "unknown"
-
- # Print values of all build options:
- # the (updated) "cantera.conf" combines all options that were specified by the user
-diff -Naur a/src/SConscript b/src/SConscript
---- a/src/SConscript
-+++ b/src/SConscript
-@@ -89,7 +89,7 @@
- shim = pyenv.SharedObject("extensions/pythonShim.cpp")
- pylibname = f"../lib/cantera_python{pyenv['py_version_short'].replace('.', '_')}"
- lib = build(pyenv.SharedLibrary(pylibname, shim, SPAWN=get_spawn(pyenv)))
-- install("$inst_shlibdir", lib)
-+ install("$inst_shlibdir/cantera", lib)
-
-
- # build the Cantera static library
diff --git a/sci-libs/cantera/files/cantera-3.0.1_add_fmt11_support.patch b/sci-libs/cantera/files/cantera-3.0.1_add_fmt11_support.patch
deleted file mode 100644
index 7e0d5333a105..000000000000
--- a/sci-libs/cantera/files/cantera-3.0.1_add_fmt11_support.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-This is upstream patch with removed changes for "doc/sphinx/develop/compiling/dependencies.md" file
-Upstream issue: https://github.com/Cantera/cantera/issues/1735
-Gentoo issue: https://bugs.gentoo.org/945800
-
-From c8f190928fd7a074944f0f4c58661f84a282a35e Mon Sep 17 00:00:00 2001
-From: Ray Speth <speth@mit.edu>
-Date: Wed, 24 Jul 2024 20:12:18 -0400
-Subject: [PATCH] Add support for fmt 11.0
-
-Resolves #1735
----
- SConstruct | 2 +-
- doc/sphinx/develop/compiling/dependencies.md | 2 +-
- include/cantera/base/fmt.h | 8 ++++++++
- 3 files changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/SConstruct b/SConstruct
-index 3863fe3a32..0b607ac891 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -216,7 +216,7 @@ config_options = [
- options with spaces, for example, "cxx_flags='-g -Wextra -O3 --std=c++14'"
- """,
- {
-- "cl": "/EHsc /std:c++17",
-+ "cl": "/EHsc /std:c++17 /utf-8",
- "default": "-std=c++17"
- }),
- Option(
-diff --git a/include/cantera/base/fmt.h b/include/cantera/base/fmt.h
-index 1e0b3a0423..6b4d734fe3 100644
---- a/include/cantera/base/fmt.h
-+++ b/include/cantera/base/fmt.h
-@@ -42,4 +42,12 @@ void fmt_append(fmt::memory_buffer& b, const std::string& tmpl, Args... args) {
- }
- #endif
-
-+#if FMT_VERSION > 100000
-+ #if CT_USE_SYSTEM_FMT
-+ #include <fmt/ranges.h>
-+ #else
-+ #include <fmt/join.h>
-+ #endif
-+#endif
-+
- #endif
diff --git a/sci-libs/cantera/files/cantera-3.0.1_fix_fmt_with_c++20.patch b/sci-libs/cantera/files/cantera-3.0.1_fix_fmt_with_c++20.patch
deleted file mode 100644
index 3b6b3da50a53..000000000000
--- a/sci-libs/cantera/files/cantera-3.0.1_fix_fmt_with_c++20.patch
+++ /dev/null
@@ -1,323 +0,0 @@
-This is upstream patch.
-Upstream issue: https://github.com/Cantera/cantera/issues/1711
-
-From edc8243577020b7dd6cd0fd85285cc8ca043b5ea Mon Sep 17 00:00:00 2001
-From: Ray Speth <speth@mit.edu>
-Date: Wed, 19 Jun 2024 00:09:02 -0400
-Subject: [PATCH] Fix usage of fmt when compiling in C++20 mode
-
-Resolves #1711
----
- include/cantera/base/AnyMap.h | 6 ++--
- include/cantera/base/ctexceptions.h | 2 +-
- include/cantera/base/fmt.h | 8 ++---
- include/cantera/base/global.h | 8 ++---
- src/base/AnyMap.cpp | 4 +--
- src/base/SolutionArray.cpp | 51 ++++++++++++++++-------------
- src/thermo/PureFluidPhase.cpp | 2 +-
- src/thermo/ThermoPhase.cpp | 2 +-
- 8 files changed, 46 insertions(+), 37 deletions(-)
-
-diff --git a/include/cantera/base/AnyMap.h b/include/cantera/base/AnyMap.h
-index 81ac0071a7..b1f0747f33 100644
---- a/include/cantera/base/AnyMap.h
-+++ b/include/cantera/base/AnyMap.h
-@@ -746,7 +746,8 @@ class InputFileError : public CanteraError
- : CanteraError(
- procedure,
- formatError(
-- (sizeof...(args) == 0) ? message : fmt::format(message, args...),
-+ (sizeof...(args) == 0) ? message
-+ : fmt::format(fmt::runtime(message), args...),
- node.m_line, node.m_column, node.m_metadata))
- {
- }
-@@ -761,7 +762,8 @@ class InputFileError : public CanteraError
- : CanteraError(
- procedure,
- formatError2(
-- (sizeof...(args) == 0) ? message : fmt::format(message, args...),
-+ (sizeof...(args) == 0) ? message
-+ : fmt::format(fmt::runtime(message), args...),
- node1.m_line, node1.m_column, node1.m_metadata,
- node2.m_line, node2.m_column, node2.m_metadata))
- {
-diff --git a/include/cantera/base/ctexceptions.h b/include/cantera/base/ctexceptions.h
-index fb21d3ef22..476e16bf46 100644
---- a/include/cantera/base/ctexceptions.h
-+++ b/include/cantera/base/ctexceptions.h
-@@ -86,7 +86,7 @@ class CanteraError : public std::exception
- if (sizeof...(args) == 0) {
- msg_ = msg;
- } else {
-- msg_ = fmt::format(msg, args...);
-+ msg_ = fmt::format(fmt::runtime(msg), args...);
- }
- }
-
-diff --git a/include/cantera/base/fmt.h b/include/cantera/base/fmt.h
-index 8341be115e..f613e17b31 100644
---- a/include/cantera/base/fmt.h
-+++ b/include/cantera/base/fmt.h
-@@ -26,13 +26,13 @@
-
- #if FMT_VERSION < 80000
- template <typename... Args>
--void fmt_append(fmt::memory_buffer& b, Args... args) {
-- format_to(b, args...);
-+void fmt_append(fmt::memory_buffer& b, const std::string& tmpl, Args... args) {
-+ format_to(b, tmpl, args...);
- }
- #else
- template <typename... Args>
--void fmt_append(fmt::memory_buffer& b, Args... args) {
-- format_to(fmt::appender(b), args...);
-+void fmt_append(fmt::memory_buffer& b, const std::string& tmpl, Args... args) {
-+ format_to(fmt::appender(b), fmt::runtime(tmpl), args...);
- }
- #endif
-
-diff --git a/include/cantera/base/global.h b/include/cantera/base/global.h
-index c0092c43ee..aa0f636754 100644
---- a/include/cantera/base/global.h
-+++ b/include/cantera/base/global.h
-@@ -176,7 +176,7 @@ void writelog(const string& fmt, const Args&... args) {
- if (sizeof...(args) == 0) {
- writelog_direct(fmt);
- } else {
-- writelog_direct(fmt::format(fmt, args...));
-+ writelog_direct(fmt::format(fmt::runtime(fmt), args...));
- }
- }
-
-@@ -228,7 +228,7 @@ void warn_deprecated(const string& method, const string& msg, const Args&... arg
- if (sizeof...(args) == 0) {
- _warn_deprecated(method, msg);
- } else {
-- _warn_deprecated(method, fmt::format(msg, args...));
-+ _warn_deprecated(method, fmt::format(fmt::runtime(msg), args...));
- }
- }
-
-@@ -253,7 +253,7 @@ void warn(const string& warning, const string& method,
- if (sizeof...(args) == 0) {
- _warn(warning, method, msg);
- } else {
-- _warn(warning, method, fmt::format(msg, args...));
-+ _warn(warning, method, fmt::format(fmt::runtime(msg), args...));
- }
- }
-
-@@ -268,7 +268,7 @@ void warn_user(const string& method, const string& msg, const Args&... args) {
- if (sizeof...(args) == 0) {
- _warn("Cantera", method, msg);
- } else {
-- _warn("Cantera", method, fmt::format(msg, args...));
-+ _warn("Cantera", method, fmt::format(fmt::runtime(msg), args...));
- }
- }
-
-diff --git a/src/base/AnyMap.cpp b/src/base/AnyMap.cpp
-index 84d74c1358..b35aabb8c3 100644
---- a/src/base/AnyMap.cpp
-+++ b/src/base/AnyMap.cpp
-@@ -164,7 +164,7 @@ string formatDouble(double x, long int precision)
- size_t last;
- string s0;
- if (useExp) {
-- s0 = fmt::format(fmt::format("{:.{}e}", x, precision));
-+ s0 = fmt::format(fmt::runtime(fmt::format("{:.{}e}", x, precision)));
- // last digit of significand
- last = s0.size() - 5;
- if (s0[last + 1] == 'e') {
-@@ -195,7 +195,7 @@ string formatDouble(double x, long int precision)
- if (s0[last - 1] == '0') {
- s1 = s0; // Recycle original string
- } else if (useExp) {
-- s1 = fmt::format(fmt::format("{:.{}e}", x, precision - 2));
-+ s1 = fmt::format(fmt::runtime(fmt::format("{:.{}e}", x, precision - 2)));
- } else {
- s1 = fmt::format("{:.{}f}", x, precision - log10x - 2);
- }
-diff --git a/src/base/SolutionArray.cpp b/src/base/SolutionArray.cpp
-index 4819aaa756..986c3e2373 100644
---- a/src/base/SolutionArray.cpp
-+++ b/src/base/SolutionArray.cpp
-@@ -232,17 +232,19 @@ vector<string> doubleColumn(string name, const vector<double>& comp,
- if (csize <= rows) {
- for (const auto& val : comp) {
- data.push_back(val);
-- raw.push_back(boost::trim_copy(fmt::format(notation, val)));
-+ raw.push_back(boost::trim_copy(fmt::format(fmt::runtime(notation), val)));
- }
- } else {
- dots = (rows + 1) / 2;
- for (int row = 0; row < dots; row++) {
- data.push_back(comp[row]);
-- raw.push_back(boost::trim_copy(fmt::format(notation, comp[row])));
-+ raw.push_back(boost::trim_copy(
-+ fmt::format(fmt::runtime(notation), comp[row])));
- }
- for (int row = csize - rows / 2; row < csize; row++) {
- data.push_back(comp[row]);
-- raw.push_back(boost::trim_copy(fmt::format(notation, comp[row])));
-+ raw.push_back(boost::trim_copy(
-+ fmt::format(fmt::runtime(notation), comp[row])));
- }
- }
-
-@@ -292,17 +294,17 @@ vector<string> doubleColumn(string name, const vector<double>& comp,
- // all entries are integers
- notation = fmt::format(" {{:>{}.0f}}", over + maxLen);
- }
-- maxLen = fmt::format(notation, 0.).size();
-+ maxLen = fmt::format(fmt::runtime(notation), 0.).size();
-
- // assemble output
- string section = fmt::format("{{:>{}}}", maxLen);
-- vector<string> col = {fmt::format(section, name)};
-+ vector<string> col = {fmt::format(fmt::runtime(section), name)};
- int count = 0;
- for (const auto& val : data) {
-- col.push_back(fmt::format(notation, val));
-+ col.push_back(fmt::format(fmt::runtime(notation), val));
- count++;
- if (count == dots) {
-- col.push_back(fmt::format(section, "..."));
-+ col.push_back(fmt::format(fmt::runtime(section), "..."));
- }
- }
- return col;
-@@ -320,7 +322,8 @@ vector<string> integerColumn(string name, const vector<long int>& comp,
- if (csize <= rows) {
- for (const auto& val : comp) {
- data.push_back(val);
-- string formatted = boost::trim_copy(fmt::format(notation, val));
-+ string formatted = boost::trim_copy(
-+ fmt::format(fmt::runtime(notation), val));
- if (formatted[0] == '-') {
- formatted = formatted.substr(1);
- }
-@@ -330,7 +333,8 @@ vector<string> integerColumn(string name, const vector<long int>& comp,
- dots = (rows + 1) / 2;
- for (int row = 0; row < dots; row++) {
- data.push_back(comp[row]);
-- string formatted = boost::trim_copy(fmt::format(notation, comp[row]));
-+ string formatted = boost::trim_copy(
-+ fmt::format(fmt::runtime(notation), comp[row]));
- if (formatted[0] == '-') {
- formatted = formatted.substr(1);
- }
-@@ -338,7 +342,8 @@ vector<string> integerColumn(string name, const vector<long int>& comp,
- }
- for (int row = csize - rows / 2; row < csize; row++) {
- data.push_back(comp[row]);
-- string formatted = boost::trim_copy(fmt::format(notation, comp[row]));
-+ string formatted = boost::trim_copy(
-+ fmt::format(fmt::runtime(notation), comp[row]));
- if (formatted[0] == '-') {
- formatted = formatted.substr(1);
- }
-@@ -356,13 +361,13 @@ vector<string> integerColumn(string name, const vector<long int>& comp,
- }
-
- // assemble output
-- vector<string> col = {fmt::format(notation, name)};
-+ vector<string> col = {fmt::format(fmt::runtime(notation), name)};
- int count = 0;
- for (const auto& val : data) {
-- col.push_back(fmt::format(notation, val));
-+ col.push_back(fmt::format(fmt::runtime(notation), val));
- count++;
- if (count == dots) {
-- col.push_back(fmt::format(notation, ".."));
-+ col.push_back(fmt::format(fmt::runtime(notation), ".."));
- }
- }
- return col;
-@@ -381,31 +386,33 @@ vector<string> stringColumn(string name, const vector<string>& comp,
- for (const auto& val : comp) {
- data.push_back(val);
- maxLen = std::max(maxLen,
-- boost::trim_copy(fmt::format(notation, val)).size());
-+ boost::trim_copy(fmt::format(fmt::runtime(notation), val)).size());
- }
- } else {
- dots = (rows + 1) / 2;
- for (int row = 0; row < dots; row++) {
- data.push_back(comp[row]);
- maxLen = std::max(maxLen,
-- boost::trim_copy(fmt::format(notation, comp[row])).size());
-+ boost::trim_copy(
-+ fmt::format(fmt::runtime(notation), comp[row])).size());
- }
- for (int row = csize - rows / 2; row < csize; row++) {
- data.push_back(comp[row]);
- maxLen = std::max(maxLen,
-- boost::trim_copy(fmt::format(notation, comp[row])).size());
-+ boost::trim_copy(
-+ fmt::format(fmt::runtime(notation), comp[row])).size());
- }
- }
-
- // assemble output
- notation = fmt::format(" {{:>{}}}", maxLen);
-- vector<string> col = {fmt::format(notation, name)};
-+ vector<string> col = {fmt::format(fmt::runtime(notation), name)};
- int count = 0;
- for (const auto& val : data) {
-- col.push_back(fmt::format(notation, val));
-+ col.push_back(fmt::format(fmt::runtime(notation), val));
- count++;
- if (count == dots) {
-- col.push_back(fmt::format(notation, "..."));
-+ col.push_back(fmt::format(fmt::runtime(notation), "..."));
- }
- }
- return col;
-@@ -443,8 +450,8 @@ vector<string> formatColumn(string name, const AnyValue& comp, int rows, int wid
-
- // assemble output
- string notation = fmt::format(" {{:>{}}}", maxLen);
-- repr = fmt::format(notation, repr);
-- vector<string> col = {fmt::format(notation, name)};
-+ repr = fmt::format(fmt::runtime(notation), repr);
-+ vector<string> col = {fmt::format(fmt::runtime(notation), name)};
- if (size <= rows) {
- for (int row = 0; row < size; row++) {
- col.push_back(repr);
-@@ -454,7 +461,7 @@ vector<string> formatColumn(string name, const AnyValue& comp, int rows, int wid
- for (int row = 0; row < dots; row++) {
- col.push_back(repr);
- }
-- col.push_back(fmt::format(notation, "..."));
-+ col.push_back(fmt::format(fmt::runtime(notation), "..."));
- for (int row = size - rows / 2; row < size; row++) {
- col.push_back(repr);
- }
-diff --git a/src/thermo/PureFluidPhase.cpp b/src/thermo/PureFluidPhase.cpp
-index 65e27c52d7..3e45009422 100644
---- a/src/thermo/PureFluidPhase.cpp
-+++ b/src/thermo/PureFluidPhase.cpp
-@@ -393,7 +393,7 @@ string PureFluidPhase::report(bool show_thermo, double threshold) const
-
- string one_property = fmt::format("{{:>{}}} {{:<.5g}} {{}}\n", name_width);
-
-- string two_prop_header = "{} {:^15} {:^15}\n";
-+ constexpr auto two_prop_header = "{} {:^15} {:^15}\n";
- string kg_kmol_header = fmt::format(
- two_prop_header, blank_leader, "1 kg", "1 kmol"
- );
-diff --git a/src/thermo/ThermoPhase.cpp b/src/thermo/ThermoPhase.cpp
-index 31b2c0ee9f..2b3993be35 100644
---- a/src/thermo/ThermoPhase.cpp
-+++ b/src/thermo/ThermoPhase.cpp
-@@ -1291,7 +1291,7 @@ string ThermoPhase::report(bool show_thermo, double threshold) const
-
- string one_property = fmt::format("{{:>{}}} {{:<.5g}} {{}}\n", name_width);
-
-- string two_prop_header = "{} {:^15} {:^15}\n";
-+ constexpr auto two_prop_header = "{} {:^15} {:^15}\n";
- string kg_kmol_header = fmt::format(
- two_prop_header, blank_leader, "1 kg", "1 kmol"
- );
diff --git a/sci-libs/cantera/files/cantera-3.1.0_enable_py3.14_packaging.patch b/sci-libs/cantera/files/cantera-3.1.0_enable_py3.14_packaging.patch
deleted file mode 100644
index 1ecaa421028a..000000000000
--- a/sci-libs/cantera/files/cantera-3.1.0_enable_py3.14_packaging.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff '--color=auto' -Naur a/SConstruct b/SConstruct
---- a/SConstruct
-+++ b/SConstruct
-@@ -182,7 +182,7 @@
- # Python Package Settings
- python_min_version = parse_version("3.8")
- # Newest Python version not supported/tested by Cantera
--python_max_version = parse_version("3.14")
-+python_max_version = parse_version("3.15")
- # The string is used to set python_requires in setup.cfg.in
- py_requires_ver_str = f">={python_min_version},<{python_max_version}"
-
diff --git a/sci-libs/cantera/files/cantera-3.1.0_env.patch b/sci-libs/cantera/files/cantera-3.2.0_env.patch
index 31766f1afb13..31766f1afb13 100644
--- a/sci-libs/cantera/files/cantera-3.1.0_env.patch
+++ b/sci-libs/cantera/files/cantera-3.2.0_env.patch
diff --git a/sci-libs/cantera/files/cantera-3.2.0_fix_species_slicing_error_numpy-2.4.patch b/sci-libs/cantera/files/cantera-3.2.0_fix_species_slicing_error_numpy-2.4.patch
new file mode 100644
index 000000000000..2c2c019223ec
--- /dev/null
+++ b/sci-libs/cantera/files/cantera-3.2.0_fix_species_slicing_error_numpy-2.4.patch
@@ -0,0 +1,48 @@
+The patch is based on upstream commits:
+https://github.com/Cantera/cantera/commit/7f7f37255dfa561c518061a816d9e4ed67dfe1a4
+https://github.com/Cantera/cantera/commit/3d86636ee4c231def3097d117f9679e83a1f6dde
+The upstream issue:
+https://github.com/Cantera/cantera/issues/2114
+
+diff '--color=auto' -Naur a/interfaces/cython/cantera/solutionbase.pyx b/interfaces/cython/cantera/solutionbase.pyx
+--- a/interfaces/cython/cantera/solutionbase.pyx
++++ b/interfaces/cython/cantera/solutionbase.pyx
+@@ -54,7 +54,7 @@
+ cxx_soln.get().setKinetics(newKinetics(stringify("none")))
+ cxx_soln.get().setTransportModel(stringify("none"))
+ _assign_Solution(self, cxx_soln, True)
+- self._selected_species = np.ndarray(0, dtype=np.uint64)
++ self._selected_species = np.ndarray(0, dtype=np.intp)
+
+ def _cinit(self, infile="", name="", adjacent=(), origin=None, yaml=None,
+ thermo=None, species=(), kinetics=None, reactions=(), **kwargs):
+@@ -82,7 +82,7 @@
+ _assign_Solution(self, CxxNewSolution(), True)
+ self._init_parts(thermo, species, kinetics, transport, adjacent, reactions)
+
+- self._selected_species = np.ndarray(0, dtype=np.uint64)
++ self._selected_species = np.ndarray(0, dtype=np.intp)
+
+ def __init__(self, *args, **kwargs):
+ if isinstance(self, Transport) and kwargs.get("init", True):
+@@ -395,9 +395,8 @@
+ def __set__(self, species):
+ if isinstance(species, (str, int)):
+ species = (species,)
+- self._selected_species.resize(len(species))
+- for i,spec in enumerate(species):
+- self._selected_species[i] = self.species_index(spec)
++ selection = [self.species_index(spec) for spec in species]
++ self._selected_species = np.array(selection, dtype=np.intp)
+
+ def __getstate__(self):
+ """Save complete information of the current phase for pickling."""
+@@ -480,7 +479,7 @@
+
+ cdef _SolutionBase soln = cls(init=False)
+ _assign_Solution(soln, cxx_soln, True)
+- soln._selected_species = np.ndarray(0, dtype=np.uint64)
++ soln._selected_species = np.ndarray(0, dtype=np.intp)
+
+ cdef InterfacePhase iface
+ if isinstance(soln, Interface):
diff --git a/sci-libs/gdal/Manifest b/sci-libs/gdal/Manifest
index 16331f5cf9fa..b72f3e8c1d16 100644
--- a/sci-libs/gdal/Manifest
+++ b/sci-libs/gdal/Manifest
@@ -4,6 +4,9 @@ DIST gdal-3.13.1.tar.xz 9957916 BLAKE2B 582bea82ed21059c8b3348f91806842f0ee5337e
DIST gdal-3.13.1.tar.xz.sig 566 BLAKE2B f60b2c5dd5bd55c84aabf5f0f5b2189f2793c49eab7083fe79c308697ade74c2e374beff2a78d6d80c75a74aa47dc3360f3a6bd63191bfdba9b51b77d449690d SHA512 6fa6a8c1bcfb0e69135702d4ee46aa70d0623bd0db933c6844691b08a2a4bbc94fea70ed0c0c1bc0906c551b20186e369cff48eab971fec7c49f82b1305d9b36
DIST gdal-3.13.2.tar.xz 9989660 BLAKE2B 6c22f3a19b28c67c03db83b8138283955371d1a939a1cfdeadd2fa646fa8fb760961f227ba4c819cb2386bc372371352a8c5e45c35ed552d91738590cee22013 SHA512 cef8ff877006dc3c112012edcb8c164e47b2295fca1985ba84e21588f4457aeb1ec9b33487291b2f72686c6d06ecf6144cc6d03fee553caa7ce7165094e88344
DIST gdal-3.13.2.tar.xz.sig 566 BLAKE2B a94d69384c2631e921cfcb9172ebc10daaa3d0f20ab43a9c1c11760d404fa2687870f5da8322ab7464beeabf5ef8560e3eb05ca8f1100deb20518ae4fbd54ce5 SHA512 7efe2dd6d0758a3782bad2acb8c4e5e6eff19e2cef256c4bee4e368b4656c767b288c662852e239bc05bd0afd7d35cc1feeb701bf6137b27dd23f1e7166be9e6
+DIST gdal-3.13.3.tar.xz 9982976 BLAKE2B 21e35a6318321155df27a2c55a4ca6b98f9a724ff7c5cb68866428ba6675aa017f21de1a3f1562cf506e288e23748520c87e0184a495147eb4d91ffc0e534c72 SHA512 e557a38a8bc0f2f1e40c0ca980db00ed22137a610dfdb16d19b18ce12100916bfa5c1fa75d702eb2e26a4e98cf868c2229551bfe2784d6e1131451f758b205dd
+DIST gdal-3.13.3.tar.xz.sig 566 BLAKE2B 43ba8ef43ac30f52589e01d5ad6a29932ef3204e9dd0b28fa23b391410e33d5c37a0edaad2cfd9f6a7c233f0ae3021caa24a08597abbecfeb9b54e72bdb2f19c SHA512 fcb0176abdd48b1a7e98ba8c6aa7edf5444eeb85686c4a413100421df182e39af40ccd1659f0a04c11b8da1102b2d78c48ed669163b387ca00faf160bcb7b05d
DIST gdalautotest-3.12.4.zip 23266101 BLAKE2B 4425fed6d5a17ae0a222a37e581923015054141d236f15b71179cd55efc0fcee7ec1b572e9af2c2a6c9cf54807a0753e90b7b9cd6d7fbd8ca93beab5a8b75cb2 SHA512 19eef02db070ddf71c213311e702f4a15b2d3dc86a55de6edb22d38396bc477c2da0634035e3186c5172e94bed526b6057e2e8a6c17b4d786ada116ceef41aba
DIST gdalautotest-3.13.1.zip 23833294 BLAKE2B c2669145d7b40a5797b1dc6ba3796a1cf8036e2b0af9c50e37165770689f28861ecf0c28a243adf7682b88db668e07c83394b5248abc6f349ce5ab8fc092f41d SHA512 52b7e0769d6dae1cb2c25dd1095a17c7189fe4c917ba5a3da4df28ff6aef52fa31be98fff5e1cefd29952d1dae070b56ed54ce5165a014111ef77ba225eb69d4
DIST gdalautotest-3.13.2.zip 23847042 BLAKE2B 87c1c40050b360a537b7904c79f63532977d824677c40211f7ca62b83d519a0a52fd78cd26def01d2edfe7dc9d1797827688615781e9fc94ef5190e5b8c0a930 SHA512 c940abc2ea0953c9a6065cce139346aad97e525ee7355826d919d81048f3aacda3f0ea06e563e35a444dd22c1566bfe33430c13deab276794374a2c59859fa20
+DIST gdalautotest-3.13.3.zip 23847761 BLAKE2B 6ab9b5a733d49f06fad93216427fb34c368d002afc7bae31402dd6ec31dcd847be32cb2fe8b5ecad0b28cf83d0899e5b8e01b5dbd6fb4e769e4362751b8e693d SHA512 4f235718cdeac3a00a69f3b0b1d6942fd5380443164ac0d0bd2910a9a96735db97e6058222276f8b5be0474e2826c4fc13e9f1fce2d9717f46697341f76e624a
diff --git a/sci-libs/gdal/gdal-3.13.3.ebuild b/sci-libs/gdal/gdal-3.13.3.ebuild
new file mode 100644
index 000000000000..a09accb85816
--- /dev/null
+++ b/sci-libs/gdal/gdal-3.13.3.ebuild
@@ -0,0 +1,529 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_EXT=1
+DISTUTILS_OPTIONAL=1
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake distutils-r1 flag-o-matic java-pkg-opt-2 unpacker verify-sig
+
+DESCRIPTION="Translator library for raster geospatial data formats (includes OGR support)"
+HOMEPAGE="https://gdal.org/"
+SRC_URI="
+ https://download.osgeo.org/${PN}/${PV}/${P}.tar.xz
+ test? ( https://download.osgeo.org/${PN}/${PV}/${PN}autotest-${PV}.zip )
+ verify-sig? ( https://download.osgeo.org/${PN}/${PV}/${P}.tar.xz.sig )
+"
+
+LICENSE="BSD Info-ZIP MIT"
+SLOT="0/39" # subslot is libgdal.so.<SONAME> (and GDAL_SOVERSION in gdal.cmake)
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="
+ archive armadillo avif blosc cryptopp +curl cpu_flags_arm_neon cpu_flags_x86_avx
+ cpu_flags_x86_avx2 cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse4_1
+ cpu_flags_x86_ssse3 exprtk fits geos gif gml hdf5 heif java jpeg2k jpegxl lerc
+ libaec libdeflate lz4 lzma mongodb +muparser mysql netcdf odbc openexr oracle
+ parquet pdf png postgres python qhull spatialite sqlite system-tiff test +tools
+ webp xls zstd
+"
+
+# jpegxl isn't supported for system tiff
+REQUIRED_USE="
+ python? ( ${PYTHON_REQUIRED_USE} )
+ spatialite? ( sqlite )
+ jpegxl? ( !system-tiff )
+"
+
+RESTRICT="!test? ( test )"
+
+COMMON_DEPEND="
+ dev-libs/expat
+ dev-libs/json-c:=
+ dev-libs/libxml2:2=
+ dev-libs/openssl:=
+ media-libs/libjpeg-turbo:=
+ >=sci-libs/proj-6.0.0:=[tiff]
+ virtual/minizip:=
+ archive? ( app-arch/libarchive:= )
+ armadillo? ( sci-libs/armadillo:=[lapack] )
+ avif? ( media-libs/libavif:= )
+ blosc? ( dev-libs/c-blosc:= )
+ cryptopp? ( dev-libs/crypto++:= )
+ curl? ( net-misc/curl )
+ fits? ( sci-libs/cfitsio:= )
+ geos? ( >=sci-libs/geos-3.8.0 )
+ gif? ( media-libs/giflib:= )
+ gml? ( >=dev-libs/xerces-c-3.1:= )
+ heif? ( media-libs/libheif:= )
+ hdf5? ( >=sci-libs/hdf5-1.6.4:=[cxx,szip] )
+ java? (
+ >=virtual/jdk-1.8:*
+ )
+ jpeg2k? ( media-libs/openjpeg:2= )
+ jpegxl? ( media-libs/libjxl:= )
+ lerc? ( media-libs/lerc:= )
+ libaec? ( sci-libs/libaec:= )
+ libdeflate? ( app-arch/libdeflate )
+ lz4? ( app-arch/lz4:= )
+ lzma? ( || (
+ app-arch/xz-utils
+ app-arch/lzma
+ ) )
+ mongodb? ( dev-libs/mongo-cxx-driver:= )
+ muparser? ( dev-cpp/muParser:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ netcdf? ( sci-libs/netcdf:= )
+ odbc? ( dev-db/unixODBC )
+ openexr? ( media-libs/openexr:= )
+ oracle? ( dev-db/oracle-instantclient:= )
+ parquet? ( dev-libs/apache-arrow:=[compute,dataset,parquet,lz4?,zlib,zstd?] )
+ pdf? ( app-text/poppler:= )
+ png? ( media-libs/libpng:= )
+ postgres? ( >=dev-db/postgresql-8.4:= )
+ qhull? ( media-libs/qhull:= )
+ spatialite? ( dev-db/spatialite )
+ sqlite? (
+ >=dev-db/sqlite-3.31:3
+ dev-libs/libpcre2:=
+ )
+ system-tiff? (
+ media-libs/tiff:=[jpeg]
+ >=sci-libs/libgeotiff-1.5.1-r1:=
+ )
+ webp? ( media-libs/libwebp:= )
+ xls? ( dev-libs/freexl )
+ zstd? ( app-arch/zstd:= )
+"
+RDEPEND="${COMMON_DEPEND}
+ java? ( >=virtual/jre-1.8:* )
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ ')
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ exprtk? ( dev-cpp/exprtk )
+ test? ( dev-cpp/gtest )
+"
+BDEPEND="
+ virtual/pkgconfig
+ java? (
+ >=dev-java/ant-1.10.14-r3:0
+ dev-lang/swig
+ )
+ python? (
+ ${DISTUTILS_DEPS}
+ dev-lang/swig
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ test? (
+ dev-python/filelock[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ >=dev-python/pytest-6.0.0[${PYTHON_USEDEP}]
+ dev-python/pytest-env[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ parquet? ( dev-python/pyarrow[parquet,${PYTHON_USEDEP}] )
+ )
+ ')
+ )
+ test? ( app-arch/unzip )
+ verify-sig? ( sec-keys/openpgp-keys-gdal )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gdal.asc
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ _wstat64 # Windows LFS
+)
+
+EPYTEST_PLUGINS=( pytest-env )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+# distutils_enable_tests unconditionally touches BDEPEND
+
+pkg_setup() {
+ use java && java-pkg-opt-2_pkg_setup
+}
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}/${P}.tar.xz" "${DISTDIR}/${P}.tar.xz.sig"
+ fi
+
+ # unpacker mishandles .sig files
+ unpack ${P}.tar.xz
+ use test && unpack_zip gdalautotest-${PV}.zip
+}
+
+src_prepare() {
+ if use test ; then
+ mv "${WORKDIR}"/gdalautotest-${PV} "${S}"/autotest || die
+ fi
+ java-pkg-opt-2_src_prepare
+ cmake_src_prepare
+}
+
+python_configure_all() {
+ local -x BUILD_DIR="${S}_python"
+ # Generate required files with cmake and then use distutils-r1 to generate wheels
+ # https://github.com/OSGeo/gdal/issues/9965#issuecomment-2159222393
+ mycmakeargs+=( -DBUILD_PYTHON_BINDINGS=ON )
+ cmake_src_configure
+ cmake_build python_generated_files
+ cmake_build generate_gdal_version_h
+ sed -E -e "/(library_dirs|include_dirs) =/ { s|${BUILD_DIR}|${cmake_build_dir}| } " \
+ -i "${BUILD_DIR}/swig/python/setup.py" || die
+}
+
+src_configure() {
+ # sanity check subslot to give a friendly reminder to would-be drive by bumpers
+ local detected_soversion
+ detected_soversion="$(sed -n -e 's/set(GDAL_SOVERSION \(.*\))/\1/p' gdal.cmake)"
+ if [[ "${SLOT#0/}" != "${detected_soversion}" ]]; then
+ die "Subslot ${SLOT#0/} doesn't match upstream specified set(GDAL_SOVERSION ${detected_soversion}) in gdal.cmake."
+ fi
+
+ # ODR violations
+ filter-lto
+
+ local mycmakeargs=(
+ # https://gdal.org/en/stable/development/building_from_source.html
+
+ -DBUILD_APPS=$(usex tools)
+ -DBUILD_TESTING=$(usex test)
+ -DENABLE_GNM=ON
+ -DENABLE_IPO=OFF
+ -DENABLE_PAM=ON # Persistent Auxiliary Metadata (not Pluggable Authentication Modules!)
+ -DOGR_ENABLE_DRIVER_SQLITE=$(usex sqlite)
+ -DGDAL_ENABLE_PLUGINS=OFF
+ -DGDAL_ENABLE_PLUGINS_NO_DEPS=OFF
+ -DGDAL_BUILD_OPTIONAL_DRIVERS=ON
+ -DOGR_BUILD_OPTIONAL_DRIVERS=ON
+ -DGDAL_USE_EXTERNAL_LIBS=ON
+ -DGDAL_USE_INTERNAL_LIBS=OFF
+ -DUSE_CCACHE=OFF
+ -DUSE_PRECOMPILED_HEADERS=OFF
+
+ # bug #844874 and bug #845150
+ -DCMAKE_INSTALL_INCLUDEDIR="include/gdal"
+
+ -DGDAL_FIND_PACKAGE_PROJ_MODE=CONFIG
+
+ # Options here are generally off because of one of:
+ # - Not yet packaged dependencies
+ #
+ # - Off for autotools build and didn't want more churn by
+ # enabling during port to CMake. Feel free to request them
+ # being turned on if useful for you.
+ #
+ # See cmake/helpers/CheckDependentLibraries.cmake for options
+ # *_*_package(Option) -> GDAL_USE_OPTION
+ -DGDAL_USE_ADBCDRIVERMANAGER=OFF
+ -DGDAL_USE_ARCHIVE=$(usex archive)
+ -DGDAL_USE_ARMADILLO=$(usex armadillo)
+ -DGDAL_USE_AVIF=$(usex avif)
+ -DGDAL_USE_ARROW=$(usex parquet)
+ -DGDAL_USE_BASISU=OFF
+ -DGDAL_USE_BLOSC=$(usex blosc)
+ -DGDAL_USE_BRUNSLI=OFF
+ -DGDAL_USE_CRNLIB=OFF
+ -DGDAL_USE_CFITSIO=$(usex fits)
+ -DGDAL_USE_CURL=$(usex curl)
+ -DGDAL_USE_CRYPTOPP=$(usex cryptopp)
+ -DGDAL_USE_DEFLATE=$(usex libdeflate) # complements zlib
+ -DGDAL_USE_ECW=OFF
+ -DGDAL_USE_EXPAT=ON
+ -DGDAL_USE_EXPRTK=$(usex exprtk)
+ -DGDAL_USE_FILEGDB=OFF
+ -DGDAL_USE_FREEXL=$(usex xls)
+ -DGDAL_USE_FYBA=OFF
+
+ -DGDAL_USE_GEOTIFF=$(usex system-tiff)
+ -DGDAL_USE_GEOTIFF_INTERNAL=$(usex !system-tiff)
+
+ -DGDAL_USE_GEOS=$(usex geos)
+ -DGDAL_USE_GIF=$(usex gif)
+ -DGDAL_USE_GTA=OFF
+ -DGDAL_USE_HEIF=$(usex heif)
+ -DGDAL_USE_HDF4=OFF
+ -DGDAL_USE_HDF5=$(usex hdf5)
+ -DGDAL_USE_HDFS=OFF
+ -DGDAL_USE_ICONV=ON # TODO dep
+ -DGDAL_USE_IDB=OFF
+ -DGDAL_USE_JPEG=ON # bug #965329
+
+ # https://gdal.org/build_hints.html#jpeg12
+ # Independent of whether using system libjpeg
+ -DGDAL_USE_JPEG12_INTERNAL=ON
+
+ -DGDAL_USE_JSONC=ON
+ -DGDAL_USE_JXL=$(usex jpegxl)
+ -DGDAL_USE_JXL_THREADS=$(usex jpegxl)
+ -DGDAL_USE_KDU=OFF
+ -DGDAL_USE_KEA=OFF
+ -DGDAL_USE_LERC=$(usex lerc)
+ -DGDAL_USE_LIBAEC=$(usex libaec)
+ -DGDAL_USE_LIBKML=OFF
+ -DGDAL_USE_LIBLZMA=$(usex lzma)
+ -DGDAL_USE_LIBQB3=OFF
+ -DGDAL_USE_LIBXML2=ON
+ -DGDAL_USE_LZ4=$(usex lz4) # FIXME
+ -DGDAL_USE_MONGOCXX=$(usex mongodb)
+ -DGDAL_USE_MRSID=OFF
+ -DGDAL_USE_MSSQL_NCLI=OFF
+ -DGDAL_USE_MSSQL_ODBC=OFF
+ -DGDAL_USE_MUPARSER=$(usex muparser)
+ -DGDAL_USE_MYSQL=$(usex mysql)
+ -DGDAL_USE_NETCDF=$(usex netcdf)
+ -DGDAL_USE_ODBC=$(usex odbc)
+ -DGDAL_USE_ODBCCPP=OFF
+
+ # unpackaged
+ -DGDAL_USE_OPENCAD=OFF
+ -DGDAL_USE_OPENCAD_INTERNAL=ON
+
+ -DGDAL_USE_OPENDRIVE=OFF
+ -DGDAL_USE_OPENEXR=$(usex openexr)
+ -DGDAL_USE_OPENJPEG=$(usex jpeg2k)
+ -DGDAL_USE_OPENSSL=ON
+ -DGDAL_USE_ORACLE=$(usex oracle)
+ -DGDAL_USE_PARQUET=$(usex parquet)
+ -DGDAL_USE_PCRE2=ON
+ -DGDAL_USE_PDFIUM=OFF
+
+ # Enable internal implementation so that tests pass with the use disabled
+ -DGDAL_USE_PNG=$(usex png)
+ -DGDAL_USE_PNG_INTERNAL=$(usex !png)
+
+ -DGDAL_USE_PODOFO=OFF
+ -DGDAL_USE_POPPLER=$(usex pdf)
+ -DGDAL_USE_POSTGRESQL=$(usex postgres)
+ -DGDAL_USE_QHULL=$(usex qhull)
+ -DGDAL_USE_RASTERLITE2=OFF
+
+ # upstream recommends using the internal implementation
+ # bug #935567
+ -DGDAL_USE_SHAPELIB=OFF
+ -DGDAL_USE_SHAPELIB_INTERNAL=ON
+
+ -DGDAL_USE_SPATIALITE=$(usex spatialite)
+ -DGDAL_USE_SQLITE3=$(usex sqlite)
+ -DGDAL_USE_SFCGAL=OFF
+ -DGDAL_USE_TEIGHA=OFF
+
+ -DGDAL_USE_TIFF=$(usex system-tiff)
+ -DGDAL_USE_TIFF_INTERNAL=$(usex !system-tiff)
+
+ -DGDAL_USE_WEBP=$(usex webp)
+ -DGDAL_USE_XERCESC=$(usex gml)
+ -DGDAL_USE_ZLIB=ON
+ -DGDAL_USE_ZSTD=$(usex zstd)
+
+ # Bindings
+ -DBUILD_PYTHON_BINDINGS=OFF # handled separately
+ -DBUILD_JAVA_BINDINGS=$(usex java)
+ # bug #845369
+ -DBUILD_CSHARP_BINDINGS=OFF
+
+ # Handled differently from x86
+ # First checks if the platform supports neon and if it supports the option will be available
+ # See SSE2NEON_COMPILES in CMakeLists.txt and gdal.cmake
+ -DGDAL_ENABLE_ARM_NEON_OPTIMIZATIONS=$(usex cpu_flags_arm_neon)
+ )
+
+ if use x86 || use amd64 ; then
+ mycmakeargs+=(
+ # Check work/gdal-3.5.0_build/CMakeCache.txt after configure
+ # and https://github.com/OSGeo/gdal/blob/master/cmake/helpers/CheckCompilerMachineOption.cmake#L71
+ # Commented out: not (yet?) implemented upstream.
+ #
+ # check_compiler_machine_option(flag <instruction set>) -> -Dtest_<instruction set>
+ -Dtest_avx=$(usex cpu_flags_x86_avx)
+ -Dtest_avx2=$(usex cpu_flags_x86_avx2)
+ -Dtest_sse=$(usex cpu_flags_x86_sse)
+ -Dtest_sse2=$(usex cpu_flags_x86_sse2)
+ #-Dtest_sse3=$(usex cpu_flags_x86_sse3)
+ -Dtest_sse4.1=$(usex cpu_flags_x86_sse4_1)
+ #-Dtest_sse4.2=$(usex cpu_flags_x86_sse4_2)
+ #-Dtest_sse4a=$(usex cpu_flags_x86_sse4a)
+ -Dtest_ssse3=$(usex cpu_flags_x86_ssse3)
+ #-Dtest_fma4=$(usex cpu_flags_x86_fma4)
+ #-Dtest_xop=$(usex cpu_flags_x86_xop)
+ )
+ fi
+
+ if use test ; then
+ mycmakeargs+=( -DUSE_EXTERNAL_GTEST=ON )
+ fi
+
+ cmake_src_configure
+
+ local cmake_build_dir="${BUILD_DIR}"
+ use python && distutils-r1_src_configure
+}
+
+python_compile() {
+ pushd "${S}_python/swig/python" >/dev/null || die
+ distutils-r1_python_compile
+ popd >/dev/null || die
+}
+
+src_compile() {
+ cmake_src_compile
+
+ local -x PATH="${BUILD_DIR}/apps:${PATH}"
+ local -x LD_LIBRARY_PATH="${BUILD_DIR}:${LD_LIBRARY_PATH}"
+ use python && distutils-r1_src_compile
+}
+
+python_test() {
+ local -x GDAL_DATA="${S}/data"
+
+ # note: testpaths in pytest.ini will fight EPYTEST_IGNORE
+ EPYTEST_IGNORE=(
+ # network-sandbox and deselecting tests turns into whac-a-mole with their interdependencies
+ "gcore/vsis3.py"
+ # All tests require network-sandbox
+ "ogr/ogr_ngw.py"
+ )
+
+ use !muparser && EPYTEST_IGNORE+=( "gdrivers/vrtpansharpen.py" )
+ use !pdf && EPYTEST_IGNORE+=( "gdrivers/pdf.py" )
+
+ EPYTEST_DESELECT=(
+ # network-sandbox
+ "gcore/basic_test.py::test_hint_http"
+ "gcore/tiff_read.py::test_tiff_read_strace_check"
+ "gcore/vsioss.py::test_vsioss_6"
+ "gdrivers/gdalhttp.py::test_http_ssl_verifystatus"
+ "gdrivers/hdf5multidim.py::test_hdf5_multimdim_eos_grid_dimension_list"
+ "gdrivers/jp2openjpeg.py::test_jp2openjpeg_45"
+ "gdrivers/vrtrawlink.py::test_vrtrawlink_GDAL_VRT_RAWRASTERBAND_ALLOWED_SOURCE_ONLY_REMOTE_accepted"
+ "gdrivers/wms.py::test_wms_8"
+ "gdrivers/zarr_driver.py::test_zarr_write_error_at_close_on_array"
+ "gdrivers/zarr_driver.py::test_zarr_write_error_at_close_on_group"
+ "ogr/ogr_csv.py::test_ogr_csv_schema_override"
+ "ogr/ogr_geojson.py::test_ogr_geojson_schema_override"
+ "ogr/ogr_gml.py::test_ogr_gml_type_override"
+ "ogr/ogr_gmlas.py::test_ogr_gmlas_billion_laugh"
+ "ogr/ogr_gmlas.py::test_ogr_gmlas_datetime"
+ "ogr/ogr_parquet.py::test_ogr_parquet_coordinate_epoch"
+ "ogr/ogr_parquet.py::test_ogr_parquet_crs_identification_on_write"
+ "ogr/ogr_parquet.py::test_ogr_parquet_edges"
+ "ogr/ogr_parquet.py::test_ogr_parquet_geoarrow"
+ "ogr/ogr_parquet.py::test_ogr_parquet_geometry_types"
+ "ogr/ogr_parquet.py::test_ogr_parquet_polygon_orientation"
+ "ogr/ogr_sqlite.py::test_ogr_sqlite_schema_override"
+ "pyscripts/test_validate_geoparquet.py::test_validate_geoparquet_ok"
+ "utilities/test_gdalinfo_lib.py::test_gdalinfo_lib_2"
+ "utilities/test_gdalinfo_lib.py::test_gdalinfo_lib_5"
+ "utilities/test_gdalinfo_lib.py::test_gdalinfo_lib_json_color_table_and_rat"
+ "utilities/test_ogrinfo_lib.py::test_ogrinfo_lib_extent3D"
+ "utilities/test_ogrinfo_lib.py::test_ogrinfo_lib_json_relationships"
+ "utilities/test_ogrinfo_lib.py::test_ogrinfo_lib_json_validate"
+
+ # sandbox interferes with strace?
+ "gcore/basic_test.py::test_basic_test_strace_non_existing_file"
+
+ # Breaks due to other deselects.
+ "ogr/ogr_gpkg.py::test_ogr_gpkg_immutable"
+ "ogr/ogr_gpkg.py::test_ogr_gpkg_nolock"
+ "ogr/ogr_parquet.py::test_ogr_parquet_read_large_binary_or_string_for_geometry"
+ "ogr/ogr_parquet.py::test_ogr_parquet_write_arrow_rewind_polygon"
+ "ogr/ogr_parquet.py::test_ogr_parquet_bbox_float32"
+ "ogr/ogr_sqlite.py::test_ogr_sqlite_34"
+
+ # Fails on new poppler versions due to checksum check
+ "gdrivers/pdf.py::test_pdf_extra_rasters[POPPLER]"
+
+ # flaky
+ "gdrivers/kmlsuperoverlay.py::test_kmlsuperoverlay_8"
+ )
+
+ if use !armadillo; then
+ EPYTEST_DESELECT+=(
+ # AssertionError: (1634, (3456541.352648813, 5640759.820845713, 0.0))
+ "gcore/transformer.py::test_transformer_tps_precision"
+ )
+ fi
+
+ if use !sqlite; then
+ EPYTEST_DESELECT+=(
+ # implicit sqlite requirement for the test (or the wms (curl) driver)?
+ "gdrivers/ogcapi.py::test_ogr_ogcapi_vector_tiles"
+ # expects sqlite being enabled in a warning message
+ "utilities/test_gdalalg_vector_rasterize.py::test_gdalalg_vector_rasterize"
+ )
+ fi
+
+ pushd "${S}_python/autotest" >/dev/null || die
+ # https://github.com/OSGeo/gdal/tree/v3.11.3/autotest#gdals-tests-are-not-independent
+ # So run directories separately with reruns to maximise chances without excluding every test
+ #
+ # See pytest_dirs in autotest/CMakeLists.txt.
+ # benchmark excluded on purpose as it uses pytest-benchmark
+ # gdrivers excluded as its especially flaky with excluding tests
+ # gnm excluded as you need to exclude 99% of it leaving only one or two tests
+ local failures=()
+ for pytest_dir in alg gcore gdrivers ogr osr pyscripts utilities; do
+ nonfatal epytest ${pytest_dir}
+ [[ ${?} != 0 ]] && failures+=( ${pytest_dir} )
+ done
+ popd >/dev/null || die
+
+ if [[ ${#failures} -gt 0 ]]; then
+ die "pytest failures: ${failures[@]}"
+ fi
+}
+
+src_test() {
+ local -x GDAL_RUN_SLOW_TESTS=0
+ local -x GDAL_DOWNLOAD_TEST_DATA=0 # tests relying on downloaded data **may** be skipped
+
+ cmake_src_test
+
+ local -x PATH="${BUILD_DIR}/apps:${PATH}"
+ local -x LD_LIBRARY_PATH="${BUILD_DIR}:${LD_LIBRARY_PATH}"
+ use python && distutils-r1_src_test
+}
+
+python_install() {
+ pushd "${S}_python/swig/python" >/dev/null || die
+ distutils-r1_python_install
+ popd >/dev/null || die
+}
+
+src_install() {
+ cmake_src_install
+
+ if use java; then
+ # Move the native library into the proper place for Gentoo. The
+ # library in ${ED} has already had its RPATH fixed, so we use it
+ # rather than ${BUILD_DIR}/swig/java/libgdalalljni.so.
+ java-pkg_doso "${ED}/usr/$(get_libdir)/jni/libgdalalljni.so"
+ rm -rf "${ED}/usr/$(get_libdir)/jni" || die
+ fi
+
+ use python && distutils-r1_src_install
+}
+
+pkg_postinst() {
+ elog "Check available image and data formats after building with"
+ if use tools; then
+ elog "gdal info --formats"
+ else
+ elog "gdal-config --formats"
+ fi
+
+ if use java; then
+ elog
+ elog "To use the Java bindings, you need to pass the following to java:"
+ elog " -Djava.library.path=$(java-config -i gdal)"
+ fi
+}