commit:     2f68c2d9b154099592d1b3e06c6ca2397268eeb7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 20 08:06:36 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 20 10:10:14 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2f68c2d9

dev-python/cvxopt: Bump to 1.2.6

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/cvxopt/Manifest            |   1 +
 dev-python/cvxopt/cvxopt-1.2.6.ebuild | 164 ++++++++++++++++++++++++++++++++++
 2 files changed, 165 insertions(+)

diff --git a/dev-python/cvxopt/Manifest b/dev-python/cvxopt/Manifest
index 068f2df5310..9c78ac8c374 100644
--- a/dev-python/cvxopt/Manifest
+++ b/dev-python/cvxopt/Manifest
@@ -1 +1,2 @@
 DIST cvxopt-1.2.5.tar.gz 6742389 BLAKE2B 
32e872d13624250610e7eecf2a5755b7b2adbf98dd9b7d1b0d6e236d62677fcdef7c08a2365d7b511f755a38b34a29ff78b280fb7e92ec6256a71c63e022e003
 SHA512 
d21d9977941140e76d1619a1239fab5d93a3467c4cbeacca2003168c96e1bbec9698563dba07107f6e0a84a0af92124d5c868af599bd049b64f47a3cd3753afc
+DIST cvxopt-1.2.6.tar.gz 4114036 BLAKE2B 
d7516c06c00907a42bbcfa99611febd87fa8480ddb812b7abc0a3b6c5a642c87756fa36d6434b4933797a03d4d94bb2838341da6f00143b9f058710e8f625447
 SHA512 
7b1c092d970e726b262bb5b07d9c8ca6a7081902707a812a6b196e7cb76523bd67b346024b96087622d39d564f4f095485d4f875c88dcc8921ec2185734b0969

diff --git a/dev-python/cvxopt/cvxopt-1.2.6.ebuild 
b/dev-python/cvxopt/cvxopt-1.2.6.ebuild
new file mode 100644
index 00000000000..e2442f3b8c2
--- /dev/null
+++ b/dev-python/cvxopt/cvxopt-1.2.6.ebuild
@@ -0,0 +1,164 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7..9} )
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="Python package for convex optimization"
+HOMEPAGE="https://cvxopt.org/ https://github.com/cvxopt/cvxopt";
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+dsdp examples fftw +glpk gsl"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+       virtual/blas
+       virtual/lapack
+       sci-libs/amd:0=
+       sci-libs/cholmod:0=
+       sci-libs/colamd:0=
+       sci-libs/suitesparseconfig:0=
+       sci-libs/umfpack:0=
+       dsdp? ( sci-libs/dsdp:0= )
+       fftw? ( sci-libs/fftw:3.0= )
+       glpk? ( >=sci-mathematics/glpk-4.49:0= )
+       gsl? ( sci-libs/gsl:0= )"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+distutils_enable_sphinx doc/source --no-autodoc
+distutils_enable_tests pytest
+
+# The BLAS_LIB and LAPACK_LIB variables (among others) in cvxopt's
+# setup.py are passed in as colon-delimited strings. So, for example,
+# if your blas "l" flags are "-lblas -lcblas", then cvxopt wants
+# "blas;cblas" for BLAS_LIB.
+#
+# The following function takes a flag type ("l", "L", or "I") as its
+# first argument and a list of packages as its remaining arguments. It
+# outputs a list of libraries, library paths, or include paths,
+# respectively, for the given packages, retrieved using pkg-config and
+# deduplicated, in the appropriate format.
+#
+cvxopt_output() {
+       local FLAGNAME="${1}"
+       shift
+       local PACKAGES="${@}"
+
+       local PKGCONFIG_MODE
+       case "${FLAGNAME}" in
+       l) PKGCONFIG_MODE="--libs-only-l";;
+       L) PKGCONFIG_MODE="--libs-only-L";;
+       I) PKGCONFIG_MODE="--cflags-only-I";;
+       *) echo "invalid flag name: ${FLAGNAME}"; exit 1;;
+       esac
+
+       local CVXOPT_OUTPUT=""
+       local PKGCONFIG_ITEM
+       for PKGCONFIG_ITEM in $($(tc-getPKG_CONFIG) ${PKGCONFIG_MODE} 
${PACKAGES})
+       do
+       # First strip off the leading "-l", "-L", or "-I", and replace
+       # it with a semicolon...
+       PKGCONFIG_ITEM=";${PKGCONFIG_ITEM#-${FLAGNAME}}"
+
+       # Now check to see if this element is already present in the
+       # list, and skip it if it is. This eliminates multiple entries
+       # from winding up in the list when multiple package arguments are
+       # passed to this function.
+       if [[ "${CVXOPT_OUTPUT}" != "${CVXOPT_OUTPUT%${PKGCONFIG_ITEM}}" ]]
+       then
+               # It was already the last entry in the list, so skip it.
+               continue
+       elif [[ "${CVXOPT_OUTPUT}" != "${CVXOPT_OUTPUT%${PKGCONFIG_ITEM};*}" ]]
+       then
+               # It was an earlier entry in the list. These two cases are
+               # separate to ensure that we can e.g. find ";m" at the end
+               # of the list, but that we don't find ";metis" in the process.
+               continue
+       fi
+
+       # It isn't in the list yet, so append it.
+       CVXOPT_OUTPUT+="${PKGCONFIG_ITEM}"
+       done
+
+       # Strip the leading ";" from ";foo;bar" before output.
+       echo "${CVXOPT_OUTPUT#;}"
+}
+
+python_prepare_all() {
+       # Mandatory dependencies.
+       export CVXOPT_BLAS_LIB="$(cvxopt_output l blas)"
+       export 
CVXOPT_BLAS_LIB_DIR="${EPREFIX}/usr/$(get_libdir);$(cvxopt_output L blas)"
+       export CVXOPT_LAPACK_LIB="$(cvxopt_output l lapack)"
+       export 
CVXOPT_SUITESPARSE_LIB_DIR="${EPREFIX}/usr/$(get_libdir);$(cvxopt_output L 
umfpack cholmod amd colamd suitesparseconfig)"
+
+       # Most of these CVXOPT_* variables can be blank or have "empty"
+       # entries and the resulting command-line with e.g. "-L -L/some/path"
+       # won't hurt anything. The INC_DIR variables, however, cause
+       # problems, because at least gcc doesn't like a bare "-I". We
+       # pre-populate these variable with something safe so that setup.py
+       # doesn't look in the wrong place if pkg-config doesn't return any
+       # extra -I directories. This is
+       #
+       #  https://github.com/cvxopt/cvxopt/issues/167
+       #
+       CVXOPT_SUITESPARSE_INC_DIR="${EPREFIX}/usr/include"
+       local SUITESPARSE_LOCAL_INCS="$(cvxopt_output I umfpack cholmod amd 
colamd suitesparseconfig)"
+       if [[ -n "${SUITESPARSE_LOCAL_INCS}" ]]; then
+               CVXOPT_SUITESPARSE_INC_DIR+=";${SUITESPARSE_LOCAL_INCS}"
+       fi
+       export CVXOPT_SUITESPARSE_INC_DIR
+
+       # optional dependencies
+       if use dsdp; then
+               # no pkg-config file at the moment
+               export CVXOPT_BUILD_DSDP=1
+               export CVXOPT_DSDP_LIB_DIR="${EPREFIX}/usr/$(get_libdir)"
+               export CVXOPT_DSDP_INC_DIR="${EPREFIX}/usr/include"
+       fi
+
+       if use fftw; then
+               export CVXOPT_BUILD_FFTW=1
+               export 
CVXOPT_FFTW_LIB_DIR="${EPREFIX}/usr/$(get_libdir);$(cvxopt_output L fftw3)"
+               CVXOPT_FFTW_INC_DIR="${EPREFIX}/usr/include"
+               FFTW_LOCAL_INCS="$(cvxopt_output I fftw3)"
+               if [[ -n "${FFTW_LOCAL_INCS}" ]]; then
+                       CVXOPT_FFTW_INC_DIR+=";${FFTW_LOCAL_INCS}"
+               fi
+               export CVXOPT_FFTW_INC_DIR
+       fi
+
+       if use glpk; then
+               # no pkg-config file at the moment
+               export CVXOPT_BUILD_GLPK=1
+               export CVXOPT_GLPK_LIB_DIR="${EPREFIX}/usr/$(get_libdir)"
+               export CVXOPT_GLPK_INC_DIR="${EPREFIX}/usr/include"
+       fi
+
+       if use gsl; then
+               export CVXOPT_BUILD_GSL=1
+               export 
CVXOPT_GSL_LIB_DIR="${EPREFIX}/usr/$(get_libdir);$(cvxopt_output L gsl)"
+               CVXOPT_GSL_INC_DIR="${EPREFIX}/usr/include"
+               GSL_LOCAL_INCS="$(cvxopt_output I gsl)"
+               if [[ -n "${GSL_LOCAL_INCS}" ]]; then
+                       CVXOPT_GSL_INC_DIR+=";${GSL_LOCAL_INCS}"
+               fi
+               export CVXOPT_GSL_INC_DIR
+       fi
+
+       distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+       distutils-r1_python_install_all
+       if use examples; then
+               dodoc -r examples
+               docompress -x "/usr/share/doc/${PF}/examples"
+       fi
+}

Reply via email to