libgit2 / pygit2

Python bindings for libgit2
https://www.pygit2.org/
Other
1.58k stars 382 forks source link

pip3 install pygit2 fails on ppc64le and s390x platform #1284

Open rfan1 opened 3 months ago

rfan1 commented 3 months ago

OS: sles15sp6

install python3.12 on the system pip3.12 install pygit2 hits issue below:

   # pip3.12 install pygit2
      copying pygit2/decl/callbacks.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/checkout.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/clone.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/commit.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/common.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/config.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/describe.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/diff.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/errors.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/graph.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/index.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/indexer.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/merge.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/net.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/oid.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/pack.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/proxy.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/refspec.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/remote.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/repository.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/revert.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/stash.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/strarray.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/submodule.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/transport.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      copying pygit2/decl/types.h -> build/lib.linux-ppc64le-cpython-312/pygit2/decl
      running build_ext
      generating cffi module 'build/temp.linux-ppc64le-cpython-312/pygit2._libgit2.c'
      creating build/temp.linux-ppc64le-cpython-312
      building 'pygit2._pygit2' extension
      creating build/temp.linux-ppc64le-cpython-312/tmp
      creating build/temp.linux-ppc64le-cpython-312/tmp/pip-install-binfj26r
      creating build/temp.linux-ppc64le-cpython-312/tmp/pip-install-binfj26r/pygit2_c11b9988d87a49aaa211b635a46f7506
      creating build/temp.linux-ppc64le-cpython-312/tmp/pip-install-binfj26r/pygit2_c11b9988d87a49aaa211b635a46f7506/src
      gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DOPENSSL_LOAD_CONF -fwrapv -fno-semantic-interposition -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fPIC -I/usr/local/include -I/usr/include/python3.12 -c /tmp/pip-install-binfj26r/pygit2_c11b9988d87a49aaa211b635a46f7506/src/blob.c -o build/temp.linux-ppc64le-cpython-312/tmp/pip-install-binfj26r/pygit2_c11b9988d87a49aaa211b635a46f7506/src/blob.o
      error: command 'gcc' failed: No such file or directory
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pygit2
�[?25hFailed to build pygit2
ERROR: Could not build wheels for pygit2, which is required to install pyproject.toml-based projects

Expected behavior

The installation can pass without any issue
dcermak commented 2 months ago
      error: command 'gcc' failed: No such file or directory

You have to install gcc

rfan1 commented 2 months ago

Sorry, I forgot this one, with gcc installed, pip install pygit2 can still hit issue. Screenshot from 2024-04-02 17-48-40

dcermak commented 2 months ago

you need to install the python headers too

rfan1 commented 2 months ago

you need to install the python headers too

Thanks much @dcermak, the issue is gone after installing python3-dev and libgit2-dev.

Best, Richard