git: 7f5154b8b714 - main - math/scilab: unbreak

From: Matthias Andree <mandree_at_FreeBSD.org>
Date: Mon, 14 Jul 2025 13:29:31 UTC
The branch main has been updated by mandree:

URL: https://cgit.FreeBSD.org/ports/commit/?id=7f5154b8b7147efcbb988aefbff43cc7c3d8aaa2

commit 7f5154b8b7147efcbb988aefbff43cc7c3d8aaa2
Author:     Matthias Andree <mandree@FreeBSD.org>
AuthorDate: 2025-07-14 13:14:35 +0000
Commit:     Matthias Andree <mandree@FreeBSD.org>
CommitDate: 2025-07-14 13:17:04 +0000

    math/scilab: unbreak
    
    - update dependency reference for textproc/saxon-he
    - update some error handling stuff for libxml2 >= 2.13 API
    - prevent picking up valgrind in ports builds with valgrind installed
      because that causes duplicate definition of the _start symbol in the
      final link at least on FreeBSD-14.3-RELEASE-p1 amd64.
    - bump PORTREVISION and remove BROKEN
    
    MFH:            2025Q3
---
 math/scilab/Makefile               |  7 +++----
 math/scilab/files/patch-libxml2.13 | 41 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 4 deletions(-)

diff --git a/math/scilab/Makefile b/math/scilab/Makefile
index 5ddb6ca33416..eed99f22294e 100644
--- a/math/scilab/Makefile
+++ b/math/scilab/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	scilab
 DISTVERSION=	6.1.1
-PORTREVISION=	22
+PORTREVISION=	23
 CATEGORIES=	math cad java
 MASTER_SITES=	https://www.scilab.org/download/${DISTVERSION}/
 DISTFILES=	${DISTNAME}-src${EXTRACT_SUFX}
@@ -14,8 +14,6 @@ LICENSE_COMB=	dual
 LICENSE_FILE_GPLv2=	${WRKSRC}/COPYING
 LICENSE_FILE_BSD3CLAUSE=	${WRKSRC}/COPYING-BSD
 
-BROKEN=		Fails to build, configure: error: Could not find or use the Java package/jar saxon used by Saxon XSLT Processor (looking for package com.icl.saxon.Loader)
-
 LIB_DEPENDS=	libpcre.so:devel/pcre \
 		libcurl.so:ftp/curl \
 		libhdf5.so:science/hdf5 \
@@ -86,7 +84,7 @@ _GUI_DEPENDS+=	${JAVALIBDIR}/commons-beanutils.jar:java/apache-commons-beanutils
 		${LOCALBASE}/bin/splint:devel/splint
 # Documentation building:
 _GUI_DEPENDS+=	${LOCALBASE}/share/xsl/docbook/javahelp/javahelp.xsl:textproc/docbook-xsl \
-		${JAVALIBDIR}/saxon-he-12.6.jar:textproc/saxon-he \
+		saxon-he>=12.8:textproc/saxon-he \
 		${_JAVADIR}/xml-commons/xml-apis-ext.jar:textproc/xml-commons \
 		xsltproc:textproc/libxslt
 # Other gui deps:
@@ -148,6 +146,7 @@ FFLAGS+=	-fallow-argument-mismatch
 post-patch:
 	@${REINPLACE_CMD} 's,/usr/local,${LOCALBASE},' ${WRKSRC}/etc/librarypath.xml
 	@${REINPLACE_CMD} -e 's, gfortran, ${FC},' ${WRKSRC}/modules/dynamic_link/src/scripts/configure
+	@${REINPLACE_CMD} -e 's,valgrind,X_X_NONEXIST_X_X,' ${WRKSRC}/configure
 .if ${COMPILER_TYPE} == clang
 	@${REINPLACE_CMD} -e 's|std::filesystem|std::__fs::filesystem|g' \
 		${WRKSRC}/modules/fileio/src/cpp/fullpath.cpp \
diff --git a/math/scilab/files/patch-libxml2.13 b/math/scilab/files/patch-libxml2.13
new file mode 100644
index 000000000000..d304ca60c5df
--- /dev/null
+++ b/math/scilab/files/patch-libxml2.13
@@ -0,0 +1,41 @@
+diff -up modules/scicos/src/cpp/XMIResource_load.cpp.orig modules/scicos/src/cpp/XMIResource_load.cpp
+--- modules/scicos/src/cpp/XMIResource_load.cpp.orig	2021-07-15 13:55:14.000000000 +0200
++++ modules/scicos/src/cpp/XMIResource_load.cpp	2025-07-14 14:43:30.773655000 +0200
+@@ -56,11 +56,11 @@ struct LibXML2State
+     LibXML2State()
+     {
+         xmlGenericErrorFunc f = &console_print;
+-        initGenericErrorDefaultFunc(&f);
++        xmlSetGenericErrorFunc(nullptr, f);
+     }
+     ~LibXML2State()
+     {
+-        initGenericErrorDefaultFunc(nullptr);
++        xmlSetGenericErrorFunc(nullptr, nullptr);
+     }
+ };
+ 
+diff -up modules/xml/src/cpp/XMLDocument.cpp.orig modules/xml/src/cpp/XMLDocument.cpp
+--- modules/xml/src/cpp/XMLDocument.cpp.orig	2021-07-15 13:55:21.000000000 +0200
++++ modules/xml/src/cpp/XMLDocument.cpp	2025-07-14 14:31:16.844487000 +0200
+@@ -520,7 +520,7 @@ void XMLDocument::errorFunction(void *ctx, const char 
+     errorBuffer.append(str);
+ }
+ 
+-void XMLDocument::errorXPathFunction(void *ctx, xmlError * error)
++void XMLDocument::errorXPathFunction(void *ctx, const xmlError * error)
+ {
+     errorXPathBuffer.append(error->message);
+ }
+diff -up modules/xml/src/cpp/XMLDocument.hxx.orig modules/xml/src/cpp/XMLDocument.hxx
+--- modules/xml/src/cpp/XMLDocument.hxx.orig	2021-07-15 13:55:21.000000000 +0200
++++ modules/xml/src/cpp/XMLDocument.hxx	2025-07-14 14:31:29.264578000 +0200
+@@ -175,7 +175,7 @@ class XML_SCILAB_IMPEXP XMLDocument: public XMLObject 
+      * Error function used when the XPath query is compiled/
+      * @see http://xmlsoft.org/html/libxml-xmlerror.html#xmlStructuredErrorFunc
+      */
+-    static void errorXPathFunction(void *ctx, xmlError * error);
++    static void errorXPathFunction(void *ctx, const xmlError * error);
+ 
+     /**
+      * Reads and parses a document given in a file.