git: 11c19f031c20 - main - math/nlopt: Update from 2.9.1 to 2.10.0

From: Rainer Hurling <rhurlin_at_FreeBSD.org>
Date: Sat, 01 Mar 2025 15:09:48 UTC
The branch main has been updated by rhurlin:

URL: https://cgit.FreeBSD.org/ports/commit/?id=11c19f031c208fe9e53c4d5953d28fb888962f12

commit 11c19f031c208fe9e53c4d5953d28fb888962f12
Author:     Älven <alster@vinterdalen.se>
AuthorDate: 2025-03-01 14:51:27 +0000
Commit:     Rainer Hurling <rhurlin@FreeBSD.org>
CommitDate: 2025-03-01 15:09:11 +0000

    math/nlopt: Update from 2.9.1 to 2.10.0
    
    - New Java bindings
    - Allow disabling exceptions with set_exceptions_enabled
    - Configurable tolg tolerance parameter for Luksan gradient
      stopping condition
    - Restored LD_LBFGS_NOCEDAL enum value (dropped in 2.9) to ease
      backwards compatibility for wrappers in other languages
      (though this algorithm is currently unimplemented)
    
    Changelog: https://github.com/stevengj/nlopt/blob/master/NEWS.md#nlopt-210
    
    PR:             284934
    Reported by:    portscout, Repology
---
 math/nlopt/Makefile                            | 37 +++++++++++++-------------
 math/nlopt/distinfo                            |  6 ++---
 math/nlopt/files/patch-src_swig_CMakeLists.txt | 13 +++++----
 math/nlopt/pkg-plist                           |  4 +--
 math/nlopt/pkg-plist.full                      | 18 +++++++++++++
 5 files changed, 48 insertions(+), 30 deletions(-)

diff --git a/math/nlopt/Makefile b/math/nlopt/Makefile
index 494d4cd211ad..283559daa8db 100644
--- a/math/nlopt/Makefile
+++ b/math/nlopt/Makefile
@@ -1,11 +1,12 @@
 PORTNAME=	nlopt
 DISTVERSIONPREFIX=	v
-DISTVERSION=	2.9.1
+DISTVERSION=	2.10.0
 CATEGORIES=	math
 
 MAINTAINER=	rhurlin@FreeBSD.org
 COMMENT=	Nonlinear optimization library
-WWW=		https://nlopt.readthedocs.io/en/latest/
+WWW=		https://nlopt.readthedocs.io/ \
+		https://github.com/stevengj/nlopt/
 
 LICENSE=	LGPL21 MIT
 LICENSE_COMB=	multi
@@ -15,6 +16,14 @@ BROKEN_armv6=	fails to package: Unable to access file site-packages/_nlopt.a:No
 BROKEN_armv7=	fails to package: Unable to access file site-packages/_nlopt.a:No such file or directory
 
 FLAVORS=	full minimal
+FLAVOR?=	${FLAVORS:[1]}
+
+full_BUILD_DEPENDS=		${PYNUMPY} \
+				swig:devel/swig
+full_RUN_DEPENDS=		${PYNUMPY}
+full_CONFLICTS_INSTALL=		${PORTNAME}-minimal
+minimal_PKGNAMESUFFIX=		-minimal
+minimal_CONFLICTS_INSTALL=	${PORTNAME}
 
 USES=		cmake:testing
 USE_GITHUB=	yes
@@ -22,27 +31,19 @@ GH_ACCOUNT=	stevengj
 USE_LDCONFIG=	yes
 
 # 'make test': 100% tests passed, 0 tests failed out of 83
-CMAKE_ON=	NLOPT_TESTS
+CMAKE_TESTING_ON=	NLOPT_TESTS
 
-.if ${FLAVOR:U} == minimal
-PKGNAMESUFFIX=	-${FLAVOR}
-CMAKE_OFF=	NLOPT_GUILE NLOPT_PYTHON NLOPT_SWIG
-CONFLICTS_INSTALL=	${PORTNAME}
-.else
+.if ${FLAVOR} == full
 USES+=		guile:3.0,alias localbase pkgconfig python
-BUILD_DEPENDS=	swig:devel/swig ${PYNUMPY}
 # Because guile-config-3.0 crashes, nlopt avoids this by using
 # files/patch-cmake_FindGuile.cmake and setting GUILE_EXECUTABLE
 # and GUILE_CONFIG_EXECUTABLE
-MAKE_ENV+=	GUILE_EXECUTABLE=${PREFIX}/bin/guile3 \
-		GUILE_CONFIG_EXECUTABLE=${PREFIX}/bin/guile-config-3
-RUN_DEPENDS=	${PYNUMPY}
-CONFLICTS_INSTALL=	${PORTNAME}-minimal
-PLIST_FILES+=	lib/guile/3.0/extensions/nlopt_guile.so \
-		%%PYTHON_SITELIBDIR%%/_nlopt.so \
-		%%PYTHON_SITELIBDIR%%/nlopt-2.9.1.dist-info/METADATA \
-		${PYTHON_SITELIBDIR}/nlopt.py \
-		${GUILE_SITE_DIR}/nlopt.scm
+MAKE_ENV+=	GUILE_EXECUTABLE=${PREFIX}/bin/guile-3.0 \
+		GUILE_CONFIG_EXECUTABLE=${PREFIX}/bin/guile-config-3.0
+CMAKE_OFF=	NLOPT_JAVA
+PLIST=		${PKGDIR}/pkg-plist.${FLAVOR}
+.elif ${FLAVOR} == minimal
+CMAKE_OFF=	NLOPT_GUILE NLOPT_JAVA NLOPT_PYTHON NLOPT_SWIG
 .endif
 
 .include <bsd.port.mk>
