Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add numba + llvmlite #1286

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions dev-python/llvmlite/Manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DIST llvmlite-0.44.0.gh.tar.gz 285270 BLAKE2B 701ebb4835b333eeccaf9d74596d394006804b279e03bf8484a06d9333056a02d8128eb615cf1fb56205e387839e14ac91e927cfb7ae5547c57b6946abccc1d4 SHA512 4e4cb492957a853d63204ebed8a4ffb404f973ec373680897ea1ea3abc74caf36821d82c28de0fefce93767b59c55a5aff7bb136f9aa65b0bc4c41054815ec33
41 changes: 41 additions & 0 deletions dev-python/llvmlite/llvmlite-0.44.0.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..13} )
LLVM_COMPAT=( 16 )
inherit cmake distutils-r1 llvm-r1

DESCRIPTION="Python wrapper around the llvm C++ library"
HOMEPAGE="https://github.com/numba/llvmlite"
SRC_URI="https://github.com/numba/llvmlite/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"

LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64"

RDEPEND="
sys-libs/zlib:0=
$(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}=')
"
DEPEND="${RDEPEND}"

distutils_enable_tests pytest

python_compile() {
LLVM_CONFIG="$(get_llvm_prefix)/bin/llvm-config" distutils-r1_python_compile
}

python_test() {
LD_LIBRARY_PATH="$(get_llvm_prefix)/lib64" \
"${EPYTHON}" runtests.py -v || die "tests failed for ${EPYTHON}"
}

python_install() {
distutils-r1_python_install
dosym "$(get_llvm_prefix)/lib64/libLLVM-${LLVM_SLOT}.so" \
/usr/lib/$EPYTHON/site-packages/llvmlite/binding/libLLVM-${LLVM_SLOT}.so
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/usr/lib/$EPYTHON/site-packages/llvmlite/binding/libLLVM-${LLVM_SLOT}.so
/usr/lib/${EPYTHON}/site-packages/llvmlite/binding/libLLVM-${LLVM_SLOT}.so

}
16 changes: 16 additions & 0 deletions dev-python/llvmlite/metadata.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>[email protected]</email>
<name>Gentoo Science Project</name>
</maintainer>
<maintainer type="person">
<email>[email protected]</email>
<name>Michael Schubert</name>
</maintainer>
<upstream>
<remote-id type="github">numba/llvmlite</remote-id>
<remote-id type="pypi">llvmlite</remote-id>
</upstream>
</pkgmetadata>
1 change: 1 addition & 0 deletions dev-python/numba/Manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DIST numba-0.61.0.gh.tar.gz 2884884 BLAKE2B fecfc6ce22ea2ff58d393410d1bdee6cb39101126e249ccb91bbddc62566667845ed8374450a05f9a761d7c2034de855e2e89668ef1f7602587e3250aa747e17 SHA512 74c12099965b8f2f4782c1fb55383a5867af852833647c6bd772b3f281ad04fcf4622ee9f3afd4535735ee99f16c3ddddfb826184cee8112e33e533b94d8ccef
16 changes: 16 additions & 0 deletions dev-python/numba/metadata.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>[email protected]</email>
<name>Gentoo Science Project</name>
</maintainer>
<maintainer type="person">
<email>[email protected]</email>
<name>Michael Schubert</name>
</maintainer>
<upstream>
<remote-id type="github">numba/numba</remote-id>
<remote-id type="pypi">numba</remote-id>
</upstream>
</pkgmetadata>
27 changes: 27 additions & 0 deletions dev-python/numba/numba-0.61.0.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..13} )
inherit distutils-r1

DESCRIPTION="NumPy aware dynamic Python compiler using LLVM"
HOMEPAGE="https://numba.pydata.org/"
SRC_URI="https://github.com/numba/numba/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz"

LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64"
IUSE="debug"

RDEPEND="
dev-python/llvmlite[$PYTHON_USEDEP]
<=dev-python/numpy-2.1[$PYTHON_USEDEP]
"
DEPEND="${RDEPEND}"

RESTRICT="test" # tests need to be run from "${BUILD_DIR}/build/lib.linux-x86_64-cpython-312"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't we just cd into that directory:

python_test() {
     cd ........
     distutils-r1_python_test
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've started looking into this, and constructing the path (......) here seems non-trivial. But it's definitely possible.

Numba also has a large and complex test suite (requiring multiple EPYTEST_IGNOREs and EPYTEST_DSELECTs), so getting this in good shape will take me some hours.

I can do this either as part of this PR or send a follow-up, as you prefer.

distutils_enable_tests pytest
Loading