public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/cvxopt/
Date: Thu, 10 Aug 2023 02:53:13 +0000 (UTC)	[thread overview]
Message-ID: <1691635981.2e5cda3d2b228824b6049d850c2bd6f13b8bef26.mgorny@gentoo> (raw)

commit:     2e5cda3d2b228824b6049d850c2bd6f13b8bef26
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 10 02:34:16 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> 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 <mgorny <AT> 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
+}


             reply	other threads:[~2023-08-10  2:53 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-10  2:53 Michał Górny [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-09-15 18:10 [gentoo-commits] repo/gentoo:master commit in: dev-python/cvxopt/ Arthur Zamarin
2024-06-18 17:59 Michał Górny
2023-10-29 19:52 Michał Górny
2023-10-29 19:52 Michał Górny
2023-05-11  8:08 Michał Górny
2023-05-11  6:26 Michał Górny
2023-04-07 13:38 Michał Górny
2022-06-13  7:18 Michał Górny
2022-06-04 17:48 Michał Górny
2022-05-16 13:11 Michał Górny
2022-03-09 18:26 Arthur Zamarin
2021-10-17  7:41 Michał Górny
2021-09-20 21:19 Michał Górny
2021-02-20 10:10 Michał Górny
2021-01-27  4:27 Sam James
2020-07-31 22:33 Aaron Bauman
2020-05-13 20:52 Michael Orlitzky
2020-04-19 23:19 Michael Orlitzky
2020-02-04 19:47 Michał Górny
2018-06-26 20:29 Pacho Ramos
2017-03-04  0:10 Sebastien Fabbro
2017-03-04  0:10 Sebastien Fabbro
2015-12-16  8:49 Justin Lecher

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1691635981.2e5cda3d2b228824b6049d850c2bd6f13b8bef26.mgorny@gentoo \
    --to=mgorny@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox