commit:     d3ca39007adb9653fc78e57504d529891ace0b37
Author:     Holger Hoffstätte <holger <AT> applied-asynchrony <DOT> com>
AuthorDate: Sun Aug 17 14:57:31 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Fri Sep  5 18:12:35 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d3ca3900

dev-libs/libixion: fix build with boost-1.89.0, add python-3.14

- add minimal, backwards-compatible fix to allow building with boost-1.89.0
- drop python-3.10, add python-3.14 support

Closes: https://bugs.gentoo.org/961528
Signed-off-by: Holger Hoffstätte <holger <AT> applied-asynchrony.com>
Part-of: https://github.com/gentoo/gentoo/pull/43474
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../libixion/files/libixion-0.19.0-boost-m4.patch  | 31 ++++++++++++++++++++++
 .../libixion/files/libixion-0.20.0-boost-m4.patch  | 30 +++++++++++++++++++++
 ...ion-0.20.0.ebuild => libixion-0.19.0-r2.ebuild} | 24 ++++++++---------
 dev-libs/libixion/libixion-0.20.0.ebuild           | 16 +++++------
 dev-libs/libixion/libixion-9999.ebuild             |  2 +-
 5 files changed, 82 insertions(+), 21 deletions(-)

diff --git a/dev-libs/libixion/files/libixion-0.19.0-boost-m4.patch 
b/dev-libs/libixion/files/libixion-0.19.0-boost-m4.patch
new file mode 100644
index 000000000000..1771e40e262f
--- /dev/null
+++ b/dev-libs/libixion/files/libixion-0.19.0-boost-m4.patch
@@ -0,0 +1,31 @@
+Minimal diff from upstream boost.m4 (https://github.com/tsuna/boost.m4)
+to make things work with >=boost-1.89.0, which made boost_system a
+header-only library.
+
+--- a/m4/boost.m4~
++++ b/m4/boost.m4
+@@ -1130,15 +1130,20 @@ BOOST_DEFUN([String_Algo],
+ ])
+ 
+ 
+-# BOOST_SYSTEM([PREFERRED-RT-OPT])
++# BOOST_SYSTEM([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE])
+ # --------------------------------
+ # Look for Boost.System.  For the documentation of PREFERRED-RT-OPT, see the
+ # documentation of BOOST_FIND_LIB above.  This library was introduced in Boost
+-# 1.35.0.
++# 1.35.0 and is header only since 1.70.
+ BOOST_DEFUN([System],
+-[BOOST_FIND_LIB([system], [$1],
++[
++if test $boost_major_version -ge 170; then
++  BOOST_FIND_HEADER([boost/system/error_code.hpp])
++else
++  BOOST_FIND_LIB([system], [$1],
+                 [boost/system/error_code.hpp],
+-                [boost::system::error_code e; e.clear();])
++                [boost::system::error_code e; e.clear();], [], [], [$2])
++fi
+ ])# BOOST_SYSTEM
+ 
+ 

diff --git a/dev-libs/libixion/files/libixion-0.20.0-boost-m4.patch 
b/dev-libs/libixion/files/libixion-0.20.0-boost-m4.patch
new file mode 100644
index 000000000000..31d2bdd7173a
--- /dev/null
+++ b/dev-libs/libixion/files/libixion-0.20.0-boost-m4.patch
@@ -0,0 +1,30 @@
+Minimal diff from upstream boost.m4 (https://github.com/tsuna/boost.m4)
+to make things work with >=boost-1.89.0, which made boost_system a
+header-only library.
+
+--- a/m4/boost.m4~
++++ b/m4/boost.m4
+@@ -1328,15 +1328,20 @@ BOOST_DEFUN([String_Algo],
+ ])
+ 
+ 
+-# BOOST_SYSTEM([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE])
++ BOOST_SYSTEM([PREFERRED-RT-OPT], [ERROR_ON_UNUSABLE])
+ # --------------------------------
+ # Look for Boost.System.  For the documentation of PREFERRED-RT-OPT, see the
+ # documentation of BOOST_FIND_LIB above.  This library was introduced in Boost
+-# 1.35.0.
++# 1.35.0 and is header only since 1.70.
+ BOOST_DEFUN([System],
+-[BOOST_FIND_LIB([system], [$1],
++[
++if test $boost_major_version -ge 170; then
++  BOOST_FIND_HEADER([boost/system/error_code.hpp])
++else
++  BOOST_FIND_LIB([system], [$1],
+                 [boost/system/error_code.hpp],
+                 [boost::system::error_code e; e.clear();], [], [], [$2])
++fi
+ ])# BOOST_SYSTEM
+ 
+ 

diff --git a/dev-libs/libixion/libixion-0.20.0.ebuild 
b/dev-libs/libixion/libixion-0.19.0-r2.ebuild
similarity index 69%
copy from dev-libs/libixion/libixion-0.20.0.ebuild
copy to dev-libs/libixion/libixion-0.19.0-r2.ebuild
index 3cec71c51dd9..866737084bd7 100644
--- a/dev-libs/libixion/libixion-0.20.0.ebuild
+++ b/dev-libs/libixion/libixion-0.19.0-r2.ebuild
@@ -3,8 +3,8 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{10..13} )
-inherit libtool python-single-r1
+PYTHON_COMPAT=( python3_{11..14} )
+inherit autotools python-single-r1
 
 DESCRIPTION="General purpose formula parser & interpreter"
 HOMEPAGE="https://gitlab.com/ixion/ixion";
@@ -12,17 +12,15 @@ HOMEPAGE="https://gitlab.com/ixion/ixion";
 if [[ ${PV} == *9999* ]]; then
        MDDS_SLOT="1/3.0"
        EGIT_REPO_URI="https://gitlab.com/ixion/ixion.git";
-       inherit git-r3 autotools
+       inherit git-r3
 else
        MDDS_SLOT="1/2.1"
-       # Invalid as of 0.20.0, serves HTML
-       #SRC_URI="https://kohei.us/files/ixion/src/${P}.tar.xz";
-       
SRC_URI="https://gitlab.com/api/v4/projects/ixion%2Fixion/packages/generic/source/${PV}/${P}.tar.xz";
+       SRC_URI="https://kohei.us/files/ixion/src/${P}.tar.xz";
        KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
 fi
 
 LICENSE="MIT"
-SLOT="0/0.20" # based on SONAME of libixion.so
+SLOT="0/0.18" # based on SONAME of libixion.so
 IUSE="debug python"
 
 REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
@@ -34,17 +32,19 @@ RDEPEND="
 "
 DEPEND="${RDEPEND}"
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.19.0-gcc15-cstdint.patch # bug 937388
+       "${FILESDIR}"/${PN}-0.19.0-fix-win32-ifdef.patch # bug 939807
+       "${FILESDIR}"/${PN}-0.19.0-boost-m4.patch # bug 961528
+)
+
 pkg_setup() {
        use python && python-single-r1_pkg_setup
 }
 
 src_prepare() {
        default
-       if [[ ${PV} == *9999* ]]; then
-               eautoreconf
-       else
-               elibtoolize
-       fi
+       eautoreconf
 }
 
 src_configure() {

diff --git a/dev-libs/libixion/libixion-0.20.0.ebuild 
b/dev-libs/libixion/libixion-0.20.0.ebuild
index 3cec71c51dd9..5779d9590f20 100644
--- a/dev-libs/libixion/libixion-0.20.0.ebuild
+++ b/dev-libs/libixion/libixion-0.20.0.ebuild
@@ -3,8 +3,8 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{10..13} )
-inherit libtool python-single-r1
+PYTHON_COMPAT=( python3_{11..14} )
+inherit autotools python-single-r1
 
 DESCRIPTION="General purpose formula parser & interpreter"
 HOMEPAGE="https://gitlab.com/ixion/ixion";
@@ -12,7 +12,7 @@ HOMEPAGE="https://gitlab.com/ixion/ixion";
 if [[ ${PV} == *9999* ]]; then
        MDDS_SLOT="1/3.0"
        EGIT_REPO_URI="https://gitlab.com/ixion/ixion.git";
-       inherit git-r3 autotools
+       inherit git-r3
 else
        MDDS_SLOT="1/2.1"
        # Invalid as of 0.20.0, serves HTML
@@ -34,17 +34,17 @@ RDEPEND="
 "
 DEPEND="${RDEPEND}"
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.20.0-boost-m4.patch # bug 961528
+)
+
 pkg_setup() {
        use python && python-single-r1_pkg_setup
 }
 
 src_prepare() {
        default
-       if [[ ${PV} == *9999* ]]; then
-               eautoreconf
-       else
-               elibtoolize
-       fi
+       eautoreconf
 }
 
 src_configure() {

diff --git a/dev-libs/libixion/libixion-9999.ebuild 
b/dev-libs/libixion/libixion-9999.ebuild
index 3cec71c51dd9..0bf18a87fd5e 100644
--- a/dev-libs/libixion/libixion-9999.ebuild
+++ b/dev-libs/libixion/libixion-9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{10..13} )
+PYTHON_COMPAT=( python3_{11..14} )
 inherit libtool python-single-r1
 
 DESCRIPTION="General purpose formula parser & interpreter"

Reply via email to