From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id C6BE315800A for ; Thu, 10 Aug 2023 02:53:17 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 76E552BC022; Thu, 10 Aug 2023 02:53:16 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 597412BC022 for ; Thu, 10 Aug 2023 02:53:16 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 5517E335CED for ; Thu, 10 Aug 2023 02:53:15 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id D0C0CB9F for ; Thu, 10 Aug 2023 02:53:13 +0000 (UTC) From: "Michał Górny" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Michał Górny" Message-ID: <1691635981.2e5cda3d2b228824b6049d850c2bd6f13b8bef26.mgorny@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/cvxopt/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-python/cvxopt/Manifest dev-python/cvxopt/cvxopt-1.3.2.ebuild X-VCS-Directories: dev-python/cvxopt/ X-VCS-Committer: mgorny X-VCS-Committer-Name: Michał Górny X-VCS-Revision: 2e5cda3d2b228824b6049d850c2bd6f13b8bef26 X-VCS-Branch: master Date: Thu, 10 Aug 2023 02:53:13 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 6ab17811-286c-4f14-8e71-136b42307965 X-Archives-Hash: 3ee5417748fd1efec216e09ca4c8081c commit: 2e5cda3d2b228824b6049d850c2bd6f13b8bef26 Author: Michał Górny gentoo org> AuthorDate: Thu Aug 10 02:34:16 2023 +0000 Commit: Michał Górny gentoo org> CommitDate: Thu Aug 10 02:53:01 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2e5cda3d dev-python/cvxopt: Bump to 1.3.2 Signed-off-by: Michał Górny gentoo.org> dev-python/cvxopt/Manifest | 1 + dev-python/cvxopt/cvxopt-1.3.2.ebuild | 179 ++++++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+) diff --git a/dev-python/cvxopt/Manifest b/dev-python/cvxopt/Manifest index 67c8346dcc93..e6cee8131f79 100644 --- a/dev-python/cvxopt/Manifest +++ b/dev-python/cvxopt/Manifest @@ -1 +1,2 @@ DIST cvxopt-1.3.1.gh.tar.gz 3958725 BLAKE2B 48b5477f27323da3c5ba69eb993250fe54e793ebb757c84d77ff5c63fb47a649a4a15137d32efd747627ccd629096fd4ac3c70912222fe3e367f0fc062760266 SHA512 9531b83785589c55192e1daa98e3a78288b429a67d2704c8953b9def1a2f8dd4389d17be43fd5deb6c051485e43e5e0e726a2752d126d7289163d7a5a02205dc +DIST cvxopt-1.3.2.gh.tar.gz 4095027 BLAKE2B ad4dfba1fe9c5be700ba61268e9d245355493c0334688b7a08bd4b5c4127da7a276cc660a1c1f4fe4df2359f9d2a8e3c4907d57d23c29d8caaf0329f6834cc30 SHA512 a6f9006b8b83445d781b1ba876e5ecefe724cf8666f47744b010e9c61fa1786dbd6233459a6e6a1a333ef9ac075d280076b2aeee3a2636d27541a615c5607b34 diff --git a/dev-python/cvxopt/cvxopt-1.3.2.ebuild b/dev-python/cvxopt/cvxopt-1.3.2.ebuild new file mode 100644 index 000000000000..3c10fa82ec6b --- /dev/null +++ b/dev-python/cvxopt/cvxopt-1.3.2.ebuild @@ -0,0 +1,179 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..11} ) + +inherit distutils-r1 toolchain-funcs + +DESCRIPTION="Python package for convex optimization" +HOMEPAGE=" + https://cvxopt.org/ + https://github.com/cvxopt/cvxopt/ + https://pypi.org/project/cvxopt/ +" +# no sdist, as of 1.3.1 +SRC_URI=" + https://github.com/${PN}/${PN}/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="+dsdp examples fftw +glpk gsl" + +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=" + >=dev-python/setuptools-scm-6.2[${PYTHON_USEDEP}] + virtual/pkgconfig +" + +distutils_enable_sphinx doc/source \ + dev-python/sphinx-rtd-theme +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#;}" +} + +src_configure() { + # 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 + + export SETUPTOOLS_SCM_PRETEND_VERSION=${PV} +} + +python_install_all() { + distutils-r1_python_install_all + if use examples; then + dodoc -r examples + docompress -x "/usr/share/doc/${PF}/examples" + fi +}