diff --git a/math/nlopt/distinfo b/math/nlopt/distinfo
index de3256df6bc9..68f5bffe9210 100644
--- a/math/nlopt/distinfo
+++ b/math/nlopt/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1732643048
-SHA256 (stevengj-nlopt-v2.9.1_GH0.tar.gz) = 1e6c33f8cbdc4138d525f3326c231f14ed50d99345561e85285638c49b64ee93
-SIZE (stevengj-nlopt-v2.9.1_GH0.tar.gz) = 2054775
+TIMESTAMP = 1740060154
+SHA256 (stevengj-nlopt-v2.10.0_GH0.tar.gz) = 506f83a9e778ad4f204446e99509cb2bdf5539de8beccc260a014bd560237be1
+SIZE (stevengj-nlopt-v2.10.0_GH0.tar.gz) = 2065021
diff --git a/math/nlopt/files/patch-src_swig_CMakeLists.txt b/math/nlopt/files/patch-src_swig_CMakeLists.txt
index ca0d337b91fd..904492141700 100644
--- a/math/nlopt/files/patch-src_swig_CMakeLists.txt
+++ b/math/nlopt/files/patch-src_swig_CMakeLists.txt
@@ -1,14 +1,13 @@
---- src/swig/CMakeLists.txt.orig	2024-11-10 18:47:56 UTC
+--- src/swig/CMakeLists.txt.orig	2025-02-04 18:29:30 UTC
 +++ src/swig/CMakeLists.txt
-@@ -57,10 +57,10 @@ if (GUILE_FOUND)
-   # swig_add_module is deprecated
-   swig_add_library (nlopt_guile LANGUAGE guile SOURCES nlopt.i)
+@@ -58,10 +58,10 @@ if (GUILE_FOUND)
+ 
+   set (CMAKE_SWIG_FLAGS)
  
 -  target_include_directories (nlopt_guile PRIVATE ${GUILE_INCLUDE_DIRS})
--
 +  target_compile_options(nlopt_guile PRIVATE ${GUILE_CFLAGS})
-+  
-   swig_link_libraries (nlopt_guile ${nlopt_lib})
+ 
+   target_link_libraries (nlopt_guile ${nlopt_lib})
 -  target_link_libraries (nlopt_guile ${GUILE_LIBRARIES})
 +  target_link_options(nlopt_guile PRIVATE ${GUILE_LDFLAGS})
    set_target_properties (nlopt_guile PROPERTIES COMPILE_FLAGS "${SWIG_COMPILE_FLAGS}")
diff --git a/math/nlopt/pkg-plist b/math/nlopt/pkg-plist
index 44abb6c21380..0f3a0325fb15 100644
--- a/math/nlopt/pkg-plist
+++ b/math/nlopt/pkg-plist
@@ -5,8 +5,8 @@ lib/cmake/nlopt/NLoptConfigVersion.cmake
 lib/cmake/nlopt/NLoptLibraryDepends-%%CMAKE_BUILD_TYPE%%.cmake
 lib/cmake/nlopt/NLoptLibraryDepends.cmake
 lib/libnlopt.so
-lib/libnlopt.so.0
-lib/libnlopt.so.0.13.0
+lib/libnlopt.so.1
+lib/libnlopt.so.1.0.0
 libdata/pkgconfig/nlopt.pc
 share/man/man3/nlopt.3.gz
 share/man/man3/nlopt_minimize.3.gz
diff --git a/math/nlopt/pkg-plist.full b/math/nlopt/pkg-plist.full
new file mode 100644
index 000000000000..3a3a6db63e96
--- /dev/null
+++ b/math/nlopt/pkg-plist.full
@@ -0,0 +1,18 @@
+%%GUILE_SITE%%/nlopt.scm
+include/nlopt.h
+include/nlopt.hpp
+lib/cmake/nlopt/NLoptConfig.cmake
+lib/cmake/nlopt/NLoptConfigVersion.cmake
+lib/cmake/nlopt/NLoptLibraryDepends-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/nlopt/NLoptLibraryDepends.cmake
+lib/guile/%%GUILE_VER%%/extensions/nlopt_guile.so
+lib/libnlopt.so
+lib/libnlopt.so.1
+lib/libnlopt.so.1.0.0
+%%PYTHON_SITELIBDIR%%/_nlopt.so
+%%PYTHON_SITELIBDIR%%/nlopt-2.10.0.dist-info/METADATA
+%%PYTHON_SITELIBDIR%%/nlopt.py
+libdata/pkgconfig/nlopt.pc
+share/man/man3/nlopt.3.gz
+share/man/man3/nlopt_minimize.3.gz
+share/man/man3/nlopt_minimize_constrained.3.gz