summaryrefslogtreecommitdiff
path: root/dev-python/cvxopt
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-09-25 20:21:45 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-09-25 20:21:45 +0100
commitc719fdcee603a5a706a45d10cb598762d56a727d (patch)
tree620cbf137661399a3fb1eff92914204f9a970713 /dev-python/cvxopt
parentcc4618c9ba3d974948ebf340b542d8cb01db2f55 (diff)
gentoo resync : 25.09.2021
Diffstat (limited to 'dev-python/cvxopt')
-rw-r--r--dev-python/cvxopt/Manifest2
-rw-r--r--dev-python/cvxopt/cvxopt-1.2.7.ebuild164
2 files changed, 166 insertions, 0 deletions
diff --git a/dev-python/cvxopt/Manifest b/dev-python/cvxopt/Manifest
index d41a14043a3b..2de78f075237 100644
--- a/dev-python/cvxopt/Manifest
+++ b/dev-python/cvxopt/Manifest
@@ -1,5 +1,7 @@
DIST cvxopt-1.2.5.tar.gz 6742389 BLAKE2B 32e872d13624250610e7eecf2a5755b7b2adbf98dd9b7d1b0d6e236d62677fcdef7c08a2365d7b511f755a38b34a29ff78b280fb7e92ec6256a71c63e022e003 SHA512 d21d9977941140e76d1619a1239fab5d93a3467c4cbeacca2003168c96e1bbec9698563dba07107f6e0a84a0af92124d5c868af599bd049b64f47a3cd3753afc
DIST cvxopt-1.2.6.tar.gz 4114036 BLAKE2B d7516c06c00907a42bbcfa99611febd87fa8480ddb812b7abc0a3b6c5a642c87756fa36d6434b4933797a03d4d94bb2838341da6f00143b9f058710e8f625447 SHA512 7b1c092d970e726b262bb5b07d9c8ca6a7081902707a812a6b196e7cb76523bd67b346024b96087622d39d564f4f095485d4f875c88dcc8921ec2185734b0969
+DIST cvxopt-1.2.7.tar.gz 4115486 BLAKE2B 6db890b271d99709f433269190461291702a95874dd13b218d1529e02da80eee43385397c5dcc31099666441b51207557bc0a91c403c75aa11f04334358eefd4 SHA512 09b92e33eb69dccd4ce1ff8f63eb81973cce15804bbdede91c1f81d146d9a643d8a29315f324774f02fa0f0fed2edfd698ba9a1a7345aeae1f5a25d24b776274
EBUILD cvxopt-1.2.5-r1.ebuild 5521 BLAKE2B d6573a0b3fdbd74f5c1a8626c84cd6ea23f06c0ce06dd39fa3b0d1fbd9bd552f2d4520b492b791e988756313c42f149fe775c6fb975f8413231d11d4647375ba SHA512 1633d4064ce7d33ac2f52a89e690f9ec11376214c0e1e90bc9df22f04b046863ec1da4e4829b5e20f39e6b18432f12e946294699a54fe4a7435b04dedf572ad8
EBUILD cvxopt-1.2.6.ebuild 5307 BLAKE2B 1cf25e4029b8dda5dc57cba8eaa4761136efb252c4867052acf4567a640e41be3b2e36d6f70f1b5759b5ecf7d6b3ff7a593fb8aa18b353dab0439ee2e6d90280 SHA512 705c4dde6aab2390827af2325fd2fb473f095ac78364954603211f0c24c9d62c281563330106e6c54b82d9ef94ec65c58ab3761dfc4f77a49b68d84fbd462e8d
+EBUILD cvxopt-1.2.7.ebuild 5308 BLAKE2B 57fdbf06dff84baeaa6b252aa03df34c9b492e0320d78197c481127d42423d990c775e5a596c82b593fc811e714c5e8bcd04d5523a7e361ff2fe617b056d9948 SHA512 86b7a57500849deb727507c0f7be457861f5d85f016bca4705bad0dba81470e680a8f816e2c50744b697ccbd078fd5e8aee1f330ab0d8fb87bbf53a726c017ce
MISC metadata.xml 836 BLAKE2B fea994c2d1aefd2bef56407cb9a915820c11a118e7f876b016eb2b4e2c405030eeb7bdb20a6174e2144198f766757b321de042363931bd4216d04371431f6a66 SHA512 ce92cb1df5f4983953fd862e876970a39bbb2487d683868d3e9c9922238c53222e61e0f55376d332b33c61dd0d17ce272aa610c449155dd23263dbdffd3bf035
diff --git a/dev-python/cvxopt/cvxopt-1.2.7.ebuild b/dev-python/cvxopt/cvxopt-1.2.7.ebuild
new file mode 100644
index 000000000000..2f9c0c1b5b48
--- /dev/null
+++ b/dev-python/cvxopt/cvxopt-1.2.7.ebuild
@@ -0,0 +1,164 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+
+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
+}