lief-project / LIEF

LIEF - Library to Instrument Executable Formats

Home Page:https://lief.re

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compatibility with graalpy on MacOSX

LRGH opened this issue · comments

Describe the bug
pip install lief fails when running on github hosted macos with graalpy.

To Reproduce
Create a github action with:

    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: ["macos-11", "macos-12", "macos-13"]
    steps:
    - uses: actions/checkout@v3
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: "graalpy-22.3"
    - name: Get and install LIEF
      run: |
        pip install lief

Expected behavior
Should be sucessful, as it it the case with the same graalpy version and ubuntu, or with the same OS but other python variants (e.g. 3.10 or pypy3.9)

Environment (please complete the following information):

  • System and Version : MacOS 10, 11, 12
  • Target format : all
  • LIEF commit version: the one from pip install

Additional context

NOTICE

If the issue does not contain enough information to be reproduced,
it will be flagged as incomplete
and closed.

/NOTICE

Yes LIEF doesn't provide pre-compiled wheels for other implementations than CPython. The fact is that for each OS there is a CI job for the different version of Python supported by LIEF (i.e. 3.8, 3.9, 3.10, 3.11, 3.12). It means 4 * 5 = 20 jobs. Adding another implementation (like pypy, graalpy, ..) will actually multiply this number of job by the number of variants.

LIEF is relying on Github Actions and I would like to avoid adding an extra overhead on the CI.
If someone can provide the infrastructure to make these variant builds, I will be happy to consider to add these wheels.

I close the issue since it's not planned on the short/mid term of the project.

OK. As it works with pypy3.9 and graalpy on Ubuntu (without precompiled wheels, indeed, which make the installation with Github actions last half an hour) I was reporting that it does not work with graalpy on MacOS (which is quite odd, because it is neither a pure graalpy problem nor a pure MacOS problem).
But I agree that having it work with graalpy on MacOS might not be useful for anyone.