presslabs / gitfs

Version controlled file system
https://www.presslabs.com/code/gitfs/
Apache License 2.0
2.49k stars 153 forks source link

Blows up against new libgit2 #175

Closed DomT4 closed 9 years ago

DomT4 commented 9 years ago

Build falls apart against the newest libgit2. Upstream made API-breaking changes, so expected I guess.

==> Installing gitfs
==> Downloading https://github.com/PressLabs/gitfs/archive/0.2.5.tar.gz
Already downloaded: /Library/Caches/Homebrew/gitfs-0.2.5.tar.gz
==> Verifying gitfs-0.2.5.tar.gz checksum
tar xf /Library/Caches/Homebrew/gitfs-0.2.5.tar.gz
==> Patching
==> Downloading https://pypi.python.org/packages/source/f/fusepy/fusepy-2.0.2.tar.gz
Already downloaded: /Library/Caches/Homebrew/gitfs--fusepy-2.0.2.tar.gz
==> Verifying gitfs--fusepy-2.0.2.tar.gz checksum
tar xf /Library/Caches/Homebrew/gitfs--fusepy-2.0.2.tar.gz
==> python -c import setuptools... --no-user-cfg install --prefix=/usr/local/Cellar/gitfs/0.2.5/libexec/vendor --single-version-externally-managed --record=installed.txt
running install
running build
running build_py
creating build
creating build/lib
copying fuse.py -> build/lib
running install_lib
copying build/lib/fuse.py -> /usr/local/Cellar/gitfs/0.2.5/libexec/vendor/lib/python2.7/site-packages
byte-compiling /usr/local/Cellar/gitfs/0.2.5/libexec/vendor/lib/python2.7/site-packages/fuse.py to fuse.pyc
running install_egg_info
running egg_info
writing fusepy.egg-info/PKG-INFO
writing top-level names to fusepy.egg-info/top_level.txt
writing dependency_links to fusepy.egg-info/dependency_links.txt
warning: manifest_maker: standard file '-c' not found

reading manifest file 'fusepy.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'fusepy.egg-info/SOURCES.txt'
Copying fusepy.egg-info to /usr/local/Cellar/gitfs/0.2.5/libexec/vendor/lib/python2.7/site-packages/fusepy-2.0.2-py2.7.egg-info
running install_scripts
writing list of installed files to 'installed.txt'
==> Downloading https://pypi.python.org/packages/source/p/pygit2/pygit2-0.21.4.tar.gz
Already downloaded: /Library/Caches/Homebrew/gitfs--pygit2-0.21.4.tar.gz
==> Verifying gitfs--pygit2-0.21.4.tar.gz checksum
tar xf /Library/Caches/Homebrew/gitfs--pygit2-0.21.4.tar.gz
==> python -c import setuptools... --no-user-cfg install --prefix=/usr/local/Cellar/gitfs/0.2.5/libexec/vendor --single-version-externally-managed --record=installed.txt

Installed /private/tmp/gitfs--pygit2-CXVSLk/pygit2-0.21.4/cffi-0.8.6-py2.7-macosx-10.10-intel.egg
Searching for pycparser
Reading https://pypi.python.org/simple/pycparser/
Best match: pycparser 2.10
Downloading https://pypi.python.org/packages/source/p/pycparser/pycparser-2.10.tar.gz#md5=d87aed98c8a9f386aa56d365fe4d515f
Processing pycparser-2.10.tar.gz
Writing /var/folders/qs/rg1v7kz56wv3v9z4qwgtv3g80000gn/T/easy_install-bIG4Gm/pycparser-2.10/setup.cfg
Running pycparser-2.10/setup.py -q bdist_egg --dist-dir /var/folders/qs/rg1v7kz56wv3v9z4qwgtv3g80000gn/T/easy_install-bIG4Gm/pycparser-2.10/egg-dist-tmp-LN5jLw
zip_safe flag not set; analyzing archive contents...

Installed /private/tmp/gitfs--pygit2-CXVSLk/pygit2-0.21.4/pycparser-2.10-py2.7.egg
running install
running build_ext
building 'pygit2_cffi_18eab927xbf062fb5' extension
creating /private/tmp/gitfs--pygit2-CXVSLk/pygit2-0.21.4/pygit2/__pycache__/pygit2
creating /private/tmp/gitfs--pygit2-CXVSLk/pygit2-0.21.4/pygit2/__pycache__/pygit2/__pycache__
clang -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch x86_64 -arch i386 -pipe -I/usr/local/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c pygit2/__pycache__/pygit2_cffi_18eab927xbf062fb5.c -o /private/tmp/gitfs--pygit2-CXVSLk/pygit2-0.21.4/pygit2/__pycache__/pygit2/__pycache__/pygit2_cffi_18eab927xbf062fb5.o
pygit2/__pycache__/pygit2_cffi_18eab927xbf062fb5.c:5135:34: error: too few arguments to function call, expected 2, have 1
  { result = git_remote_delete(x0); }
             ~~~~~~~~~~~~~~~~~   ^
/usr/local/include/git2/remote.h:677:1: note: 'git_remote_delete' declared here
GIT_EXTERN(int) git_remote_delete(git_repository *repo, const char *name);
^
/usr/local/include/git2/common.h:31:27: note: expanded from macro 'GIT_EXTERN'
# define GIT_EXTERN(type) extern \
                          ^
