Package Details: python-jaxlib 0.4.31-1

Git Clone URL: https://aur.archlinux.org/python-jaxlib.git (read-only, click to copy)
Package Base: python-jaxlib
Description: XLA library for JAX
Upstream URL: https://github.com/google/jax/
Keywords: deep-learning google jax machine-learning xla
Licenses: Apache
Groups: jax
Submitter: daskol
Maintainer: daskol
Last Packager: daskol
Votes: 6
Popularity: 0.033400
First Submitted: 2021-01-12 12:50 (UTC)
Last Updated: 2024-08-13 00:17 (UTC)

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 Next › Last »

rekman commented on 2023-10-24 19:20 (UTC)

Is it really necessary to build llvm from source to build this package?

h3ss commented on 2023-10-21 13:47 (UTC)

@daskol I believe I have found the root cause of the lingering errors that myself and others have reported.

From what I can tell, the prepare function in the PKGBUILD is either not consistently being run with AUR helpers, or it is being run separately from the build, such that the environment variables don't carry over. This function doesn't necessarily get run anyway, for example if somebody were to pass the --noextract argument to makepkg it will not be run (and I see this being passed in the yay source code).

Would you please try moving the export JAXLIB_RELEASE=$pkgvar into the build function?

To test this, I used paru -U in the package directory. Initially, before I moved the export from the prepare to the build function, this failed with the same error that was seen when updating from the AUR. After I moved the export, it built successfully with the same command.

h3ss commented on 2023-10-21 04:05 (UTC) (edited on 2023-10-21 12:27 (UTC) by h3ss)

@daskol Every single time there's an update I have to manually do the install because of the error that @65a pointed out. It's pretty frustrating when these updates hit, and I watch it build for 15 minutes, only to have the perfectly fine .whl file get discarded, and have to start the build over again manually.

What's strange is I don't even have to modify the PKGBUILD, I just have to git clone and makepkg -si and it builds and installs fine. BUT, any attempt to install it using an AUR helper (I tried both Paru & Yay) fails with the error that people have been pointing out to you. Based on your previous comment, I also tried deleting the bazel cache (rm -rf ~/.cache/bazel/) before trying an install and that didn't help.

Can we please get a persistent reliable fix for this that works with AUR helpers like yay and paru?!

65a commented on 2023-10-16 21:10 (UTC) (edited on 2023-10-16 21:10 (UTC) by 65a)

I am still seeing this. Is there a packaging encapsulation leak or something that is preventing the new way from working?

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/lib/python3.11/site-packages/installer/__main__.py", line 98, in <module>
    _main(sys.argv[1:], "python -m installer")
  File "/usr/lib/python3.11/site-packages/installer/__main__.py", line 86, in _main
    with WheelFile.open(args.wheel) as source:
  File "/usr/lib/python3.11/contextlib.py", line 137, in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/installer/sources.py", line 162, in open
    with zipfile.ZipFile(path) as f:
         ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/zipfile.py", line 1284, in __init__
    self.fp = io.open(file, filemode)
              ^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/nfs/home/65a/.cache/yay/python-jaxlib/src/jax-jaxlib-v0.4.18/dist/jaxlib-0.4.18-*.whl'

daskol commented on 2023-10-08 19:23 (UTC)

@65a There is no issue anymore. The issue existed in transition from 0.4.15 to 0.4.16 because JAX maintainers changed release and versioning machinery by adding JAXLIB_RELEASE envvar to get release version. Now python-jaxlib builds perfectly fine because I included corresponding envvar to PKGBIUILD.

65a commented on 2023-10-08 19:06 (UTC)

Any fix for this coming soon? I've had to build it locally lately to prevent package updates from burning CPU.

segin commented on 2023-10-06 10:31 (UTC)

Well, you've pushed 0.4.17 and didn't go to a release build, so clearly the dev build was the intended behavior. You had the opportunity to address it, and you didn't.

daskol commented on 2023-10-01 16:05 (UTC) (edited on 2023-10-01 16:06 (UTC) by daskol)

@segin It is not a fix. https://aur.archlinux.org/packages/python-jaxlib#comment-935718

It is not just dash or dot. The issue is that that package version should be release build

$ python -c 'from jaxlib.version import __version__; print(__version__)'
0.4.16

not a nightly build like this.

$ python -c 'from jaxlib.version import __version__; print(__version__)'
0.4.16.dev20231001

segin commented on 2023-10-01 15:14 (UTC) (edited on 2023-10-01 15:15 (UTC) by segin)

@daskol It's a fix. Trust me. Apply it and watch the magic work.

Between "0.4.16" and "dev...", you're using a - when the actual real file on disk will have a . in that place.

Line 38 (excerpted) on the PKGBUILD has "jaxlib-$pkgver-.whl" - instead here do "jaxlib-$pkgver..whl"

Why?

FileNotFoundError: [Errno 2] No such file or directory: '/home/segin/.cache/yay/python-jaxlib/src/jax-jaxlib-v0.4.16/dist/jaxlib-0.4.16-*.whl'

Because the actual file on disk doesn't have a - after the 16, it has a .:

segin@installation-00[10:09]:{~}% ls -l /home/segin/.cache/yay/python-jaxlib/src/jax-jaxlib-v0.4.16/dist/jaxlib-0.4.16.*.whl
-rw-r--r-- 1 segin wheel 71560446 Oct  1 10:07 /home/segin/.cache/yay/python-jaxlib/src/jax-jaxlib-v0.4.16/dist/jaxlib-0.4.16.dev20231001-cp311-cp311-manylinux2014_x86_64.whl
segin@installation-00[10:09]:{~}%  

Literally the issue is a malformed wildcard. I change that one single - to a . and look, ls finds the file!

daskol commented on 2023-09-26 15:03 (UTC)

@segin No, it is not fix. In this case jax.version.__version__ is not $pkgver. Initial intent was to catch dirty releases since lately many packagers ranging from huggingface to google changes release pipelines, way how to version is assigned to package, or makes unfortunate mistakes. If release version is $pkgver then the package must expose the same version $pkgver consistently.