| 13 Oct 2025 |
Ihar Hrachyshka | pkgsStatic is broken. | 00:01:30 |
matthewcroughan | pkgsLLVM is not static? | 00:02:11 |
matthewcroughan | build/lib.linux-aarch64-cpython-313
┃ > copying re2.py -> build/lib.linux-aarch64-cpython-313
┃ > running build_ext
┃ > building '_re2' extension
┃ > creating build/temp.linux-aarch64-cpython-313
┃ > g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/qn8bgs2v6cfr4daqrrlip7ssxpscbs93-python3-3.13.8/include/python3.13 -c _re2.cc -o build/temp.linux-aa…
┃ > _re2.cc:252:1: error: cannot convert ‘std::nullptr_t’ to ‘Py_ssize_t’ {aka ‘long int’} in initialization
┃ > 252 | };
┃ > | ^
┃ > _re2.cc:296:1: error: cannot convert ‘std::nullptr_t’ to ‘Py_ssize_t’ {aka ‘long int’} in initialization
┃ > 296 | };
┃ > | ^
┃ > _re2.cc:340:1: error: cannot convert ‘std::nullptr_t’ to ‘Py_ssize_t’ {aka ‘long int’} in initialization
┃ > 340 | };
┃ > | ^
┃ > _re2.cc:870:1: warning: ‘PyObject* regexp_set_new(PyTypeObject*, PyObject*, PyObject*)’ defined but not used [-Wunused-function]
┃ > 870 | regexp_set_new(PyTypeObject* type, PyObject* args, PyObject* kwds)
┃ > | ^~~~~~~~~~~~~~
┃ > _re2.cc:195:1: warning: ‘int _no_setattr(PyObject*, PyObject*, PyObject*)’ defined but not used [-Wunused-function]
┃ > 195 | _no_setattr(PyObject* obj, PyObject* name, PyObject* v) {
┃ > | ^~~~~~~~~~~
┃ > error: command '/nix/store/rh7likr8a227i3wgfir10wsl0gnrjw1y-gcc-wrapper-14.3.0/bin/g++' failed with exit code 1
┃ For full logs, run:
┃ nix log /nix/store/936aknd5zqv6w16v30rwh57q3g68fggh-python3.13-fb-re2-1.0.7.drv
┣━ Dependency Graph:
┃ ┌─ ⏸ security-wrapper-sudo-aarch64-unknown-linux-musl-aarch64-linux
| 00:02:15 |
matthewcroughan | python-fb also seems broken | 00:02:22 |
matthewcroughan | nix-repl> :l <nixpkgs>
Added 25893 variables.
"7z2hashcat", AAAAAASomeThingsFailToEvaluate, AMB-plugins, ArchiSteamFarm, AusweisApp2, BeatSaberModManager, CHOWTapeModel, ChowCentaur, ChowKick, ChowPhaser, CoinMP, CuboCore, DisnixWebService, EBTKS, EmptyEpsilon, FIL-plugins, Fabric, HentaiAtHome, LAStools, LASzip
... and 25873 more; view with :ll
nix-repl> pkgsLLVM.hostPlatform.isStatic
false
nix-repl> pkgsLLVM.buildPlatform.isStatic
false
| 00:03:15 |
Ihar Hrachyshka | I'm not saying only pkgsStatic is broken. But I think any cross build can be broken because we don't do:
if head -n1 "$f" | grep -q '#!.*'; then
# Cross-compilation hack: ensure shebangs are for the host
echo "Rewriting $(head -n 1 $f) to #!@pythonHost@"
sed -i "$f" -e "1 s^#!@python@^#!@pythonHost@^"
fi
| 00:05:28 |
matthewcroughan | Is there a fix PR'd for that already? | 01:31:50 |
matthewcroughan | Hmm, it looks like the elftuils tests are a bit flakey | 01:38:27 |
Ihar Hrachyshka | for the record, the snippet above is from the hook we disabled. So the revert will bring it back for pytest.
A secondary question is whether this flag allowing to disable the hook should even exist. It's an invitation to break cross. There are just a handful of packages that are using it, probably by mistake. | 03:09:08 |
matthewcroughan | Would be good if you could put that summary in the revert PR | 03:27:47 |
matthewcroughan | So close to getting all of the combinations building | 09:50:40 |
matthewcroughan | error: build of '/nix/store/7j0j8pw5nz8nz8sj02lb924widbyg4aj-python3.13-fb-re2-1.0.7.drv' on 'ssh-ng://nix-ssh@m2u' failed: Cannot build '/nix/store/7j0j8pw5nz8nz8sj02lb924widbyg4aj-python3.13-fb-re2-1.0.7.drv'.
Reason: builder failed with exit code 1.
Output paths:
/nix/store/dafzna4fz48ryzp5ynvq8vfcbhqf10ra-python3.13-fb-re2-1.0.7
/nix/store/n1r8hsbkxpn2djagbq6si36v2xfbir5x-python3.13-fb-re2-1.0.7-dist
Last 25 log lines:
> running bdist_wheel
> running build
> running build_py
> creating build/lib.linux-aarch64-cpython-313
> copying re2.py -> build/lib.linux-aarch64-cpython-313
> running build_ext
> building '_re2' extension
> creating build/temp.linux-aarch64-cpython-313
> g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/qn8bgs2v6cfr4daqrrlip7ssxpscbs93-python3-3.13.8/include/python3.13 -c _re2.cc -o build/temp.linux-aarch64-cpython-313/_re2.o -std=c++17
> _re2.cc:252:1: error: cannot convert ‘std::nullptr_t’ to ‘Py_ssize_t’ {aka ‘long int’} in initialization
> 252 | };
> | ^
> _re2.cc:296:1: error: cannot convert ‘std::nullptr_t’ to ‘Py_ssize_t’ {aka ‘long int’} in initialization
> 296 | };
> | ^
> _re2.cc:340:1: error: cannot convert ‘std::nullptr_t’ to ‘Py_ssize_t’ {aka ‘long int’} in initialization
> 340 | };
> | ^
> _re2.cc:870:1: warning: ‘PyObject* regexp_set_new(PyTypeObject*, PyObject*, PyObject*)’ defined but not used [-Wunused-function]
> 870 | regexp_set_new(PyTypeObject* type, PyObject* args, PyObject* kwds)
> | ^~~~~~~~~~~~~~
> _re2.cc:195:1: warning: ‘int _no_setattr(PyObject*, PyObject*, PyObject*)’ defined but not used [-Wunused-function]
> 195 | _no_setattr(PyObject* obj, PyObject* name, PyObject* v) {
> | ^~~~~~~~~~~
> error: command '/nix/store/rh7likr8a227i3wgfir10wsl0gnrjw1y-gcc-wrapper-14.3.0/bin/g++' failed with exit code 1
For full logs, run:
nix log /nix/store/7j0j8pw5nz8nz8sj02lb924widbyg4aj-python3.13-fb-re2-1.0.7.drv
| 09:51:00 |
matthewcroughan | I have gnu-musl, gnu-musl-llvm working | 09:55:25 |
matthewcroughan | but native musl doesn't work because of the above | 09:55:33 |
matthewcroughan | this is a full pkgs.nixos closure | 09:55:39 |
matthewcroughan | https://hercules-ci.com/github/MatthewCroughan/nixos-musl/jobs/24 | 09:56:10 |
matthewcroughan |  Download image.png | 09:56:25 |
matthewcroughan | Oh actually yeah, just gnu-musl-llvm not gnu-musl | 09:56:37 |
matthewcroughan | Ah no, just got gnu-musl working, will push | 09:57:02 |
matthewcroughan | https://hercules-ci.com/accounts/github/MatthewCroughan/derivations/%2Fnix%2Fstore%2F2rsl141gfcj5z6pv17y84cr1h8pk1740-perl5.40.0-Test2-Harness-1.000155.drv/log?via-job=bfdba484-5299-4137-89f5-0a94331faf96 | 10:44:52 |
matthewcroughan | perl5.40.0-Test2-Harness-1.000155.drv failing on musl native I think | 10:47:44 |
matthewcroughan | https://github.com/NixOS/nixpkgs/pull/447249 | 10:53:54 |
matthewcroughan | Ah I see, I'll just disable the test in this case | 10:53:59 |
matthewcroughan | doCheck = !stdenv.hostPlatform.isRiscV || !(stdenv.hostPlatform.useLLVM && !stdenv.hostPlatform.isGnu); | 12:23:44 |
matthewcroughan | why doesn't this work? | 12:23:47 |
matthewcroughan | it works if I get rid of the || and riscv | 12:23:55 |
matthewcroughan | doCheck = !(stdenv.hostPlatform.useLLVM && !stdenv.hostPlatform.isGnu); works | 12:24:10 |
matthewcroughan | oh.. that existing logic is why it's breaking | 12:24:58 |
matthewcroughan | Needs more if | 12:25:04 |
matthewcroughan | would doCheck = if stdenv.hostPlatform.isRiscV then false else if !(stdenv.hostPlatform.useLLVM && !stdenv.hostPlatform.isGnu) then false else true; be acceptable? | 12:25:37 |