Package Details: python-llvmlite 0.28.0-2

Git Clone URL: https://aur.archlinux.org/python-llvmlite.git (read-only)
Package Base: python-llvmlite
Description: Lightweight LLVM python binding for writing JIT compilers
Upstream URL: https://github.com/numba/llvmlite
Licenses: BSD
Submitter: mschu
Maintainer: mschu
Last Packager: mschu
Votes: 21
Popularity: 0.402158
First Submitted: 2014-12-29 17:23
Last Updated: 2019-04-01 10:14

Pinned Comments

mschu commented on 2019-05-21 09:47

Until 0.29.0 is out, you need 'python-llvmlite-git' to make it work with current llvm=7.1.0

Latest Comments

1 2 3 4 5 6 Next › Last »

petronny commented on 2019-05-23 05:53

@a821 @Cbhihe No, the TL;DR version should be

extra-x86_64-build -- -I /path/to/unofficial-dependency.pkg.tar.xz

if you want to build it yourself.

Or install the pre-built version from arch4edu. (also built with extra-x86_64-build)

mschu commented on 2019-05-21 09:47

Until 0.29.0 is out, you need 'python-llvmlite-git' to make it work with current llvm=7.1.0

a821 commented on 2019-05-15 08:12

With recent the update of llvm7 to 7.1.0, python-numba fails to load. Unfortunately, it is not possible to rebuild python-llvmlite because only llvm 7.0.x is supported. However there is a pull request which allows this. I have updated the PKGBUILD using the pull request so now it builds. See patch below.

diff --git a/PKGBUILD b/PKGBUILD
index 259c28e..fb5c866 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,15 +1,27 @@
 # Maintainer: Michael Schubert <mschu.dev at gmail>
+
+# Permit building against LLVM 7.1.0
+# see https://github.com/numba/llvmlite/pull/481
+_commit=f9230dd07330ed989a47956c9db898cc5c7a8525
+
 pkgname=python-llvmlite
 pkgver=0.28.0
-pkgrel=2
+pkgrel=3
 pkgdesc="Lightweight LLVM python binding for writing JIT compilers"
 url="https://github.com/numba/llvmlite"
 arch=('i686' 'x86_64')
 license=('BSD')
 depends=('python' 'llvm7-libs')
-makedepends=('cython' 'llvm7<7.1.0')
-source=("https://github.com/numba/llvmlite/archive/v$pkgver.tar.gz")
-sha256sums=('39868fd2d86cb724ceaac4a34773e47e3b3ba6eeb445b9ac0abaf17a620e74dc')
+makedepends=('cython' 'llvm7')
+source=("https://github.com/numba/llvmlite/archive/v$pkgver.tar.gz"
+        "https://github.com/numba/llvmlite/pull/481/commits/${_commit}.patch")
+sha256sums=('39868fd2d86cb724ceaac4a34773e47e3b3ba6eeb445b9ac0abaf17a620e74dc'
+            'de191a61499779c56fa85f39e894f24ec8270c6d53131ad92642ca041893cb70')
+
+prepare() {
+  cd "$srcdir/llvmlite-$pkgver"
+  patch -p1 -i "../${_commit}.patch"
+}

 build() {
   cd "$srcdir/llvmlite-$pkgver"

Cbhihe commented on 2019-04-03 10:25

Installing devtools, setting up a minimal chroot configuration, and working with a clean chroot as advised by @a821, went smoothly. Thanks a821. Important stuff you showed me !

a821 commented on 2019-04-02 05:33

@Cbhihe check the wiki. Or install clean-chroot-manager.

The TL;DR version is install devtools and then

sudo mkarchroot $CHROOT/root base-devel
makechrootpkg -c -r $CHROOT

you can pass the option -I to makechrootpkg to add packages that are dependencies and not in the official repos. Necessary for python-numba

mschu commented on 2019-04-01 10:15

Working now with llvm7{,-libs} packages

Easiest way to install is to temporarily remote llvm>=8 (using -Rdd), install llvm7 and llvm7-libs, and install this package.

Cbhihe commented on 2019-04-01 08:06

I have chroot'ed before but only when installing Arch from scratch. So I'm not familiar with building stuff (e.g. python-llvmlite and python-numba) "in a clean chroot". Do you care to share steps or a pointer to them ?

a821 commented on 2019-03-31 21:44

Because the system upgrade failed in my system, what I first uninstalled python-llvmlite and python-numba before doing pacman -Syu.

After that, I replaced the depends makedepends by these lines in the PKGBUILD

depends=('python' 'llvm7-libs')
makedepends=('cython' 'llvm7')

Finally, I built python-llvmlite and python-numba in a clean chroot. Note that llvm7 is only needed for compiling. For running, llvm7-libs is enough (as far as I can tell from my testing). And llvm7-libs can live with llvm-libs.

Cbhihe commented on 2019-03-31 21:05

@op3: problem being that unless you somehow isolate one from the other in yr box, you cannot install llvm and llvm7 in parallel. If you try pacman'ing yr way to that, you get:
:: llvm7 and llvm are in conflict. Remove llvm?

How do you suggest one should install those two in parallel ?

op3 commented on 2019-03-31 20:49

I don't like this option, because everyone that uses llvmlite would need to have 2 versions of llvm installed, and repeat this with every upgrade. It's cleaner to postpone llvm upgrades until llvmlite has caught up.

I don’t think this is a clean solution at all. Arch Linux does not support partial upgrades, so by not updating the llvm dependency to the proper version, you are also forced to not upgrade any package that directly or indirectly depends on llvm itself. For example, mesa and clang support llvm8, so the repository packages were recompiled and now depend on llvm8. Other packages such as rust still require llvm7, so their dependencies get updated to llvm7. None of these packages can get updated unless you update the llvm dependency of python-llvmlite to llvm7. If a user does not want to install llvm8 and llvm7 in parallel, they can still opt to manually modify this package build and delay the update of any other llvm-related package.