Version 3.11 06/12106/2 pre_1529660_master
authorAlexander Tsamutali <atsamutali@mirantis.com>
Thu, 24 Sep 2015 16:45:11 +0000 (19:45 +0300)
committerAlexander Tsamutali <atsamutali@mirantis.com>
Thu, 24 Sep 2015 17:05:04 +0000 (20:05 +0300)
Spec from: http://pkgs.fedoraproject.org/cgit/PyYAML.git/tree/PyYAML.spec?id=d1fc70f

Change-Id: I3ceded979c37b2d87096963a39cd05697b9ec804

PyYAML-3.11.tar.gz [new file with mode: 0644]
PyYAML-CVE-2014-9130.patch [new file with mode: 0644]
PyYAML.spec [new file with mode: 0644]
debian-big-endian-fix.patch [new file with mode: 0644]
tests/runtests.sh [new file with mode: 0644]

diff --git a/PyYAML-3.11.tar.gz b/PyYAML-3.11.tar.gz
new file mode 100644 (file)
index 0000000..2a5d431
Binary files /dev/null and b/PyYAML-3.11.tar.gz differ
diff --git a/PyYAML-CVE-2014-9130.patch b/PyYAML-CVE-2014-9130.patch
new file mode 100644 (file)
index 0000000..c47a9b5
--- /dev/null
@@ -0,0 +1,35 @@
+# HG changeset patch
+# User Kirill Simonov <xi@resolvent.net>
+# Date 1417197216 21600
+# Node ID ddf211a41bb231c365fece5599b7e484e6dc33fc
+# Parent  263dff6f9664ccdc532283ba5c7b282c0e436a7b
+Removed invalid simple key assertion.
+
+diff --git a/lib/yaml/scanner.py b/lib/yaml/scanner.py
+--- a/lib/yaml/scanner.py
++++ b/lib/yaml/scanner.py
+@@ -297,10 +297,6 @@
+         # Check if a simple key is required at the current position.
+         required = not self.flow_level and self.indent == self.column
+-        # A simple key is required only if it is the first token in the current
+-        # line. Therefore it is always allowed.
+-        assert self.allow_simple_key or not required
+-
+         # The next token might be a simple key. Let's save it's number and
+         # position.
+         if self.allow_simple_key:
+diff --git a/lib3/yaml/scanner.py b/lib3/yaml/scanner.py
+--- a/lib3/yaml/scanner.py
++++ b/lib3/yaml/scanner.py
+@@ -297,10 +297,6 @@
+         # Check if a simple key is required at the current position.
+         required = not self.flow_level and self.indent == self.column
+-        # A simple key is required only if it is the first token in the current
+-        # line. Therefore it is always allowed.
+-        assert self.allow_simple_key or not required
+-
+         # The next token might be a simple key. Let's save it's number and
+         # position.
+         if self.allow_simple_key:
diff --git a/PyYAML.spec b/PyYAML.spec
new file mode 100644 (file)
index 0000000..a753d3c
--- /dev/null
@@ -0,0 +1,237 @@
+# %if 0%{?fedora} > 12
+%global with_python3 1
+# %else
+# %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
+# %endif
+
+Name:           PyYAML
+Version:        3.11
+Release:        9%{?dist}~mos8.0.1
+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
+BuildRequires:  python-devel, python-setuptools, libyaml-devel
+BuildRequires:  Cython
+BuildRequires:  libyaml-devel
+Provides:       python-yaml = %{version}-%{release}
+Provides:       python-yaml%{?_isa} = %{version}-%{release}
+Provides:       python2-yaml = %{version}-%{release}
+Provides:       python2-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
+
+# CVE-2014-9130 assert failure when processing wrapped strings
+# https://bugzilla.redhat.com/show_bug.cgi?id=1204829
+Patch1: PyYAML-CVE-2014-9130.patch
+
+%description
+YAML is a data serialization format designed for human readability and
+interaction with scripting languages.  PyYAML is a YAML parser and
+emitter for Python.
+
+PyYAML features a complete YAML 1.1 parser, Unicode support, pickle
+support, capable extension API, and sensible error messages.  PyYAML
+supports standard YAML tags and provides Python-specific tags that
+allow to represent an arbitrary Python object.
+
+PyYAML is applicable for a broad range of tasks from complex
+configuration files to object serialization and persistance.
+
+%if 0%{?with_python3}
+%package -n python3-PyYAML
+Summary: YAML parser and emitter for Python
+Group: Development/Libraries
+
+%description -n python3-PyYAML
+YAML is a data serialization format designed for human readability and
+interaction with scripting languages.  PyYAML is a YAML parser and
+emitter for Python.
+
+PyYAML features a complete YAML 1.1 parser, Unicode support, pickle
+support, capable extension API, and sensible error messages.  PyYAML
+supports standard YAML tags and provides Python-specific tags that
+allow to represent an arbitrary Python object.
+
+PyYAML is applicable for a broad range of tasks from complex
+configuration files to object serialization and persistance.
+%endif
+
+
+%prep
+%setup -q -n %{name}-%{version}
+%patch0 -p1 -b .be
+chmod a-x examples/yaml-highlight/yaml_hl.py
+
+%patch1 -p1
+
+# remove pre-generated file
+rm -rf ext/_yaml.c
+
+
+%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
+%{__python} setup.py install -O1 --skip-build --root %{buildroot}
+
+%if 0%{?with_python3}
+pushd %{py3dir}
+%{__python3} setup.py install -O1 --skip-build --root %{buildroot}
+popd
+%endif
+
+
+%check
+%{__python} setup.py test
+
+%if 0%{?with_python3}
+pushd %{py3dir}
+%{__python3} setup.py test
+popd
+%endif
+
+
+%files
+%{!?_licensedir:%global license %%doc}
+%license LICENSE
+%doc CHANGES PKG-INFO README examples
+%{python_sitearch}/*
+
+%if 0%{?with_python3}
+%files -n python3-PyYAML
+%{!?_licensedir:%global license %%doc}
+%license LICENSE
+%doc CHANGES PKG-INFO README examples
+%{python3_sitearch}/*
+%endif
+
+
+%changelog
+* Thu Sep 24 2015 Alexander Tsamutali <atsamutali@mirantis.com> - 3.11-9%{?dist}~mos8.0.1
+- Rebuild for MOS 8.0.
+
+* Fri Jul 17 2015 John Eckersberg <eck@redhat.com> - 3.11-9
+- Add provides for python2-yaml (RHBZ#1241678)
+
+* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.11-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Mon Mar 23 2015 John Eckersberg <eck@redhat.com> - 3.11-7
+- Add patch for CVE-2014-9130 (bug 1204829)
+
+* 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
+
+* Mon Aug  4 2014 Tom Callaway <spot@fedoraproject.org> - 3.11-4
+- fix license handling
+
+* Fri Jun 06 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.11-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Wed May 14 2014 Bohuslav Kabrda <bkabrda@redhat.com> - 3.11-2
+- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4
+
+* Mon Apr 21 2014 John Eckersberg <jeckersb@redhat.com> - 3.11-1
+- New upstream release 3.11 (BZ#1081521)
+
+* Thu Aug  8 2013 John Eckersberg <jeckersb@redhat.com> - 3.10-9
+- Add check section and run test suite
+
+* Fri Aug 02 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Sat Aug 04 2012 David Malcolm <dmalcolm@redhat.com> - 3.10-6
+- rebuild for https://fedoraproject.org/wiki/Features/Python_3.3
+
+* Wed Aug  1 2012 David Malcolm <dmalcolm@redhat.com> - 3.10-5
+- remove rhel logic from with_python3 conditional
+
+* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Fri Apr 27 2012 John Eckersberg <jeckersb@redhat.com> - 3.10-3
+- Add Provides for python-yaml (BZ#740390)
+
+* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Thu Jun 23 2011 John Eckersberg <jeckersb@redhat.com> - 3.10-1
+- New upstream release 3.10
+
+* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.09-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Wed Feb  2 2011 John Eckersberg <jeckersb@redhat.com> - 3.09-7
+- Add support to build for python 3
+
+* Tue Jul 27 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 3.09-6
+- Bump release number for upgrade path
+
+* Wed Jul 21 2010 David Malcolm <dmalcolm@redhat.com> - 3.09-3
+- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
+
+* Fri Oct 02 2009 John Eckersberg <jeckersb@redhat.com> - 3.09-1
+- New upstream release 3.09
+
+* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.08-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Wed Jul 22 2009 - John Eckersberg <jeckersb@redhat.com> - 3.08-5
+- Minor tweaks to spec file aligning with latest Fedora packaging guidelines
+- Enforce inclusion of libyaml in build with --with-libyaml option to setup.py
+- Deliver to %%{python_sitearch} instead of %%{python_sitelib} due to _yaml.so
+- Thanks to Gareth Armstrong <gareth.armstrong@hp.com>
+
+* Tue Mar 3 2009 John Eckersberg <jeckersb@redhat.com> - 3.08-4
+- Correction, change libyaml to libyaml-devel in BuildRequires
+
+* Mon Mar 2 2009 John Eckersberg <jeckersb@redhat.com> - 3.08-3
+- Add libyaml to BuildRequires
+
+* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.08-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Wed Feb 18 2009 John Eckersberg <jeckersb@redhat.com> - 3.08-1
+- New upstream release
+
+* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 3.06-2
+- Rebuild for Python 2.6
+
+* Fri Oct 24 2008 John Eckersberg <jeckersb@redhat.com> - 3.06-1
+- New upstream release
+
+* Wed Jan 02 2008 John Eckersberg <jeckersb@redhat.com> - 3.05-2
+- Remove explicit dependency on python >= 2.3
+- Remove executable on example script in docs
+
+* Mon Dec 17 2007 John Eckersberg <jeckersb@redhat.com> - 3.05-1
+- Initial packaging for Fedora
diff --git a/debian-big-endian-fix.patch b/debian-big-endian-fix.patch
new file mode 100644 (file)
index 0000000..7991005
--- /dev/null
@@ -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:
diff --git a/tests/runtests.sh b/tests/runtests.sh
new file mode 100644 (file)
index 0000000..4091826
--- /dev/null
@@ -0,0 +1,26 @@
+#! /bin/bash
+
+set -o xtrace
+
+case $1 in
+    PyYAML)
+        echo "Testing $1"
+        python -c "import yaml"
+        EC=$?
+        ;;
+    python3-PyYAML)
+        echo "Testing $1"
+        python3 -c "import yaml"
+        EC=$?
+        ;;
+    PyYAML-debuginfo)
+        echo "Skip tests for $1"
+        EC=0
+        ;;
+    *)
+        echo "Test not defined for $1"
+        EC=1
+        ;;
+esac
+
+exit $EC