Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Dec 2017 18:47:48 +0000 (UTC)
From:      Yuri Victorovich <yuri@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r457247 - in head/math: . SoPlex SoPlex/files
Message-ID:  <201712251847.vBPIlmdb028837@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: yuri
Date: Mon Dec 25 18:47:47 2017
New Revision: 457247
URL: https://svnweb.freebsd.org/changeset/ports/457247

Log:
  New port: math/SoPlex: Optimization package for solving linear programming problems (LPs)
  
  Submitted by:	myself
  Approved by:	adamw (mentor)
  Differential Revision:	https://reviews.freebsd.org/D13613

Added:
  head/math/SoPlex/
  head/math/SoPlex/Makefile   (contents, props changed)
  head/math/SoPlex/distinfo   (contents, props changed)
  head/math/SoPlex/files/
  head/math/SoPlex/files/patch-CMakeLists.txt   (contents, props changed)
  head/math/SoPlex/files/patch-src_CMakeLists.txt   (contents, props changed)
  head/math/SoPlex/pkg-descr   (contents, props changed)
  head/math/SoPlex/pkg-plist   (contents, props changed)
Modified:
  head/math/Makefile

Modified: head/math/Makefile
==============================================================================
--- head/math/Makefile	Mon Dec 25 18:39:38 2017	(r457246)
+++ head/math/Makefile	Mon Dec 25 18:47:47 2017	(r457247)
@@ -91,6 +91,7 @@
     SUBDIR += R-cran-units
     SUBDIR += R-cran-xts
     SUBDIR += R-cran-zoo
+    SUBDIR += SoPlex
     SUBDIR += aamath
     SUBDIR += abacus
     SUBDIR += abakus

Added: head/math/SoPlex/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/SoPlex/Makefile	Mon Dec 25 18:47:47 2017	(r457247)
@@ -0,0 +1,31 @@
+# Created by: Yuri Victorovich <yuri@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME=	SoPlex
+DISTVERSION=	3.0.1
+CATEGORIES=	math science
+MASTER_SITES=	http://soplex.zib.de/download/release/
+DISTNAME=	${PORTNAME:tl}-${DISTVERSION}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Optimization package for solving linear programming problems (LPs)
+
+LICENSE=	ZIB
+LICENSE_NAME=	ZIB ACADEMIC LICENSE
+LICENSE_FILE=	${WRKSRC}/COPYING
+LICENSE_PERMS=	dist-mirror pkg-mirror auto-accept
+
+LIB_DEPENDS=	libgmp.so:math/gmp
+
+USES=		cmake:outsource,noninja tar:tgz
+USE_LDCONFIG=	yes
+PLIST_SUB=	SHL4=${DISTVERSION}.0 SHL2=${DISTVERSION:R}
+
+.include <bsd.port.pre.mk>
+
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100000
+CMAKE_ARGS=	-DFREEBSD_NO_CXX_THREAD_LOCAL_BUG224581:BOOL=ON  # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224581
+# This also necessitates noninja above for some reason
+.endif
+
+.include <bsd.port.post.mk>

Added: head/math/SoPlex/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/SoPlex/distinfo	Mon Dec 25 18:47:47 2017	(r457247)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1514183609
+SHA256 (soplex-3.0.1.tgz) = f97a6be9f890f723c046ac21b80d8781ee6155e49e0e6ae90d151d44a23b8676
+SIZE (soplex-3.0.1.tgz) = 1343714

