NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
18.22k stars 14.21k forks source link

Build failure: pypy3 #301498

Closed LordGrimmauld closed 6 months ago

LordGrimmauld commented 7 months ago

Steps To Reproduce

Steps to reproduce the behavior:

  1. build pypy3

Build log

@nix { "action": "setPhase", "phase": "unpackPhase" }
Running phase: unpackPhase
unpacking source archive /nix/store/5n8ridrwkr7jwlm2i02z60y9w4lfvjrg-pypy3.9-v7.3.12-src.tar.bz2
source root is pypy3.9-v7.3.12-src
setting SOURCE_DATE_EPOCH to timestamp 1686821484 of file pypy3.9-v7.3.12-src/testrunner/test/test_scratchbox_runner.py
@nix { "action": "setPhase", "phase": "patchPhase" }
Running phase: patchPhase
applying patch /nix/store/lgy8qxprnymy5frfsmgksjp823icbl0p-dont_fetch_vendored_deps.patch
patching file lib_pypy/pypy_tools/build_cffi_imports.py
Hunk #1 succeeded at 257 (offset 32 lines).
applying patch /nix/store/39xaxcfgaasiazb7vzrmkilp8g988alj-tk_tcl_paths.patch
patching file lib_pypy/_tkinter/tklib_build.py
Hunk #1 succeeded at 17 with fuzz 2.
applying patch /nix/store/vbrsc4clqvi0cdf0bznyknbzrsmwckax-sqlite_paths.patch
patching file lib_pypy/_sqlite3_build.py
Hunk #1 succeeded at 321 (offset 20 lines).
substituteStream(): WARNING: '--replace' is deprecated, use --replace-{fail,warn,quiet}. (file 'lib_pypy/pypy_tools/build_cffi_imports.py')
@nix { "action": "setPhase", "phase": "updateAutotoolsGnuConfigScriptsPhase" }
Running phase: updateAutotoolsGnuConfigScriptsPhase
Updating Autotools / GNU config script to a newer upstream version: ./rpython/rlib/rvmprof/src/shared/libbacktrace/config.sub
Updating Autotools / GNU config script to a newer upstream version: ./pypy/tool/release/config.guess
@nix { "action": "setPhase", "phase": "configurePhase" }
Running phase: configurePhase
no configure script, doing nothing
@nix { "action": "setPhase", "phase": "buildPhase" }
Running phase: buildPhase
debug: WARNING: Library path not found, using compiled-in sys.path, with
debug: WARNING: sys.prefix = '/build/pypy2.7-v7.3.12-src'
debug: WARNING: Make sure the pypy binary is kept inside its tree of files.
debug: WARNING: It is ok to create a symlink to it from somewhere else.
'import site' failed
debug: OperationError:
debug:  operror-type: ImportError
debug:  operror-value: No module named encodings

Additional context

No extra python packages, overlays or anything were added. This build failure happens on both master and nixos-unstable.

Notify maintainers

@andersk

Metadata

Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.

[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.8.2-zen2, NixOS, 24.05 (Uakari), 24.05.20240329.d8fe5e6`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.2`
 - channels(root): `"nixos"`
 - channels(grimmauld): `""`
 - nixpkgs: `/nix/store/cb1gs888vfqxawvc65q1dk6jzbayh3wz-source`

Add a :+1: reaction to issues you find important.

LordGrimmauld commented 7 months ago

Alright, i found the PR using git bisect that introduced the pypy build faiure: Turns out it is https://github.com/NixOS/nixpkgs/pull/297628

LordGrimmauld commented 7 months ago

Ok, i started debugging this further and am currently testing a bodge fix. Seems that particular PR changed the way how nix handles python in a way where pypys assumption for loading libraries from argv[0] goes wrong. The bodge fix is to set PYTHONPATH env var during build phase. Not clean, but if that builds i'll probably PR it as a bodge until anyone else comes up with a better idea. Pypys install script is super weird....

Update: its weird, this vector might not be as promising as i'd have thought.

LordGrimmauld commented 6 months ago

As far as i can tell, pypy3 builds again now that the revert hit unstable, so i am closing this for now.