commit: ceac182a39057fcb5902187462db203c2b7cc96e Author: Markus Meier <maekke <AT> gentoo <DOT> org> AuthorDate: Sun May 25 08:08:58 2025 +0000 Commit: Markus Meier <maekke <AT> gentoo <DOT> org> CommitDate: Sun May 25 08:08:58 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ceac182a
media-libs/libpano13: fix build with gcc 15 for bug #956590 Bug: https://bugs.gentoo.org/956590 Signed-off-by: Markus Meier <maekke <AT> gentoo.org> .../files/libpano13-2.9.22-fabs-sqrt.patch | 19 ++++++++ .../libpano13/files/libpano13-2.9.22-gcc15.patch | 50 ++++++++++++++++++++ media-libs/libpano13/libpano13-2.9.22-r1.ebuild | 53 ++++++++++++++++++++++ 3 files changed, 122 insertions(+) diff --git a/media-libs/libpano13/files/libpano13-2.9.22-fabs-sqrt.patch b/media-libs/libpano13/files/libpano13-2.9.22-fabs-sqrt.patch new file mode 100644 index 000000000000..d571176dca63 --- /dev/null +++ b/media-libs/libpano13/files/libpano13-2.9.22-fabs-sqrt.patch @@ -0,0 +1,19 @@ +diff '--color=auto' -ru libpano13-2.9.22.orig/lmdif.c libpano13-2.9.22/lmdif.c +--- libpano13-2.9.22.orig/lmdif.c 2025-05-25 09:57:52.790672552 +0200 ++++ libpano13-2.9.22/lmdif.c 2025-05-25 09:58:26.444542495 +0200 +@@ -1222,7 +1222,6 @@ + static double zero = 0.0; + static double p25 = 0.25; + static double p5 = 0.5; +-double fabs(), sqrt(); + + /* + * copy r and (q transpose)*b to preserve input and initialize s. +@@ -1416,7 +1415,6 @@ + static double rgiant = 1.304e19; + static double zero = 0.0; + static double one = 1.0; +-double fabs(), sqrt(); + + s1 = zero; + s2 = zero; diff --git a/media-libs/libpano13/files/libpano13-2.9.22-gcc15.patch b/media-libs/libpano13/files/libpano13-2.9.22-gcc15.patch new file mode 100644 index 000000000000..14605cc9be87 --- /dev/null +++ b/media-libs/libpano13/files/libpano13-2.9.22-gcc15.patch @@ -0,0 +1,50 @@ + + +Fix for gcc15 breakage (Lukas Wirz) + +https://bugs.launchpad.net/bugs/2096612 + +abi-compliance-checker: +Problems with Data Types +High 0 +Medium 0 +Low 1 +filter.h +[+] typedef lmfunc 1 +Change Effect +1 Base type has been changed from int(*)(...) to int(*)(int, int, double*, double*, int*). Recompilation of a client program may be broken. +[+] affected symbols: 26 (4.7%) + +--- a/filter.h ++++ b/filter.h +@@ -410,7 +410,7 @@ + + // function to minimize in Levenberg-Marquardt solver + +-typedef int (*lmfunc)(); ++typedef int (*lmfunc)(int m, int n, double x[], double fvec[], int *iflag); + + struct triangle + { +@@ -774,13 +774,19 @@ + PANO13_IMPEX void matrix_inv_mult ( double m[3][3], double vector[3] ); + PANO13_IMPEX double smallestRoot ( double *p ); + PANO13_IMPEX void SetCorrectionRadius ( cPrefs *cP ); +-PANO13_IMPEX int lmdif (); ++PANO13_IMPEX int lmdif(int m, int n, double x[], double fvec[], ++ double ftol, double xtol, double gtol, ++ int maxfev, double epsfcn, double diag[], ++ int mode, double factor, int nprint, ++ int *info, int *nfev, double fjac[], ++ int ldfjac, int ipvt[], double qtf[], ++ double wa1[], double wa2[], double wa3[], double wa4[]); + PANO13_IMPEX void fourier ( TrformStr *TrPtr, cPrefs *cP ); + PANO13_IMPEX unsigned short gamma_correct( double pix ); + PANO13_IMPEX int EqualCPrefs( cPrefs *c1, cPrefs *c2 ); + PANO13_IMPEX double OverlapRMS ( MultiLayerImage *mim ); + PANO13_IMPEX double distSquared ( int num ); +-PANO13_IMPEX int fcnPano(); ++PANO13_IMPEX int fcnPano(int m, int n, double x[], double fvec[], int *iflag); + PANO13_IMPEX int EvaluateControlPointError ( int num, double *errptr, double errComponent[2]); + PANO13_IMPEX void doCoordinateTransform( CoordInfo *c, tMatrix *t ); + PANO13_IMPEX void findOptimumtMatrix( transformCoord *tP, tMatrix *tM, lmfunc f); diff --git a/media-libs/libpano13/libpano13-2.9.22-r1.ebuild b/media-libs/libpano13/libpano13-2.9.22-r1.ebuild new file mode 100644 index 000000000000..b881ffea432f --- /dev/null +++ b/media-libs/libpano13/libpano13-2.9.22-r1.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit java-pkg-opt-2 cmake + +DESCRIPTION="Helmut Dersch's panorama toolbox library" +HOMEPAGE="http://panotools.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/panotools/${P}.tar.gz" +S="${WORKDIR}/${PN}-$(ver_cut 1-3)" + +LICENSE="GPL-2" +SLOT="0/3" +KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos" +IUSE="java static-libs suitesparse" + +DEPEND="media-libs/libpng:= + media-libs/tiff:= + media-libs/libjpeg-turbo:= + sys-libs/zlib + java? ( >=virtual/jdk-1.8:* ) + suitesparse? ( sci-libs/suitesparse )" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}/${P}-gcc15.patch" + "${FILESDIR}/${P}-fabs-sqrt.patch" +) + +pkg_setup() { + java-pkg-opt-2_pkg_setup +} + +src_configure() { + local mycmakeargs=( + -DSUPPORT_JAVA_PROGRAMS=$(usex java) + -DUSE_SPARSE_LEVMAR=$(usex suitesparse) + ) + cmake_src_configure +} + +src_install() { + cmake_src_install + + if ! use static-libs ; then + find "${D}" -name "*.a" -type f -delete || die + fi +} + +pkg_preinst() { + java-pkg-opt-2_pkg_preinst +}
