Fix the build with cffi 1.10
This commit is contained in:
parent
724078a63c
commit
b22a8ee1a5
71
0001-Fix-parameter-passing-of-describe-patterns.patch
Normal file
71
0001-Fix-parameter-passing-of-describe-patterns.patch
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
From b88dc868423af2f760f649960112efd0e37e5335 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lukas Fleischer <lfleischer@lfos.de>
|
||||||
|
Date: Sat, 6 May 2017 21:39:33 +0200
|
||||||
|
Subject: [PATCH] Fix parameter passing of describe patterns
|
||||||
|
|
||||||
|
When ffi.new() is used to build a new pointer object, the returned
|
||||||
|
pointer object has ownership on the allocated memory. When it is
|
||||||
|
garbage-collected, then the memory is freed. Thus, we need to make sure
|
||||||
|
the original object survives its use, otherwise the casted pointer will
|
||||||
|
point to garbage.
|
||||||
|
|
||||||
|
This fixes one test which was failing with the latest CFFI version, see
|
||||||
|
issue #694. Thus, this commit also reverts 803b1cb (cffi 1.10 not yet
|
||||||
|
supported, 2017-03-22) where the latest CFFI version was marked as
|
||||||
|
unsupported.
|
||||||
|
|
||||||
|
Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
|
||||||
|
---
|
||||||
|
.travis.yml | 2 +-
|
||||||
|
pygit2/repository.py | 6 +++++-
|
||||||
|
setup.py | 4 ++--
|
||||||
|
3 files changed, 8 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/.travis.yml b/.travis.yml
|
||||||
|
index 22aadd5..72f8f1b 100644
|
||||||
|
--- a/.travis.yml
|
||||||
|
+++ b/.travis.yml
|
||||||
|
@@ -14,7 +14,7 @@ env: LIBGIT2=~/libgit2/_install/ LD_LIBRARY_PATH=~/libgit2/_install/lib
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- sudo apt-get install cmake
|
||||||
|
- - pip install cffi==1.9.1
|
||||||
|
+ - pip install cffi
|
||||||
|
- "./.travis.sh"
|
||||||
|
|
||||||
|
script:
|
||||||
|
diff --git a/pygit2/repository.py b/pygit2/repository.py
|
||||||
|
index 9377aa2..472f4ff 100644
|
||||||
|
--- a/pygit2/repository.py
|
||||||
|
+++ b/pygit2/repository.py
|
||||||
|
@@ -692,7 +692,11 @@ class BaseRepository(_Repository):
|
||||||
|
if describe_strategy is not None:
|
||||||
|
options.describe_strategy = describe_strategy
|
||||||
|
if pattern:
|
||||||
|
- options.pattern = ffi.new('char[]', to_bytes(pattern))
|
||||||
|
+ # The returned pointer object has ownership on the allocated
|
||||||
|
+ # memory. Make sure it is kept alive until git_describe_commit() or
|
||||||
|
+ # git_describe_workdir() are called below.
|
||||||
|
+ pattern_char = ffi.new('char[]', to_bytes(pattern))
|
||||||
|
+ options.pattern = pattern_char
|
||||||
|
if only_follow_first_parent is not None:
|
||||||
|
options.only_follow_first_parent = only_follow_first_parent
|
||||||
|
if show_commit_oid_as_fallback is not None:
|
||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index f4a9f8c..18d3eb0 100644
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -203,8 +203,8 @@ setup(name='pygit2',
|
||||||
|
long_description=long_description,
|
||||||
|
packages=['pygit2'],
|
||||||
|
package_data={'pygit2': ['decl.h']},
|
||||||
|
- setup_requires=['cffi<1.10'],
|
||||||
|
- install_requires=['cffi<1.10', 'six'],
|
||||||
|
+ setup_requires=['cffi'],
|
||||||
|
+ install_requires=['cffi', 'six'],
|
||||||
|
zip_safe=False,
|
||||||
|
cmdclass=cmdclass,
|
||||||
|
**extra_args)
|
||||||
|
--
|
||||||
|
2.12.2
|
||||||
|
|
@ -6,14 +6,16 @@
|
|||||||
|
|
||||||
Name: python-%{pkgname}
|
Name: python-%{pkgname}
|
||||||
Version: 0.25.1
|
Version: 0.25.1
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: Python bindings for libgit2
|
Summary: Python bindings for libgit2
|
||||||
|
|
||||||
License: GPLv2 with linking exception
|
License: GPLv2 with linking exception
|
||||||
URL: http://www.pygit2.org
|
URL: http://www.pygit2.org
|
||||||
Source0: https://github.com/libgit2/%{pkgname}/archive/v%{version}/%{pkgname}-%{version}.tar.gz
|
Source0: https://github.com/libgit2/%{pkgname}/archive/v%{version}/%{pkgname}-%{version}.tar.gz
|
||||||
|
|
||||||
Patch0001: 0001-Remove-remote-calling-unit-tests.patch
|
Patch0: 0001-Remove-remote-calling-unit-tests.patch
|
||||||
|
# Fix the build with cffi 1.10. Backported from upstream.
|
||||||
|
Patch1: 0001-Fix-parameter-passing-of-describe-patterns.patch
|
||||||
|
|
||||||
BuildRequires: libgit2-devel
|
BuildRequires: libgit2-devel
|
||||||
BuildRequires: openssl-devel
|
BuildRequires: openssl-devel
|
||||||
@ -126,6 +128,9 @@ find %{buildroot} -name '*.so' -exec chmod 755 {} ';'
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun May 07 2017 Pete Walter <pwalter@fedoraproject.org> - 0.25.1-2
|
||||||
|
- Fix the build with cffi 1.10
|
||||||
|
|
||||||
* Thu Apr 27 2017 Pete Walter <pwalter@fedoraproject.org> - 0.25.1-1
|
* Thu Apr 27 2017 Pete Walter <pwalter@fedoraproject.org> - 0.25.1-1
|
||||||
- Update to 0.25.1
|
- Update to 0.25.1
|
||||||
- Disable one more failing test that tries to do network access
|
- Disable one more failing test that tries to do network access
|
||||||
|
Loading…
Reference in New Issue
Block a user