IRC channel logs

2023-10-10.log

back to list of logs

<rekado>hi
<rekado>does anyone here have a WIP package definition for jaxlib?
<rekado>nixpkgs has one https://github.com/NixOS/nixpkgs/blob/4434db32eaa8839f23b6c4d69c539455c828c69b/pkgs/development/python-modules/jaxlib/default.nix#L271 but it uses Bazel
<rekado>(I’ll probably have to look into Bazel again…)
<civodul>not me
<rekado>yeah, I’m back to working on bazel again
<rekado>ugh
<civodul>are the Chainguard people building it +/- from source?
<civodul> https://edu.chainguard.dev/chainguard/chainguard-images/reference/bazel/
<civodul>they claim to be serious about bootstrapping and all, so i wonder if there are tips and tricks we could borrow
<rekado>I don’t know what to make of that page
<rekado>I also went to https://github.com/chainguard-images/images/tree/main/images/bazel/ but I don’t see anything that looks like a build description
<rekado>I’m trying to package a binary bootstrap bazel for guix-science
<rekado>problem is that the binary soup it comes with includes code that executes /bin/bash, which doesn’t exist
<rekado>I don’t see any easy way to override this other than to patch binaries…
<rekado>would be lovely if we had a way to modify the root file system of the build container
<civodul>i was going to say “patch the binaries!”, but it won’t work here since you’d need a longer strnig
<civodul>*string
<rekado>I could patch them from /bin/bash to /tmp/bash
<rekado>and link bash there
<civodul>right, good idea
<civodul>or you could use fakechroot
<rekado>hmm, no idea how to do this with fakechroot
<rekado>I can’t bind mount before chroot, so I can’t get /gnu in the chroot
<rekado>will try proot
<civodul>proot is a sledgehammer
<civodul>with fakechroot, you’d need to do “fakechroot chroot /tmp/whatever COMMAND”
<rekado>right, but then /gnu is no longer accessible.
<civodul>hmm yeah
<rekado>proot works for now. Super ugly, though.
<rekado>the gcc invocation by bazel is also faulty
<rekado>it doesn’t find “linux/limits.h”, and I’m guessing that’s due to the use of isystem
<rekado>bazel unsets important environment variables
<civodul>C_INCLUDE_PATH got unset?
<rekado>yes, bazel uses “env” to reset everything
<rekado>it’s hard to override inputs (e.g. to use zlib from Guix instead of building it from scratch) and we need a .BUILD file for any replacement
<rekado>Debian did just that.
<rekado>they have a tools/distributions/debian directory containing Debian-specific .BUILD files
<civodul>interesting
<rekado>I’ll try to do the same eventually, but it’s a lot of work.
<civodul>you should convince your employer to hire an additional person to work on this
<rekado>I tried
<rekado>so many times
<rekado>but there’s so little institutional support that I’m close to giving up on doing support all by myself
<rekado>there are huge budgets for proprietary software and platforms, but curiously never any money for a new support position.
<civodul>maybe you’re too efficient, too
<civodul>like they get a sense that in the end you always get things done
<civodul>but yeah, i sympathize
<rekado>making some progress with the binary bazel bootstrap