pygit2 icon indicating copy to clipboard operation
pygit2 copied to clipboard

Building pygit2 wheel on FreeBSD 13.1 fails

Open tuaris opened this issue 2 years ago • 1 comments

I'm using the nox unit testing framework (as part of a Salt project) and it's running into a problem where it is failing to build the wheel for pygit2:

Building wheels for collected packages: pygit2
  Building wheel for pygit2 (PEP 517): started
  Building wheel for pygit2 (PEP 517): finished with status 'error'
  ERROR: Command errored out with exit status 1:
   command: /usr/home/daniel/Development/salt/.nox/test-parametrized-3-crypto-none-transport-zeromq-coverage-false/bin/python /usr/home/daniel/Development/salt/.nox/test-parametrized-3-crypto-none-transport-zeromq-coverage-false/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmp0fbzmp3_
       cwd: /tmp/pip-install-1q7vagc4/pygit2_de878b6a19a24fe58eff7d09fda3bd9c
  Complete output (68 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39
  creating build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/__init__.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/_build.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/_run.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/blame.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/callbacks.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/config.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/credentials.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/errors.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/ffi.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/index.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/packbuilder.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/refspec.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/remote.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/repository.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/settings.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/submodule.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  copying pygit2/utils.py -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2
  creating build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/attr.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/blame.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/buffer.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/callbacks.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/checkout.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/clone.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/commit.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/common.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/config.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/describe.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/diff.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/errors.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/graph.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/index.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/indexer.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/merge.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/net.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/oid.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/pack.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/proxy.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/refspec.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/remote.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/repository.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/revert.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/stash.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/strarray.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/submodule.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/transport.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  copying pygit2/decl/types.h -> build/lib.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2/decl
  warning: build_py: byte-compiling is disabled, skipping.
  
  running build_ext
  generating cffi module 'build/temp.freebsd-13.1-RELEASE-p6-amd64-cpython-39/pygit2._libgit2.c'
  creating build/temp.freebsd-13.1-RELEASE-p6-amd64-cpython-39
  building 'pygit2._pygit2' extension
  creating build/temp.freebsd-13.1-RELEASE-p6-amd64-cpython-39/src
  cc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -fPIC -I/usr/local/include -I/usr/home/daniel/Development/salt/.nox/test-parametrized-3-crypto-none-transport-zeromq-coverage-false/include -I/usr/local/include/python3.9 -c src/blob.c -o build/temp.freebsd-13.1-RELEASE-p6-amd64-cpython-39/src/blob.o
  In file included from src/blob.c:30:
  In file included from src/diff.h:34:
  src/types.h:36:2: error: You need a compatible libgit2 version (1.3.x)
  #error You need a compatible libgit2 version (1.3.x)
   ^
  1 error generated.
  error: command '/usr/bin/cc' failed with exit code 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

The required packages are installed

pkg info | grep libgit
libgit2-1.5.1                  Portable, pure C implementation of the Git core
libgit2-glib-1.1.0             Glib wrapper library around the libgit2 git access library
py39-pygit2-1.11.1             Python bindings for libgit2

The library is there too, but it's picking up the wrong one?

ldconfig -r | grep libgit
	864:-lgit2-glib-1.0.0 => /usr/local/lib/libgit2-glib-1.0.so.0

tuaris avatar Mar 14 '23 18:03 tuaris

Check the order of paths in your $PATH env var. Or you could set the env var LIBGIT2 to the installed location of the appropriate version of libgit2.

Otherwise, there's nothing that needs to be done on behalf of pygit2 maintainers. I think this issue can be closed (or converted to a discussion).

[!TIP] See documented build options for more detail.

2bndy5 avatar Oct 10 '25 07:10 2bndy5