wip/nlopt: Upgrade of math/nlopt from 2.4.2 to 2.6.2.

pkgsrc Makefile substitution to prefix builtin rb_tree symbols to
avoid collisions against NetBSD libc rbtree.

Tested with wip/PrusaSlicer.

Release notes:

2.6.2:
 - Fixed forced stop exception with dimension elimination ([#317])
 - Fixed get_initial_step wrapping ([#319])
 - Various build fixes ([#314], [#308], [#303], [#278])

2.6.1:
 - Fix nlopt_version return value for 2.6.x and update soname and docs.

2.6.0:
 - New set_upper_bound and set_lower_bound functions in the low-level C API
   to set one bound at a time (#257). There is no longer a separate
   libnlopt_cxx library - C++ algorithms (stogo) are compiled and included
   by default (#198). Various build fixes (#197, #216, #245, #250, #230,
   #261, etc.), other fixes (#242, #258).

2.5.0:
 - New AGS global solver (#194), thanks to Vladislav Sovrasov.
 - New nlopt_get_numevals function providing a built-in evaluation counter
   (#160).
 - New nlopt_get_errmsg function for more descriptive error messages.
 - Build system is converted to cmake (#49), thanks to Julien Schueller
 - Plugins updated for recent Octave and Guile versions.
 - Various other build fixes and minor bug fixes.
This commit is contained in:
Paul Ripke 2020-10-20 13:35:14 +11:00
parent 11ee5dcc4e
commit b2d2ff46f1
5 changed files with 79 additions and 0 deletions

17
nlopt/DESCR Normal file
View File

@ -0,0 +1,17 @@
NLopt is a free/open-source library for nonlinear optimization,
providing a common interface for a number of different free optimization
routines available online as well as original implementations of various
other algorithms.
Its features include:
- Callable from C, C++, Fortran, Matlab or GNU Octave, Python,
GNU Guile, Julia, GNU R, Lua, and OCaml.
- A common interface for many different algorithms -- try a different
algorithm just by changing one parameter.
- Support for large-scale optimization (some algorithms scalable to
millions of parameters and thousands of constraints).
- Both global and local optimization algorithms.
- Algorithms using function values only (derivative-free) and also
algorithms exploiting user-supplied gradients.
- Algorithms for unconstrained optimization, bound-constrained
optimization, and general nonlinear inequality/equality constraints.

26
nlopt/Makefile Normal file
View File

@ -0,0 +1,26 @@
# $NetBSD$
DISTNAME= nlopt-2.6.2
CATEGORIES= math
MASTER_SITES= ${MASTER_SITE_GITHUB:=stevengj/}
GITHUB_PROJECT= nlopt
GITHUB_TAG= v${PKGVERSION_NOREV}
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://nlopt.readthedocs.io/en/latest/
COMMENT= Nonlinear optimization library
LICENSE= gnu-lgpl-v2.1 OR mit
USE_TOOLS+= cmake
USE_CMAKE= yes
USE_LANGUAGES= c c++
SUBST_CLASSES+= rbtree
CH_FILES_CMD= cd ${WRKSRC} && ${FIND} . -name '*.[ch]'
SUBST_FILES.rbtree+= ${CH_FILES_CMD:sh}
SUBST_MESSAGE.rbtree= Changing rb_tree symbols that collide with NetBSD libc.
SUBST_SED.rbtree= -e "s|rb_tree_|nlopt_rb_tree_|g"
SUBST_STAGE.rbtree= post-extract
.include "../../devel/gmp/buildlink3.mk"
.include "../../lang/guile20/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

17
nlopt/PLIST Normal file
View File

@ -0,0 +1,17 @@
@comment $NetBSD$
include/nlopt.f
include/nlopt.h
include/nlopt.hpp
lib/cmake/nlopt/NLoptConfig.cmake
lib/cmake/nlopt/NLoptConfigVersion.cmake
lib/cmake/nlopt/NLoptLibraryDepends-release.cmake
lib/cmake/nlopt/NLoptLibraryDepends.cmake
lib/guile/2.0/extensions/nlopt_guile.so
lib/libnlopt.so
lib/libnlopt.so.0
lib/libnlopt.so.0.10.0
lib/pkgconfig/nlopt.pc
man/man3/nlopt.3
man/man3/nlopt_minimize.3
man/man3/nlopt_minimize_constrained.3
share/guile/site/2.0/nlopt.scm

13
nlopt/buildlink3.mk Normal file
View File

@ -0,0 +1,13 @@
# $NetBSD$
BUILDLINK_TREE+= nlopt
.if !defined(NLOPT_BUILDLINK3_MK)
NLOPT_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.nlopt+= nlopt>=2.6.2
BUILDLINK_ABI_DEPENDS.nlopt+= nlopt>=2.6.2
BUILDLINK_PKGSRCDIR.nlopt?= ../../wip/nlopt
.endif # NLOPT_BUILDLINK3_MK
BUILDLINK_TREE+= -nlopt

6
nlopt/distinfo Normal file
View File

@ -0,0 +1,6 @@
$NetBSD$
SHA1 (nlopt-2.6.2.tar.gz) = d7f7962e4e8cc014b734d591d8041a64d56250c3
RMD160 (nlopt-2.6.2.tar.gz) = 133b655d359ef9d5475324e077e28901a30bb757
SHA512 (nlopt-2.6.2.tar.gz) = 61e5c01140a57c0ad2a0acd82ad50dce1b5679dc281e55cbbc332e876b19a689013100617545a42b721d8c487df37d6ccd67859171243433fe29468f259b556b
Size (nlopt-2.6.2.tar.gz) = 2040229 bytes