pygit2/__pycache__/pygit2_cffi_18eab927xbf062fb5.c:5192:41: error: too few arguments to function call, expected 4, have 3
  { result = git_remote_fetch(x0, x1, x2); }
             ~~~~~~~~~~~~~~~~           ^
/usr/local/include/git2/remote.h:412:1: note: 'git_remote_fetch' declared here
GIT_EXTERN(int) git_remote_fetch(
^
/usr/local/include/git2/common.h:31:27: note: expanded from macro 'GIT_EXTERN'
# define GIT_EXTERN(type) extern \
                          ^
pygit2/__pycache__/pygit2_cffi_18eab927xbf062fb5.c:5620:42: error: too few arguments to function call, expected 4, have 3
  { result = git_remote_rename(x0, x1, x2); }
             ~~~~~~~~~~~~~~~~~           ^
/usr/local/include/git2/remote.h:636:1: note: 'git_remote_rename' declared here
GIT_EXTERN(int) git_remote_rename(
^
/usr/local/include/git2/common.h:31:27: note: expanded from macro 'GIT_EXTERN'
# define GIT_EXTERN(type) extern \
                          ^
pygit2/__pycache__/pygit2_cffi_18eab927xbf062fb5.c:6683:14: error: no member named 'ignore_cert_errors' in 'struct git_clone_options'
  (void)((p->ignore_cert_errors) << 1);
          ~  ^
pygit2/__pycache__/pygit2_cffi_18eab927xbf062fb5.c:6685:29: error: no member named 'remote_name' in 'struct git_clone_options'
  { char const * *tmp = &p->remote_name; (void)tmp; }
                         ~  ^
pygit2/__pycache__/pygit2_cffi_18eab927xbf062fb5.c:6704:5: error: no member named 'ignore_cert_errors' in 'git_clone_options'
    offsetof(struct git_clone_options, ignore_cert_errors),
    ^                                  ~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include/stddef.h:87:24: note: expanded from macro 'offsetof'
#define offsetof(t, d) __builtin_offsetof(t, d)
                       ^
pygit2/__pycache__/pygit2_cffi_18eab927xbf062fb5.c:6705:45: error: no member named 'ignore_cert_errors' in 'struct git_clone_options'
    sizeof(((struct git_clone_options *)0)->ignore_cert_errors),
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
pygit2/__pycache__/pygit2_cffi_18eab927xbf062fb5.c:6708:5: error: no member named 'remote_name' in 'git_clone_options'
    offsetof(struct git_clone_options, remote_name),
    ^                                  ~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include/stddef.h:87:24: note: expanded from macro 'offsetof'
#define offsetof(t, d) __builtin_offsetof(t, d)
                       ^
pygit2/__pycache__/pygit2_cffi_18eab927xbf062fb5.c:6709:45: error: no member named 'remote_name' in 'struct git_clone_options'
    sizeof(((struct git_clone_options *)0)->remote_name),
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
9 errors generated.
Traceback (most recent call last):
  File "<string>", line 4, in <module>
  File "setup.py", line 202, in <module>
    cmdclass=cmdclass)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 152, in setup
    dist.run_commands()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 971, in run_command
    cmd_obj.ensure_finalized()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 109, in ensure_finalized
    self.finalize_options()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/command/install.py", line 29, in finalize_options
    _install.finalize_options(self)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/install.py", line 384, in finalize_options
    ('build_lib', 'build_lib'))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 298, in set_undefined_options
    src_cmd_obj.ensure_finalized()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 109, in ensure_finalized
    self.finalize_options()
  File "setup.py", line 101, in finalize_options
    ffi, C = get_ffi()
  File "pygit2/_utils.py", line 101, in get_ffi
    include_dirs=[libgit2_include], library_dirs=[libgit2_lib])
  File "/private/tmp/gitfs--pygit2-CXVSLk/pygit2-0.21.4/cffi-0.8.6-py2.7-macosx-10.10-intel.egg/cffi/api.py", line 340, in verify
    lib = self.verifier.load_library()
  File "/private/tmp/gitfs--pygit2-CXVSLk/pygit2-0.21.4/cffi-0.8.6-py2.7-macosx-10.10-intel.egg/cffi/verifier.py", line 74, in load_library
    self._compile_module()
  File "/private/tmp/gitfs--pygit2-CXVSLk/pygit2-0.21.4/cffi-0.8.6-py2.7-macosx-10.10-intel.egg/cffi/verifier.py", line 139, in _compile_module
    outputfilename = ffiplatform.compile(tmpdir, self.get_extension())
  File "/private/tmp/gitfs--pygit2-CXVSLk/pygit2-0.21.4/cffi-0.8.6-py2.7-macosx-10.10-intel.egg/cffi/ffiplatform.py", line 25, in compile
    outputfilename = _build(tmpdir, ext)
  File "/private/tmp/gitfs--pygit2-CXVSLk/pygit2-0.21.4/cffi-0.8.6-py2.7-macosx-10.10-intel.egg/cffi/ffiplatform.py", line 51, in _build
    raise VerificationError('%s: %s' % (e.__class__.__name__, e))
cffi.ffiplatform.VerificationError: CompileError: command 'clang' failed with exit status 1
DomT4 commented 9 years ago

Updating to pygit2-0.22.0 solves the compile problems, but obviously, upstream here has a stated requirement for pkg_resources.DistributionNotFound: pygit2==0.21.4 which is now causing run-time breakage :cry:.