ports/168290: New port: math/ipopt

Pedro Giffuni giffunip at tutopia.com
Thu May 24 05:20:02 UTC 2012


>Number:         168290
>Category:       ports
>Synopsis:       New port: math/ipopt
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu May 24 05:20:01 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Pedro Giffuni
>Release:        FreeBSD 9.0 RELEASE
>Organization:
>Environment:
FreeBSD pcbsd-8714 9.0-RELEASE-p1 FreeBSD 9.0-RELEASE-p1 #1 r235614M: Fri May 18 14:09:53 COT 2012     pedro at pcbsd-8714:/usr/src/sys/amd64/compile/GENERIC  amd6
>Description:
Ipopt (Interior Point OPTimizer) is a software package library for large-scale ​nonlinear optimization. It is part of the COIN-OR initiative.

This port requires a linear solver and I chose to use mumps as it is the only one that is available without restrictions. Unfortunately it was not possible to make configure accept the prepackaged versions so we are using the distribution provided script to download the source tarballs. Both libraries are statically linked so there is no major consequence.

The patches were submitted upstream: they teach the scripts to use fetch(1) when wget is not available.
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	ipopt
#	ipopt/pkg-plist
#	ipopt/pkg-descr
#	ipopt/distinfo
#	ipopt/Makefile
#	ipopt/files
#	ipopt/files/patch-ThirdParty+Metis+get.Metis
#	ipopt/files/patch-ThirdParty+Mumps+get.Mumps
#
echo c - ipopt
mkdir -p ipopt > /dev/null 2>&1
echo x - ipopt/pkg-plist
sed 's/^X//' >ipopt/pkg-plist << '6ecc09ddab167250bbd29c5fb71da885'
X
Xinclude/coin/IpAlgTypes.hpp
Xinclude/coin/IpBlas.hpp
Xinclude/coin/IpCachedResults.hpp
Xinclude/coin/IpCompoundVector.hpp
Xinclude/coin/IpDebug.hpp
Xinclude/coin/IpDenseVector.hpp
Xinclude/coin/IpException.hpp
Xinclude/coin/IpIpoptApplication.hpp
Xinclude/coin/IpIpoptCalculatedQuantities.hpp
Xinclude/coin/IpIpoptData.hpp
Xinclude/coin/IpIpoptNLP.hpp
Xinclude/coin/IpIteratesVector.hpp
Xinclude/coin/IpJournalist.hpp
Xinclude/coin/IpLapack.hpp
Xinclude/coin/IpMatrix.hpp
Xinclude/coin/IpNLP.hpp
Xinclude/coin/IpNLPScaling.hpp
Xinclude/coin/IpObserver.hpp
Xinclude/coin/IpOptionsList.hpp
Xinclude/coin/IpOrigIpoptNLP.hpp
Xinclude/coin/IpReferenced.hpp
Xinclude/coin/IpRegOptions.hpp
Xinclude/coin/IpReturnCodes.h
Xinclude/coin/IpReturnCodes.hpp
Xinclude/coin/IpReturnCodes.inc
Xinclude/coin/IpReturnCodes_inc.h
Xinclude/coin/IpSmartPtr.hpp
Xinclude/coin/IpSolveStatistics.hpp
Xinclude/coin/IpStdCInterface.h
Xinclude/coin/IpSymMatrix.hpp
Xinclude/coin/IpTNLP.hpp
Xinclude/coin/IpTNLPAdapter.hpp
Xinclude/coin/IpTNLPReducer.hpp
Xinclude/coin/IpTaggedObject.hpp
Xinclude/coin/IpTimedTask.hpp
Xinclude/coin/IpTimingStatistics.hpp
Xinclude/coin/IpTypes.hpp
Xinclude/coin/IpUtils.hpp
Xinclude/coin/IpVector.hpp
Xinclude/coin/IpoptConfig.h
Xinclude/coin/ThirdParty/defs.h
Xinclude/coin/ThirdParty/dmumps_c.h
Xinclude/coin/ThirdParty/macros.h
Xinclude/coin/ThirdParty/metis.h
Xinclude/coin/ThirdParty/mpi.h
Xinclude/coin/ThirdParty/mumps_c_types.h
Xinclude/coin/ThirdParty/mumps_compat.h
Xinclude/coin/ThirdParty/proto.h
Xinclude/coin/ThirdParty/rename.h
Xinclude/coin/ThirdParty/struct.h
X at dirrm include/coin/ThirdParty
X at dirrmtry include/coin
Xlib/libcoinmetis.la
Xlib/libcoinmetis.so
Xlib/libcoinmetis.so.3
Xlib/libcoinmumps.la
Xlib/libcoinmumps.so
Xlib/libcoinmumps.so.5
Xlib/libipopt.la
Xlib/libipopt.so
Xlib/libipopt.so.9
Xlibdata/pkgconfig/coinmetis.pc
Xlibdata/pkgconfig/coinmumps.pc
Xlibdata/pkgconfig/ipopt.pc
X%%PORTDOCS%%%%DOCSDIR%%/Ipopt/AUTHORS
X%%PORTDOCS%%%%DOCSDIR%%/Ipopt/LICENSE
X%%PORTDOCS%%%%DOCSDIR%%/Ipopt/README
X%%PORTDOCS%%%%DOCSDIR%%/Ipopt/ipopt_addlibs_c.txt
X%%PORTDOCS%%%%DOCSDIR%%/Ipopt/ipopt_addlibs_cpp.txt
X%%PORTDOCS%%%%DOCSDIR%%/Ipopt/ipopt_addlibs_f.txt
X%%PORTDOCS%%@dirrm %%DOCSDIR%%/Ipopt
X%%PORTDOCS%%@dirrm %%DOCSDIR%%
6ecc09ddab167250bbd29c5fb71da885
echo x - ipopt/pkg-descr
sed 's/^X//' >ipopt/pkg-descr << '64c6e12b481b101dda788756ff8cbda3'
XIpopt (Interior Point OPTimizer, pronounced eye-pea-Opt) is a software 
Xpackage for large-scale nonlinear optimization.
X
XIpopt is written in C++ and is released as open source code under the 
XEclipse Public License (EPL). It is available from the COIN-OR 
Xinitiative. The code has been written by Carl Laird and Andreas Wchter, 
Xwho is the COIN project leader for Ipopt.
X
XThe Ipopt distribution can be used to generate a library that can be 
Xlinked to one's own C++, C, or Fortran code, as well as a solver 
Xexecutable for the AMPL modeling environment. The package includes 
Xinterfaces to CUTEr optimization testing environment, as well as the 
XMATLAB and R programming environments. IPOPT can be used on Linux/UNIX, 
XMac OS X and Windows platforms.
X
XAn excellent reference for this library can be found in:
X
XWachter and L. T. Biegler, On the Implementation of a Primal-Dual Interior 
XPoint Filter Line Search Algorithm for Large-Scale Nonlinear Programming, 
XMathematical Programming 106(1), pp. 25-57, 2006
X
XWWW:	 https://projects.coin-or.org/Ipopt
64c6e12b481b101dda788756ff8cbda3
echo x - ipopt/distinfo
sed 's/^X//' >ipopt/distinfo << '91f25c0f4d480f646025dee71ae6d50c'
XSHA256 (Ipopt-3.10.2.tgz) = 3b4dd62c1dc730e66c090b6ce11620f5951f427c7ab0a8a33b1eaa78311b6d0d
XSIZE (Ipopt-3.10.2.tgz) = 4412891
91f25c0f4d480f646025dee71ae6d50c
echo x - ipopt/Makefile
sed 's/^X//' >ipopt/Makefile << 'b0d34fd7b0d00ade03691f3ba24641c7'
X# New ports collection makefile for:   Ipopt
X# Date created:        22 June 2011
X# Whom:                Pedro Giffuni
X#
X# $FreeBSD$
X#
X
XPORTNAME=	Ipopt
XPORTVERSION=	3.10.2
XCATEGORIES=	math
XMASTER_SITES=	http://www.coin-or.org/download/source/Ipopt/
XEXTRACT_SUFX=	.tgz
X
XMAINTAINER=	giffunip at tutopia.com
XCOMMENT=	Software package for large-scale nonlinear optimization
X
XLICENSE=	EPL
X
XUSE_AUTOTOOLS=	libtool
XUSE_LDCONFIG=	yes
X
XUSE_FORTRAN=	yes
X
XLIB_DEPENDS+=	lapack.4:${PORTSDIR}/math/lapack
X
XCONFIGURE_ENV=	--with-lapack-lib="-llapack -L/${LOCALBASE}/lib"	\
X		--with-lapack-incdir=${LOCALBASE}/include/lapack
X
XCXXFLAGS+=	-ffast-math
X.ifndef WITH_DEBUG
XCXXFLAGS+=	-fomit-frame-pointer
X.endif
X
X# Configure tends to ignore prepackaged solvers so we need to fetch
X# the few of them that are freely available.
X# This should be moved to post-extract after upstream commits support
X# for our fetch(1) command.
Xpost-patch:
X	@(cd ${WRKSRC}/ThirdParty/Metis; ${SH} get.Metis)
X	@(cd ${WRKSRC}/ThirdParty/Mumps; ${SH} get.Mumps)
X
Xpost-install:
X	${MKDIR} ${PREFIX}/libdata/pkgconfig
X	${MV} ${PREFIX}/lib/pkgconfig/*.pc ${PREFIX}/libdata/pkgconfig
X	${RMDIR} ${PREFIX}/lib/pkgconfig
X.ifndef NOPORTDOCS
X	${MV} ${PREFIX}/share/coin/doc ${DOCSDIR}
X.endif
X	${RM} -rf ${PREFIX}/share/coin
X
Xcheck regression-test test: build
X	@(cd ${WRKSRC};  ${SETENV} ${MAKE_ENV} ${MAKE} ${_MAKE_JOBS} \
X	${MAKE_ARGS} test)
X
X.include <bsd.port.mk>
b0d34fd7b0d00ade03691f3ba24641c7
echo c - ipopt/files
mkdir -p ipopt/files > /dev/null 2>&1
echo x - ipopt/files/patch-ThirdParty+Metis+get.Metis
sed 's/^X//' >ipopt/files/patch-ThirdParty+Metis+get.Metis << '1865bb74431e07aeede5fbd95e8e8619'
X--- ThirdParty/Metis/get.Metis.orig	2012-05-23 15:04:47.000000000 -0500
X+++ ThirdParty/Metis/get.Metis	2012-05-23 15:06:56.000000000 -0500
X@@ -9,6 +9,9 @@
X   if test `uname` = Darwin; then
X     wgetcmd=ftp
X     echo "Using ftp command instead."
X+  elif test `uname` = FreeBSD; then
X+    wgetcmd=fetch
X+    echo "Using fetch command instead."
X   else
X     exit -1
X   fi
1865bb74431e07aeede5fbd95e8e8619
echo x - ipopt/files/patch-ThirdParty+Mumps+get.Mumps
sed 's/^X//' >ipopt/files/patch-ThirdParty+Mumps+get.Mumps << '37112c979ca2cb4b9c2964ef9df9aae8'
X--- ThirdParty/Mumps/get.Mumps.orig	2012-05-23 15:12:47.000000000 -0500
X+++ ThirdParty/Mumps/get.Mumps	2012-05-23 15:14:03.000000000 -0500
X@@ -13,6 +13,9 @@
X   if test `uname` = Darwin; then
X     wgetcmd=ftp
X     echo "Using ftp command instead."
X+  elif test `uname` = FreeBSD; then
X+    wgetcmd=fetch
X+    echo "Using fetch command instead."
X   else
X     exit -1
X   fi
37112c979ca2cb4b9c2964ef9df9aae8
exit



>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list