Fixed typecast issues using debian patch(int->size_t)(BZ#1140189)
This commit is contained in:
parent
21632c5158
commit
72978d4809
35
PyYAML.spec
35
PyYAML.spec
@ -6,21 +6,26 @@
|
||||
|
||||
Name: PyYAML
|
||||
Version: 3.11
|
||||
Release: 5%{?dist}
|
||||
Release: 6%{?dist}
|
||||
Summary: YAML parser and emitter for Python
|
||||
|
||||
Group: Development/Libraries
|
||||
License: MIT
|
||||
URL: http://pyyaml.org/
|
||||
Source0: http://pyyaml.org/download/pyyaml/%{name}-%{version}.tar.gz
|
||||
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||
BuildRequires: python-devel, python-setuptools, libyaml-devel
|
||||
BuildRequires: Cython
|
||||
BuildRequires: libyaml-devel
|
||||
Provides: python-yaml = %{version}-%{release}
|
||||
Provides: python-yaml%{?_isa} = %{version}-%{release}
|
||||
%if 0%{?with_python3}
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-setuptools
|
||||
BuildRequires: python3-Cython
|
||||
%endif
|
||||
# debian patch, upstream ticket http://pyyaml.org/ticket/247 and
|
||||
# https://bitbucket.org/xi/pyyaml/issue/35/test-fails-on-be-s390-x-ppc64
|
||||
Patch0: debian-big-endian-fix.patch
|
||||
|
||||
%description
|
||||
YAML is a data serialization format designed for human readability and
|
||||
@ -57,26 +62,30 @@ configuration files to object serialization and persistance.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version}
|
||||
%patch0 -p1 -b .be
|
||||
chmod a-x examples/yaml-highlight/yaml_hl.py
|
||||
|
||||
%if 0%{?with_python3}
|
||||
rm -rf %{py3dir}
|
||||
cp -a . %{py3dir}
|
||||
%endif
|
||||
# remove pre-generated file
|
||||
rm -rf ext/_yaml.c
|
||||
|
||||
|
||||
%build
|
||||
CFLAGS="${RPM_OPT_FLAGS}" %{__python} setup.py --with-libyaml build
|
||||
# regenerate ext/_yaml.c
|
||||
CFLAGS="${RPM_OPT_FLAGS}" %{__python} setup.py --with-libyaml build_ext
|
||||
|
||||
%if 0%{?with_python3}
|
||||
rm -rf %{py3dir}
|
||||
# ext/_yaml.c is needed
|
||||
cp -a . %{py3dir}
|
||||
pushd %{py3dir}
|
||||
CFLAGS="${RPM_OPT_FLAGS}" %{__python3} setup.py --with-libyaml build
|
||||
popd
|
||||
%endif
|
||||
|
||||
CFLAGS="${RPM_OPT_FLAGS}" %{__python} setup.py --with-libyaml build
|
||||
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
%{__python} setup.py install -O1 --skip-build --root %{buildroot}
|
||||
|
||||
%if 0%{?with_python3}
|
||||
@ -96,12 +105,7 @@ popd
|
||||
%endif
|
||||
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
|
||||
%files
|
||||
%defattr(644,root,root,755)
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license LICENSE
|
||||
%doc CHANGES PKG-INFO README examples
|
||||
@ -109,7 +113,6 @@ rm -rf %{buildroot}
|
||||
|
||||
%if 0%{?with_python3}
|
||||
%files -n python3-PyYAML
|
||||
%defattr(644,root,root,755)
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license LICENSE
|
||||
%doc CHANGES PKG-INFO README examples
|
||||
@ -118,6 +121,10 @@ rm -rf %{buildroot}
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Sep 15 2014 Jakub Čajka <jcajka@redhat.com> - 3.11-6
|
||||
- fixed typecast issues using debian patch(int->size_t)(BZ#1140189)
|
||||
- spec file cleanup
|
||||
|
||||
* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.11-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
|
||||
73
debian-big-endian-fix.patch
Normal file
73
debian-big-endian-fix.patch
Normal file
@ -0,0 +1,73 @@
|
||||
pyyaml FTBFS on the s390x buildd. It seems this is due to using int
|
||||
where the libyaml API uses size_t. I tested the attached patch in
|
||||
zelenka.d.o's sid chroot, and at least the python2 build/test worked (it
|
||||
failed with the same error as the buildd pre-patching).
|
||||
Patch by Julien Cristau <jcristau@debian.org>
|
||||
Add to the pyyaml package by Scott Kitterman <scott@kitterman.com>
|
||||
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=676536
|
||||
|
||||
Index: pyyaml-3.10/ext/_yaml.pxd
|
||||
===================================================================
|
||||
--- pyyaml-3.10.orig/ext/_yaml.pxd 2011-05-29 23:31:01.000000000 -0400
|
||||
+++ pyyaml-3.10/ext/_yaml.pxd 2012-06-08 16:33:54.309407701 -0400
|
||||
@@ -86,15 +86,15 @@
|
||||
YAML_MAPPING_END_EVENT
|
||||
|
||||
ctypedef int yaml_read_handler_t(void *data, char *buffer,
|
||||
- int size, int *size_read) except 0
|
||||
+ size_t size, size_t *size_read) except 0
|
||||
|
||||
ctypedef int yaml_write_handler_t(void *data, char *buffer,
|
||||
- int size) except 0
|
||||
+ size_t size) except 0
|
||||
|
||||
ctypedef struct yaml_mark_t:
|
||||
- int index
|
||||
- int line
|
||||
- int column
|
||||
+ size_t index
|
||||
+ size_t line
|
||||
+ size_t column
|
||||
ctypedef struct yaml_version_directive_t:
|
||||
int major
|
||||
int minor
|
||||
@@ -113,7 +113,7 @@
|
||||
char *suffix
|
||||
ctypedef struct _yaml_token_scalar_data_t:
|
||||
char *value
|
||||
- int length
|
||||
+ size_t length
|
||||
yaml_scalar_style_t style
|
||||
ctypedef struct _yaml_token_version_directive_data_t:
|
||||
int major
|
||||
@@ -152,7 +152,7 @@
|
||||
char *anchor
|
||||
char *tag
|
||||
char *value
|
||||
- int length
|
||||
+ size_t length
|
||||
int plain_implicit
|
||||
int quoted_implicit
|
||||
yaml_scalar_style_t style
|
||||
Index: pyyaml-3.10/ext/_yaml.pyx
|
||||
===================================================================
|
||||
--- pyyaml-3.10.orig/ext/_yaml.pyx 2011-05-29 23:31:01.000000000 -0400
|
||||
+++ pyyaml-3.10/ext/_yaml.pyx 2012-06-08 16:33:54.313409701 -0400
|
||||
@@ -905,7 +905,7 @@
|
||||
raise error
|
||||
return 1
|
||||
|
||||
-cdef int input_handler(void *data, char *buffer, int size, int *read) except 0:
|
||||
+cdef int input_handler(void *data, char *buffer, size_t size, size_t *read) except 0:
|
||||
cdef CParser parser
|
||||
parser = <CParser>data
|
||||
if parser.stream_cache is None:
|
||||
@@ -1515,7 +1515,7 @@
|
||||
self.ascend_resolver()
|
||||
return 1
|
||||
|
||||
-cdef int output_handler(void *data, char *buffer, int size) except 0:
|
||||
+cdef int output_handler(void *data, char *buffer, size_t size) except 0:
|
||||
cdef CEmitter emitter
|
||||
emitter = <CEmitter>data
|
||||
if emitter.dump_unicode == 0:
|
||||
Loading…
Reference in New Issue
Block a user