Added: head/math/SoPlex/files/patch-CMakeLists.txt
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/SoPlex/files/patch-CMakeLists.txt	Mon Dec 25 18:47:47 2017	(r457247)
@@ -0,0 +1,71 @@
+--- CMakeLists.txt.orig	2017-09-04 15:12:27 UTC
++++ CMakeLists.txt
+@@ -45,33 +45,33 @@ set(CMAKE_MACOSX_RPATH ON)
+ set(CMAKE_CXX_STANDARD 11)
+ 
+ # create target to update the githash
+-file(WRITE ${CMAKE_BINARY_DIR}/soplex_update_githash.cmake "
+-find_program(GIT git)
+-if(GIT)
+-   execute_process(
+-      COMMAND \${GIT} describe --always --dirty
+-      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+-      OUTPUT_VARIABLE GITHASH OUTPUT_STRIP_TRAILING_WHITESPACE)
+-   if(GITHASH STREQUAL \"\")
+-      set(GITHASH \"------\")
+-   endif()
+-   string(REGEX REPLACE \"^.*-g\" \"\" GITHASH \${GITHASH})
+-else()
+-   set(GITHASH \"------\")
+-endif()
+-if(GITHASH STREQUAL \"------\")
+-   # read stored hash from file
+-   file(STRINGS \${DST} GITHASH)
+-   string(REGEX REPLACE \"#define SPX_GITHASH \" \"\" GITHASH \${GITHASH})
+-else()
+-   file(WRITE \${DST} \"#define SPX_GITHASH \\\"\${GITHASH}\\\"\")
+-endif()
+-message(STATUS \"Git hash: \" \${GITHASH})
+-")
++#file(WRITE ${CMAKE_BINARY_DIR}/soplex_update_githash.cmake "
++#find_program(GIT git)
++#if(GIT)
++#   execute_process(
++#      COMMAND \${GIT} describe --always --dirty
++#      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
++#      OUTPUT_VARIABLE GITHASH OUTPUT_STRIP_TRAILING_WHITESPACE)
++#   if(GITHASH STREQUAL \"\")
++#      set(GITHASH \"------\")
++#   endif()
++#   string(REGEX REPLACE \"^.*-g\" \"\" GITHASH \${GITHASH})
++#else()
++#   set(GITHASH \"------\")
++#endif()
++#if(GITHASH STREQUAL \"------\")
++#   # read stored hash from file
++#   file(STRINGS \${DST} GITHASH)
++#   string(REGEX REPLACE \"#define SPX_GITHASH \" \"\" GITHASH \${GITHASH})
++#else()
++#   file(WRITE \${DST} \"#define SPX_GITHASH \\\"\${GITHASH}\\\"\")
++#endif()
++#message(STATUS \"Git hash: \" \${GITHASH})
++#")
+ # encode the current git hash into the binary
+-add_custom_target(soplex_update_githash
+-                  COMMAND ${CMAKE_COMMAND} -DDST=${PROJECT_SOURCE_DIR}/src/git_hash.cpp
+-                                           -P ${CMAKE_BINARY_DIR}/soplex_update_githash.cmake)
++#add_custom_target(soplex_update_githash
++#                  COMMAND ${CMAKE_COMMAND} -DDST=${PROJECT_SOURCE_DIR}/src/git_hash.cpp
++#                                           -P ${CMAKE_BINARY_DIR}/soplex_update_githash.cmake)
+ 
+ option(LEGACY "Build SoPlex in legacy mode" OFF)
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+@@ -85,7 +85,7 @@ if(LEGACY)
+     add_definitions(-DTHREADLOCAL=)
+ endif()
+ 
+-if(NOT "${CMAKE_CXX_COMPILE_FEATURES}" MATCHES "cxx_thread_local")
++if(NOT "${CMAKE_CXX_COMPILE_FEATURES}" MATCHES "cxx_thread_local" OR FREEBSD_NO_CXX_THREAD_LOCAL_BUG224581)
+     add_definitions(-DTHREADLOCAL=)
+ endif()
+ 

Added: head/math/SoPlex/files/patch-src_CMakeLists.txt
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/SoPlex/files/patch-src_CMakeLists.txt	Mon Dec 25 18:47:47 2017	(r457247)
@@ -0,0 +1,27 @@
+--- src/CMakeLists.txt.orig	2017-09-04 15:08:47 UTC
++++ src/CMakeLists.txt
+@@ -159,20 +159,20 @@ set(headers
+     wallclocktimer.h)
+ 
+ # create soplex library with pic
+-add_library(libsoplex-pic STATIC ${sources})
++add_library(libsoplex-pic SHARED ${sources})
+ set_target_properties(libsoplex-pic PROPERTIES
+     POSITION_INDEPENDENT_CODE on
+     VERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR}.${SOPLEX_VERSION_PATCH}.${SOPLEX_VERSION_SUB}
+     SOVERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR})
+-add_dependencies(libsoplex-pic soplex_update_githash)
++#add_dependencies(libsoplex-pic soplex_update_githash)
+ target_link_libraries(libsoplex-pic ${libs})
+ 
+ # create soplex library without pic
+-add_library(libsoplex STATIC ${sources})
++add_library(libsoplex SHARED ${sources})
+ set_target_properties(libsoplex PROPERTIES
+     VERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR}.${SOPLEX_VERSION_PATCH}.${SOPLEX_VERSION_SUB}
+     SOVERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR})
+-add_dependencies(libsoplex soplex_update_githash)
++#add_dependencies(libsoplex soplex_update_githash)
+ target_link_libraries(libsoplex ${libs})
+ 
+ # create soplex binary using library without pic

Added: head/math/SoPlex/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/SoPlex/pkg-descr	Mon Dec 25 18:47:47 2017	(r457247)
@@ -0,0 +1,18 @@
+SoPlex is an optimization package for solving linear programming problems (LPs)
+based on an advanced implementation of the primal and dual revised simplex
+algorithm. It provides special support for the exact solution of LPs with
+rational input data. It can be used as a standalone solver reading MPS or LP
+format files via a command line interface as well as embedded into other
+programs via a C++ class library. The main features of SoPlex are:
+
+* presolving, scaling, exploitation of sparsity, hot-starting from any regular
+  basis
+* column- and row-oriented form of the simplex algorithm
+* an object-oriented software design written in C++
+* a compile-time option to use 80bit extended ("quad") precision for numerically
+  difficult LPs
+* an LP iterative refinement procedure to compute high-precision solution
+* routines for an exact rational LU factorization and continued fraction
+  approximations in order to compute exact solutions.
+
+WWW: http://soplex.zib.de

Added: head/math/SoPlex/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/SoPlex/pkg-plist	Mon Dec 25 18:47:47 2017	(r457247)
@@ -0,0 +1,104 @@
+bin/soplex
+include/array.h
+include/basevectors.h
+include/classarray.h
+include/clufactor.h
+include/clufactor_rational.h
+include/cring.h
+include/dataarray.h
+include/datahashtable.h
+include/datakey.h
+include/dataset.h
+include/didxset.h
+include/dsvector.h
+include/dsvectorbase.h
+include/dvector.h
+include/dvectorbase.h
+include/exceptions.h
+include/gzstream.h
+include/idlist.h
+include/idxset.h
+include/islist.h
+include/lpcol.h
+include/lpcolbase.h
+include/lpcolset.h
+include/lpcolsetbase.h
+include/lprow.h
+include/lprowbase.h
+include/lprowset.h
+include/lprowsetbase.h
+include/mpsinput.h
+include/nameset.h
+include/notimer.h
+include/random.h
+include/rational.h
+include/ratrecon.h
+include/slinsolver.h
+include/slinsolver_rational.h
+include/slufactor.h
+include/slufactor_rational.h
+include/sol.h
+include/solbase.h
+include/soplex.h
+include/soplexlegacy.h
+include/sorter.h
+include/spxalloc.h
+include/spxautopr.h
+include/spxbasis.h
+include/spxboundflippingrt.h
+include/spxdantzigpr.h
+include/spxdefaultrt.h
+include/spxdefines.h
+include/spxdevexpr.h
+include/spxequilisc.h
+include/spxfastrt.h
+include/spxfileio.h
+include/spxgeometsc.h
+include/spxgithash.h
+include/spxharrisrt.h
+include/spxhybridpr.h
+include/spxid.h
+include/spxleastsqsc.h
+include/spxlp.h
+include/spxlpbase.h
+include/spxmainsm.h
+include/spxout.h
+include/spxparmultpr.h
+include/spxpricer.h
+include/spxratiotester.h
+include/spxscaler.h
+include/spxsimplifier.h
+include/spxsolver.h
+include/spxstarter.h
+include/spxsteepexpr.h
+include/spxsteeppr.h
+include/spxsumst.h
+include/spxvectorst.h
+include/spxweightpr.h
+include/spxweightst.h
+include/ssvector.h
+include/ssvectorbase.h
+include/statistics.h
+include/svector.h
+include/svectorbase.h
+include/svset.h
+include/svsetbase.h
+include/timer.h
+include/timerfactory.h
+include/unitvector.h
+include/unitvectorbase.h
+include/updatevector.h
+include/usertimer.h
+include/validation.h
+include/vector.h
+include/vectorbase.h
+include/wallclocktimer.h
+lib/cmake/soplex/soplex-config.cmake
+lib/cmake/soplex/soplex-targets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/soplex/soplex-targets.cmake
+lib/libsoplex-pic.so
+lib/libsoplex-pic.so.%%SHL2%%
+lib/libsoplex-pic.so.%%SHL4%%
+lib/libsoplex.so
+lib/libsoplex.so.%%SHL2%%
+lib/libsoplex.so.%%SHL4%%



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201712251847.vBPIlmdb028837>