libgit2 / pygit2

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

Installation on Raspian fails (related to #999?) #1050

Closed stilltldr closed 3 years ago

stilltldr commented 3 years ago

Related to this topic (https://github.com/libgit2/pygit2/issues/999), the installation of pygit2 is not possible in Raspian:

# pip3 install pygit2
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting pygit2
  Using cached pygit2-1.4.0.tar.gz (244 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
    Preparing wheel metadata ... done
Requirement already satisfied: cached-property in /path/to/repo/venv/lib/python3.7/site-packages (from pygit2) (1.5.2)
Requirement already satisfied: cffi>=1.4.0 in /path/to/repo/venv/lib/python3.7/site-packages (from pygit2) (1.14.4)
Requirement already satisfied: pycparser in /path/to/repo/venv/lib/python3.7/site-packages (from cffi>=1.4.0->pygit2) (2.20)
Building wheels for collected packages: pygit2
  Building wheel for pygit2 (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: /path/to/repo/venv/bin/python3 /path/to/repo/venv/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmp1whmudzc
       cwd: /tmp/pip-install-601emg_k/pygit2_cdbc3129154348ce93fb0592a27028d5
  Complete output (63 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-armv7l-3.7
  creating build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/config.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/errors.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/credentials.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/settings.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/blame.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/refspec.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/remote.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/callbacks.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/submodule.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/__init__.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/index.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/repository.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/ffi.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/_run.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/_build.py -> build/lib.linux-armv7l-3.7/pygit2
  copying pygit2/utils.py -> build/lib.linux-armv7l-3.7/pygit2
  creating build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/net.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/remote.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/strarray.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/types.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/oid.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/transport.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/proxy.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/graph.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/common.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/pack.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/submodule.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/checkout.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/index.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/refspec.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/errors.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/buffer.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/callbacks.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/indexer.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/revert.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/diff.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/config.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/blame.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/merge.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/clone.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/stash.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/describe.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/repository.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  copying pygit2/decl/attr.h -> build/lib.linux-armv7l-3.7/pygit2/decl
  running build_ext
  generating cffi module 'build/temp.linux-armv7l-3.7/pygit2._libgit2.c'
  creating build/temp.linux-armv7l-3.7
  building 'pygit2._pygit2' extension
  creating build/temp.linux-armv7l-3.7/src
  arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/local/include -I/path/to/repo/venv/include -I/usr/include/python3.7m -c src/blob.c -o build/temp.linux-armv7l-3.7/src/blob.o
  In file included from src/blob.h:34,
                   from src/blob.c:30:
  src/types.h:36:2: error: #error You need a compatible libgit2 version (1.1.x)
   #error You need a compatible libgit2 version (1.1.x)
    ^~~~~
  error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for pygit2
Failed to build pygit2
ERROR: Could not build wheels for pygit2 which use PEP 517 and cannot be installed directly

Tried all suggested solutions as mentioned in https://github.com/libgit2/pygit2/issues/999.

Raspbian GNU/Linux 10 \n \l

(venv) root@host:~/libgit2_src# cat /etc/os-release 
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Any ideas appreciated!

jdavid commented 3 years ago

The error message is explicit:

   #error You need a compatible libgit2 version (1.1.x)

Check what version of libgit2 do you have, then install a compatible version of pygit2, cf. https://www.pygit2.org/install.html#version-numbers