dev-python/qiskit-aer: new package

Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Gábor Oszkár Dénes <gaboroszkar@protonmail.com>
This commit is contained in:
Gábor Oszkár Dénes committed 2022-03-30 19:04:43 +02:00
1 parent 1a6def78eb
commit d4ea936985
4 files changed
+116

No files matched your search

+1
View File
@@ -0,0 +1 @@
DIST qiskit-aer-0.10.3.tar.gz 6657490 BLAKE2B 443f7df2259c720fb93a60659da9b1cded25f9dbdf585bd0322e9f4effe4c5955daf6587d6c3964ab4a7e4a8bf6270f857abae1cf4e6b0718801daa6a96c2aec SHA512 c882624bac373566b003a01fffa6963d4ad8796ce18786b50ef85350daac26814c147b36067eb6fce4f264919b3680246e767b5c13ac338817fd394620392079
@@ -0,0 +1,10 @@
--- a/setup.py 2022-02-09 17:41:55.000000000 +0100
+++ b/setup.py 2022-03-02 14:44:04.344551645 +0100
@@ -72,7 +72,6 @@
setup_requirements = common_requirements + [
'scikit-build>=0.11.0',
- 'cmake!=3.17,!=3.17.0',
'pybind11>=2.6',
]
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- comaintainers-welcomed -->
<maintainer type="person">
<email>gaboroszkar@protonmail.com</email>
<name>Gábor Oszkár Dénes</name>
</maintainer>
<longdescription>
Qiskit is an open-source framework for working with noisy quantum computers at the level of pulses, circuits, and algorithms.
Qiskit is made up of elements that each work together to enable quantum computing. This element is Aer, which provides high-performance quantum computing simulators with realistic noise models.
</longdescription>
</pkgmetadata>
@@ -0,0 +1,92 @@
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{8..10} )
inherit distutils-r1
DESCRIPTION="High performance simulator for quantum circuits that includes noise models"
HOMEPAGE="https://github.com/Qiskit/qiskit-aer"
SRC_URI="https://github.com/Qiskit/qiskit-aer/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
# The reference implementation of BLAS/CBLAS is not compatible with qiskit-aer right now,
# because importing library causes an error.
# /usr/lib/python3.9/site-packages/qiskit/providers/aer/backends/controller_wrappers.cpython-39-x86_64-linux-gnu.so: undefined symbol: slamch_
# Using sci-libs/openblas instead here,
# with the option to switch between reference/openblas implementation runtime (eselect-ldso).
COMMON_DEPEND="
>=dev-python/numpy-1.16.3[${PYTHON_USEDEP}]
>=dev-cpp/nlohmann_json-3.1.1
>=dev-libs/spdlog-1.5.0
>=dev-cpp/muParserX-4.0.8
virtual/cblas[eselect-ldso]
sci-libs/openblas[eselect-ldso]"
BDEPEND="
${COMMON_DEPEND}
>dev-util/cmake-3.17
>=dev-python/scikit-build-0.11.0[${PYTHON_USEDEP}]
>=dev-python/pybind11-2.6[${PYTHON_USEDEP}]
test? (
dev-python/ddt[${PYTHON_USEDEP}]
dev-python/fixtures[${PYTHON_USEDEP}]
)"
RDEPEND="
${COMMON_DEPEND}
>=dev-python/qiskit-terra-0.19.1[${PYTHON_USEDEP}]
>=dev-python/scipy-1.0[${PYTHON_USEDEP}]"
distutils_enable_tests pytest
# Remove cmake dependency from setup.py because of
# invalid dependency description. We put this dependency check in BDEPEND.
PATCHES=( "${FILESDIR}/qiskit-aer-0.10.3-remove-cmake-dependency.patch" )
check_openblas() {
local libdir=$(get_libdir) me="openblas"
# check blas
local current_blas=$(eselect blas show ${libdir} | cut -d' ' -f2)
if [[ ${current_blas} != "${me}" ]]; then
eerror "Current eselect: BLAS/CBLAS ($libdir) -> [${current_blas}]."
eerror "To use qiskit-aer, you have to issue (as root):"
eerror "\t eselect blas set ${libdir} ${me}"
return 1
fi
return 0
}
pkg_setup() {
if use test; then
check_openblas
if [ $? -ne 0 ]; then
die "Set blas implementation to openblas using 'eselect blas set openblas'!"
fi
fi
}
python_prepare_all() {
export DISABLE_CONAN="ON"
export DISABLE_DEPENDENCY_INSTALL="ON"
distutils-r1_python_prepare_all
}
python_test() {
# We have to hide the source code directory so tests
# do not use these, but instead the compiled library.
mv qiskit qiskit.hidden || die
epytest
mv qiskit.hidden qiskit || die
}
pkg_postinst() {
check_openblas
}