Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package nlopt for openSUSE:Factory checked 
in at 2026-02-24 15:39:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nlopt (Old)
 and      /work/SRC/openSUSE:Factory/.nlopt.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nlopt"

Tue Feb 24 15:39:47 2026 rev:24 rq:1334594 version:2.10.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/nlopt/nlopt.changes      2025-05-26 
18:41:59.943707445 +0200
+++ /work/SRC/openSUSE:Factory/.nlopt.new.1977/nlopt.changes    2026-02-24 
15:40:30.015143804 +0100
@@ -1,0 +2,11 @@
+Wed Feb 18 17:30:28 UTC 2026 - Atri Bhattacharya <[email protected]>
+
+- Update to version 2.10.1:
+  * Fixed octave 10.x build [gh#stevengj/nlopt#616].
+  * Fixed slsqp constraints count [gh#stevengj/nlopt#598].
+  * Fixed build with libstdc++ debug iterators
+    [gh#stevengj/nlopt#627].
+  * Fixed PRAXIS evaluations count [gh#stevengj/nlopt#606].
+- Drop nlopt-dont-force-cxx-standard.patch: upstreamed.
+
+-------------------------------------------------------------------

Old:
----
  nlopt-2.10.0.tar.gz
  nlopt-dont-force-cxx-standard.patch

New:
----
  nlopt-2.10.1.tar.gz

----------(Old B)----------
  Old:  * Fixed PRAXIS evaluations count [gh#stevengj/nlopt#606].
- Drop nlopt-dont-force-cxx-standard.patch: upstreamed.
----------(Old E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nlopt.spec ++++++
--- /var/tmp/diff_new_pack.wfyhZA/_old  2026-02-24 15:40:30.767175025 +0100
+++ /var/tmp/diff_new_pack.wfyhZA/_new  2026-02-24 15:40:30.771175191 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package nlopt
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -33,14 +33,12 @@
 %endif
 
 Name:           nlopt%{?psuffix}
-Version:        2.10.0
+Version:        2.10.1
 Release:        0
 Summary:        A library for nonlinear optimization
 License:        LGPL-2.1-or-later
 URL:            https://nlopt.readthedocs.io/en/latest/
 Source0:        
https://github.com/stevengj/nlopt/archive/v%{version}.tar.gz#/%{pname}-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM nlopt-dont-force-cxx-standard.patch gh#stevengj/nlopt#597 
[email protected] -- Do not force c++11 standard; this allows building 
octave bindings against octave 10+
-Patch0:         nlopt-dont-force-cxx-standard.patch
 BuildRequires:  cmake
 BuildRequires:  fdupes
 BuildRequires:  gcc%{?gcc_ver}-c++

++++++ nlopt-2.10.0.tar.gz -> nlopt-2.10.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/.github/workflows/build.yml 
new/nlopt-2.10.1/.github/workflows/build.yml
--- old/nlopt-2.10.0/.github/workflows/build.yml        2025-02-04 
19:29:30.000000000 +0100
+++ new/nlopt-2.10.1/.github/workflows/build.yml        2026-02-09 
21:30:18.000000000 +0100
@@ -4,7 +4,7 @@
   linux:
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v6
       - name: Build
         run: |
           sudo apt-get update -y && sudo apt-get install python3-dev 
python3-numpy guile-3.0-dev octave-dev cmake gfortran g++-mingw-w64-x86-64 
gfortran-mingw-w64-x86-64
@@ -20,7 +20,7 @@
   macos:
     runs-on: macos-latest
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v6
       - name: Build
         run: |
           brew install swig guile
@@ -31,8 +31,8 @@
   windows:
     runs-on: windows-latest
     steps:
-      - uses: actions/checkout@v4
-      - uses: actions/setup-python@v5
+      - uses: actions/checkout@v6
+      - uses: actions/setup-python@v6
         with:
           python-version: '3.12'
       - name: Build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/.readthedocs.yaml 
new/nlopt-2.10.1/.readthedocs.yaml
--- old/nlopt-2.10.0/.readthedocs.yaml  1970-01-01 01:00:00.000000000 +0100
+++ new/nlopt-2.10.1/.readthedocs.yaml  2026-02-09 21:30:18.000000000 +0100
@@ -0,0 +1,13 @@
+version: 2
+
+build:
+  os: ubuntu-22.04
+  tools:
+    python: "3.12"
+
+mkdocs:
+  configuration: mkdocs.yml
+
+python:
+   install:
+   - requirements: doc/requirements.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/CMakeLists.txt 
new/nlopt-2.10.1/CMakeLists.txt
--- old/nlopt-2.10.0/CMakeLists.txt     2025-02-04 19:29:30.000000000 +0100
+++ new/nlopt-2.10.1/CMakeLists.txt     2026-02-09 21:30:18.000000000 +0100
@@ -12,7 +12,7 @@
 # Benoit Scherrer, 2010 CRL, Harvard Medical School
 # Copyright (c) 2008-2009 Children's Hospital Boston
 #==============================================================================
-cmake_minimum_required (VERSION 3.15)
+cmake_minimum_required (VERSION 3.18)
 
 set (CMAKE_BUILD_TYPE Release CACHE STRING "Build type")
 
@@ -22,7 +22,7 @@
 # version
 set (NLOPT_MAJOR_VERSION "2")
 set (NLOPT_MINOR_VERSION "10")
-set (NLOPT_BUGFIX_VERSION "0")
+set (NLOPT_BUGFIX_VERSION "1")
 set (NLOPT_VERSION_STRING 
${NLOPT_MAJOR_VERSION}.${NLOPT_MINOR_VERSION}.${NLOPT_BUGFIX_VERSION})
 message (STATUS "NLopt version ${NLOPT_VERSION_STRING}")
 
@@ -64,24 +64,10 @@
 set (CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/${NLOPT_INSTALL_LIBDIR} CACHE 
PATH "rpath")
 set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE CACHE BOOL "use link path")
 
-if(POLICY CMP0042)
-  # Set MACOSX_RPATH to ON
-  cmake_policy(SET CMP0042 NEW)
-endif()
-
-if (POLICY CMP0086)
-  # UseSWIG honors SWIG_MODULE_NAME via -module flag
-  cmake_policy(SET CMP0086 NEW)
-endif ()
-
 include (CheckIncludeFiles)
 include (CheckFunctionExists)
 include (CheckTypeSize)
-include (CheckCCompilerFlag)
-include (CheckCXXSymbolExists)
 include (CheckCSourceCompiles)
-include (CheckCXXCompilerFlag)
-include (CheckLibraryExists)
 
 #==============================================================================
 # COMPILATION CHECKINGS and CONFIGURATION GENERATION
@@ -108,10 +94,9 @@
 check_type_size ("unsigned int" SIZEOF_UNSIGNED_INT)
 check_type_size ("unsigned long" SIZEOF_UNSIGNED_LONG)
 
-check_library_exists ("m" sqrt "" HAVE_LIBM)
-if (HAVE_LIBM)
-  set (M_LIBRARY m)
-  set (LIBS_PRIVATE "-l${M_LIBRARY}")
+find_library(M_LIBRARY m)
+if (M_LIBRARY)
+  set (LIBS_PRIVATE "-lm")
 endif()
 
 if (NOT DEFINED HAVE_FPCLASSIFY)
@@ -143,20 +128,6 @@
   endforeach()
 endif ()
 
-
-if (NLOPT_CXX OR NLOPT_PYTHON OR NLOPT_GUILE OR NLOPT_OCTAVE OR NLOPT_JAVA)
-  check_cxx_symbol_exists (__cplusplus ciso646 SYSTEM_HAS_CXX)
-  if (SYSTEM_HAS_CXX)
-    set (CMAKE_CXX_STANDARD 11) # set the standard to C++11 but do not require 
it
-
-    if (NLOPT_CXX)
-      set (CMAKE_CXX_STANDARD_REQUIRED ON) # if we build C++ API, we do need 
C++11
-    endif ()
-  else()
-    message (FATAL_ERROR "The compiler doesn't support CXX.")
-  endif ()
-endif ()
-
 #==============================================================================
 # CREATE nlopt_config.h
 #==============================================================================
@@ -258,9 +229,14 @@
   target_include_directories(${nlopt_lib} PRIVATE src/algs/luksan)
   target_compile_definitions (${nlopt_lib} PRIVATE NLOPT_LUKSAN)
 endif ()
-target_link_libraries (${nlopt_lib} ${M_LIBRARY})
+if (M_LIBRARY)
+  target_link_libraries (${nlopt_lib} ${M_LIBRARY})
+endif ()
 set_target_properties (${nlopt_lib} PROPERTIES SOVERSION ${SO_MAJOR})
 set_target_properties (${nlopt_lib} PROPERTIES VERSION 
"${SO_MAJOR}.${SO_MINOR}.${SO_PATCH}")
+if (NLOPT_CXX)
+  target_compile_features (${nlopt_lib} PUBLIC cxx_lambdas)
+endif ()
 
 #==============================================================================
 # INCLUDE DIRECTORIES
@@ -324,16 +300,12 @@
 endif ()
 
 if (NLOPT_PYTHON)
-  if (CMAKE_VERSION VERSION_LESS 3.18)
-    find_package (Python 3.6 COMPONENTS Interpreter Development NumPy)
+  option (NLOPT_PYTHON_SABI "Use Python stable ABI" OFF)
+  if (NLOPT_PYTHON_SABI AND CMAKE_VERSION VERSION_GREATER_EQUAL 3.26)
+    find_package (Python 3.6 COMPONENTS Interpreter Development.SABIModule 
NumPy)
+    add_library (Python::Module ALIAS Python::SABIModule)
   else ()
-    option (NLOPT_PYTHON_SABI "Use Python stable ABI" OFF)
-    if (NLOPT_PYTHON_SABI AND CMAKE_VERSION VERSION_GREATER_EQUAL 3.26)
-      find_package (Python 3.6 COMPONENTS Interpreter Development.SABIModule 
NumPy)
-      add_library (Python::Module ALIAS Python::SABIModule)
-    else ()
-      find_package (Python 3.6 COMPONENTS Interpreter Development.Module NumPy)
-    endif ()
+    find_package (Python 3.6 COMPONENTS Interpreter Development.Module NumPy)
   endif ()
 endif ()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/NEWS.md new/nlopt-2.10.1/NEWS.md
--- old/nlopt-2.10.0/NEWS.md    2025-02-04 19:29:30.000000000 +0100
+++ new/nlopt-2.10.1/NEWS.md    2026-02-09 21:30:18.000000000 +0100
@@ -1,5 +1,17 @@
 # NLopt Release Notes
 
+## NLopt 2.10.1
+
+9 February 2026
+
+* Fixed octave 10.x build ([#616]).
+
+* Fixed slsqp constraints count ([#598]).
+
+* Fixed build with libstdc++ debug iterators ([#627]).
+
+* Fixed PRAXIS evaluations count ([#606]).
+
 ## NLopt 2.10
 
 4 February 2025
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/doc/docs/NLopt_Algorithms.md 
new/nlopt-2.10.1/doc/docs/NLopt_Algorithms.md
--- old/nlopt-2.10.0/doc/docs/NLopt_Algorithms.md       2025-02-04 
19:29:30.000000000 +0100
+++ new/nlopt-2.10.1/doc/docs/NLopt_Algorithms.md       2026-02-09 
21:30:18.000000000 +0100
@@ -53,10 +53,21 @@
 
 The DIRECT and DIRECT-L algorithms start by rescaling the bound constraints to 
a hypercube, which gives all dimensions equal weight in the search procedure. 
If your dimensions do *not* have equal weight, e.g. if you have a "long and 
skinny" search space and your function varies at about the same speed in all 
directions, it may be better to use unscaled variants of these algorthms, which 
are specified as `NLOPT_GN_DIRECT_NOSCAL`, `NLOPT_GN_DIRECT_L_NOSCAL`, and 
`NLOPT_GN_DIRECT_L_RAND_NOSCAL`, respectively. However, the unscaled variations 
make the most sense (if any) with the original DIRECT algorithm, since the 
design of DIRECT-L to some extent relies on the search region being a hypercube 
(which causes the subdivided hyperrectangles to have only a small set of side 
lengths).
 
+The `NLOPT_GN_DIRECT*` algorithms supports the following internal parameter, 
which can be specified using the [`nlopt_set_param` 
API](NLopt_Reference.md#algorithm-specific-parameters):
+
+* `magic_eps` (defaults to `0`) "Jones' epsilon parameter".
+
 Finally, NLopt also includes separate implementations based on the [original 
Fortran code](http://www4.ncsu.edu/~ctk/SOFTWARE/DIRECTv204.tar.gz) by 
Gablonsky et al. (1998-2001), which are specified as `NLOPT_GN_ORIG_DIRECT` and 
`NLOPT_GN_ORIG_DIRECT_L`. These implementations have a number of hard-coded 
limitations on things like the number of function evaluations; I removed 
several of these limitations, but some remain. On the other hand, there seem to 
be slight differences between these implementations and mine; most of the time, 
the performance is roughly similar, but occasionally Gablonsky's implementation 
will do significantly better than mine or vice versa.
 
 Most of the above algorithms only handle bound constraints, and in fact 
require finite bound constraints (they are not applicable to unconstrained 
problems). They do not handle arbitrary nonlinear constraints. However, the 
`ORIG` versions by Gablonsky et al. include some support for arbitrary 
nonlinear inequality constraints.
 
+The `NLOPT_GN_ORIG_DIRECT*` algorithms supports the following internal 
parameter, which can be specified using the [`nlopt_set_param` 
API](NLopt_Reference.md#algorithm-specific-parameters):
+
+* `magic_eps` (defaults to `0`) "Jones' epsilon parameter".
+* `magic_eps_abs` (defaults to `0`) "absolute version of Jones' epsilon 
parameter".
+* `sigma_reltol` (defaults to `-1`) "relative tolerance on hypercube measure".
+* `fglobal_reltol` (defaults to `0`) "relative tolerance on how close we 
should find fglobal".
+
 ### Controlled Random Search (CRS) with local mutation
 
 My implementation of the "controlled random search" (CRS) algorithm (in 
particular, the CRS2 variant) with the "local mutation" modification, as 
defined by:
@@ -346,7 +357,7 @@
 
 This algorithm in NLopt (specified by NLOPT_LD_LBFGS), is based on a Fortran 
implementation of the low-storage BFGS algorithm written by Prof. Ladislav 
Luksan, and graciously posted online under the GNU LGPL at:
 
--   <http://www.uivt.cas.cz/~luksan/subroutines.html>
+-   <http://www.cs.cas.cz/~luksan/subroutines.html>
 
 The original L-BFGS algorithm, based on variable-metric updates via Strang 
recurrences, was described by the papers:
 
@@ -365,7 +376,7 @@
 
 This algorithm in NLopt, is based on a Fortran implementation of a 
preconditioned inexact truncated Newton algorithm written by Prof. Ladislav 
Luksan, and graciously posted online under the GNU LGPL at:
 
--   <http://www.uivt.cas.cz/~luksan/subroutines.html>
+-   <http://www.cs.cas.cz/~luksan/subroutines.html>
 
 NLopt includes several variations of this algorithm by Prof. Luksan. First, a 
variant preconditioned by the low-storage BFGS algorithm with steepest-descent 
restarting, specified as `NLOPT_LD_TNEWTON_PRECOND_RESTART`. Second, simplified 
versions `NLOPT_LD_TNEWTON_PRECOND` (same without restarting), 
`NLOPT_LD_TNEWTON_RESTART` (same without preconditioning), and 
`NLOPT_LD_TNEWTON` (same without restarting or preconditioning).
 
@@ -386,7 +397,7 @@
 
 This algorithm in NLopt, is based on a Fortran implementation of a shifted 
limited-memory variable-metric algorithm by Prof. Ladislav Luksan, and 
graciously posted online under the GNU LGPL at:
 
--   <http://www.uivt.cas.cz/~luksan/subroutines.html>
+-   <http://www.cs.cas.cz/~luksan/subroutines.html>
 
 There are two variations of this algorithm: `NLOPT_LD_VAR2`, using a rank-2 
method, and `NLOPT_LD_VAR1`, using a rank-1 method.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/doc/docs/NLopt_License_and_Copyright.md 
new/nlopt-2.10.1/doc/docs/NLopt_License_and_Copyright.md
--- old/nlopt-2.10.0/doc/docs/NLopt_License_and_Copyright.md    2025-02-04 
19:29:30.000000000 +0100
+++ new/nlopt-2.10.1/doc/docs/NLopt_License_and_Copyright.md    2026-02-09 
21:30:18.000000000 +0100
@@ -4,7 +4,7 @@
 
 The NLopt library is under the [GNU Lesser General Public 
License](https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License) 
(LGPL), and the copyrights are owned by a variety of authors.
 
-In general, the different code in NLopt comes from different sources, and have 
a variety of licenses. For example, all of the *new* code we wrote for NLopt is 
under the [MIT License](https://en.wikipedia.org/wiki/MIT_License) (which 
imposes essentially no practical restrictions, and is hence compatible with the 
LGPL). The *combination* of all of this software is under the conjunction of 
the license terms, and in particular they are limited by the most restrictive 
of the licenses for the portions, which in this case is the LGPL. (The other 
portions of NLopt are under LGPL-compatible, less-restrictive licenses like the 
MIT license. So, if you remove the LGPL portions, which are currently code [by 
Ladislav Luksan](http://www.uivt.cas.cz/~luksan/subroutines.html), the 
remainder reverts to a looser license.)
+In general, the different code in NLopt comes from different sources, and have 
a variety of licenses. For example, all of the *new* code we wrote for NLopt is 
under the [MIT License](https://en.wikipedia.org/wiki/MIT_License) (which 
imposes essentially no practical restrictions, and is hence compatible with the 
LGPL). The *combination* of all of this software is under the conjunction of 
the license terms, and in particular they are limited by the most restrictive 
of the licenses for the portions, which in this case is the LGPL. (The other 
portions of NLopt are under LGPL-compatible, less-restrictive licenses like the 
MIT license. So, if you remove the LGPL portions, which are currently code [by 
Ladislav Luksan](http://www.cs.cas.cz/~luksan/subroutines.html), the remainder 
reverts to a looser license.)
 
 New code written for NLopt, including tutorial code at [NLopt 
Tutorial](NLopt_Tutorial.md), is Copyright © 2007-2020 Massachusetts Institute 
of Technology and other authors, and comes with **no warranty**:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/doc/docs/index.md 
new/nlopt-2.10.1/doc/docs/index.md
--- old/nlopt-2.10.0/doc/docs/index.md  2025-02-04 19:29:30.000000000 +0100
+++ new/nlopt-2.10.1/doc/docs/index.md  2026-02-09 21:30:18.000000000 +0100
@@ -23,14 +23,15 @@
 Download and installation
 -------------------------
 
-Version 2.7.1 of NLopt is the latest version available from GitHub:
+Version 2.10.1 of NLopt is the latest version available from GitHub:
 
--   [v2.7.1.tar.gz](https://github.com/stevengj/nlopt/archive/v2.7.1.tar.gz)
+-   
[v2.10.1.tar.gz](https://github.com/stevengj/nlopt/archive/refs/tags/v2.10.1.tar.gz)
 
-See the [NLopt release 
notes](https://github.com/stevengj/nlopt/blob/master/NEWS.md) for the release 
history. NLopt is designed to be installed on any Unix-like system (GNU/Linux 
is fine) with a C compiler, using the standard
+See the [NLopt release 
notes](https://github.com/stevengj/nlopt/blob/master/NEWS.md) for the release 
history.
+NLopt is designed to be installed on any Unix-like system (GNU/Linux is fine) 
with a C compiler, using the standard
 
 ```
-cmake . && make && sudo make install
+cmake . && make && sudo make install
 ```
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/mkdocs.yml new/nlopt-2.10.1/mkdocs.yml
--- old/nlopt-2.10.0/mkdocs.yml 2025-02-04 19:29:30.000000000 +0100
+++ new/nlopt-2.10.1/mkdocs.yml 2026-02-09 21:30:18.000000000 +0100
@@ -36,6 +36,7 @@
     - Python reference: NLopt_Python_Reference.md
     - Guile reference: NLopt_Guile_Reference.md
     - R reference:     NLopt_R_Reference.md
+    - Java reference:  NLopt_Java_Reference.md
     - Deprecated API reference: NLopt_Deprecated_API_Reference.md
  - NLopt algorithms:
     - NLopt algorithms: NLopt_Algorithms.md
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/src/algs/ags/solver.cc 
new/nlopt-2.10.1/src/algs/ags/solver.cc
--- old/nlopt-2.10.0/src/algs/ags/solver.cc     2025-02-04 19:29:30.000000000 
+0100
+++ new/nlopt-2.10.1/src/algs/ags/solver.cc     2026-02-09 21:30:18.000000000 
+0100
@@ -341,7 +341,7 @@
   }
 }
 
-void NLPSolver::UpdateAllH(std::set<Interval*>::iterator iterator)
+void NLPSolver::UpdateAllH(std::set<Interval*, 
ags::CompareIntervals>::iterator iterator)
 {
   Interval* pInterval = *iterator;
   if (pInterval->pl.idx < 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/src/algs/ags/solver.hpp 
new/nlopt-2.10.1/src/algs/ags/solver.hpp
--- old/nlopt-2.10.0/src/algs/ags/solver.hpp    2025-02-04 19:29:30.000000000 
+0100
+++ new/nlopt-2.10.1/src/algs/ags/solver.hpp    2026-02-09 21:30:18.000000000 
+0100
@@ -79,7 +79,7 @@
   void InitDataStructures();
   void ClearDataStructures();
 
-  void UpdateAllH(std::set<Interval*>::iterator);
+  void UpdateAllH(std::set<Interval*, ags::CompareIntervals>::iterator);
   void UpdateH(double newValue, int index);
   double CalculateR(Interval*) const;
   double GetNextPointCoordinate(Interval*) const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/src/algs/neldermead/nldrmd.c 
new/nlopt-2.10.1/src/algs/neldermead/nldrmd.c
--- old/nlopt-2.10.0/src/algs/neldermead/nldrmd.c       2025-02-04 
19:29:30.000000000 +0100
+++ new/nlopt-2.10.1/src/algs/neldermead/nldrmd.c       2026-02-09 
21:30:18.000000000 +0100
@@ -32,7 +32,7 @@
    Richardson and Kuester (1973), as mentioned below. */
 
 /* heuristic "strategy" constants: */
-static const double alpha = 1, beta = 0.5, gamm = 2, delta = 0.5;
+static const double ALPHA = 1, BETA = 0.5, GAMMA = 2, DELTA = 0.5;
 
 /* sort order in red-black tree: keys [f(x), x] are sorted by f(x) */
 static int simplex_compare(double *k1, double *k2)
@@ -228,14 +228,14 @@
          }
 
          /* reflection */
-         if (!reflectpt(n, xcur, c, alpha, xh, lb, ub)) { 
+         if (!reflectpt(n, xcur, c, ALPHA, xh, lb, ub)) { 
               ret=NLOPT_XTOL_REACHED; goto done; 
          }
          fr = f(n, xcur, NULL, f_data);
          CHECK_EVAL(xcur, fr);
 
          if (fr < fl) { /* new best point, expand simplex */
-              if (!reflectpt(n, xh, c, gamm, xh, lb, ub)) {
+              if (!reflectpt(n, xh, c, GAMMA, xh, lb, ub)) {
                    ret=NLOPT_XTOL_REACHED; goto done; 
               }
               fh = f(n, xh, NULL, f_data);
@@ -251,7 +251,7 @@
          }
          else { /* new worst point, contract */
               double fc;
-              if (!reflectpt(n,xcur,c, fh <= fr ? -beta : beta, xh, lb,ub)) {
+              if (!reflectpt(n,xcur,c, fh <= fr ? -BETA : BETA, xh, lb,ub)) {
                    ret=NLOPT_XTOL_REACHED; goto done; 
               }
               fc = f(n, xcur, NULL, f_data);
@@ -266,7 +266,7 @@
                    for (i = 0; i < n+1; ++i) {
                         double *pt = pts + i * (n+1);
                         if (pt+1 != xl) {
-                             if (!reflectpt(n,pt+1, xl,-delta,pt+1, lb,ub)) {
+                             if (!reflectpt(n,pt+1, xl,-DELTA,pt+1, lb,ub)) {
                                   ret = NLOPT_XTOL_REACHED;
                                   goto done;
                              }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/src/algs/praxis/praxis.c 
new/nlopt-2.10.1/src/algs/praxis/praxis.c
--- old/nlopt-2.10.0/src/algs/praxis/praxis.c   2025-02-04 19:29:30.000000000 
+0100
+++ new/nlopt-2.10.1/src/algs/praxis/praxis.c   2026-02-09 21:30:18.000000000 
+0100
@@ -291,6 +291,7 @@
        }
        global_1.fx = (*f)(n, &x[1], f_data);
        ++global_1.nf;
+       ++ *(stop->nevals_p);
 
 /* .....MINIMIZE ALONG THE "NON-CONJUGATE" DIRECTIONS V(*,K),...,V(*,N) */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/src/algs/slsqp/slsqp.c 
new/nlopt-2.10.1/src/algs/slsqp/slsqp.c
--- old/nlopt-2.10.0/src/algs/slsqp/slsqp.c     2025-02-04 19:29:30.000000000 
+0100
+++ new/nlopt-2.10.1/src/algs/slsqp/slsqp.c     2026-02-09 21:30:18.000000000 
+0100
@@ -2459,6 +2459,11 @@
      unsigned max_cdim;
      int want_grad = 1;
      
+     if (ptot > n) {
+       nlopt_stop_msg(stop, "slsqp: more equality constraints than variables");
+       return NLOPT_INVALID_ARGS;
+     }
+
      max_cdim = MAX2(nlopt_max_constraint_dim(m, fc),
                    nlopt_max_constraint_dim(p, h));
      length_work(&len_w, &len_jw, mpi, pi, ni);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/src/octave/CMakeLists.txt 
new/nlopt-2.10.1/src/octave/CMakeLists.txt
--- old/nlopt-2.10.0/src/octave/CMakeLists.txt  2025-02-04 19:29:30.000000000 
+0100
+++ new/nlopt-2.10.1/src/octave/CMakeLists.txt  2026-02-09 21:30:18.000000000 
+0100
@@ -6,13 +6,6 @@
   matlab_add_mex (NAME nlopt_optimize-mex SRC nlopt_optimize-mex.c OUTPUT_NAME 
nlopt_optimize LINK_TO ${nlopt_lib})
   target_include_directories (nlopt_optimize-mex PRIVATE 
${PROJECT_SOURCE_DIR}/src/api)
 
-  if (CMAKE_VERSION VERSION_LESS 3.14.0)
-    if (CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU")
-      message("Forcing mexFunction visibility to default")
-      set_target_properties(nlopt_optimize-mex PROPERTIES COMPILE_FLAGS 
"-fvisibility=default")
-    endif()
-  endif()
-
   if (NLOPT_CXX)
     set_target_properties (nlopt_optimize-mex PROPERTIES LINKER_LANGUAGE CXX)
   endif ()
@@ -42,6 +35,10 @@
   octave_add_oct (nlopt_optimize SOURCES nlopt_optimize-oct.cc 
${CMAKE_CURRENT_BINARY_DIR}/nlopt_optimize_usage.h LINK_LIBRARIES ${nlopt_lib})
   target_include_directories (nlopt_optimize PRIVATE ${OCTAVE_INCLUDE_DIRS} 
${CMAKE_CURRENT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/src/api)
 
+  if (OCTAVE_VERSION_MAJOR GREATER 10)
+    target_compile_features(nlopt_optimize PRIVATE cxx_std_17)
+  endif()
+
   if (NOT DEFINED INSTALL_OCT_DIR)
     file (RELATIVE_PATH INSTALL_OCT_DIR ${OCTAVE_ROOT_DIR} 
${OCTAVE_OCT_SITE_DIR})
   endif ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/src/swig/CMakeLists.txt 
new/nlopt-2.10.1/src/swig/CMakeLists.txt
--- old/nlopt-2.10.0/src/swig/CMakeLists.txt    2025-02-04 19:29:30.000000000 
+0100
+++ new/nlopt-2.10.1/src/swig/CMakeLists.txt    2026-02-09 21:30:18.000000000 
+0100
@@ -1,7 +1,3 @@
-
-if (POLICY CMP0078)
-  cmake_policy(SET CMP0078 NEW)
-endif ()
 # clean up old generated source files before running SWIG, useful for Java
 set(UseSWIG_MODULE_VERSION 2)
 include (UseSWIG)
@@ -21,11 +17,10 @@
 include_directories (${NLOPT_PRIVATE_INCLUDE_DIRS})
 set_source_files_properties (nlopt.i PROPERTIES CPLUSPLUS ON)
 
-if (Python_NumPy_FOUND)
+if (Python_NumPy_FOUND AND NLOPT_CXX)
 
   set (SWIG_MODULE_nlopt_python_EXTRA_DEPS nlopt-python.i numpy.i generate-cpp)
 
-  # swig_add_module is deprecated
   swig_add_library (nlopt_python LANGUAGE python SOURCES nlopt.i
                     OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/python
                     OUTFILE_DIR ${CMAKE_CURRENT_BINARY_DIR})
@@ -46,12 +41,11 @@
 endif ()
 
 
-if (GUILE_FOUND)
+if (GUILE_FOUND AND NLOPT_CXX)
 
   set (SWIG_MODULE_nlopt_guile_EXTRA_DEPS nlopt-guile.i generate-cpp)
   set (CMAKE_SWIG_FLAGS -scmstub)
 
-  # swig_add_module is deprecated
   swig_add_library (nlopt_guile LANGUAGE guile SOURCES nlopt.i
                     OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/guile
                     OUTFILE_DIR ${CMAKE_CURRENT_BINARY_DIR})
@@ -74,14 +68,13 @@
 endif ()
 
 
-if (JNI_FOUND AND Java_FOUND AND SWIG_FOUND)
+if (JNI_FOUND AND Java_FOUND AND SWIG_FOUND AND NLOPT_CXX)
 
   include (UseJava)
 
   set (SWIG_MODULE_nlopt_java_EXTRA_DEPS nlopt-java.i generate-cpp)
   set (CMAKE_SWIG_FLAGS -package nlopt)
 
-  # swig_add_module is deprecated
   # OUTPUT_DIR is ${CMAKE_CURRENT_BINARY_DIR}/java/ + the -package above (with
   # any '.' replaced by '/'). It must also match the GLOB in glob_java.cmake.
   swig_add_library (nlopt_java LANGUAGE java SOURCES nlopt.i
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nlopt-2.10.0/test/CMakeLists.txt 
new/nlopt-2.10.1/test/CMakeLists.txt
--- old/nlopt-2.10.0/test/CMakeLists.txt        2025-02-04 19:29:30.000000000 
+0100
+++ new/nlopt-2.10.1/test/CMakeLists.txt        2026-02-09 21:30:18.000000000 
+0100
@@ -1,28 +1,26 @@
 add_custom_target (tests)
 
 macro(NLOPT_add_cpp_test test_name)
-  add_executable (${test_name} ${test_name}.cxx)
-  target_link_libraries (${test_name} ${nlopt_lib})
-  add_dependencies (tests ${test_name})
-  target_include_directories (${test_name} PRIVATE 
${NLOPT_PRIVATE_INCLUDE_DIRS})
-  foreach(arg IN ITEMS ${ARGN})
-    add_test (NAME check_${test_name}_${arg} COMMAND ${test_name} ${arg})
-    if (CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
-      set_tests_properties (check_${test_name}_${arg}
-        PROPERTIES ENVIRONMENT 
"PATH=${PROJECT_BINARY_DIR}\\${CMAKE_BUILD_TYPE};$ENV{PATH}")  # to load dll
-    endif ()
-  endforeach()
+  if (NLOPT_CXX)
+    add_executable (${test_name} ${test_name}.cxx)
+    target_link_libraries (${test_name} ${nlopt_lib})
+    add_dependencies (tests ${test_name})
+    target_include_directories (${test_name} PRIVATE 
${NLOPT_PRIVATE_INCLUDE_DIRS})
+    foreach(arg IN ITEMS ${ARGN})
+      add_test (NAME check_${test_name}_${arg} COMMAND ${test_name} ${arg})
+      if (CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
+        set_tests_properties (check_${test_name}_${arg}
+          PROPERTIES ENVIRONMENT 
"PATH=${PROJECT_BINARY_DIR}\\${CMAKE_BUILD_TYPE};$ENV{PATH}")  # to load dll
+      endif ()
+    endforeach()
+  endif ()
 endmacro()
 
 NLOPT_add_cpp_test(t_tutorial 24 25 31 40)
 NLOPT_add_cpp_test(cpp_functor 0)
 NLOPT_add_cpp_test(t_fbound 0)
 NLOPT_add_cpp_test(t_except 1 0)
-
 NLOPT_add_cpp_test(t_bounded 0 1 2 3 4 5 6 7 8 19 35 42 43)
-if (NOT NLOPT_CXX)
-  set_tests_properties (check_t_bounded_8 check_t_bounded_43 PROPERTIES 
DISABLED TRUE)
-endif ()
 
 # have to add timer.c and mt19937ar.c as symbols are declared extern
 set (testopt_sources testfuncs.c testfuncs.h testopt.c 
${PROJECT_SOURCE_DIR}/src/util/timer.c 
${PROJECT_SOURCE_DIR}/src/util/mt19937ar.c)
@@ -58,7 +56,7 @@
       endif ()
       # Check if LUKSAN targets are available.
       if (NOT NLOPT_LUKSAN)
-        set (list_of_algorithms_requiring_luksan 10 11 12 13 14 15 16 17)
+        set (list_of_algorithms_requiring_luksan 10 11 12 13 14 15 16 17 18)
         if (algo_index IN_LIST list_of_algorithms_requiring_luksan)
           set_tests_properties (testopt_algo${algo_index}_obj${obj_index} 
PROPERTIES DISABLED TRUE)
         endif()
@@ -67,7 +65,7 @@
   endforeach ()
 endforeach ()
 
-if (Python_NumPy_FOUND AND (SWIG_FOUND OR (EXISTS 
${PROJECT_SOURCE_DIR}/src/swig/nlopt-python.cpp)))
+if (TARGET nlopt_python)
   set (PYINSTALLCHECK_ENVIRONMENT 
"LD_LIBRARY_PATH=${PROJECT_BINARY_DIR}/src/swig"
                                   
"PYTHONPATH=$<SHELL_PATH:${PROJECT_BINARY_DIR}/src/swig/python;${PROJECT_BINARY_DIR}/src/swig>"
       )
@@ -85,7 +83,7 @@
 # The binding itself should also compile with more ancient Java versions that
 # have already reached their end of life, but it is not worth uglifying the 
test
 # code for them, because people will then cargo-cult the legacy boilerplate.
-if (JNI_FOUND AND Java_FOUND AND SWIG_FOUND AND NOT Java_VERSION VERSION_LESS 
1.8)
+if (TARGET nlopt_java AND NOT Java_VERSION VERSION_LESS 1.8)
   include (UseJava)
   add_jar (t_java SOURCES t_java.java INCLUDE_JARS nlopt_jar ENTRY_POINT 
t_java)
   get_property (t_java_jar TARGET t_java PROPERTY JAR_FILE)
@@ -100,15 +98,15 @@
   endforeach()
 endif ()
 
-if (OCTAVE_FOUND)
+if (TARGET nlopt_optimize)
   add_test (NAME test_octave COMMAND ${OCTAVE_EXECUTABLE} 
${CMAKE_CURRENT_SOURCE_DIR}/t_octave.m ${PROJECT_SOURCE_DIR}/src/octave 
${PROJECT_BINARY_DIR}/src/octave)
 endif ()
 
-if (MATLAB_FOUND)
+if (TARGET nlopt_optimize-mex)
   add_test (NAME test_matlab COMMAND ${Matlab_MAIN_PROGRAM} -nodesktop 
-nosplash  -r "addpath('${PROJECT_SOURCE_DIR}/src/octave'); 
addpath('${PROJECT_BINARY_DIR}/src/octave'); try; 
run('${CMAKE_CURRENT_SOURCE_DIR}/t_matlab.m'); catch; exit(1); end; quit")
 endif ()
 
-if (GUILE_FOUND AND (SWIG_FOUND OR (EXISTS 
${PROJECT_SOURCE_DIR}/src/swig/nlopt-guile.cpp)))
+if (TARGET nlopt_guile)
   set (GUILECHECK_ENVIRONMENT "LD_LIBRARY_PATH=${PROJECT_BINARY_DIR}/src/swig"
                               
"GUILE_LOAD_PATH=$<SHELL_PATH:${PROJECT_BINARY_DIR}/src/swig/guile;${PROJECT_BINARY_DIR}/src/swig>"
                               "GUILE_AUTO_COMPILE=0")

Reply via email to