Skip to content

cffi-0.8.6 -> 0.9.2 upgrade causes verifier module to stop pygit2 from operating #534

Closed
@lkraav

Description

@lkraav
/usr/lib64/python3.3/site-packages/pygit2/errors.py in <module>()
     27 
     28 # ffi
---> 29 from .ffi import ffi, C
     30 
     31 from _pygit2 import GitError

/usr/lib64/python3.3/site-packages/pygit2/ffi.py in <module>()
     33 
     34 
---> 35 ffi, C = get_ffi()

/usr/lib64/python3.3/site-packages/pygit2/_utils.py in get_ffi()
     99     libgit2_bin, libgit2_include, libgit2_lib = get_libgit2_paths()
    100     C = ffi.verify(preamble, modulename=modulename, libraries=["git2"],
--> 101                    include_dirs=[libgit2_include], library_dirs=[libgit2_lib])
    102 
    103     # Ok

/usr/lib64/python3.3/site-packages/cffi/api.py in verify(self, source, tmpdir, **kwargs)
    365         # Make a Verifier() and use it to load the library.
    366         self.verifier = Verifier(self, source, tmpdir, **kwargs)
--> 367         lib = self.verifier.load_library()
    368         #
    369         # Save the loaded library for keep-alive purposes, even

/usr/lib64/python3.3/site-packages/cffi/verifier.py in load_library(self)
     93                 if not self._has_module:
     94                     if not self._has_source:
---> 95                         self._write_source()
     96                     self._compile_module()
     97             return self._load_library()

/usr/lib64/python3.3/site-packages/cffi/verifier.py in _write_source(self, file)
    181             if needs_written:
    182                 _ensure_dir(self.sourcefilename)
--> 183                 with open(self.sourcefilename, "w") as fp:
    184                     fp.write(source_data)
    185 

PermissionError: [Errno 13] Permission denied: '/usr/lib64/python3.3/site-packages/pygit2/__pycache__/pygit2_cffi_64b6b464x5470904.c'

Why does cffi suddenly need to write something into a system directory? Is this related to #529?

EDIT granting user write permissions allows the code to proceed, but I'm not sure whether I can remove the permissons now or not.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions