Skip to content

Commit

Permalink
fix CircleCI shared lib issue with pypy 3.9 & 3.10 (#726)
Browse files Browse the repository at this point in the history
Hi,

can you please review patch to fix circleci tests failing for pypy 3.9
and 3.10. It fails with the following error during poetry installation:

```
Installing Poetry (1.7.1): An error occurred. Removing partial environment.
Poetry installation failed.
See /root/project/poetry-installer-error-s__g4uo2.log for error logs.

Exited with code exit status 127
```

I guess there was a poetry change that somehow affected the virtual
environment created by poetry during its installation. It is missing the
pypy shared libraries and fails the installation with the following
message (as taken from the log)

```
See /root/project/poetry-installer-error-24g4cn6z.log for error logs.
/root/.local/share/pypoetry/venv/bin/python3: error while loading shared libraries: libffi.so.6: cannot open shared object file: No such file or directory

Traceback:

  File "<stdin>", line 923, in main
  File "<stdin>", line 562, in run
```

I couldn't find a mention of this issue on the Internet. I've opted to
sym link the pypy shared libraries to the venv and add it to the
LD_LIBRARY_PATH so they are available at runtime.

Thanks

Co-authored-by: ikappaki <[email protected]>
  • Loading branch information
ikappaki and ikappaki authored Dec 6, 2023
1 parent 63ba73f commit 8a42054
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,19 @@ commands:
apt-get update && apt-get install -y python3 python3-distutils curl
pip install -U pip virtualenv
pip install tox
# All of a sudden, the venv generated by Poetry
# installations for pypy 3.9 and 3.10 (but not 3.8),
# located at /root/.local, lacks all the lib*.so
# dependencies from the original pypy environment. To
# address this issue, we ensure these libraries are
# explicitly accessible in the LD_LIBRARY_PATH until a
# resolution is implemented.
mkdir -p /root/.local/lib
ln -s /opt/pypy/lib/lib*.so.* /root/.local/lib
export LD_LIBRARY_PATH="/root/.local/lib:$LD_LIBRARY_PATH"
echo 'export LD_LIBRARY_PATH="/root/.local/lib:$LD_LIBRARY_PATH"' >> $BASH_ENV
curl -sSL https://install.python-poetry.org | python3 -
echo 'export PATH="/root/.local/bin:$PATH"' >> $BASH_ENV
- run:
Expand Down Expand Up @@ -68,4 +81,4 @@ workflows:
jobs:
- test-pypy-38
- test-pypy-39
- test-pypy-310
- test-pypy-310

0 comments on commit 8a42054

Please sign in to comment.